argo1/README.md

86 lines
2.9 KiB
Markdown
Raw Normal View History

2023-04-24 02:05:13 +00:00
# `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)
2023-04-24 03:00:48 +00:00
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.
2023-04-24 02:05:13 +00:00
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!)
2023-04-24 03:00:48 +00:00
Do not modify (or be careful with) `self.yaml` which is the application which
2023-04-24 02:05:13 +00:00
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`
2023-04-27 15:14:29 +00:00
## Adopting a helm chart
To adopt an existing helm chart, there is an adopt-helm.sh script. It is not perfectly
reliable, however, so ensure the output makes sense.
1. Setup your helm release how you need it to work
2. `cd argo1`
2. `bash adopt-helm.sh release-name`
3. Follow configuration instructions
4. Validate templates/release-name.yaml
- Especially, check that the repoURL is correct.
5. Commit templates/release-name.yaml and values.yaml
2023-04-24 02:05:13 +00:00
[argo-crds]: https://argo-cd.readthedocs.io/en/stable/operator-manual/installation/