* fix(helm): namespace app-specific values under global.seaweedfs Move all app-specific values from the global namespace to global.seaweedfs.* to avoid polluting the shared .Values.global namespace when the chart is used as a subchart. Standard Helm conventions (global.imageRegistry, global.imagePullSecrets) remain at the global level as they are designed to be shared across subcharts. Fixes seaweedfs/seaweedfs#8699 BREAKING CHANGE: global values have been restructured. Users must update their values files to use the new paths: - global.registry → global.imageRegistry - global.repository → global.seaweedfs.image.repository - global.imageName → global.seaweedfs.image.name - global.<key> → global.seaweedfs.<key> (for all other app-specific values) * fix(ci): update helm CI tests to use new global.seaweedfs.* value paths Update all --set flags in helm_ci.yml to use the new namespaced global.seaweedfs.* paths matching the values.yaml restructuring. * fix(ci): install Claude Code via npm to avoid install.sh 403 The claude-code-action's built-in installer uses `curl https://claude.ai/install.sh | bash` which can fail with 403. Due to the pipe, bash exits 0 on empty input, masking the curl failure and leaving the `claude` binary missing. Work around this by installing Claude Code via npm before invoking the action, and passing the executable path via path_to_claude_code_executable. * revert: remove claude-code-review.yml changes from this PR The claude-code-action OIDC token exchange validates that the workflow file matches the version on the default branch. Modifying it in a PR causes the review job to fail with "Workflow validation failed". The Claude Code install fix will need to be applied directly to master or in a separate PR. * fix: update stale references to old global.* value paths - admin-statefulset.yaml: fix fail message to reference global.seaweedfs.masterServer - values.yaml: fix comment to reference image.name instead of imageName - helm_ci.yml: fix diagnostic message to reference global.seaweedfs.enableSecurity * feat(helm): add backward-compat shim for old global.* value paths Add _compat.tpl with a seaweedfs.compat helper that detects old-style global.* keys (e.g. global.enableSecurity, global.registry) and merges them into the new global.seaweedfs.* namespace. Since the old keys no longer have defaults in values.yaml, their presence means the user explicitly provided them. The helper uses in-place mutation via `set` so all templates see the merged values. This ensures existing deployments using old value paths continue to work without changes after upgrading. * fix: update stale comment references in values.yaml Update comments referencing global.enableSecurity and global.masterServer to the new global.seaweedfs.* paths. --------- Co-authored-by: Copilot <copilot@github.com>
60 lines
2.4 KiB
Smarty
60 lines
2.4 KiB
Smarty
{{/*
|
|
Backward-compatibility shim for the global.* → global.seaweedfs.* migration.
|
|
|
|
When the chart is used as a subchart, .Values.global is shared with sibling
|
|
charts. To avoid namespace pollution, app-specific values were moved under
|
|
global.seaweedfs.* (and global.registry was renamed to global.imageRegistry).
|
|
|
|
If a user still passes the OLD key paths (e.g. --set global.enableSecurity=true),
|
|
those keys will no longer have defaults in values.yaml, so their mere presence in
|
|
.Values.global means the user explicitly provided them. This helper merges them
|
|
into global.seaweedfs.* so the rest of the templates see a single, canonical
|
|
location.
|
|
|
|
The helper mutates .Values.global.seaweedfs in-place via `set` and produces no
|
|
output. It is idempotent (safe to call more than once in the same render).
|
|
|
|
Usage: {{- include "seaweedfs.compat" . -}}
|
|
*/}}
|
|
{{- define "seaweedfs.compat" -}}
|
|
{{- $g := .Values.global -}}
|
|
{{- $sw := $g.seaweedfs | default dict -}}
|
|
|
|
{{/* --- image-related renames --- */}}
|
|
{{- if hasKey $g "registry" -}}
|
|
{{- $_ := set $g "imageRegistry" (default $g.imageRegistry $g.registry) -}}
|
|
{{- end -}}
|
|
{{- if hasKey $g "repository" -}}
|
|
{{- $img := $sw.image | default dict -}}
|
|
{{- $_ := set $img "repository" (default $img.repository $g.repository) -}}
|
|
{{- $_ := set $sw "image" $img -}}
|
|
{{- end -}}
|
|
{{- if hasKey $g "imageName" -}}
|
|
{{- $img := $sw.image | default dict -}}
|
|
{{- $_ := set $img "name" (default $img.name $g.imageName) -}}
|
|
{{- $_ := set $sw "image" $img -}}
|
|
{{- end -}}
|
|
|
|
{{/* --- scalar keys that moved 1:1 under global.seaweedfs --- */}}
|
|
{{- range $key := list "createClusterRole" "imagePullPolicy" "restartPolicy" "loggingLevel" "enableSecurity" "masterServer" "serviceAccountName" "automountServiceAccountToken" "enableReplication" "replicationPlacement" -}}
|
|
{{- if hasKey $g $key -}}
|
|
{{- $_ := set $sw $key (index $g $key) -}}
|
|
{{- end -}}
|
|
{{- end -}}
|
|
|
|
{{/* --- nested dict keys: deep-merge so partial overrides work --- */}}
|
|
{{- range $key := list "securityConfig" "certificates" "monitoring" "serviceAccountAnnotations" "extraEnvironmentVars" -}}
|
|
{{- if hasKey $g $key -}}
|
|
{{- $old := index $g $key | default dict -}}
|
|
{{- $new := index $sw $key | default dict -}}
|
|
{{- if and (kindIs "map" $old) (kindIs "map" $new) -}}
|
|
{{- $_ := set $sw $key (merge $old $new) -}}
|
|
{{- else -}}
|
|
{{- $_ := set $sw $key $old -}}
|
|
{{- end -}}
|
|
{{- end -}}
|
|
{{- end -}}
|
|
|
|
{{- $_ := set $g "seaweedfs" $sw -}}
|
|
{{- end -}}
|