Skip to main content

Documentation Index

Fetch the complete documentation index at: https://dorguai.mintlify.app/llms.txt

Use this file to discover all available pages before exploring further.

The operator includes an ArgoCD watcher that monitors ArgoCD Application resources and updates matching ApplicationPersonas with sync and health status. This gives you a unified view of application state across both dorgu and ArgoCD.

How it works

The watcher reconciles every 30 seconds and on watch events. It uses the Kubernetes unstructured API to read ArgoCD Applications, so the operator has no compile-time dependency on ArgoCD.

Matching logic

The watcher matches ArgoCD Applications to ApplicationPersonas using the application name:
  1. Extract the app name from the ArgoCD Application (labels first, then metadata.name)
  2. Extract the destination namespace from spec.destination.namespace
  3. Search for an ApplicationPersona with a matching spec.name in the destination namespace
  4. If not found in the destination namespace, search across all namespaces
SourceField
App name (preferred)app.kubernetes.io/name label
App name (fallback 1)app label
App name (fallback 2)metadata.name
Destination namespacespec.destination.namespace

Status fields

When a match is found, the watcher populates .status.argocd on the ApplicationPersona:
FieldDescriptionExample values
syncStatusArgoCD sync stateSynced, OutOfSync, Unknown
healthStatusArgoCD health stateHealthy, Degraded, Progressing, Suspended, Missing, Unknown
lastSyncTimeWhen ArgoCD last syncedRFC 3339 timestamp
revisionGit revision that was syncedGit SHA or tag
applicationNameName of the ArgoCD Applicationmy-app
applicationNamespaceNamespace of the ArgoCD Applicationargocd

Conditional activation

The watcher only starts if both conditions are met:
  1. The --enable-argocd flag is true (default)
  2. The ArgoCD Application CRD (argoproj.io/v1alpha1) exists in the cluster
If the CRD is missing, the watcher silently skips registration. This means the operator works safely in clusters without ArgoCD installed.

Configuration

Via Helm

argocd:
  enabled: true  # default

Via CLI flag

./bin/manager --enable-argocd  # enabled by default
./bin/manager --enable-argocd=false  # disable

Checking ArgoCD status

dorgu persona status my-app -n production
Or query the resource directly:
kubectl get applicationpersona my-app -n production -o jsonpath='{.status.argocd}'
The ArgoCD watcher requires RBAC permissions to get, list, and watch ArgoCD Application resources (argoproj.io/v1alpha1). The Helm chart configures these permissions automatically.

ApplicationPersona validation

Continuous validation via the reconciliation loop

Configuration

All operator configuration options