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