_grafana.tpl 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. {{- define "grafana.workload" -}}
  2. workload:
  3. grafana:
  4. enabled: true
  5. primary: true
  6. type: Deployment
  7. podSpec:
  8. hostNetwork: {{ .Values.grafanaNetwork.hostNetwork }}
  9. containers:
  10. grafana:
  11. enabled: true
  12. primary: true
  13. imageSelector: image
  14. securityContext:
  15. runAsUser: {{ .Values.grafanaRunAs.user }}
  16. runAsGroup: {{ .Values.grafanaRunAs.group }}
  17. envFrom:
  18. - configMapRef:
  19. name: grafana-config
  20. {{ with .Values.grafanaConfig.additionalEnvs }}
  21. envList:
  22. {{ range $env := . }}
  23. - name: {{ $env.name }}
  24. value: {{ $env.value }}
  25. {{ end }}
  26. {{ end }}
  27. probes:
  28. {{ $scheme := "http" }}
  29. {{ if .Values.grafanaNetwork.certificateID }}
  30. {{ $scheme = "https" }}
  31. {{ end }}
  32. liveness:
  33. enabled: true
  34. type: {{ $scheme }}
  35. port: {{ .Values.grafanaNetwork.webPort }}
  36. path: /api/health
  37. readiness:
  38. enabled: true
  39. type: {{ $scheme }}
  40. port: {{ .Values.grafanaNetwork.webPort }}
  41. path: /api/health
  42. startup:
  43. enabled: true
  44. type: {{ $scheme }}
  45. port: {{ .Values.grafanaNetwork.webPort }}
  46. path: /api/health
  47. initContainers:
  48. {{- include "ix.v1.common.app.permissions" (dict "containerName" "01-permissions"
  49. "UID" .Values.grafanaRunAs.user
  50. "GID" .Values.grafanaRunAs.group
  51. "mode" "check"
  52. "type" "init") | nindent 8 }}
  53. {{/* Service */}}
  54. service:
  55. grafana:
  56. enabled: true
  57. primary: true
  58. type: NodePort
  59. targetSelector: grafana
  60. ports:
  61. webui:
  62. enabled: true
  63. primary: true
  64. port: {{ .Values.grafanaNetwork.webPort }}
  65. nodePort: {{ .Values.grafanaNetwork.webPort }}
  66. targetSelector: grafana
  67. {{/* Persistence */}}
  68. persistence:
  69. data:
  70. enabled: true
  71. type: {{ .Values.grafanaStorage.data.type }}
  72. datasetName: {{ .Values.grafanaStorage.data.datasetName | default "" }}
  73. hostPath: {{ .Values.grafanaStorage.data.hostPath | default "" }}
  74. targetSelector:
  75. grafana:
  76. grafana:
  77. mountPath: /var/lib/grafana
  78. 01-permissions:
  79. mountPath: /mnt/directories/data
  80. tmp:
  81. enabled: true
  82. type: emptyDir
  83. targetSelector:
  84. grafana:
  85. grafana:
  86. mountPath: /tmp
  87. {{- range $idx, $storage := .Values.grafanaStorage.additionalStorages }}
  88. {{ printf "grafana-%v" (int $idx) }}:
  89. enabled: true
  90. type: {{ $storage.type }}
  91. datasetName: {{ $storage.datasetName | default "" }}
  92. hostPath: {{ $storage.hostPath | default "" }}
  93. targetSelector:
  94. grafana:
  95. grafana:
  96. mountPath: {{ $storage.mountPath }}
  97. 01-permissions:
  98. mountPath: /mnt/directories{{ $storage.mountPath }}
  99. {{- end }}
  100. {{- if .Values.grafanaNetwork.certificateID }}
  101. cert:
  102. enabled: true
  103. type: secret
  104. objectName: grafana-cert
  105. defaultMode: "0600"
  106. items:
  107. - key: tls.key
  108. path: tls.key
  109. - key: tls.crt
  110. path: tls.crt
  111. targetSelector:
  112. grafana:
  113. grafana:
  114. mountPath: /grafana/certs
  115. readOnly: true
  116. scaleCertificate:
  117. grafana-cert:
  118. enabled: true
  119. id: {{ .Values.grafanaNetwork.certificateID }}
  120. {{- end -}}
  121. {{- end -}}