github.com/argoproj/argo-cd/v2@v2.10.9/docs/operator-manual/core.md (about)

     1  # Argo CD Core
     2  
     3  ## Introduction
     4  
     5  Argo CD Core is a different installation that runs Argo CD in headless
     6  mode. With this installation, you will have a fully functional GitOps
     7  engine capable of getting the desired state from Git repositories and
     8  applying it in Kubernetes.
     9  
    10  The following groups of features won't be available in this
    11  installation:
    12  
    13  - Argo CD RBAC model
    14  - Argo CD API
    15  - OIDC based authentication
    16  
    17  The following features will be partially available (see the
    18  [usage](#using) section below for more details):
    19  
    20  - Argo CD Web UI
    21  - Argo CD CLI
    22  - Multi-tenancy (strictly GitOps based on git push permissions)
    23  
    24  A few use-cases that justify running Argo CD Core are:
    25  
    26  - As a cluster admin, I want to rely on Kubernetes RBAC only.
    27  - As a devops engineer, I don't want to learn a new API or depend on
    28    another CLI to automate my deployments. I want instead rely in
    29    Kubernetes API only.
    30  - As a cluster admin, I don't want to provide Argo CD UI or Argo CD
    31    CLI to developers.
    32  
    33  ## Architecture
    34  
    35  Because Argo CD is designed with a component based architecture in
    36  mind, it is possible to have a more minimalist installation. In this
    37  case fewer components are installed and yet the main GitOps
    38  functionality remains operational.
    39  
    40  In the diagram below, the Core box, shows the components that will be
    41  installed while opting for Argo CD Core:
    42  
    43  ![Argo CD Core](../assets/argocd-core-components.png)
    44  
    45  Note that even if the Argo CD controller can run without Redis, it
    46  isn't recommended. The Argo CD controller uses Redis as an important
    47  caching mechanism reducing the load on Kube API and in Git. For this
    48  reason, Redis is also included in this installation method.
    49  
    50  ## Installing
    51  
    52  Argo CD Core can be installed by applying a single manifest file that
    53  contains all the required resources.
    54  
    55  Example:
    56  
    57  ```
    58  export ARGOCD_VERSION=<desired argo cd release version (e.g. v2.7.0)>
    59  kubectl create namespace argocd
    60  kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/$ARGOCD_VERSION/manifests/core-install.yaml
    61  ```
    62  
    63  ## Using
    64  
    65  Once Argo CD Core is installed, users will be able to interact with it
    66  by relying on GitOps. The available Kubernetes resources will be the
    67  `Application` and the `ApplicationSet` CRDs. By using those resources,
    68  users will be able to deploy and manage applications in Kubernetes.
    69  
    70  It is still possible to use Argo CD CLI even when running Argo CD
    71  Core. In this case, the CLI will spawn a local API server process that
    72  will be used to handle the CLI command. Once the command is concluded,
    73  the local API Server process will also be terminated. This happens
    74  transparently for the user with no additional command required. Note
    75  that Argo CD Core will rely only on Kubernetes RBAC and the user (or
    76  the process) invoking the CLI needs to have access to the Argo CD
    77  namespace with the proper permission in the `Application` and
    78  `ApplicationSet` resources for executing a given command.
    79  
    80  To use Argo CD CLI in core mode, it is required to pass the `--core`
    81  flag with the `login` subcommand.
    82  
    83  Example:
    84  
    85  ```bash
    86  kubectl config set-context --current --namespace=argocd # change current kube context to argocd namespace
    87  argocd login --core
    88  ```
    89  
    90  Similarly, users can also run the Web UI locally if they prefer to
    91  interact with Argo CD using this method. The Web UI can be started
    92  locally by running the following command:
    93  
    94  ```
    95  argocd admin dashboard -n argocd
    96  ```
    97  
    98  Argo CD Web UI will be available at `http://localhost:8080`
    99