terraform { required_providers { kubectl = { source = "gavinbunney/kubectl" version = "1.19.0" } helm = { source = "hashicorp/helm" version = "3.0.2" # Doporučuji použít novější verzi providera } kubernetes = { source = "hashicorp/kubernetes" version = "2.38.0" # Doporučuji použít novější verzi providera } # Ostatní provideři mohou zůstat } } resource "kubernetes_namespace" "rabbitmq_namespace" { metadata { name = "rabbitmq-system" } } resource "helm_release" "rabbitmq_operator" { name = "rabbitmq-cluster-operator" repository = "oci://registry-1.docker.io/bitnamicharts" chart = "rabbitmq-cluster-operator" version = "4.4.34" namespace = "rabbitmq-system" # Zde můžete přepsat výchozí hodnoty chartu, pokud by bylo potřeba # Například sledovat jen určité namespace, nastavit tolerations atd. # Pro základní instalaci není potřeba nic měnit. # values = [ # templatefile("${path.module}/values/operator-values.yaml", {}) # ] set = [ { name = "rabbitmqImage.repository" value = "bitnamilegacy/rabbitmq" }, { name = "clusterOperator.image.repository" value = "bitnamilegacy/rabbitmq-cluster-operator" }, { name = "msgTopologyOperator.image.repository" value = "bitnamilegacy/rmq-messaging-topology-operator" }, { name = "credentialUpdaterImage.repository" value = "bitnamilegacy/rmq-default-credential-updater" }, { name = "clusterOperator.metrics.service.enabled" value = "true" }, { name = "clusterOperator.metrics.service.enabled" value = "true" } ] depends_on = [kubernetes_namespace.rabbitmq_namespace] } resource "kubectl_manifest" "rabbitmq_cluster" { yaml_body = templatefile("${path.module}/rabbit-cluster.yaml", { replicas = var.rabbitmq_replicas password = var.rabbitmq-password }) depends_on = [ helm_release.rabbitmq_operator ] } resource "kubectl_manifest" "rabbit_ui" { yaml_body = templatefile("${path.module}/rabbit-ui.yaml", { base_domain = var.base_domain }) depends_on = [ kubectl_manifest.rabbitmq_cluster ] }