# `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/