-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathmain.tf
63 lines (59 loc) · 2.24 KB
/
main.tf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
resource "kubernetes_namespace" "kafka" {
count = var.kafka_enabled ? 1 : 0
metadata {
name = var.namespace
}
}
resource "helm_release" "kafka_deploy" {
depends_on = [kubernetes_namespace.kafka]
count = var.kafka_enabled ? 1 : 0
name = "kafka"
chart = "${path.module}/helm/kafka/"
timeout = 600
version = var.chart_version
namespace = var.namespace
values = [
templatefile("${path.module}/helm/kafka/values.yaml", {
namespace = var.namespace
kafka_node_replica_count = var.kafka_config.kafka_node_replica_count
storage_class_name = var.kafka_config.storage_class_name
kafka_pv_volume_size = var.kafka_config.kafka_pv_volume_size
default_partition_per_topic = var.kafka_config.default_partition_per_topic
default_replication_factor_per_topic = var.kafka_config.default_replication_factor_per_topic
zookeeper_enabled = var.kafka_config.zookeeper_enabled
metrics_enabled = var.kafka_config.metrics_enabled
zookeper_node_replica_count = var.kafka_config.zookeper_node_replica_count
zookeper_pv_volume_size = var.kafka_config.zookeper_pv_volume_size
heap_size_option = var.kafka_config.heap_size_option
sasl_inter_broker_password = var.kafka_config.sasl_inter_broker_password
}),
var.kafka_config.values_yaml
]
}
resource "helm_release" "kafka_exporter" {
depends_on = [kubernetes_namespace.kafka]
count = var.kafka_enabled ? 1 : 0
name = "kafka-exporter"
chart = "prometheus-kafka-exporter"
repository = "https://prometheus-community.github.io/helm-charts"
timeout = 600
version = "2.10.0"
namespace = var.namespace
values = [
templatefile("${path.module}/helm/kafka/kafka-exporter.yaml", { namespace = var.namespace })
]
}
resource "kubernetes_pod" "kafka-client" {
metadata {
name = "kafka-client"
namespace = var.namespace
}
spec {
restart_policy = "Never"
container {
image = "docker.io/bitnami/kafka:3.5.1-debian-11-r1"
name = "kafka-client"
command = ["sleep", "infinity"]
}
}
}