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

98 lines
2.1 KiB
Terraform
Raw Normal View History

resource "kubernetes_service_account" "node_exporter" {
metadata {
name = "node-exporter"
namespace = local.namespace
labels = {
k8s-app = "node-exporter"
}
}
automount_service_account_token = false
}
resource "kubernetes_deployment" "node_exporter" {
metadata {
name = "node-exporter"
namespace = local.namespace
labels = {
k8s-app = "node-exporter"
}
}
spec {
selector {
match_labels = {
k8s-app = "node-exporter"
}
}
strategy {
type = "RollingUpdate"
}
template {
metadata {
labels = {
k8s-app = "node-exporter"
}
}
spec {
service_account_name = "node-exporter"
automount_service_account_token = false
container {
name = "node-exporter"
image = "quay.io/prometheus/node-exporter:${local.app_version}"
image_pull_policy = "IfNotPresent"
args = ["--path.rootfs=/host/root"]
port {
container_port = 9100
name = "http"
protocol = "TCP"
}
security_context {
read_only_root_filesystem = true
}
volume_mount {
name = "tmp-dir"
mount_path = "/tmp"
}
volume_mount {
name = "rootfs"
mount_path = "/host/root"
read_only = true
}
}
volume {
name = "tmp-dir"
empty_dir {}
}
volume {
name = "rootfs"
host_path {
path = "/"
type = "Directory"
}
}
}
}
}
}
resource "kubernetes_service" "node_exporter" {
metadata {
name = "node-exporter"
namespace = local.namespace
labels = {
k8s-app = "node-exporter"
}
}
spec {
selector = {
k8s-app = "node-exporter"
}
port {
name = "http"
port = 9100
target_port = 9100
protocol = "TCP"
}
type = "ClusterIP"
}
}