Skip to content

Commit b37ca03

Browse files
Create main.tf
1 parent 4746325 commit b37ca03

File tree

1 file changed

+53
-0
lines changed

1 file changed

+53
-0
lines changed

manifests/main.tf

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
terraform {
2+
required_providers {
3+
kubectl = {
4+
source = "gavinbunney/kubectl"
5+
version = "~> 1.14"
6+
}
7+
}
8+
}
9+
10+
provider "kubectl" {
11+
config_path = "~/.kube/config"
12+
}
13+
14+
#1. Create monitoring namespace
15+
resource "kubectl_manifest" "monitoring_namespace" {
16+
yaml_body = <<YAML
17+
apiVersion: v1
18+
kind: Namespace
19+
metadata:
20+
name: monitoring
21+
YAML
22+
}
23+
24+
25+
26+
# Deploy Node Exporter DaemonSet + Service
27+
resource "kubectl_manifest" "node_exporter" {
28+
yaml_body = file("${path.module}/manifests/node-exporter.yaml")
29+
depends_on = [kubectl_manifest.monitoring_namespace]
30+
}
31+
32+
# Deploy Node Exporter DaemonSet - Service
33+
34+
35+
resource "kubectl_manifest" "node-exporter-service" {
36+
yaml_body = file("${path.module}/manifests/node-exporter-service.yaml")
37+
depends_on = [kubectl_manifest.monitoring_namespace]
38+
}
39+
40+
# (Optional) Use SHA hash to force reapply if manifest changes
41+
locals {
42+
node_exporter_hash = filesha256("${path.module}/manifests/node-exporter.yaml")
43+
}
44+
45+
resource "null_resource" "trigger_node_exporter_restart" {
46+
triggers = {
47+
config_hash = local.node_exporter_hash
48+
}
49+
50+
provisioner "local-exec" {
51+
command = "kubectl rollout restart daemonset/node-exporter -n monitoring || true"
52+
}
53+
#}

0 commit comments

Comments
 (0)