Go to file
2023-04-27 20:02:20 -05:00
argo1 remove SSA. didn't seem to work 2023-04-27 20:02:20 -05:00
secrets adapt for cascade 2023-04-26 19:33:24 -05:00
.gitignore update gitignore to ignore .* 2023-04-26 18:53:45 -05:00
install.sh initial import 2023-04-23 21:56:38 -05:00
README.md add adopt-helm and instructions 2023-04-27 10:14:29 -05:00
uninstall.sh reliability improvements 2023-04-23 23:22:46 -05: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.
  1. 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)
  1. 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.
  1. Install
    bash install.sh
    
  2. 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

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.

  1. Setup your helm release how you need it to work
  2. cd argo1
  3. bash adopt-helm.sh release-name
  4. Follow configuration instructions
  5. Validate templates/release-name.yaml
  • Especially, check that the repoURL is correct.
  1. Commit templates/release-name.yaml and values.yaml