argo1/README.md
2023-04-23 22:00:48 -05:00

73 lines
2.5 KiB
Markdown

# `argo1`
#### A different opinionated opinion on how to bootstrap your ArgoCD
This repo is a basic skeleton for managing your apps with ArgoCD.
It uses helm to bootstrap and maintain the ArgoCD installation. You may
then add additional applications in argo1/templates either as helm charts
or as directories which should live alongside `argo1`.
## Setup your own Argo1
1. Clone this repo as a template
2. If you will be using a private repo, configure a secret similar to secret.yaml
* You might also wish to use sealed secrets (via kubeseal).
* Check `secrets/` for more info on secrets and git repos.
3. update `argo1/values.yaml`
* At the very least, you will need to update the bootstrap.source.repoURL to
point to your clone -- this URL must match the prefix of the secret from
step 2, as well.
* You may configure the argo-cd helm template via the argo-cd map in values.yaml.
A basic example is available in the default values.yaml file which suppresses
installing the CRDs (which are instead installed via install-crds.sh)
4. PUSH YOUR CHANGES
* This step is super important. You _must_ push your changes to the repo
configured in step 3. If not, the status will remain Unknown as the bootstrap
will never be possible.
4. Install
```bash
bash install.sh
```
5. all done!
## App of Apps pattern
This is already an app of apps.
Add additional applications to `templates/`. These may reference Values or
they may be verbatim manifests (be careful of any `{{}}` in your manifests
though!)
Do not modify (or be careful with) `self.yaml` which is the application which
references this repo to enable self-management.
## Uninstalling
```bash
bash uninstall.sh
```
## Adding an application
An application is added to `argo1/templates` similarly to `sealed-secrets.yaml` for
a helm chart or similarly to `secrets.yaml` for a project colocated in this repo.
Steps for adding an application:
- if helm chart, copy `argo1/templates/sealed-secrets.yaml` to a new file in the same folder
- if local manifests, copy `argo1/templates/secrets.yaml` to a new file in the same folder
- update the new file. at least the following will change:
- the key in `.Values` on line 1
- `metadata.name`
- `spec.source`
Applications which affect how secrets are loaded for Git repos must update the following
pre-bootstrap files:
- `argo1/install-crds.sh`
- `argo1/delete-crds.sh`
- `install.sh`
- `uninstall.sh`
[argo-crds]: https://argo-cd.readthedocs.io/en/stable/operator-manual/installation/