Files
a13labs.infra/terraform/modules/utils/fail2ban-exporter/main.tf
T

97 lines
2.2 KiB
Terraform

resource "kubernetes_service_account" "fail2ban_exporter" {
metadata {
name = "fail2ban-exporter"
namespace = local.namespace
labels = {
k8s-app = "fail2ban-exporter"
}
}
automount_service_account_token = false
}
resource "kubernetes_deployment" "fail2ban_exporter" {
metadata {
name = "fail2ban-exporter"
namespace = local.namespace
labels = {
k8s-app = "fail2ban-exporter"
}
}
spec {
selector {
match_labels = {
k8s-app = "fail2ban-exporter"
}
}
strategy {
type = "RollingUpdate"
}
template {
metadata {
labels = {
k8s-app = "fail2ban-exporter"
}
}
spec {
service_account_name = "fail2ban-exporter"
automount_service_account_token = false
container {
name = "fail2ban-exporter"
image = "registry.gitlab.com/hctrdev/fail2ban-prometheus-exporter:${local.app_version}"
image_pull_policy = "IfNotPresent"
port {
container_port = 9191
name = "http"
protocol = "TCP"
}
security_context {
read_only_root_filesystem = true
}
volume_mount {
name = "tmp-dir"
mount_path = "/tmp"
}
volume_mount {
name = "fail2ban-run"
mount_path = "/var/run/fail2ban"
read_only = true
}
}
volume {
name = "tmp-dir"
empty_dir {}
}
volume {
name = "fail2ban-run"
host_path {
path = "/var/run/fail2ban"
type = "Directory"
}
}
}
}
}
}
resource "kubernetes_service" "fail2ban_exporter" {
metadata {
name = "fail2ban-exporter"
namespace = local.namespace
labels = {
k8s-app = "fail2ban-exporter"
}
}
spec {
selector = {
k8s-app = "fail2ban-exporter"
}
port {
name = "http"
port = 9100
target_port = 9191
protocol = "TCP"
}
type = "ClusterIP"
}
}