mirror of
https://github.com/argoproj/argo-cd
synced 2026-04-21 17:07:16 +00:00
docs: Add Argo CD Core documentation (#13225)
* docs: Add Argo CD Core documentation Signed-off-by: Leonardo Luz Almeida <leonardo_almeida@intuit.com> * docs: Add Argo CD usage to the docs Signed-off-by: Leonardo Luz Almeida <leonardo_almeida@intuit.com> * docs: add Redis details in Argo CD Core doc Signed-off-by: Leonardo Luz Almeida <leonardo_almeida@intuit.com> * docs: minor fix Signed-off-by: Leonardo Luz Almeida <leonardo_almeida@intuit.com> * Address review comments Signed-off-by: Leonardo Luz Almeida <leonardo_almeida@intuit.com> * minor fix Signed-off-by: Leonardo Luz Almeida <leonardo_almeida@intuit.com> * Address review comments Signed-off-by: Leonardo Luz Almeida <leonardo_almeida@intuit.com> * minor fix Signed-off-by: Leonardo Luz Almeida <leonardo_almeida@intuit.com> --------- Signed-off-by: Leonardo Luz Almeida <leonardo_almeida@intuit.com>
This commit is contained in:
parent
60d14d8dd1
commit
c7f8ddd340
4 changed files with 110 additions and 12 deletions
BIN
docs/assets/argocd-core-components.png
Normal file
BIN
docs/assets/argocd-core-components.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 157 KiB |
99
docs/operator-manual/core.md
Normal file
99
docs/operator-manual/core.md
Normal file
|
|
@ -0,0 +1,99 @@
|
|||
# Argo CD Core
|
||||
|
||||
## Introduction
|
||||
|
||||
Argo CD Core is a different installation that runs Argo CD in headless
|
||||
mode. With this installation, you will have a fully functional GitOps
|
||||
engine capable of getting the desired state from Git repositories and
|
||||
applying it in Kubernetes.
|
||||
|
||||
The following groups of features won't be available in this
|
||||
installation:
|
||||
|
||||
- Argo CD RBAC model
|
||||
- Argo CD API
|
||||
- OIDC based authentication
|
||||
|
||||
The following features will be partially available (see the
|
||||
[usage](#using) section below for more details):
|
||||
|
||||
- Argo CD Web UI
|
||||
- Argo CD CLI
|
||||
- Multi-tenancy (strictly GitOps based on git push permissions)
|
||||
|
||||
A few use-cases that justify running Argo CD Core are:
|
||||
|
||||
- As a cluster admin, I want to rely on Kubernetes RBAC only.
|
||||
- As a devops engineer, I don't want to learn a new API or depend on
|
||||
another CLI to automate my deployments. I want instead rely in
|
||||
Kubernetes API only.
|
||||
- As a cluster admin, I don't want to provide Argo CD UI or Argo CD
|
||||
CLI to developers.
|
||||
|
||||
## Architecture
|
||||
|
||||
Because Argo CD is designed with a component based architecture in
|
||||
mind, it is possible to have a more minimalist installation. In this
|
||||
case fewer components are installed and yet the main GitOps
|
||||
functionality remains operational.
|
||||
|
||||
In the diagram below, the Core box, shows the components that will be
|
||||
installed while opting for Argo CD Core:
|
||||
|
||||

|
||||
|
||||
Note that even if the Argo CD controller can run without Redis, it
|
||||
isn't recommended. The Argo CD controller uses Redis as an important
|
||||
caching mechanism reducing the load on Kube API and in Git. For this
|
||||
reason, Redis is also included in this installation method.
|
||||
|
||||
## Installing
|
||||
|
||||
Argo CD Core can be installed by applying a single manifest file that
|
||||
contains all the required resources.
|
||||
|
||||
Example:
|
||||
|
||||
```
|
||||
export ARGOCD_VERSION=<desired argo cd release version (e.g. v2.7.0)>
|
||||
kubectl create namespace argocd
|
||||
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/$ARGOCD_VERSION/manifests/core-install.yaml
|
||||
```
|
||||
|
||||
## Using
|
||||
|
||||
Once Argo CD Core is installed, users will be able to interact with it
|
||||
by relying on GitOps. The available Kubernetes resources will be the
|
||||
`Application` and the `ApplicationSet` CRDs. By using those resources,
|
||||
users will be able to deploy and manage applications in Kubernetes.
|
||||
|
||||
It is still possible to use Argo CD CLI even when running Argo CD
|
||||
Core. In this case, the CLI will spawn a local API server process that
|
||||
will be used to handle the CLI command. Once the command is concluded,
|
||||
the local API Server process will also be terminated. This happens
|
||||
transparently for the user with no additional command required. Note
|
||||
that Argo CD Core will rely only on Kubernetes RBAC and the user (or
|
||||
the process) invoking the CLI needs to have access to the Argo CD
|
||||
namespace with the proper permission in the `Application` and
|
||||
`ApplicationSet` resources for executing a given command.
|
||||
|
||||
To use Argo CD CLI in core mode, it is required to pass the `--core`
|
||||
flag with the `login` subcommand.
|
||||
|
||||
Example:
|
||||
|
||||
```bash
|
||||
kubectl config set-context --current --namespace=argocd # change current kube context to argocd namespace
|
||||
argocd login --core
|
||||
```
|
||||
|
||||
Similarly, users can also run the Web UI locally if they prefer to
|
||||
interact with Argo CD using this method. The Web UI can be started
|
||||
locally by running the following command:
|
||||
|
||||
```
|
||||
argocd admin dashboard -n argocd
|
||||
```
|
||||
|
||||
Argo CD Web UI will be available at `http://localhost:8080`
|
||||
|
||||
|
|
@ -48,19 +48,17 @@ High Availability installation is recommended for production use. This bundle in
|
|||
|
||||
## Core
|
||||
|
||||
The core installation is most suitable for cluster administrators who independently use Argo CD and don't need multi-tenancy features. This installation
|
||||
includes fewer components and is easier to setup. The bundle does not include the API server or UI, and installs the lightweight (non-HA) version of each component.
|
||||
The Argo CD Core installation is primarily used to deploy Argo CD in
|
||||
headless mode. This type of installation is most suitable for cluster
|
||||
administrators who independently use Argo CD and don't need
|
||||
multi-tenancy features. This installation includes fewer components
|
||||
and is easier to setup. The bundle does not include the API server or
|
||||
UI, and installs the lightweight (non-HA) version of each component.
|
||||
|
||||
The end-users need Kubernetes access to manage Argo CD. The `argocd` CLI has to be configured using the following commands:
|
||||
Installation manifest is available at [core-install.yaml](https://github.com/argoproj/argo-cd/blob/master/manifests/core-install.yaml).
|
||||
|
||||
```bash
|
||||
kubectl config set-context --current --namespace=argocd # change current kube context to argocd namespace
|
||||
argocd login --core
|
||||
```
|
||||
|
||||
The Web UI is also available and can be started using the `argocd admin dashboard` command.
|
||||
|
||||
Installation manifests are available at [core-install.yaml](https://github.com/argoproj/argo-cd/blob/master/manifests/core-install.yaml).
|
||||
For more details about Argo CD Core please refer to the [official
|
||||
documentation](./core.md)
|
||||
|
||||
## Kustomize
|
||||
|
||||
|
|
@ -97,4 +95,4 @@ For example if the latest minor version of ArgoCD are 2.4.3 and 2.3.5 while sup
|
|||
* Argo CD 2.4.3 on Kubernetes 1.22
|
||||
* Argo CD 2.3.5 on Kubernetes 1.24
|
||||
* Argo CD 2.3.5 on Kubernetes 1.23
|
||||
* Argo CD 2.3.5 on Kubernetes 1.22
|
||||
* Argo CD 2.3.5 on Kubernetes 1.22
|
||||
|
|
|
|||
|
|
@ -21,6 +21,7 @@ nav:
|
|||
- operator-manual/index.md
|
||||
- operator-manual/architecture.md
|
||||
- operator-manual/installation.md
|
||||
- operator-manual/core.md
|
||||
- operator-manual/declarative-setup.md
|
||||
- operator-manual/app-any-namespace.md
|
||||
- operator-manual/ingress.md
|
||||
|
|
|
|||
Loading…
Reference in a new issue