What is an ApplicationPersona
An ApplicationPersona is a Kubernetes Custom Resource that represents the identity and requirements of an application. It captures:- Resource constraints — CPU and memory requests/limits
- Scaling parameters — min/max replicas, HPA thresholds
- Health probes — liveness, readiness, and startup checks
- Security policies — security contexts, pod security standards
- Ownership info — team, repository, contact details
Persona lifecycle
1
Generate
Analyze your application and produce a persona YAML manifest. Use This inspects the
--dry-run to preview without writing files:Dockerfile, dependency manifests, source code, and .dorgu.yaml config to produce a complete ApplicationPersona resource.2
Apply
Analyze and apply the persona directly to your cluster in a single command:This combines generation and
kubectl apply — the CLI produces the YAML and pipes it to kubectl targeting the specified namespace.3
Monitor status
Check the reconciliation status of your persona:The operator reconciles the persona asynchronously. Status fields tell you whether validation passed, what issues were found, and the current health of the application.
Status fields
Thepersona status command reports the following fields from the ApplicationPersona resource:
What the operator validates
When a persona is applied, the Dorgu Operator runs continuous validation against the workload it describes. The operator checks:- Resource limits — CPU and memory requests/limits are set and within acceptable bounds
- Replica counts — actual replicas match the declared scaling parameters
- Health probes — liveness and readiness probes are configured and endpoints are reachable
- Security contexts — containers run as non-root, drop capabilities, use read-only root filesystems
The operator never writes to workload resources (Deployments, Services, etc.). It only reads cluster state and updates the
ApplicationPersona status fields. This is a core architectural invariant.Persona apply flow
The following diagram shows what happens when you rundorgu persona apply:
ClusterPersona
A ClusterPersona is a cluster-scoped CRD (as opposed to the namespace-scopedApplicationPersona). It represents the identity of the entire cluster — what nodes are available, what add-ons are installed, and the total resource capacity.
Create a ClusterPersona with:
- Nodes — count, instance types, capacity
- Add-ons — ingress controllers, cert-manager, monitoring stack, service mesh
- Resource capacity — total allocatable CPU and memory across the cluster
ingressClassName.
Real-time monitoring
Usedorgu watch personas to stream live updates for all personas in a namespace: