KubeCon EUBooth 1151, Amsterdam. March 23-26
Workload Operator

Configuration

Configure the dakr-op write operator -- auto-apply mode, policy settings, and connection options.

Configuration

The Write Operator is configured via Helm values during installation.

Helm Values

ParameterDefaultDescription
clusterID(required)Unique cluster identifier from DevZero dashboard
apiEndpointapi.devzero.io:443DevZero platform gRPC endpoint
logLevelinfoLogging verbosity: debug, info, warn, error
autoApplyfalseWhether to auto-apply approved recommendations
replicaCount1Number of operator replicas
operator.features.argocdPatchingfalseAllow DevZero to manage fields on ArgoCD-owned resources

Auto-Apply Mode

By default, the Write Operator surfaces recommendations in the dashboard for manual approval. To enable automatic application:

helm upgrade dakr-operator \
  oci://registry-1.docker.io/devzeroinc/dakr-operator \
  --namespace dakr-operator \
  --set autoApply=true \
  --reuse-values

When autoApply is enabled, recommendations that match an active policy are applied automatically. Recommendations with no matching policy remain pending for manual review.

Managing Recommendations

View pending recommendations

kubectl get workloadrecommendations -A

View recommendation details

kubectl describe workloadrecommendation <name> -n <namespace>

Roll back a recommendation

Delete the WorkloadRecommendation CRD to revert the change:

kubectl delete workloadrecommendation <name> -n <namespace>

The operator will restore the original resource values.

ArgoCD Integration

Applying recommendations to resources owned by ArgoCD may cause applications to be marked as OutOfSync or replica counts and request/limits to get overridden, causing contention between what the dakr-operator is applying vs. what the argocd-application-controller deems necessary per GitOps configuration.

To enable DevZero to take ownership of the replica and request/limit fields:

helm upgrade dakr-operator \
  oci://registry-1.docker.io/devzeroinc/dakr-operator \
  --namespace dakr-operator \
  --set operator.features.argocdPatching=true \
  --reuse-values

To reset this and have ArgoCD re-take ownership of those fields, set operator.features.argocdPatching to false and redeploy your applications.

Updating Configuration

Configuration changes require an operator restart:

helm upgrade dakr-operator \
  oci://registry-1.docker.io/devzeroinc/dakr-operator \
  --namespace dakr-operator \
  --set <your-changes> \
  --reuse-values

kubectl rollout restart deployment/dakr-operator -n dakr-operator

On this page