[Argo CD] is a Kubernetes-native GitOps/continuous deployment manager. It monitors the state of Kubnernetes resources, such as Pods, Deployments, ConfigMaps, Secrets, and Custom Resources, and synchronizes them with their canonical definitions from a Git repository. *Argo CD* consists of various components, including a Repository Service, an Application Controller, a Notification Controller, and an API server/Web UI. It also has some optional components, such as a bundled Dex server for authentication/authorization, and an ApplicationSet controller, which we will not be using. [Argo CD]: https://argo-cd.readthedocs.io/ |
||
---|---|---|
.. | ||
applications | ||
README.md | ||
argocd-cm.yml | ||
hooks.yaml | ||
ingress.yaml | ||
kustomization.yaml | ||
namespace.yaml | ||
oidc.config | ||
policy.csv |
README.md
Argo CD
Argo CD is a declarative GitOps continuous delivery tool, which allows developers to define and control deployment of Kubernetes application resources from within their existing Git workflow.
kubectl apply -k argocd
kubectl apply -f argocd/applications
Components
Argo CD consists of several components, some of which are not used:
- Application Controller
- Repository Service
- Web Server
- Notification Controller
- ApplicationSet Controller1
- Dex Server2
Applications
Applications are the core resource in Argo CD. They form a collection of resources associated with a particular application deployment. They are themselves defined as Kubernetes resources (see applications).
Git Webhook
Argo CD will automatically refresh the desired state of applications whenever a changeset is pushed to the Git repository where manifests are stored. The infra/kubernetes repository has a Webhook configured in Gitea that notifies the Argo CD server on Git push events.