Skip to content

Latest commit

 

History

History
55 lines (32 loc) · 2.42 KB

README.md

File metadata and controls

55 lines (32 loc) · 2.42 KB

Argo CD Configuration

Argo CD is a declarative, GitOps continuous delivery tool for Kubernetes. This repository contains the configuration for Argo, as apps of apps, so that we can bootstrap the Argo CD installation to manage itself.

Usage

https://argo-cd.readthedocs.io/en/stable/understand_the_basics/

Bootstrap

The argo directory contains the installation files for Argo CD.

https://argo-cd.readthedocs.io/en/stable/getting_started/#1-install-argo-cd

# Install ArgoCD
kubectl apply -k argo/overlays/local

# Instruct ArgoCD to manage itself via GitOps
kubectl apply -f ./config/application.yaml

# Give ArgoCD an application to manage the rest of the applications via AoA
kubectl apply -f ./app-of-apps/application.yaml

http://argo.localhost will provide the Argo CD UI!

Configuration

The config directory contains the configuration for Argo CD.

Argo CD applications, projects and settings can be defined declaratively using Kubernetes manifests.

https://argo-cd.readthedocs.io/en/stable/operator-manual/declarative-setup/

We'll be relying on the secrets generated by Argo to help us install addons. GitOps is tricky, since the cluster secrets are created ad hoc. We'll need to make some changes to the secrets per the documentation.

  • Rename the in-cluster cluster to in-cluster-hub (or whatever works for your organization) via the UI.
  • Add labels to clusters via the UI. The following labels MUST be added all clusters:
    • kubernetes.io/environment = sandbox/production

Applications

The app-of-apps directory contains the configuration for the Argo CD AoA that manages the rest of the applications.

See addons to enable additional functionality for Kubernetes clusters. All clusters managed by Argo CD will have these addons installed.

See apps to deploy User-space applications to Kubernetes clusters.

Secrets

Argo CD will be polling repositories for changes. We need to create a secret to allow Argo CD to authenticate with GitHub to bypass rate limits:

kubectl create secret generic github-token --from-literal=token="github_pat_XXX" -n argocd