Skip to main content
Version: next

Decision matrix

Profile intent

Profile intent.
ProfileOptimized forWhat it trades off
DevelopmentLocal testing, CI, and quick evaluation when long-term trust posture is not the goal.Allows bootstrap and unseal material to exist in cluster Secrets and relaxes some runtime guarantees.

Reference table

Profile comparison

Profile comparison.
FeatureHardenedDevelopment
Unseal root of trustRequires a non-static external trust source such as transit, cloud KMS, or HSM-backed modes.Defaults can rely on a static key in a Kubernetes Secret.
TLS postureRequires External or ACME style trust; OperatorManaged TLS is not the production path.Allows operator-managed TLS for local or test usage.
Bootstrap modelSelf-init is the supported production path.Manual bootstrap or self-init are both possible.
Supply-chain guardrailsImage verification protections remain on and cannot degrade to warning-only behavior.Verification can be relaxed for testing.

Hardened production contract

Reference table

Hardened production requirements

Hardened production requirements.
RequirementWhy it existsOperational effect
External trust root for unsealThe cluster should not keep its root of trust only in Kubernetes etcd.Cloud KMS, transit, KMIP, or PKCS#11-style paths become part of the deployment contract.
Trusted TLS pathThe workload identity boundary should be anchored in a production-grade certificate model.OperatorManaged TLS is rejected for Hardened clusters.
Self-init enabledThe supported bootstrap path should avoid persisting the initial root token.Human bootstrap becomes declarative instead of secret-based.
Verification guardrails stay enforcedProduction image trust should not be optional.Managed workloads keep digest and verification enforcement even when omitted from config.
Hardened profile assumptions

Hardened means the operator can rely on an external trust root, explicit runtime identity, and a production-ready lifecycle posture. It defines the operating model for the cluster, not just one field in the CR.

Development profile relaxations

Development intentionally relaxes the production contract:

  • bootstrap material can persist in cluster Secrets
  • static unseal remains available
  • operator-managed TLS can be used
  • runtime and supply-chain controls can be less strict
  • the cluster reports a security-risk signal rather than pretending this posture is production-ready
Trust-root migrations

Teams often start in Development for exploration. When moving to staging or production, create a new Hardened cluster rather than assuming a Development trust path can be promoted safely. Teams often start in Development for exploration. For staging or production, create a new Hardened cluster instead of promoting a Development trust path in place.

Configuration scope

Configuration steps for spec.profile, unseal mode, and the production requirements are in Configure Security Profiles.

Continue the security model

Next release documentation

You are reading the unreleased main docs. Use the version menu for the newest published release, or check the release notes for what is already out.

Was this page helpful?

Use Needs work to open a structured GitHub issue for this page. The Yes button only acknowledges the signal locally.