ArgoCD is composed of three mains components:
API Server: Exposes the API for the WebUI / CLI / CICD Systems
Repository Server: Internal service which maintains a local cache of the git repository holding the application manifests
Application Controller: Kubernetes controller which controls and monitors applications continuously and compares that current live state with desired target state (specified in the repository). If a OutOfSync
is detected, it will take corrective actions.
All those components could be installed using a manifest provided by the Argo Project:
kubectl create namespace argocd
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/v2.0.4/manifests/install.yaml
To interact with the API Server
we need to deploy the CLI:
sudo curl --silent --location -o /usr/local/bin/argocd https://github.com/argoproj/argo-cd/releases/download/v2.0.4/argocd-linux-amd64
sudo chmod +x /usr/local/bin/argocd