feat: rework policies file

- policy files are now found automatically
This commit is contained in:
Ben Vincent 2025-11-16 12:49:07 +11:00
parent d2acaeb7bc
commit 49889eaf22

View File

@ -1,44 +1,14 @@
# Define a list of directories that contain policy files
# Automatically discover all HCL policy files under policies/ directory
locals {
policy_directories = [
"policies",
"policies/sys",
"policies/auth/approle",
"policies/auth/kubernetes",
"policies/auth/ldap",
"policies/auth/token",
"policies/k8s",
"policies/pki_int",
"policies/pki_root",
"policies/rundeck",
"policies/ssh-host-signer",
"policies/sshca",
"policies/transit/decrypt",
"policies/transit/encrypt",
"policies/transit/keys",
"policies/kv/service/glauth/services",
"policies/kv/service/incus",
"policies/kv/service/packer",
"policies/kv/service/puppet/certificates",
"policies/kv/service/puppetapi",
"policies/kv/service/terraform",
"policies/kv/service/kubernetes/au/syd1/token_reviewer_jwt",
policy_files = [
for f in fileset("policies", "**/*.hcl") : {
name = trimsuffix(f, ".hcl")
path = "policies/${f}"
}
]
}
# Load policy files from each directory
locals {
policy_files = flatten([
for path in local.policy_directories : [
for f in fileset(path, "*.hcl") : {
name = trimsuffix(trimprefix("${path}/${f}", "policies/"), ".hcl")
path = "${path}/${f}"
}
]
])
}
# Define Vault policies for all listed directories
# Define Vault policies for all discovered HCL files
resource "vault_policy" "policies" {
for_each = { for p in local.policy_files : p.name => p }