Files

119 lines
2.4 KiB
Terraform
Raw Permalink Normal View History

resource "kubernetes_config_map" "alertmanager" {
metadata {
name = "alertmanager-conf"
namespace = kubernetes_namespace.prometheus.metadata[0].name
labels = {
name = "alertmanager-conf"
}
}
data = {
"alertmanager.yml" = local.alertmanager_config
}
}
resource "kubernetes_deployment" "alertmanager" {
metadata {
name = "alertmanager"
namespace = kubernetes_namespace.prometheus.metadata[0].name
labels = {
app = "alertmanager"
}
}
spec {
replicas = 1
selector {
match_labels = {
app = "alertmanager"
}
}
template {
metadata {
labels = {
app = "alertmanager"
}
annotations = {
"checksum/config" = local.alertmanager_config_checksum
}
}
spec {
container {
name = "alertmanager"
image = "prom/alertmanager:${local.app_version}"
args = [
"--config.file=/etc/alertmanager/alertmanager.yml",
"--storage.path=/alertmanager"
]
port {
name = "http"
container_port = 9093
}
volume_mount {
name = "alertmanager-config"
mount_path = "/etc/alertmanager"
}
volume_mount {
name = "alertmanager-storage"
mount_path = "/alertmanager"
}
security_context {
run_as_user = 1000
run_as_group = 1000
run_as_non_root = true
allow_privilege_escalation = false
}
}
volume {
name = "alertmanager-config"
config_map {
name = kubernetes_config_map.alertmanager.metadata[0].name
}
}
volume {
name = "alertmanager-storage"
host_path {
path = local.alertmanager_folder
type = "DirectoryOrCreate"
}
}
}
}
}
}
resource "kubernetes_service" "alertmanager" {
metadata {
name = "alertmanager"
namespace = kubernetes_namespace.prometheus.metadata[0].name
labels = {
app = "alertmanager"
}
}
spec {
selector = {
app = "alertmanager"
}
type = "ClusterIP"
port {
name = "web"
port = 9093
protocol = "TCP"
target_port = "http"
}
}
}