github.com/argoproj/argo-cd@v1.8.7/docs/operator-manual/architecture.md (about) 1 2 # Architectural Overview 3 4 ![Argo CD Architecture](../assets/argocd_architecture.png) 5 6 ## Components 7 8 ### API Server 9 The API server is a gRPC/REST server which exposes the API consumed by the Web UI, CLI, and CI/CD 10 systems. It has the following responsibilities: 11 12 * application management and status reporting 13 * invoking of application operations (e.g. sync, rollback, user-defined actions) 14 * repository and cluster credential management (stored as K8s secrets) 15 * authentication and auth delegation to external identity providers 16 * RBAC enforcement 17 * listener/forwarder for Git webhook events 18 19 ### Repository Server 20 The repository server is an internal service which maintains a local cache of the Git repository 21 holding the application manifests. It is responsible for generating and returning the Kubernetes 22 manifests when provided the following inputs: 23 24 * repository URL 25 * revision (commit, tag, branch) 26 * application path 27 * template specific settings: parameters, ksonnet environments, helm values.yaml 28 29 ### Application Controller 30 The application controller is a Kubernetes controller which continuously monitors running 31 applications and compares the current, live state against the desired target state (as specified in 32 the repo). It detects `OutOfSync` application state and optionally takes corrective action. It 33 is responsible for invoking any user-defined hooks for lifecycle events (PreSync, Sync, PostSync) 34