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.
This guide walks you through installing the operator, creating a persona, and observing the operator validate it.
Step 1: Install the operator
helm install dorgu-operator oci://ghcr.io/dorgu-ai/dorgu-operator-charts/dorgu-operator \
--version 0.3.0 \
--namespace dorgu-system \
--create-namespace
Wait for the pod to be ready:
kubectl wait --for=condition=ready pod -l app.kubernetes.io/name=dorgu-operator \
-n dorgu-system --timeout=60s
Step 2: Create a ClusterPersona
Initialize the cluster context so the operator knows about your cluster:
dorgu cluster init --name my-cluster --environment development
Or apply directly:
apiVersion : dorgu.io/v1
kind : ClusterPersona
metadata :
name : my-cluster
spec :
name : my-cluster
environment : development
kubectl apply -f clusterpersona.yaml
Check the discovery status:
The operator discovers nodes, add-ons, and resource capacity within seconds.
Step 3: Deploy a sample application
Create a namespace and deploy a sample workload:
kubectl create namespace demo
kubectl create deployment nginx --image=nginx:latest -n demo
kubectl label deployment nginx app.kubernetes.io/name=nginx -n demo
Step 4: Apply an ApplicationPersona
Generate and apply a persona for the sample application:
dorgu persona apply ./my-app -n demo
Or apply a persona manifest directly:
apiVersion : dorgu.io/v1
kind : ApplicationPersona
metadata :
name : nginx
namespace : demo
spec :
name : nginx
type : web
tier : standard
resources :
limits :
cpu : 500m
memory : 128Mi
scaling :
minReplicas : 1
maxReplicas : 5
health :
livenessPath : /
readinessPath : /
port : 80
policies :
security :
runAsNonRoot : true
kubectl apply -f persona.yaml
Step 5: Check validation status
dorgu persona status nginx -n demo
The operator reconciles the persona against the deployment and reports validation issues. For the sample above, you might see warnings like:
No resource requests set on container
Persona requires runAsNonRoot but Deployment does not enforce it
No liveness probe configured
These issues appear in .status.validation.issues and the phase reflects the overall state (Active, Degraded, or Failed).
Step 6: Fix issues and re-check
Update the deployment to satisfy the persona constraints. The operator re-validates automatically every 60 seconds, or immediately when the deployment changes.
dorgu persona status nginx -n demo
When all validations pass, the phase transitions to Active and .status.validation.passed becomes true.
Validation details Learn what the operator validates and how severity works
Configuration Enable webhooks, ArgoCD, Prometheus, and WebSocket