_grafana.tpl 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  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. {{- $size := "" -}}
  90. {{- if $storage.size -}}
  91. {{- $size = (printf "%vGi" $storage.size) -}}
  92. {{- end }}
  93. enabled: true
  94. type: {{ $storage.type }}
  95. datasetName: {{ $storage.datasetName | default "" }}
  96. hostPath: {{ $storage.hostPath | default "" }}
  97. server: {{ $storage.server | default "" }}
  98. share: {{ $storage.share | default "" }}
  99. domain: {{ $storage.domain | default "" }}
  100. username: {{ $storage.username | default "" }}
  101. password: {{ $storage.password | default "" }}
  102. size: {{ $size }}
  103. {{- if eq $storage.type "smb-pv-pvc" }}
  104. mountOptions:
  105. - key: noperm
  106. {{- end }}
  107. targetSelector:
  108. grafana:
  109. grafana:
  110. mountPath: {{ $storage.mountPath }}
  111. 01-permissions:
  112. mountPath: /mnt/directories{{ $storage.mountPath }}
  113. {{- end }}
  114. {{- if .Values.grafanaNetwork.certificateID }}
  115. cert:
  116. enabled: true
  117. type: secret
  118. objectName: grafana-cert
  119. defaultMode: "0600"
  120. items:
  121. - key: tls.key
  122. path: tls.key
  123. - key: tls.crt
  124. path: tls.crt
  125. targetSelector:
  126. grafana:
  127. grafana:
  128. mountPath: /grafana/certs
  129. readOnly: true
  130. scaleCertificate:
  131. grafana-cert:
  132. enabled: true
  133. id: {{ .Values.grafanaNetwork.certificateID }}
  134. {{- end -}}
  135. {{- end -}}