quorate/terraform/internal/vault/layshaft.tf

57 lines
1.7 KiB
Terraform
Raw Normal View History

resource "vault_mount" "layshaft" {
path = "layshaft"
type = "kv"
options = { version = "2" }
}
resource "vault_policy" "layshaft" {
name = "layshaft"
policy = <<-EOT
path "${vault_mount.layshaft.path}/data/server" {
capabilities = ["create", "read", "update"]
}
path "${vault_mount.layshaft.path}/data/unlock/+" {
capabilities = ["create", "read", "update"]
}
EOT
}
resource "vault_kubernetes_auth_backend_role" "layshaft" {
backend = vault_auth_backend.kubernetes.path
role_name = "layshaft"
bound_service_account_names = ["layshaft"]
bound_service_account_namespaces = ["layshaft"]
audience = "layshaft-vault"
token_policies = [vault_policy.layshaft.name]
token_no_default_policy = true
token_ttl = 300
token_max_ttl = 300
}
resource "vault_policy" "layshaft_vso" {
name = "layshaft-vso"
policy = <<-EOT
path "auth/token/renew-self" {
capabilities = ["update"]
}
path "secret/data/quay/robots/cluster_pull" {
capabilities = ["read"]
}
path "pki/cert/ca" {
capabilities = ["read"]
}
EOT
}
resource "vault_kubernetes_auth_backend_role" "layshaft_vso" {
backend = vault_auth_backend.kubernetes.path
role_name = "layshaft-vso"
bound_service_account_names = ["layshaft-vso"]
bound_service_account_namespaces = ["layshaft"]
token_policies = [vault_policy.layshaft_vso.name]
token_no_default_policy = true
token_ttl = 300
token_max_ttl = 300
}