Add a gpg_key module and a 'pass' key for password-store
ci/woodpecker/pr/pre-commit Pipeline was successful
ci/woodpecker/pr/plan Pipeline was successful

Manage OpenPGP keys in the gpg engine from Terraform using the new
gpgvaultsecret provider, and create the first key ('pass') for passv.

- Add a gpg_key module wrapping the gpg_key resource; wire it through
  vault_cluster (variable + module, depends_on the mount) and config discovery
  (config.hcl group keyed <backend>/<name>, syd1 terragrunt input), mirroring
  the *_secret_backend_role modules.
- Register the gpg provider in root.hcl (provider block + required_providers,
  v0.1.0 from the terraform-unkin registry), alongside litellm.
- Add config/gpg_key/gpg/pass.yaml: an rsa-4096 key 'pass' in the gpg mount for
  password-store. Private key stays in Vault; clients import the public key and
  delegate decryption to gpg/decrypt/pass.
This commit is contained in:
2026-07-16 23:45:01 +10:00
parent 0c188118a5
commit e90070b9a0
9 changed files with 116 additions and 0 deletions
+16
View File
@@ -346,6 +346,22 @@ module "gpg_secret_backend" {
description = each.value.description
}
module "gpg_key" {
source = "./modules/gpg_key"
for_each = var.gpg_key
backend = each.value.backend
name = each.value.name
algorithm = each.value.algorithm
identity = each.value.identity
exportable = each.value.exportable
deletion_allowed = each.value.deletion_allowed
min_decryption_version = each.value.min_decryption_version
depends_on = [module.gpg_secret_backend]
}
module "vault_policy" {
source = "./modules/vault_policy"