DevOps / GitOps Interview Questions
What is Argo CD and how does it implement GitOps?
Argo CD is a declarative, GitOps continuous delivery tool for Kubernetes, graduated in the CNCF. It implements the pull-based GitOps model: you define Application custom resources that map a Git source to a Kubernetes destination, and Argo CD's Application Controller continuously reconciles the two.
Argo CD's main components:
- API Server: Exposes a gRPC and REST API consumed by the web UI, the
argocdCLI, and CI webhooks. Handles authentication (OIDC via Dex or external providers) and authorisation (RBAC). - Repository Server: Clones Git repositories and renders manifests using whichever tool the Application source specifies — plain YAML, Kustomize, Helm, Jsonnet, or a custom config management plugin.
- Application Controller: The reconciliation engine. Runs a control loop that fetches live Kubernetes resources, compares them to the rendered desired state from the Repository Server, and applies the diff. Emits sync status and health status.
- Redis: Caches rendered manifests and application state to reduce Git and Kubernetes API load.
- Dex (optional): An embedded OIDC identity provider for SSO against GitHub, LDAP, SAML, or other identity providers.
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: guestbook
namespace: argocd
spec:
project: default
source:
repoURL: https://github.com/org/gitops-config.git
targetRevision: HEAD
path: apps/guestbook
destination:
server: https://kubernetes.default.svc
namespace: guestbook
syncPolicy:
automated:
prune: true
selfHeal: true
syncOptions:
- CreateNamespace=true
More Related questions...