[Helm Chart] - 对图像注册表和仓库处理不当

作者: tmeltser创建于 2024年12月18日更新于 2026年9月12日
标签kind/buglifecycle/stale

描述 bug:

helm 图表中包含多个注册表键,都已注释。如果其中一个未标记,则 "image" 名称模板将生成一个错误的镜像引用: 从 values.yaml:

image:
  # 从容器注册表中拉取管理器镜像的容器注册表。
  # +docs:property
  # registry: quay.io
  # 容器镜像为 cert-manager 控制器。
  # +docs:property
  repository: quay.io/jetstack/cert-manager-controller

从 _helpers.tpl:

{{- define "image" -}}
{{- $defaultTag := index . 1 -}}
{{- with index . 0 -}}
{{- if .registry -}}{{ printf "%s/%s" .registry .repository }}{{- else -}}{{- .repository -}}{{- end -}}
{{- if .digest -}}{{ printf "@%s" .digest }}{{- else -}}{{ printf ":%s" (default $defaultTag .tag) }}{{- end -}}
{{- end }}
{{- end }} 

行中的代码 {{- if .registry -}}{{ printf "%s/%s" .registry .repository }}{{- else -}}{{- .repository -}}{{- end -}} 将生成一个错误的镜像引用,因为 repository 也包含注册表 ...

内容来源: cert-manager/cert-manager