|
1 | 1 | locals {
|
2 |
| - prometheus_helm_repo = "https://charts.bitnami.com/bitnami" |
3 |
| - prometheus_helm_chart = "kube-prometheus" |
4 |
| - prometheus_helm_version = null // just use latest |
5 |
| - prometheus_release_name = "prometheus" |
6 |
| - prometheus_namespace = "prometheus" |
7 |
| - prometheus_remote_write_enabled = var.prometheus_remote_write_password != "" |
| 2 | + prometheus_helm_repo = "https://charts.bitnami.com/bitnami" |
| 3 | + prometheus_helm_chart = "kube-prometheus" |
| 4 | + prometheus_exporter_helm_repo = "https://prometheus-community.github.io/helm-charts" |
| 5 | + prometheus_exporter_helm_chart = "prometheus-postgres-exporter" |
| 6 | + prometheus_release_name = "prometheus" |
| 7 | + prometheus_exporter_release_name = "prometheus-postgres-exporter" |
| 8 | + prometheus_namespace = "prometheus" |
| 9 | + prometheus_remote_write_enabled = var.prometheus_remote_write_password != "" |
8 | 10 | }
|
9 | 11 |
|
10 | 12 | # Create a namespace to hold our Prometheus deployment.
|
@@ -37,7 +39,6 @@ resource "helm_release" "prometheus-chart" {
|
37 | 39 | repository = local.prometheus_helm_repo
|
38 | 40 | chart = local.prometheus_helm_chart
|
39 | 41 | name = local.prometheus_release_name
|
40 |
| - version = local.prometheus_helm_version |
41 | 42 | namespace = kubernetes_namespace.prometheus_namespace.metadata.0.name
|
42 | 43 | values = [<<EOF
|
43 | 44 | alertmanager:
|
@@ -97,6 +98,48 @@ prometheus:
|
97 | 98 | ]
|
98 | 99 | }
|
99 | 100 |
|
| 101 | +resource "kubernetes_secret" "prometheus-postgres-password" { |
| 102 | + type = "kubernetes.io/basic-auth" |
| 103 | + metadata { |
| 104 | + name = "prometheus-postgres" |
| 105 | + namespace = kubernetes_namespace.prometheus_namespace.metadata.0.name |
| 106 | + } |
| 107 | + data = { |
| 108 | + username = google_sql_user.prometheus.name |
| 109 | + password = google_sql_user.prometheus.password |
| 110 | + } |
| 111 | +} |
| 112 | + |
| 113 | +# Install Prometheus Postgres exporter helm chart |
| 114 | +resource "helm_release" "prometheus-exporter-chart" { |
| 115 | + repository = local.prometheus_exporter_helm_repo |
| 116 | + chart = local.prometheus_exporter_helm_chart |
| 117 | + name = local.prometheus_exporter_release_name |
| 118 | + namespace = local.prometheus_namespace |
| 119 | + values = [<<EOF |
| 120 | +affinity: |
| 121 | + nodeAffinity: |
| 122 | + requiredDuringSchedulingIgnoredDuringExecution: |
| 123 | + nodeSelectorTerms: |
| 124 | + - matchExpressions: |
| 125 | + - key: "cloud.google.com/gke-nodepool" |
| 126 | + operator: "In" |
| 127 | + values: ["${google_container_node_pool.misc.name}"] |
| 128 | +config: |
| 129 | + datasource: |
| 130 | + host: "${google_sql_database_instance.db.private_ip_address}" |
| 131 | + user: "${google_sql_user.prometheus.name}" |
| 132 | + database: "${google_sql_database.coder.name}" |
| 133 | + passwordSecret: |
| 134 | + name: "${kubernetes_secret.prometheus-postgres-password.metadata.0.name}" |
| 135 | + key: password |
| 136 | + autoDiscoverDatabases: true |
| 137 | +serviceMonitor: |
| 138 | + enabled: true |
| 139 | + EOF |
| 140 | + ] |
| 141 | +} |
| 142 | + |
100 | 143 | # NOTE: this is created as a local file before being applied
|
101 | 144 | # as the kubernetes_manifest resource needs to be run separately
|
102 | 145 | # after creating a cluster, and we want this to be brought up
|
|
0 commit comments