81 lines
2 KiB
Terraform
81 lines
2 KiB
Terraform
|
|
resource "kubernetes_namespace" "external_secrets" {
|
||
|
|
metadata {
|
||
|
|
name = "external-secrets"
|
||
|
|
labels = {
|
||
|
|
tier = local.tiers.cluster
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
resource "helm_release" "external_secrets" {
|
||
|
|
name = "external-secrets"
|
||
|
|
namespace = kubernetes_namespace.external_secrets.metadata[0].name
|
||
|
|
repository = "https://charts.external-secrets.io"
|
||
|
|
chart = "external-secrets"
|
||
|
|
version = "0.12.1"
|
||
|
|
|
||
|
|
values = [yamlencode({
|
||
|
|
installCRDs = true
|
||
|
|
})]
|
||
|
|
}
|
||
|
|
|
||
|
|
# --- ClusterSecretStore for Vault KV v2 ---
|
||
|
|
|
||
|
|
resource "kubernetes_manifest" "css_vault_kv" {
|
||
|
|
manifest = {
|
||
|
|
apiVersion = "external-secrets.io/v1beta1"
|
||
|
|
kind = "ClusterSecretStore"
|
||
|
|
metadata = { name = "vault-kv" }
|
||
|
|
spec = {
|
||
|
|
provider = {
|
||
|
|
vault = {
|
||
|
|
server = "http://vault-active.vault.svc.cluster.local:8200"
|
||
|
|
path = "secret"
|
||
|
|
version = "v2"
|
||
|
|
auth = {
|
||
|
|
kubernetes = {
|
||
|
|
mountPath = "kubernetes"
|
||
|
|
role = "eso"
|
||
|
|
serviceAccountRef = {
|
||
|
|
name = "external-secrets"
|
||
|
|
namespace = "external-secrets"
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
depends_on = [helm_release.external_secrets]
|
||
|
|
}
|
||
|
|
|
||
|
|
# --- ClusterSecretStore for Vault Database Engine ---
|
||
|
|
|
||
|
|
resource "kubernetes_manifest" "css_vault_db" {
|
||
|
|
manifest = {
|
||
|
|
apiVersion = "external-secrets.io/v1beta1"
|
||
|
|
kind = "ClusterSecretStore"
|
||
|
|
metadata = { name = "vault-database" }
|
||
|
|
spec = {
|
||
|
|
provider = {
|
||
|
|
vault = {
|
||
|
|
server = "http://vault-active.vault.svc.cluster.local:8200"
|
||
|
|
path = "database"
|
||
|
|
version = "v1"
|
||
|
|
auth = {
|
||
|
|
kubernetes = {
|
||
|
|
mountPath = "kubernetes"
|
||
|
|
role = "eso"
|
||
|
|
serviceAccountRef = {
|
||
|
|
name = "external-secrets"
|
||
|
|
namespace = "external-secrets"
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
depends_on = [helm_release.external_secrets]
|
||
|
|
}
|