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