×

The ArgoCD custom resource is a Kubernetes Custom Resource (CRD) that describes the desired state for a given Argo CD cluster that allows you to configure the components which make up an Argo CD cluster.

Argo CD CLI tool

The Argo CD CLI tool is a tool used to configure Argo CD through the command line. Red Hat OpenShift GitOps does not support this binary. Use the OpenShift Console to configure the Argo CD.

Argo CD custom resource properties

The Argo CD Custom Resource consists of the following properties:

Name

Description

Default

Properties

ApplicationInstanceLabelKey

The metadata.label key name where Argo CD injects the app name as a tracking label.

app.kubernetes.io/instance

ApplicationSet

ApplicationSet controller configuration options.

<Object>

  • <Image> - The container image for the ApplicationSet controller. This overrides the ARGOCD_APPLICATIONSET_IMAGE environment variable.

  • <Version> - The tag to use with the ApplicationSet container image.

  • <Resources> - The container compute resources.

  • <LogLevel> - The log level used by the Argo CD Application Controller component. Valid options are debug, info, error, and warn.

  • <LogFormat> - The log format used by the Argo CD Application Controller component. Valid options are text or json.

  • <PrallelismLimit> - The kubectl parallelism limit to set for the controller (--kubectl-parallelism-limit flag).

ConfigManagementPlugins

Add a configuration management plugin.

<empty>

Controller

Argo CD Application Controller options.

<Object>

  • <Processors.Operation> - The number of operation processors.

  • <Processors.Status> - The number of status processors.

  • <Resources> - The container compute resources.

  • <LogLevel> - The log level used by the Argo CD Application Controller component. Valid options are debug, info, error, and warn.

  • <AppSync> - AppSync is used to control the sync frequency of Argo CD applications

  • <Sharding.enabled> - Enable sharding on the Argo CD Application Controller component. This property is used to manage a large number of clusters to relieve memory pressure on the controller component.

  • <Sharding.replicas> - The number of replicas that will be used to support sharding of the Argo CD Application Controller.

  • <Env> - Environment to set for the application controller workloads.

DisableAdmin

Disables the built-in admin user.

false

GATrackingID

Use a Google Analytics tracking ID.

<empty>

GAAnonymizeusers

Enable hashed usernames sent to google analytics.

false

HA

High availablity options.

<Object>

  • <Enabled> - Toggle high availability support globally for Argo CD.

  • <RedisProxyImage> - The Redis HAProxy container image. This overrides the ARGOCD_REDIS_HA_PROXY_IMAGE environment variable.

  • <RedisProxyVersion> - The tag to use for the Redis HAProxy container image.

HelpChatURL

URL for getting chat help (this will typically be your Slack channel for support).

https://mycorp.slack.com/argo-cd

HelpChatText

The text that appears in a text box for getting chat help.

Chat now!

Image

The container image for all Argo CD components. This overrides the ARGOCD_IMAGE environment variable.

argoproj/argocd

Ingress

Ingress configuration options.

<Object>

InitialRepositories

Initial Git repositories to configure Argo CD to use upon creation of the cluster.

<empty>

Notifications

Notifications controller configuration options.

<Object>

  • <Enabled> - The toggle to start the notifications-controller.

  • <Image> - The container image for all Argo CD components. This overrides the ARGOCD_IMAGE environment variable.

  • <Version> - The tag to use with the Notifications container image.

  • <Resources> - The container compute resources.

  • <LogLevel> - The log level used by the Argo CD Application Controller component. Valid options are debug, info, error, and warn.

RepositoryCredentials

Git repository credential templates to configure Argo CD to use upon creation of the cluster.

<empty>

InitialSSHKnownHosts

Initial SSH Known Hosts for Argo CD to use upon creation of the cluster.

<default_Argo_CD_Known_Hosts>

KustomizeBuildOptions

The build options and parameters to use with kustomize build.

<empty>

OIDCConfig

The OIDC configuration as an alternative to Dex.

<empty>

NodePlacement

Add the nodeSelector and the tolerations.

<empty>

Prometheus

Prometheus configuration options.

<Object>

  • <Enabled> - Toggle Prometheus support globally for Argo CD.

  • <Host> - The hostname to use for Ingress or Route resources.

  • <Ingress> - Toggles Ingress for Prometheus.

  • <Route> - Route configuration options.

  • <Size> - The replica count for the Prometheus StatefulSet.

RBAC

RBAC configuration options.

<Object>

  • <DefaultPolicy> - The policy.default property in the argocd-rbac-cm config map. The name of the default role which Argo CD will fall back to, when authorizing API requests.

  • <Policy> - The policy.csv property in the argocd-rbac-cm config map. CSV data containing user-defined RBAC policies and role definitions.

  • <Scopes> - The scopes property in the argocd-rbac-cm config map. Controls which OIDC scopes to examine during RBAC enforcement (in addition to sub scope).

