Files
observability/grafana/helm-values.yaml
Mayne0213 3b5bf20902 PERF(observability): optimize resources via VPA
- alertmanager: CPU 15m/15m, memory 100Mi/100Mi
- blackbox-exporter: CPU 15m/32m, memory 100Mi/100Mi
- goldilocks: controller 15m/25m, dashboard 15m/15m
- grafana: CPU 22m/24m, memory 144Mi/242Mi (upperBound)
- kube-state-metrics: CPU 15m/15m, memory 100Mi/100Mi
- loki: CPU 10m/69m, memory 225Mi/323Mi
- node-exporter: CPU 15m/15m, memory 100Mi/100Mi
- opentelemetry: CPU 34m/410m, memory 142Mi/1024Mi
- prometheus-operator: CPU 15m/15m, memory 100Mi/100Mi
- tempo: CPU 15m/15m, memory 100Mi/109Mi
- thanos: CPU 15m/15m, memory 100Mi/126Mi
- vpa: CPU 15m/15m, memory 100Mi/100Mi
2026-01-12 01:07:58 +09:00

124 lines
2.7 KiB
YAML

# Grafana Helm Values
# Chart: https://github.com/grafana/helm-charts/tree/main/charts/grafana
fullnameOverride: grafana
replicas: 1
affinity:
podAntiAffinity:
preferredDuringSchedulingIgnoredDuringExecution:
- weight: 100
podAffinityTerm:
labelSelector:
matchLabels:
app.kubernetes.io/name: grafana
topologyKey: kubernetes.io/hostname
persistence:
enabled: false
# PostgreSQL database - use existing bluemayne superuser
env:
GF_DATABASE_TYPE: postgres
GF_DATABASE_HOST: postgresql-rw.postgresql.svc.cluster.local:5432
GF_DATABASE_NAME: grafana
GF_DATABASE_USER: bluemayne
GF_DATABASE_SSL_MODE: disable
envValueFrom:
GF_DATABASE_PASSWORD:
secretKeyRef:
name: grafana-db-password
key: password
initChownData:
enabled: false
podSecurityContext:
fsGroup: 472
fsGroupChangePolicy: "Always"
# Resource settings (VPA lowerBound/upperBound)
resources:
requests:
cpu: 22m
memory: 144Mi
limits:
cpu: 24m
memory: 242Mi
service:
type: ClusterIP
port: 80
datasources:
datasources.yaml:
apiVersion: 1
datasources:
- name: Thanos
type: prometheus
access: proxy
url: http://thanos-query.thanos.svc.cluster.local:9090
isDefault: true
editable: true
jsonData:
timeInterval: "60s"
- name: Prometheus
type: prometheus
access: proxy
url: http://prometheus-kube-prometheus-prometheus.prometheus.svc.cluster.local:9090
isDefault: false
editable: true
- name: Loki
type: loki
access: proxy
url: http://loki.loki.svc.cluster.local:3100
editable: true
- name: Alertmanager
type: alertmanager
access: proxy
url: http://alertmanager.alertmanager.svc.cluster.local:9093
editable: true
jsonData:
implementation: prometheus
- name: Tempo
type: tempo
access: proxy
url: http://tempo.tempo.svc.cluster.local:3100
editable: true
# Dashboards are manually imported via Grafana UI
# JSON files stored in dashboards/ directory for reference
grafana.ini:
server:
root_url: "https://grafana0213.kro.kr"
auth.anonymous:
enabled: true
org_role: Admin
security:
allow_embedding: true
auth.basic:
enabled: false
auth:
disable_login_form: true
disable_signout_menu: true
news:
news_feed_enabled: false
ingress:
enabled: true
ingressClassName: traefik
annotations:
cert-manager.io/cluster-issuer: letsencrypt-prod
traefik.ingress.kubernetes.io/router.middlewares: authelia-authelia-auth@kubernetescrd
hosts:
- grafana0213.kro.kr
- www.grafana0213.kro.kr
tls:
- secretName: grafana-tls
hosts:
- grafana0213.kro.kr
- www.grafana0213.kro.kr