77 lines
1.8 KiB
HCL
77 lines
1.8 KiB
HCL
resource "kubernetes_namespace" "postgresql" {
|
|
count = var.enabled ? 1 : 0
|
|
|
|
metadata {
|
|
name = var.namespace
|
|
}
|
|
|
|
lifecycle {
|
|
ignore_changes = [metadata]
|
|
}
|
|
}
|
|
|
|
resource "random_password" "postgresql_user_password" {
|
|
length = 40
|
|
special = true
|
|
override_special = "!#$%&*()-_=+[]{}<>:?"
|
|
min_special = 2
|
|
min_upper = 2
|
|
min_lower = 2
|
|
min_numeric = 2
|
|
}
|
|
|
|
resource "random_password" "postgresql_root_password" {
|
|
length = 40
|
|
special = true
|
|
override_special = "!#$%&*()-_=+[]{}<>:?"
|
|
min_special = 2
|
|
min_upper = 2
|
|
min_lower = 2
|
|
min_numeric = 2
|
|
}
|
|
|
|
resource "kubernetes_secret" "postgresql_auth" {
|
|
count = var.enabled ? 1 : 0
|
|
type = "generic"
|
|
depends_on = [var.wait_on]
|
|
metadata {
|
|
name = "postgresql-auth"
|
|
namespace = kubernetes_namespace.postgresql[count.index].metadata.0.name
|
|
}
|
|
|
|
data = {
|
|
password = random_password.postgresql_user_password.result
|
|
rootpassword = random_password.postgresql_root_password.result
|
|
}
|
|
}
|
|
|
|
resource "helm_release" "postgresql" {
|
|
count = var.enabled ? 1 : 0
|
|
depends_on = [var.wait_on, kubernetes_secret.postgresql_auth]
|
|
name = "postgresql"
|
|
repository = "https://charts.bitnami.com/bitnami"
|
|
chart = "postgresql"
|
|
namespace = kubernetes_namespace.postgresql[count.index].metadata.0.name
|
|
version = "16.0.5"
|
|
wait = true
|
|
|
|
values = [
|
|
templatefile("${path.module}/values.yaml", { username = var.username })
|
|
]
|
|
}
|
|
|
|
output "installed" {
|
|
value = true
|
|
depends_on = [helm_release.postgresql]
|
|
}
|
|
|
|
output "password" {
|
|
value = random_password.postgresql_user_password.result
|
|
sensitive = true
|
|
}
|
|
|
|
output "root_password" {
|
|
value = random_password.postgresql_root_password.result
|
|
sensitive = true
|
|
}
|