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
Creating personas
You create personas from the Deployments already running on your cluster withdorgu persona import. It reads each live Deployment and synthesizes a persona from what is already in the spec: resources, probes, replicas, ports, image, and ownership labels. It needs no local source, no Dockerfile, and no relabelling.
1
Find what is not watched
Unmonitored section names every Deployment with no persona, with the import command for its namespace.2
Read the personas import would create
3
Create them
personas.yaml to the repository your GitOps tool syncs is a good way to keep them under the same review as the rest of your manifests.4
Monitor status
Active means it resolved the persona to its Deployment; Pending means it did not, and the Ready condition says why. See troubleshooting.CLI
v0.13.0 removed persona generate and persona apply, which built a persona from local source. See the CLI migration guide.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.ClusterPersona
A ClusterPersona is a cluster-scoped CRD, as opposed to the namespace-scopedApplicationPersona. It represents the identity of the entire cluster: the nodes, the installed add-ons, the total resource capacity, and the cluster’s self-healing policy.
You do not create it. The operator creates one named dorgu-cluster on startup and keeps its discovered fields current. Read it with: