locals { prometheus_helm_repo = "https://charts.bitnami.com/bitnami" prometheus_helm_chart = "kube-prometheus" prometheus_exporter_helm_repo = "https://prometheus-community.github.io/helm-charts" prometheus_exporter_helm_chart = "prometheus-postgres-exporter" prometheus_release_name = "prometheus" prometheus_exporter_release_name = "prometheus-postgres-exporter" prometheus_namespace = "prometheus" prometheus_remote_write_enabled = var.prometheus_remote_write_password != "" } # Create a namespace to hold our Prometheus deployment. resource "kubernetes_namespace" "prometheus_namespace" { metadata { name = local.prometheus_namespace } lifecycle { ignore_changes = [timeouts, wait_for_default_service_account] } } # Create a secret to store the remote write key resource "kubernetes_secret" "prometheus-credentials" { count = local.prometheus_remote_write_enabled ? 1 : 0 type = "kubernetes.io/basic-auth" metadata { name = "prometheus-credentials" namespace = kubernetes_namespace.prometheus_namespace.metadata.0.name } data = { username = var.prometheus_remote_write_user password = var.prometheus_remote_write_password } lifecycle { ignore_changes = [timeouts, wait_for_service_account_token] } } # Install Prometheus using the Bitnami Prometheus helm chart. resource "helm_release" "prometheus-chart" { repository = local.prometheus_helm_repo chart = local.prometheus_helm_chart name = local.prometheus_release_name namespace = kubernetes_namespace.prometheus_namespace.metadata.0.name values = [<