Files
home-docker/terraform/grafana.tf
T
2025-08-09 21:48:04 +10:00

83 lines
1.8 KiB
Terraform

# Grafana deployment (if not already exists)
resource "kubernetes_namespace" "grafana" {
metadata {
name = "grafana"
}
}
resource "helm_release" "grafana" {
name = "grafana"
repository = "https://grafana.github.io/helm-charts"
chart = "grafana"
version = "7.3.7"
namespace = kubernetes_namespace.grafana.metadata[0].name
create_namespace = false
values = [
<<-EOT
adminPassword: admin123
service:
type: ClusterIP
port: 80
ingress:
enabled: true
ingressClassName: nginx
hosts:
- grafana.junv.cc
tls:
- secretName: grafana-tls
hosts:
- grafana.junv.cc
annotations:
cert-manager.io/cluster-issuer: "letsencrypt-prod"
persistence:
enabled: true
size: 10Gi
datasources:
datasources.yaml:
apiVersion: 1
datasources:
- name: Prometheus
type: prometheus
url: http://prometheus-server.prometheus.svc.cluster.local
access: proxy
isDefault: true
- name: Loki
type: loki
url: http://loki.logging.svc.cluster.local:3100
access: proxy
dashboardProviders:
dashboardproviders.yaml:
apiVersion: 1
providers:
- name: 'default'
orgId: 1
folder: ''
type: file
disableDeletion: false
editable: true
options:
path: /var/lib/grafana/dashboards/default
dashboardsConfigMaps:
default: "grafana-dashboard-geoip"
plugins:
- grafana-worldmap-panel
- grafana-piechart-panel
env:
GF_FEATURE_TOGGLES_ENABLE: geomap
EOT
]
depends_on = [
kubernetes_config_map.grafana_dashboard_geoip
]
}