Add terraform-enc auth, consul state role, and encapi token grant
The new terragrunt-enc repo manages all encapi ENC data via Terraform and needs its own Vault/Consul plumbing, mirroring terraform-git/terraform-incus: CI auth, isolated consul state, and read access to the ENCAPI_WRITE_TOKEN. - Add approle role terraform_enc and k8s auth role woodpecker_terraform_enc (bound to the terraform-enc SA in the woodpecker namespace). - Add consul secret backend role + ACL rules granting write on infra/terraform/enc/ for its terragrunt state, plus a policy letting both auth roles read consul_root/au/syd1/creds/terraform-enc. - Grant both auth roles read on kv/data/kubernetes/namespace/encapi/default/environment (ENCAPI_WRITE_TOKEN).
This commit is contained in:
@@ -0,0 +1,9 @@
|
|||||||
|
token_ttl: 120
|
||||||
|
token_max_ttl: 120
|
||||||
|
bind_secret_id: false
|
||||||
|
token_bound_cidrs:
|
||||||
|
- "10.10.12.200/32"
|
||||||
|
- "198.18.25.102/32"
|
||||||
|
- "198.18.26.91/32"
|
||||||
|
- "198.18.27.40/32"
|
||||||
|
use_deterministic_role_id: true
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
bound_service_account_names:
|
||||||
|
- terraform-enc
|
||||||
|
bound_service_account_namespaces:
|
||||||
|
- woodpecker
|
||||||
|
token_ttl: 600
|
||||||
|
token_max_ttl: 600
|
||||||
|
audience: https://kubernetes.default.svc.cluster.local
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
consul_roles:
|
||||||
|
- terraform-enc
|
||||||
|
ttl: 120
|
||||||
|
max_ttl: 300
|
||||||
|
datacenters: []
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
# Allow the terragrunt-enc runner to generate credentials for the
|
||||||
|
# terraform-enc role in consul (used to lock/write its terragrunt state under
|
||||||
|
# infra/terraform/enc/ on the consul backend).
|
||||||
|
---
|
||||||
|
rules:
|
||||||
|
- path: "consul_root/au/syd1/creds/terraform-enc"
|
||||||
|
capabilities:
|
||||||
|
- read
|
||||||
|
|
||||||
|
auth:
|
||||||
|
approle:
|
||||||
|
- terraform_enc
|
||||||
|
k8s/au/syd1:
|
||||||
|
- woodpecker_terraform_enc
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
# Allow the terragrunt-enc runner to read the encapi environment secret
|
||||||
|
# (ENCAPI_WRITE_TOKEN), so `make apply` can write ENC data (statuses, roles,
|
||||||
|
# nodes) to encapi via the encapi Terraform provider.
|
||||||
|
---
|
||||||
|
rules:
|
||||||
|
- path: "kv/data/kubernetes/namespace/encapi/default/environment"
|
||||||
|
capabilities:
|
||||||
|
- read
|
||||||
|
|
||||||
|
auth:
|
||||||
|
approle:
|
||||||
|
- terraform_enc
|
||||||
|
k8s/au/syd1:
|
||||||
|
- woodpecker_terraform_enc
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
key_prefix "infra/terraform/enc/" {
|
||||||
|
policy = "write"
|
||||||
|
}
|
||||||
|
|
||||||
|
session_prefix "" {
|
||||||
|
policy = "write"
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user