API Reference
API Reference
argocd-service.vsphere.vmware.com/v1alpha1
Overview
This package defines the Kubernetes Custom Resources for managing ArgoCD deployments. It provides declarative configuration for ArgoCD installations with support for OIDC authentication, RBAC policies, and fine-grained resource management.
Resources
-
ArgoCD: Namespace-scoped resource representing a complete ArgoCD installation
Example Usage
-
Check the version of upstream Argo CD that is supported by the Argo CD Operator
kubectl explain argocd.spec.version
-
Basic ArgoCD deployment:
apiVersion: argocd-service.vsphere.vmware.com/v1alpha1 kind: ArgoCD metadata: name: my-argocd namespace: argocd spec: version: "3.0.19+vmware.1-vks.1"
-
ArgoCD with OIDC authentication:
apiVersion: argocd-service.vsphere.vmware.com/v1alpha1 kind: ArgoCD metadata: name: my-argocd namespace: argocd spec: version: "3.0.19+vmware.1-vks.1" url: "https://argocd.example.com" oidc: enabled: true name: "VCFA" issuer: "https://vcfa.example.com/oidc" clientID: "argocd-client" requestedScopes: - openid - profile - email - groups rbac: scopes: '[group, email]' policy: | g, **@example.com, role:admin -
ArgoCD with RBAC policies:
apiVersion: argocd-service.vsphere.vmware.com/v1alpha1 kind: ArgoCD metadata: name: my-argocd namespace: argocd spec: version: "3.0.19+vmware.1-vks.1" localAccounts: - Alice - Bob rbac: defaultPolicy: "role:readonly" policy: | p, role:devops, applications, *, */*, allow p, role:devops, clusters, get, *, allow g, Alice, role:devops g, Bob, role:admin -
ArgoCD with resource filtering:
apiVersion: argocd-service.vsphere.vmware.com/v1alpha1 kind: ArgoCD metadata: name: my-argocd namespace: argocd spec: version: "3.0.19+vmware.1-vks.1" resourceConfig: inclusions: - apiGroups: - "cluster.x-k8s.io" kinds: - "*" clusters: - "https://172.16.0.200:443" -
ArgoCD with notification and applicationSet enabled:
apiVersion: argocd-service.vsphere.vmware.com/v1alpha1 kind: ArgoCD metadata: name: my-argocd namespace: argocd spec: version: "3.0.19+vmware.1-vks.1" notification: enabled: true applicationSet: enabled: true -
ArgoCD with custom component scaling:
apiVersion: argocd-service.vsphere.vmware.com/v1alpha1 kind: ArgoCD metadata: name: my-argocd namespace: argocd spec: version: "3.0.19+vmware.1-vks.1" server: replicas: 2 resources: requests: cpu: "500m" memory: "512Mi" limits: cpu: "2000m" memory: "2Gi" repo: replicas: 2 resources: limits: cpu: "2000m" memory: "2Gi" controller: replicas: 1
Package v1alpha1 contains API Schema definitions for the argocd-service v1alpha1 API group.
ArgoCD
ArgoCD is the Schema for the ArgoCD API. It represents a complete ArgoCD installation in a Kubernetes cluster.
| Field | Description | Default | Validation |
|---|---|---|---|
|
|
||
|
|
||
|
Refer to Kubernetes API documentation for fields of |
||
|
Spec defines the desired state of the ArgoCD deployment. |
||
|
Status defines the observed state of the ArgoCD deployment. |
ArgoCDApplicationController
ArgoCDApplicationController configures the argocd-application-controller statefulset, which continuously monitors applications and synchronizes the desired state.
| Field | Description | Default | Validation |
|---|---|---|---|
|
Replicas specifies the number of argocd-application-controller pod replicas. |
||
|
Resources specifies the compute resources (CPU, memory) required by argocd-application-controller pods. |
ArgoCDApplicationSetController
ArgoCDApplicationSetController configures the argocd-applicationset-controller deployment, which provides support for ApplicationSet resources.
| Field | Description | Default | Validation |
|---|---|---|---|
|
Enabled enables the ApplicationSet controller. |
||
|
Replicas specifies the number of argocd-applicationset-controller pod replicas. |
||
|
Resources specifies the compute resources (CPU, memory) required by argocd-applicationset-controller pods. |
ArgoCDControlledResources
ArgoCDControlledResources defines resource filters by ApiGroups, Kinds, and Clusters. This aligns with upstream ArgoCD’s Resource Exclusion/Inclusion patterns.
| Field | Description | Default | Validation |
|---|---|---|---|
|
ApiGroups specifies the list of Kubernetes API groups to match. |
||
|
Kinds specifies the list of Kubernetes resource kinds to match. |
||
|
Clusters specifies the list of cluster names where this filter applies. |
ArgoCDNotification
ArgoCDNotification configures the argocd-notifications-controller deployment, which sends event notifications via webhooks, email, Slack, etc.
| Field | Description | Default | Validation |
|---|---|---|---|
|
Enabled enables the Notifications controller. |
||
|
Replicas specifies the number of argocd-notifications-controller pod replicas. |
||
|
Resources specifies the compute resources (CPU, memory) required by argocd-notifications-controller pods. |
ArgoCDOIDC
ArgoCDOIDC configures OpenID Connect (OIDC) authentication for ArgoCD. The fields map to the keys under the oidc.config field in the argocd-cm ConfigMap. Reference https://argo-cd.readthedocs.io/en/stable/operator-manual/declarative-setup/#oidc-authentication
| Field | Description | Default | Validation |
|---|---|---|---|
|
Enabled enables OIDC authentication for ArgoCD. |
||
|
Name specifies the display name for this OIDC provider configuration. |
||
|
Issuer specifies the OIDC provider URL. |
||
|
ClientID specifies the OAuth2 client ID registered with the OIDC provider. |
||
|
ClientSecret specifies the OAuth2 client secret paired with ClientID. |
||
|
RequestedScopes specifies the OAuth2 scopes to request from the OIDC provider. |
||
|
AllowedAudiences specifies the list of valid audiences ("aud" claim) for JWT tokens. |
||
|
RequestedIDTokenClaims specifies additional claims to request in the OIDC ID token. |
||
|
CliClientID specifies the OAuth2 client ID for ArgoCD CLI authentication. |
||
|
EnablePKCEAuthentication enables Proof Key for Code Exchange (PKCE) for the OAuth2 flow. |
||
|
SkipAudienceCheckWhenTokenHasNoAudience skips audience validation when the JWT token |
||
|
Insecure disables TLS certificate validation for the OIDC provider. |
ArgoCDRBAC
ArgoCDRBAC configures role-based access control (RBAC) policies for ArgoCD, including default policies, custom rules, and OIDC group mappings. The fields map to the fields in the argocd-rbac-cm.yml. Reference https://argo-cd.readthedocs.io/en/latest/operator-manual/argocd-rbac-cm-yaml/
| Field | Description | Default | Validation |
|---|---|---|---|
|
DefaultPolicy specifies the default role that ArgoCD falls back to when authorizing API requests. |
||
|
Policy defines user-defined RBAC policies and role definitions in CSV format. |
||
|
Scopes controls which OIDC scopes to examine during RBAC enforcement. |
||
|
PolicyMatchMode configures the pattern matching mode for Casbin policies. |
glob |
Enum: [glob regex] |
ArgoCDRedis
ArgoCDRedis configures the argocd-redis deployment, which provides caching and temporary data storage.
| Field | Description | Default | Validation |
|---|---|---|---|
|
Resources specifies the compute resources (CPU, memory) required by argocd-redis pods. |
ArgoCDRepo
ArgoCDRepo configures the argocd-repo-server deployment, which handles repository operations.
| Field | Description | Default | Validation |
|---|---|---|---|
|
Replicas specifies the number of argocd-repo-server pod replicas. |
||
|
Resources specifies the compute resources (CPU, memory) required by argocd-repo-server pods. |
ArgoCDResourceConfig
ArgoCDResourceConfig configures which Kubernetes resources ArgoCD can discover and synchronize. Reference https://argo-cd.readthedocs.io/en/stable/operator-manual/declarative-setup/#resource-exclusioninclusion Example:
resourceConfig:
inclusions:
- apiGroups: ["apps", "batch"]
kinds: ["Deployment", "StatefulSet", "Job"]
clusters: ["prod-cluster"]
exclusions:
- apiGroups: [""]
kinds: ["Secret"]
if inclusions field is not specified, that means all resource groups and kinds are included for ArgoCD to discover and sync.
If exclusions field is not specified, the following API groups and resources are excluded by default in the argocd-cm ConfigMap:
resource.exclusions: |
- apiGroups:
- appplatform.vmware.com
- apiGroups:
- appplatform.wcp.vmware.com
- apiGroups:
- argocd-service.vsphere.vmware.com
- apiGroups:
- bootstrap.cluster.x-k8s.io
- apiGroups:
- cli.tanzu.vmware.com
- apiGroups:
- cli.vmware.com
- apiGroups:
- cns.vmware.com
- apiGroups:
- discovery.k8s.io
kinds:
- endpointslices
- endpoints
- apiGroups:
- imageregistry.vmware.com
- apiGroups:
- infrastructure.cluster.vmware.com
- apiGroups:
- installers.tmc.cloud.vmware.com
- apiGroups:
- mobility-operator.vmware.com
- apiGroups:
- netoperator.vmware.com
- apiGroups:
- run.tanzu.vmware.com
- apiGroups:
- topology.tanzu.vmware.com
- apiGroups:
- veleroappoperator.vmware.com
- apiGroups:
- vmware.infrastructure.cluster.x-k8s.io
- apiGroups:
- coordination.k8s.io
kinds:
- Lease
- apiGroups:
- authentication.k8s.io
- authorization.k8s.io
kinds:
- SelfSubjectReview
- TokenReview
- LocalSubjectAccessReview
- SelfSubjectAccessReview
- SelfSubjectRulesReview
- SubjectAccessReview
- apiGroups:
- certificates.k8s.io
kinds:
- CertificateSigningRequest
- apiGroups:
- cert-manager.io
kinds:
- CertificateSigningRequest
- apiGroups:
- cilium.io
kinds:
- CiliumIdentity
- CiliumEndpoint
- CiliumEndpointSlice
- apiGroups:
- kyverno.io
- reports.kyverno.io
- wgpolicyk8s.io
kinds:
- PolicyReport
- ClusterPolicyReport
- EphemeralReport
- ClusterEphemeralReport
- AdmissionReport
- ClusterAdmissionReport
- BackgroundScanReport
- ClusterBackgroundScanReport
- UpdateRequest
| Field | Description | Default | Validation |
|---|---|---|---|
|
Inclusions defines the resources that ArgoCD should discover and sync. |
||
|
Exclusions defines the resources that ArgoCD should not discover and sync. |
ArgoCDServer
ArgoCDServer configures the argocd-server deployment, which provides the API server and web UI.
| Field | Description | Default | Validation |
|---|---|---|---|
|
Replicas specifies the number of argocd-server pod replicas. |
||
|
Resources specifies the compute resources (CPU, memory) required by argocd-server pods. |
||
|
TLSCert specifies the TLS certificate configuration provided by the user for HTTPS. |
ArgoCDSpec
ArgoCDSpec defines the desired configuration for an ArgoCD deployment, including version, authentication, RBAC, and component settings.
| Field | Description | Default | Validation |
|---|---|---|---|
|
Paused indicates that reconciliation for this resource is stopped. |
||
|
Version specifies the ArgoCD Carvel Package version to deploy. |
Pattern: |
|
|
EnableLoadBalancer creates a LoadBalancer service for the ArgoCD Server. |
true |
|
|
URL specifies the external URL for the ArgoCD Server. |
Pattern: |
|
|
ServerSideDiff enables server-side diff for all ArgoCD applications. |
true |
|
|
LocalAccounts defines the list of local user account names for ArgoCD authentication. |
||
|
OIDC configures OpenID Connect authentication for ArgoCD. |
||
|
RBAC configures global role-based access control policies for ArgoCD. |
||
|
ResourceConfig defines which Kubernetes resources ArgoCD can discover and sync. |
||
|
Server configures the argocd-server deployment (UI and API server). |
||
|
Repo configures the argocd-repo-server deployment (repository operations). |
||
|
Controller configures the argocd-application-controller statefulset (application reconciliation). |
||
|
ApplicationSet configures the argocd-applicationset-controller deployment (ApplicationSet support). |
||
|
Redis configures the argocd-redis deployment (caching and temporary data). |
||
|
Notification configures the argocd-notifications-controller deployment (event notifications). |
ArgoCDStatus
ArgoCDStatus represents the observed state of an ArgoCD deployment.
| Field | Description | Default | Validation |
|---|---|---|---|
|
Phase represents the current operational phase of the ArgoCD deployment. |
||
|
Conditions represents the current service state of the ArgoCD deployment. |
KeyValues
KeyValues represents a flexible key-value map for arbitrary configuration. This type is used for OIDC claims and other dynamic configuration that doesn’t have a fixed schema. The structure preserves any fields provided without validation, allowing for flexible configuration.
| Field | Description | Default | Validation |
|---|---|---|---|
|
Object is a JSON compatible map with string, float, int, bool, []interface{}, or |
TLSCert
TLSCert contains TLS certificate, private key, and CA certificate for HTTPS configuration. All values must be base64-encoded.
| Field | Description | Default | Validation |
|---|---|---|---|
|
Key specifies the base64-encoded private key for the TLS certificate. |
||
|
Cert specifies the base64-encoded TLS certificate. |
||
|
CA specifies the base64-encoded certificate authority (CA) certificate. |