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:
@@ -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
|
||||
@@ -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"
|
||||
}
|
||||
Reference in New Issue
Block a user