DevOps / ArgoCD interview questions
What is an ArgoCD Application and what fields does its manifest require?
An ArgoCD Application is a Kubernetes Custom Resource (CRD) that represents a deployed application managed by ArgoCD. It is the fundamental unit of work in ArgoCD — one Application tracks one source (a Git repo path, Helm chart, or OCI artifact) and deploys it to one destination (a cluster and namespace).
The essential fields in an Application manifest are:
- source: defines
repoURL(the Git or Helm repo),targetRevision(branch, tag, or commit SHA), andpath(directory within the repo) orchart(for Helm repos). - destination: specifies
server(the cluster API URL; usehttps://kubernetes.default.svcfor in-cluster) andnamespace. - project: the ArgoCD Project this Application belongs to (controls source/destination whitelist and RBAC).
apiVersion: argoproj.io/v1alpha1 kind: Application metadata: name: my-app namespace: argocd spec: project: default source: repoURL: https://github.com/my-org/my-app targetRevision: HEAD path: k8s/overlays/production destination: server: https://kubernetes.default.svc namespace: production syncPolicy: automated: prune: true selfHeal: true
Optional but commonly used: syncPolicy (automated sync, prune, selfHeal), ignoreDifferences (fields to exclude from diff), and info (free-form metadata displayed in the UI).
More Related questions...