Managing Operators
Install, uninstall, upgrade, and diagnose DevZero operators from the CLI.
Managing Operators
The CLI can install, uninstall, upgrade, and diagnose all six DevZero operators. Each operator is installed as a Helm release on your target cluster.
Available Operators
| Operator | CLI Name | Description |
|---|---|---|
| Read (zxporter) | read | Read-only metrics collection — required by all other operators |
| Workload (dakr) | write | Resource recommendations and workload optimization |
| Security (dakr-security) | security | Vulnerability scanning and compliance reporting |
| Network (zxporter-netmon) | network | Network traffic monitoring and cost attribution |
| Node (dzkarp) | node | Node autoscaling via Karpenter |
| Cost (trezr) | cost | Cloud cost collection and analysis |
Installing
# Install the read operator (always install this first)
dz install read
# Install additional operators
dz install write
dz install networkThe CLI automatically discovers your cluster from the current kube context, provisions a cluster token, fetches the latest chart version, and installs via Helm.
Install Flags
| Flag | Default | Description |
|---|---|---|
--context | current | Kube context to target |
--namespace | auto | Namespace to install into |
--version | latest | Helm chart version |
--dry-run | false | Preview without installing |
--set | Additional Helm values (key=value, repeatable) | |
--show-values | false | Print computed values YAML and exit |
--upgrade | false | Upgrade an already-installed operator |
--interactive | false | Show values and prompt before installing |
--auto-approve | false | Skip cluster confirmation (for CI) |
Examples
# Dry-run to preview
dz install read --dry-run
# Custom Helm values
dz install write --set operator.customScheduler=true --set operator.features.argocdPatching=true
# Print computed values without installing
dz install write --show-values
# CI/CD: skip all prompts
dz install read --auto-approve --token $DEVZERO_TOKENNode Operator (Provider-Specific)
The node operator requires cloud-specific flags for IAM/RBAC:
dz install node \
--role-arn arn:aws:iam::123456789:role/KarpenterControllerRole \
--interruption-queue my-karpenter-queue| Flag | Description |
|---|---|
--role-arn | IAM role ARN for Karpenter |
--interruption-queue | SQS queue for spot interruption handling |
Omit these to let the CLI create them automatically. Use --skip-create to disable auto-creation.
dz install node \
--project-id my-gcp-project \
--service-account-email karpenter@my-project.iam.gserviceaccount.com \
--location us-central1| Flag | Description |
|---|---|
--project-id | GCP project ID |
--service-account-email | Service account email |
--location | GCP location |
dz install node \
--client-id 00000000-... \
--subscription-id 00000000-... \
--resource-group my-rg \
--vnet-subnet-id /subscriptions/.../subnets/default| Flag | Description |
|---|---|
--client-id | Azure client ID |
--subscription-id | Subscription ID |
--resource-group | Resource group |
--vnet-subnet-id | VNet subnet ID |
--vnet-guid | VNet GUID |
--node-identities | Node identities |
--kubelet-identity-client-id | Kubelet identity client ID |
--bootstrap-token | Bootstrap token |
--ssh-public-key | SSH public key |
dz install node --compartment-id ocid1.compartment.oc1..aaa...| Flag | Description |
|---|---|
--compartment-id | OCI compartment ID |
Cost Operator (AWS IRSA)
# Auto-create IRSA resources (default)
dz install cost
# Use an existing IRSA role
dz install cost --irsa-role-arn arn:aws:iam::123456789:role/TrezrRole
# Skip auto-creation
dz install cost --skip-createUninstalling
# Remove a single operator
dz uninstall write
# Remove all operators and clean up
dz uninstall allAvailable targets: read, write, security, network, node, all.
| Flag | Default | Description |
|---|---|---|
--context | current | Kube context to target |
--namespace | auto | Namespace to uninstall from |
--force | false | Skip confirmation prompt |
dz uninstall all removes every Helm release, credential secrets, and the namespace (if empty).
Disconnecting & Deleting Clusters
# Remove all operators — historical data is preserved
dz disconnect
# Remove all operators AND permanently delete the cluster record + all data
dz deletedz disconnect is equivalent to dz uninstall all. The cluster appears as "disconnected" in DevZero once heartbeats stop (~60 minutes).
dz delete is irreversible. All metrics, events, workload history, and recommendations for this cluster are permanently lost.
Checking Health & Upgrades
# One-shot health check of all operators
dz status
# Check for available updates
dz upgrade
# Check a specific operator
dz upgrade readTo apply an upgrade:
dz install read --upgradeDiagnosing Issues
dz diagnose <operator>Collects pod status, container states, recent logs (last 50 lines), and Kubernetes events. Valid targets: read, write, security, network, cost, node.
| Flag | Default | Description |
|---|---|---|
--context | current | Kube context |
--namespace | auto | Namespace to check |