Your organization requires that all Kubernetes manifest changes be signed and encrypted before being pushed to Git. Which tool is primarily designed for this 'at-rest' encryption approach?
Trap 1: Kyverno
Kyverno is a Kubernetes admission controller that validates and mutates cluster resources at deploy time; it does not sign or encrypt manifest files in Git. It is tempting because Kyverno enforces policy on manifests, but that is runtime admission control, not at-rest cryptographic protection of repository content.
Trap 2: Sealed Secrets
Sealed Secrets encrypts secrets for safe storage in Git, but it does not sign manifests, so it fails the signing requirement. It is tempting because it addresses at-rest protection of sensitive values, and would be correct if only secret encryption were required.
Trap 3: HashiCorp Vault
HashiCorp Vault manages secrets, dynamic credentials and encryption keys, but it does not sign and encrypt Kubernetes manifest files before a Git push. It is tempting because Vault performs encryption as a service, yet that protects secrets at rest in Vault, not manifest artefacts in a repository.
- A
Kyverno
Why it fails: Kyverno is a Kubernetes admission controller that validates and mutates cluster resources at deploy time; it does not sign or encrypt manifest files in Git. It is tempting because Kyverno enforces policy on manifests, but that is runtime admission control, not at-rest cryptographic protection of repository content.
- B
Mozilla SOPS
SOPS encrypts values within structured files such as YAML, JSON and ENV while leaving keys readable, and supports signing via age, PGP or KMS. This satisfies the requirement for signed, encrypted manifests committed to Git.
- C
Sealed Secrets
Why it fails: Sealed Secrets encrypts secrets for safe storage in Git, but it does not sign manifests, so it fails the signing requirement. It is tempting because it addresses at-rest protection of sensitive values, and would be correct if only secret encryption were required.
- D
HashiCorp Vault
Why it fails: HashiCorp Vault manages secrets, dynamic credentials and encryption keys, but it does not sign and encrypt Kubernetes manifest files before a Git push. It is tempting because Vault performs encryption as a service, yet that protects secrets at rest in Vault, not manifest artefacts in a repository.