mirror of
https://github.com/dat515-2025/Group-8.git
synced 2026-03-22 23:20:56 +01:00
85 lines
1.8 KiB
HCL
85 lines
1.8 KiB
HCL
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
|
|
})
|
|
}
|
|
|
|
resource "helm_release" "loki_stack" {
|
|
name = "loki-stack"
|
|
repository = "https://grafana.github.io/helm-charts"
|
|
chart = "loki-stack"
|
|
namespace = kubernetes_namespace.monitoring.metadata[0].name
|
|
version = "2.9.12"
|
|
|
|
set = [{
|
|
name = "grafana.enabled"
|
|
value = "false"
|
|
}]
|
|
|
|
|
|
depends_on = [
|
|
helm_release.kube_prometheus_stack
|
|
]
|
|
}
|