Skip to main content
The ApplicationPersona controller continuously validates each deployment against its persona’s declared constraints. It reconciles on watch events and on a 60-second timer, reporting issues in the persona’s .status.validation field.

Reconciliation flow

The controller matches deployments to personas using the app.kubernetes.io/name label. The label value must match the persona’s spec.name field.

Validation checks

Resource validation

Checks container resource limits and requests against persona constraints.

Replica validation

Checks the deployment replica count against the persona’s scaling parameters.

Health probe validation

Checks that the deployment configures probes matching the persona’s health specification.

Security context validation

Checks pod and container security settings against persona policies.

Severity levels

Phase determination

The persona phase is derived from validation results and deployment health:

Health derivation

The controller derives health from the deployment’s status conditions: When health is not Healthy, the controller also queries pod statuses for specific failure reasons:
  • CrashLoopBackOff
  • ImagePullBackOff / ErrImagePull
  • CreateContainerConfigError
  • OOMKilled
  • RunContainerError
These appear in .status.health.podFailures[] with the pod name, container name, reason, and message.

Conditions

The controller sets two standard Kubernetes conditions:

Checking validation status

Use the CLI to inspect validation results:
Or query the resource directly:

Webhook validation

Block non-compliant deployments at admission time

CRD specification

Full ApplicationPersona and ClusterPersona schema