_helpers.tpl 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221
  1. {{/*
  2. Expand the name of the chart.
  3. */}}
  4. {{- define "external-secrets.name" -}}
  5. {{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }}
  6. {{- end }}
  7. {{/*
  8. Create a default fully qualified app name.
  9. We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
  10. If release name contains chart name it will be used as a full name.
  11. */}}
  12. {{- define "external-secrets.fullname" -}}
  13. {{- if .Values.fullnameOverride }}
  14. {{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }}
  15. {{- else }}
  16. {{- $name := default .Chart.Name .Values.nameOverride }}
  17. {{- if contains $name .Release.Name }}
  18. {{- .Release.Name | trunc 63 | trimSuffix "-" }}
  19. {{- else }}
  20. {{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }}
  21. {{- end }}
  22. {{- end }}
  23. {{- end }}
  24. {{/*
  25. Define namespace of chart, useful for multi-namespace deployments
  26. */}}
  27. {{- define "external-secrets.namespace" -}}
  28. {{- if .Values.namespaceOverride }}
  29. {{- .Values.namespaceOverride }}
  30. {{- else }}
  31. {{- .Release.Namespace }}
  32. {{- end }}
  33. {{- end }}
  34. {{/*
  35. Create chart name and version as used by the chart label.
  36. */}}
  37. {{- define "external-secrets.chart" -}}
  38. {{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
  39. {{- end }}
  40. {{/*
  41. Common labels
  42. */}}
  43. {{- define "external-secrets.labels" -}}
  44. helm.sh/chart: {{ include "external-secrets.chart" . }}
  45. {{ include "external-secrets.selectorLabels" . }}
  46. {{- if .Chart.AppVersion }}
  47. app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
  48. {{- end }}
  49. app.kubernetes.io/managed-by: {{ .Release.Service }}
  50. {{- with .Values.commonLabels }}
  51. {{ toYaml . }}
  52. {{- end }}
  53. {{- end }}
  54. {{- define "external-secrets-webhook.labels" -}}
  55. helm.sh/chart: {{ include "external-secrets.chart" . }}
  56. {{ include "external-secrets-webhook.selectorLabels" . }}
  57. {{- if .Chart.AppVersion }}
  58. app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
  59. {{- end }}
  60. app.kubernetes.io/managed-by: {{ .Release.Service }}
  61. {{- with .Values.commonLabels }}
  62. {{ toYaml . }}
  63. {{- end }}
  64. {{- if and ( .Capabilities.APIVersions.Has "monitoring.coreos.com/v1" ) .Values.serviceMonitor.enabled }}
  65. app.kubernetes.io/metrics: "webhook"
  66. {{- with .Values.webhook.service.labels }}
  67. {{ toYaml . }}
  68. {{- end }}
  69. {{- end }}
  70. {{- end }}
  71. {{- define "external-secrets-webhook.annotations" -}}
  72. {{- if or .Values.webhook.service.annotations (and .Values.webhook.metrics.service.enabled .Values.webhook.metrics.service.annotations) -}}
  73. annotations:
  74. {{- with .Values.webhook.service.annotations }}
  75. {{- toYaml . | nindent 2 }}
  76. {{- end }}
  77. {{- if .Values.webhook.metrics.service.enabled }}
  78. {{- with .Values.webhook.metrics.service.annotations }}
  79. {{- toYaml . | nindent 2 }}
  80. {{- end }}
  81. {{- end }}
  82. {{- end }}
  83. {{- end }}
  84. {{- define "external-secrets-webhook-metrics.labels" -}}
  85. {{ include "external-secrets-webhook.selectorLabels" . }}
  86. app.kubernetes.io/metrics: "webhook"
  87. {{- with .Values.commonLabels }}
  88. {{ toYaml . }}
  89. {{- end }}
  90. {{- end }}
  91. {{- define "external-secrets-cert-controller.labels" -}}
  92. helm.sh/chart: {{ include "external-secrets.chart" . }}
  93. {{ include "external-secrets-cert-controller.selectorLabels" . }}
  94. {{- if .Chart.AppVersion }}
  95. app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
  96. {{- end }}
  97. app.kubernetes.io/managed-by: {{ .Release.Service }}
  98. {{- with .Values.commonLabels }}
  99. {{ toYaml . }}
  100. {{- end }}
  101. {{- if and ( .Capabilities.APIVersions.Has "monitoring.coreos.com/v1" ) .Values.serviceMonitor.enabled }}
  102. app.kubernetes.io/metrics: "cert-controller"
  103. {{- end }}
  104. {{- end }}
  105. {{- define "external-secrets-cert-controller-metrics.labels" -}}
  106. {{ include "external-secrets-cert-controller.selectorLabels" . }}
  107. app.kubernetes.io/metrics: "cert-controller"
  108. {{- with .Values.commonLabels }}
  109. {{ toYaml . }}
  110. {{- end }}
  111. {{- end }}
  112. {{/*
  113. Selector labels
  114. */}}
  115. {{- define "external-secrets.selectorLabels" -}}
  116. app.kubernetes.io/name: {{ include "external-secrets.name" . }}
  117. app.kubernetes.io/instance: {{ .Release.Name }}
  118. {{- end }}
  119. {{- define "external-secrets-webhook.selectorLabels" -}}
  120. app.kubernetes.io/name: {{ include "external-secrets.name" . }}-webhook
  121. app.kubernetes.io/instance: {{ .Release.Name }}
  122. {{- end }}
  123. {{- define "external-secrets-cert-controller.selectorLabels" -}}
  124. app.kubernetes.io/name: {{ include "external-secrets.name" . }}-cert-controller
  125. app.kubernetes.io/instance: {{ .Release.Name }}
  126. {{- end }}
  127. {{/*
  128. Create the name of the service account to use
  129. */}}
  130. {{- define "external-secrets.serviceAccountName" -}}
  131. {{- if .Values.serviceAccount.create }}
  132. {{- default (include "external-secrets.fullname" .) .Values.serviceAccount.name }}
  133. {{- else }}
  134. {{- default "default" .Values.serviceAccount.name }}
  135. {{- end }}
  136. {{- end }}
  137. {{/*
  138. Create the name of the service account to use
  139. */}}
  140. {{- define "external-secrets-webhook.serviceAccountName" -}}
  141. {{- if .Values.webhook.serviceAccount.create }}
  142. {{- default "external-secrets-webhook" .Values.webhook.serviceAccount.name }}
  143. {{- else }}
  144. {{- default "default" .Values.webhook.serviceAccount.name }}
  145. {{- end }}
  146. {{- end }}
  147. {{/*
  148. Create the name of the service account to use
  149. */}}
  150. {{- define "external-secrets-cert-controller.serviceAccountName" -}}
  151. {{- if .Values.certController.serviceAccount.create }}
  152. {{- default "external-secrets-cert-controller" .Values.certController.serviceAccount.name }}
  153. {{- else }}
  154. {{- default "default" .Values.certController.serviceAccount.name }}
  155. {{- end }}
  156. {{- end }}
  157. {{/*
  158. Determine the image to use, including if using a flavour.
  159. */}}
  160. {{- define "external-secrets.image" -}}
  161. {{- if .image.flavour -}}
  162. {{ printf "%s:%s-%s" .image.repository (.image.tag | default .chartAppVersion) .image.flavour }}
  163. {{- else }}
  164. {{ printf "%s:%s" .image.repository (.image.tag | default .chartAppVersion) }}
  165. {{- end }}
  166. {{- end }}
  167. {{/*
  168. Renders a complete tree, even values that contains template.
  169. */}}
  170. {{- define "external-secrets.render" -}}
  171. {{- if typeIs "string" .value }}
  172. {{- tpl .value .context }}
  173. {{ else }}
  174. {{- tpl (.value | toYaml) .context }}
  175. {{- end }}
  176. {{- end -}}
  177. {{/*
  178. Return true if the OpenShift is the detected platform
  179. Usage:
  180. {{- include "external-secrets.isOpenShift" . -}}
  181. */}}
  182. {{- define "external-secrets.isOpenShift" -}}
  183. {{- if .Capabilities.APIVersions.Has "security.openshift.io/v1" -}}
  184. {{- true -}}
  185. {{- end -}}
  186. {{- end -}}
  187. {{/*
  188. Render the securityContext based on the provided securityContext
  189. {{- include "external-secrets.renderSecurityContext" (dict "securityContext" .Values.securityContext "context" $) -}}
  190. */}}
  191. {{- define "external-secrets.renderSecurityContext" -}}
  192. {{- $adaptedContext := .securityContext -}}
  193. {{- if .context.Values.global.compatibility -}}
  194. {{- if .context.Values.global.compatibility.openshift -}}
  195. {{- if or (eq .context.Values.global.compatibility.openshift.adaptSecurityContext "force") (and (eq .context.Values.global.compatibility.openshift.adaptSecurityContext "auto") (include "external-secrets.isOpenShift" .context)) -}}
  196. {{/* Remove OpenShift managed fields */}}
  197. {{- $adaptedContext = omit $adaptedContext "fsGroup" "runAsUser" "runAsGroup" -}}
  198. {{- if not .securityContext.seLinuxOptions -}}
  199. {{- $adaptedContext = omit $adaptedContext "seLinuxOptions" -}}
  200. {{- end -}}
  201. {{- end -}}
  202. {{- end -}}
  203. {{- end -}}
  204. {{- omit $adaptedContext "enabled" | toYaml -}}
  205. {{- end -}}