Files
homelab-frontend/.sops.yaml
T
Admin Bot 4a00312906
CI / CI (push) Successful in 5m25s
security: rotate SOPS age key - update to new public key only
The old age key was compromised during terminal output exposure.
This commit rotates to a new age key pair:
- Old public key: age1e5fq3hwxy78psus2nfvmtmua36g0u3suk78ephw6246l974d2utsvn0hla (RETIRED)
- New public key: age1ryxmuwhecmdru786eqgek4cf8ppq585j2uqr7e87phya42w9s5wscn6tgp
- Private key: Stored securely in sops-age secret (argocd namespace)

.sops.yaml now uses the new public key for all future encryptions.
Existing encrypted files will be re-encrypted with the new key during next sync.

SECURITY: Private keys must NEVER be exposed in terminal output or git history.
2026-09-13 11:00:14 +09:00

28 lines
1.0 KiB
YAML

# SOPS Configuration for secrets encryption
# Public key is safe to commit; private key stays in cluster
creation_rules:
# Encrypt secrets, configs, and sensitive files
# Public AGE key - safe to share and commit
# Files matching these patterns will be encrypted automatically with `sops -e`
- path_regex: k8s/(.*secret.*|.*config.*|.*deployment.*\.ya?ml)
age: age1ryxmuwhecmdru786eqgek4cf8ppq585j2uqr7e87phya42w9s5wscn6tgp
encrypted_regex: '^data|^stringData' # Only encrypt data fields, keep structure readable
# Fallback rule for .enc.yaml files
- path_regex: '.*\.enc\.ya?ml'
age: age1ryxmuwhecmdru786eqgek4cf8ppq585j2uqr7e87phya42w9s5wscn6tgp
encrypted_regex: '^data|^stringData'
# To encrypt a file locally:
# sops --encrypt k8s/configmap.yaml > k8s/configmap.yaml
#
# To decrypt and view:
# sops k8s/configmap.yaml
#
# To decrypt to stdout:
# sops --decrypt k8s/configmap.yaml
#
# The private age key is stored in the cluster at:
# kubectl -n argocd get secret sops-age -o jsonpath='{.data.key\.txt}' | base64 -d