mirror of
https://github.com/dat515-2025/Group-8.git
synced 2026-03-22 23:20:56 +01:00
fix(infrastructure): prometheus
This commit is contained in:
66
tofu/modules/prometheus/main.tf
Normal file
66
tofu/modules/prometheus/main.tf
Normal file
@@ -0,0 +1,66 @@
|
||||
terraform {
|
||||
required_providers {
|
||||
kubectl = {
|
||||
source = "gavinbunney/kubectl"
|
||||
version = "1.19.0"
|
||||
}
|
||||
helm = {
|
||||
source = "hashicorp/helm"
|
||||
version = "3.0.2"
|
||||
}
|
||||
kubernetes = {
|
||||
source = "hashicorp/kubernetes"
|
||||
version = "2.38.0"
|
||||
}
|
||||
kustomization = {
|
||||
source = "kbst/kustomization"
|
||||
version = "0.9.6"
|
||||
}
|
||||
time = {
|
||||
source = "hashicorp/time"
|
||||
version = "0.13.1"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# Create namespace for monitoring
|
||||
resource "kubernetes_namespace" "monitoring" {
|
||||
metadata {
|
||||
name = "monitoring"
|
||||
labels = {
|
||||
"pod-security.kubernetes.io/enforce" = "privileged"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# Deploy kube-prometheus-stack
|
||||
resource "helm_release" "kube_prometheus_stack" {
|
||||
name = "kube-prometheus-stack"
|
||||
repository = "https://prometheus-community.github.io/helm-charts"
|
||||
chart = "kube-prometheus-stack"
|
||||
namespace = kubernetes_namespace.monitoring.metadata[0].name
|
||||
version = "67.2.1" # Check for latest version
|
||||
|
||||
# Wait for CRDs to be created
|
||||
wait = true
|
||||
timeout = 600
|
||||
force_update = false
|
||||
recreate_pods = false
|
||||
|
||||
# Reference the values file
|
||||
values = [
|
||||
file("${path.module}/values.yaml")
|
||||
]
|
||||
|
||||
depends_on = [
|
||||
kubernetes_namespace.monitoring
|
||||
]
|
||||
}
|
||||
|
||||
resource "kubectl_manifest" "argocd-tunnel-bind" {
|
||||
depends_on = [helm_release.kube_prometheus_stack]
|
||||
|
||||
yaml_body = templatefile("${path.module}/grafana-ui.yaml", {
|
||||
base_domain = var.cloudflare_domain
|
||||
})
|
||||
}
|
||||
Reference in New Issue
Block a user