resource "kubectl_manifest" "rabbit" { yaml_body = <<-EOF apiVersion: rabbitmq.com/v1beta1 kind: RabbitmqCluster metadata: name: "${var.instance}-${var.component}-rabbitmq" namespace: "${var.namespace}" labels: ${jsonencode(local.rabbitmq_labels)} spec: image: "${var.images.rabbit.registry}/${var.images.rabbit.repository}:${var.images.rabbit.tag}" persistence: storage: "${var.storage.rabbitmq.size}" replicas: ${var.rabbitmq.replicas} resources: limits: cpu: "${var.rabbitmq.limits.cpu}" memory: "${var.rabbitmq.limits.memory}" requests: cpu: "${var.rabbitmq.requests.cpu}" memory: "${var.rabbitmq.requests.memory}" EOF } resource "kubectl_manifest" "rabbit_vhost" { yaml_body = <<-EOF apiVersion: rabbitmq.com/v1beta1 kind: Vhost metadata: name: "${var.instance}-${var.component}-taiga" namespace: "${var.namespace}" labels: ${jsonencode(local.rabbitmq_labels)} spec: name: taiga rabbitmqClusterReference: name: ${kubectl_manifest.rabbit.name} EOF } resource "kubectl_manifest" "rabbit_user" { yaml_body = <<-EOF apiVersion: rabbitmq.com/v1beta1 kind: User metadata: name: "${var.instance}-${var.component}-taiga" namespace: "${var.namespace}" labels: ${jsonencode(local.rabbitmq_labels)} spec: tags: ["administrator"] importCredentialsSecret: name: ${kubectl_manifest.rabbit_user_secret.name} rabbitmqClusterReference: name: ${kubectl_manifest.rabbit.name} EOF } resource "kubectl_manifest" "rabbit_perm" { yaml_body = <<-EOF apiVersion: rabbitmq.com/v1beta1 kind: Permission metadata: name: "${var.instance}-${var.component}-taiga" namespace: "${var.namespace}" labels: ${jsonencode(local.rabbitmq_labels)} spec: vhost: "taiga" user: "taiga" permissions: write: ".*" configure: ".*" read: ".*" rabbitmqClusterReference: name: ${kubectl_manifest.rabbit.name} EOF }