argo1 | ||
metallb | ||
pgo | ||
secrets | ||
template-operator | ||
.gitignore | ||
copy-admin-password.sh | ||
install.sh | ||
README.md | ||
uninstall.sh |
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
- Clone this repo as a template
- 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.
- 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)
- 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.
- Install
bash install.sh
- 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 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
- the key in
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
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.
- Setup your helm release how you need it to work
cd argo1
bash adopt-helm.sh release-name
- Follow configuration instructions
- Validate templates/release-name.yaml
- Especially, check that the repoURL is correct.
- Commit templates/release-name.yaml and values.yaml