Add terraform-ipam CI Vault access (#110)
ci/woodpecker/push/apply Pipeline was successful

Grants the `terraform-ipam` Woodpecker pipeline its Vault footprint, mirroring the `terraform-artifactapi` set plus a KV read for provider tokens.

- k8s auth role `woodpecker_terraform_ipam` (SA `terraform-ipam`, ns `woodpecker`)
- consul secret backend role `terraform-ipam` + ACL policy writing `infra/terraform/ipam/*`
- consul creds read policy
- kv read policy for `kv/service/terraform/ipam` (`netbox_token` + `kea_token`)

The KV secret itself still needs seeding before the pipeline can auth to NetBox/Kea.

https://claude.ai/code/session_01JUoARVdmhxKQHyyyp1pxeT
Reviewed-on: #110
Co-authored-by: Ben Vincent <ben@unkin.net>
Co-committed-by: Ben Vincent <ben@unkin.net>
This commit was merged in pull request #110.
This commit is contained in:
2026-08-03 00:16:34 +10:00
committed by BenVincent
parent 0e6da5cdd3
commit d61e985ef2
5 changed files with 43 additions and 0 deletions
@@ -0,0 +1,7 @@
bound_service_account_names:
- terraform-ipam
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-ipam
ttl: 120
max_ttl: 300
datacenters: []
@@ -0,0 +1,11 @@
---
rules:
- path: "consul_root/au/syd1/creds/terraform-ipam"
capabilities:
- read
auth:
approle:
- terraform_ipam
k8s/au/syd1:
- woodpecker_terraform_ipam
+13
View File
@@ -0,0 +1,13 @@
# Allow the Terraform IPAM runner to read the NetBox + KeaAPI tokens
# (netbox_token / kea_token fields) used by the netbox and kea providers.
---
rules:
- path: "kv/data/service/terraform/ipam"
capabilities:
- read
auth:
approle:
- terraform_ipam
k8s/au/syd1:
- woodpecker_terraform_ipam
@@ -0,0 +1,7 @@
key_prefix "infra/terraform/ipam/" {
policy = "write"
}
session_prefix "" {
policy = "write"
}