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.

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:
dorgu cluster 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