Redis

Redis configuration options.

<Object>

  • <AutoTLS> - Use the provider to create the Redis server’s TLS certificate (one of: openshift). Currently only available for OpenShift Container Platform.

  • <DisableTLSVerification> - Define whether the Redis server should be accessed using strict TLS validation.

  • <Image> - The container image for Redis. This overrides the ARGOCD_REDIS_IMAGE environment variable.

  • <Resources> - The container compute resources.

  • <Version> - The tag to use with the Redis container image.

ResourceCustomizations

Customize resource behavior.

<empty>

ResourceExclusions

Completely ignore entire classes of resource group.

<empty>

ResourceInclusions

The configuration to configure which resource group/kinds are applied.

<empty>

Server

Argo CD Server configuration options.

<Object>

  • <Autoscale> - Server autoscale configuration options.

  • <ExtraCommandArgs> - List of arguments added to the existing arguments set by the Operator.

  • <GRPC> - GRPC configuration options.

  • <Host> - The hostname used for Ingress or Route resources.

  • <Ingress> - Ingress configuration for the Argo CD server component.

  • <Insecure> - Toggles the insecure flag for Argo CD server.

  • <Resources> - The container compute resources.

  • <Replicas> - The number of replicas for the Argo CD server. Must be greater than or equal to 0. If Autoscale is enabled, Replicas is ignored.

  • <Route> - Route configuration options.

  • <Service.Type> - The ServiceType used for the service resource.

  • <LogLevel> - The log level to be used by the Argo CD Server component. Valid options are debug, info, error, and warn.

  • <LogFormat> - The log format used by the Argo CD Application Controller component. Valid options are text or json.

  • <Env> - Environment to set for the server workloads.

SSO

Single Sign-on options.

<Object>

  • <Image> - The container image for Keycloak. This overrides the ARGOCD_KEYCLOAK_IMAGE environment variable.

  • <Keycloak> - Configuration options for Keycloak SSO provider.

  • <Dex> - Configuration options for Dex SSO provider.

  • <Provider> - The name of the provider used to configure Single Sign-on. For now the supported options are Dex and Keycloak.

  • <Resources> - The container compute resources.

  • <VerifyTLS> - Whether to enforce strict TLS checking when communicating with Keycloak service.

  • <Version> - The tag to use with the Keycloak container image.

StatusBadgeEnabled

Enable application status badge.

true

TLS

TLS configuration options.

<Object>

  • <CA.ConfigMapName> - The name of the ConfigMap which contains the CA certificate.

  • <CA.SecretName> - The name of the secret which contains the CA Certificate and Key.

  • <InitialCerts> - Initial set of certificates in the argocd-tls-certs-cm config map for connecting Git repositories via HTTPS.

UserAnonyousEnabled

Enable anonymous user access.

true

Version

The tag to use with the container image for all Argo CD components.

Latest Argo CD version

Banner

Add a UI banner message.

<Object>

  • <Banner.Content> - The banner message content (required if a banner is displayed).

  • <Banner.URL.SecretName> - The banner message link URL (optional).

Repo server properties

The following properties are available for configuring the Repo server component:

Name

Default

Description

Resources

<empty>

The container compute resources.

MountSAToken

false

Whether the ServiceAccount token should be mounted to the repo-server pod.

ServiceAccount

""

The name of the ServiceAccount to use with the repo-server pod.

VerifyTLS

false

Whether to enforce strict TLS checking on all components when communicating with repo server.

AutoTLS

""

Provider to use for setting up TLS the repo-server’s gRPC TLS certificate (one of: openshift). Currently only available for OpenShift.

Image

argoproj/argocd

The container image for Argo CD Repo server. This overrides the ARGOCD_REPOSERVER_IMAGE environment variable.

Version

same as .spec.Version

The tag to use with the Argo CD Repo server.

LogLevel

info

The log level used by the Argo CD Repo server. Valid options are debug, info, error, and warn.

LogFormat

text

The log format to be used by the Argo CD Repo server. Valid options are text or json.

ExecTimeout

180

Execution timeout in seconds for rendering tools (e.g. Helm, Kustomize).

Env

<empty>

Environment to set for the repository server workloads.

Replicas

<empty>

The number of replicas for the Argo CD Repo server. Must be greater than or equal to 0.

Enabling notifications with Argo CD instance

To enable or disable the Argo CD notifications controller, set a parameter in the Argo CD custom resource. By default, notifications are disabled. To enable notifications, set the enabled parameter to true in the .yaml file:

Procedure
  1. Set the enabled parameter to true:

apiVersion: argoproj.io/v1alpha1
kind: ArgoCD
metadata:
  name: example-argocd
spec:
  notifications:
    enabled: true