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