The chart-managed init containers were hardcoded inside `deployment.yaml`. Their image, environment, resources, security context and volume mounts could not be adjusted individually, and custom init containers could only be prepended or appended as a whole via `preExtraInitContainers`/`postExtraInitContainers`. The init containers are now rendered from `deployment.initContainers`, an ordered list whose entries either `link` a chart-managed init container (`initDirectories`, `initAppIni`, `initConfigureGPG`, `initConfigureGitea`) or provide a free-form `container` definition. This allows custom containers at any position and makes the execution order explicit. Each linked init container has its own configuration block in `values.yaml` and falls back to `deployment.gitea.securityContext` and `initContainers.resources` when unset. To support per-container images, `gitea.image` was split into the generic helper `gitea.image.name`, which renders an arbitrary `image` dict instead of only `deployment.gitea.image`. The pod annotations moved from `deployment.yaml` into the new helper `gitea.pod.annotations`. The SHA sum annotations now also cover user-provided Secrets: their content is unknown to the chart, so the Secret is read from the cluster via Helm's `lookup` function. Chart-managed Secrets keep using the rendered manifest, because the cluster still holds their pre-upgrade state during rendering. Because `lookup` requires `get` permission on Secrets and silently returns nothing during client-side rendering (`helm template`, `--dry-run`, Argo CD without a live cluster), `addSHASumAnnotation` now defaults to `false`. The trade-offs are documented in the README so users can make an informed decision. BREAKING CHANGE: `preExtraInitContainers` and `postExtraInitContainers` have been removed. Add an entry with a `container` key before or after the linked init containers in `deployment.initContainers` instead. BREAKING CHANGE: `secrets.<secret>.addSHASumAnnotation` now defaults to `false`. Set it to `true` explicitly to keep the rollout trigger on Secret changes. Co-authored-by: Copilot <copilot@github.com>
38 lines
1.2 KiB
Smarty
38 lines
1.2 KiB
Smarty
{{/* annotations */}}
|
|
|
|
{{- define "gitea.deployment.annotations" -}}
|
|
{{- with .Values.deployment.annotations }}
|
|
{{- toYaml . -}}
|
|
{{- end }}
|
|
{{- end }}
|
|
|
|
{{/* initContainers */}}
|
|
|
|
{{- define "gitea.deployment.initContainers" -}}
|
|
{{- $links := list "initAppIni" "initConfigureGPG" "initConfigureGitea" "initDirectories" }}
|
|
{{- range $index, $entry := .Values.deployment.initContainers }}
|
|
{{- if and (hasKey $entry "container") (hasKey $entry "link") }}
|
|
{{- fail (printf "deployment.initContainers[%d]: `container` and `link` are mutually exclusive" $index) }}
|
|
{{- else if hasKey $entry "container" }}
|
|
{{- list $entry.container | toYaml | nindent 0 }}
|
|
{{- else if hasKey $entry "link" }}
|
|
{{- if not (has $entry.link $links) }}
|
|
{{- fail (printf "deployment.initContainers[%d]: unknown link `%s`, expected one of: %s" $index $entry.link (join ", " $links)) }}
|
|
{{- end }}
|
|
{{- with include (printf "gitea.initContainer.%s" $entry.link) $ }}
|
|
{{- nindent 0 . }}
|
|
{{- end }}
|
|
{{- else }}
|
|
{{- fail (printf "deployment.initContainers[%d]: either `container` or `link` must be set" $index) }}
|
|
{{- end }}
|
|
{{- end }}
|
|
{{- end }}
|
|
|
|
{{/* labels */}}
|
|
|
|
{{- define "gitea.deployment.labels" -}}
|
|
{{ include "gitea.labels" . }}
|
|
{{- with .Values.deployment.labels }}
|
|
{{ toYaml . }}
|
|
{{- end }}
|
|
{{- end }} |