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" } }