130 lines
3.5 KiB
HCL
130 lines
3.5 KiB
HCL
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
|
|
}
|
|
|
|
# resource "kubectl_manifest" "rabbit_vhost_event" {
|
|
# yaml_body = <<-EOF
|
|
# apiVersion: rabbitmq.com/v1beta1
|
|
# kind: Vhost
|
|
# metadata:
|
|
# name: "${var.instance}-${var.component}-taiga-event"
|
|
# namespace: "${var.namespace}"
|
|
# labels: ${jsonencode(local.rabbitmq_labels)}
|
|
# spec:
|
|
# name: event
|
|
# rabbitmqClusterReference:
|
|
# name: ${kubectl_manifest.rabbit.name}
|
|
# EOF
|
|
# }
|
|
|
|
# resource "kubectl_manifest" "rabbit_perm_event" {
|
|
# yaml_body = <<-EOF
|
|
# apiVersion: rabbitmq.com/v1beta1
|
|
# kind: Permission
|
|
# metadata:
|
|
# name: "${var.instance}-${var.component}-taiga-event"
|
|
# namespace: "${var.namespace}"
|
|
# labels: ${jsonencode(local.rabbitmq_labels)}
|
|
# spec:
|
|
# vhost: "event"
|
|
# user: "taiga"
|
|
# permissions:
|
|
# write: ".*"
|
|
# configure: ".*"
|
|
# read: ".*"
|
|
# rabbitmqClusterReference:
|
|
# name: ${kubectl_manifest.rabbit.name}
|
|
# EOF
|
|
# }
|
|
|
|
resource "random_password" "rabbit" {
|
|
length = 32
|
|
special = false
|
|
}
|
|
|
|
resource "kubectl_manifest" "rabbit_user_secret" {
|
|
yaml_body = <<-EOF
|
|
apiVersion: v1
|
|
kind: Secret
|
|
metadata:
|
|
name: "${var.instance}-${var.component}-rabbitmq-taiga"
|
|
labels: ${jsonencode(local.common_labels)}
|
|
namespace: ${var.namespace}
|
|
ownerReferences: ${jsonencode(var.install_owner)}
|
|
type: Opaque
|
|
stringData:
|
|
username: taiga
|
|
password: "${random_password.rabbit.result}"
|
|
EOF
|
|
}
|