devops/infra/modules/minio/main.tf

69 lines
1.3 KiB
HCL

resource "random_password" "minio_access_key" {
length = 20
special = false
}
resource "random_password" "minio_secret_key" {
length = 40
special = true
}
resource "helm_release" "minio" {
name = "minio"
repository = "https://charts.bitnami.com/bitnami"
chart = "minio"
namespace = var.namespace
create_namespace = true
version = "14.7.16"
set_sensitive {
name = "auth.rootUser"
value = random_password.minio_access_key.result
}
set_sensitive {
name = "auth.rootPassword"
value = random_password.minio_secret_key.result
}
set {
name = "mode"
value = var.mode
}
set {
name = "resourcesPreset"
value = "nano"
}
set {
name = "statefulset.replicaCount"
value = var.replicas
}
set {
name = "statefulset.drivesPerNode"
value = var.replicas < 4 ? 2 : 1
}
set {
name = "persistence.size"
value = var.storageSize
}
values = [
templatefile("${path.module}/values.yaml.tftpl", {
service_uri = local.service_uri,
admin_service_uri = local.admin_service_uri,
admin = var.admin,
tls = var.mode == "distributed" ? false : var.tls
ingressClass = var.ingressClass
})
]
}
output "installed" {
value = true
depends_on = [helm_release.minio]
}