如何通过values.yaml更新Keycloak Helm Chart版本?AKS升级异常
在AKS中升级Keycloak Helm Chart时镜像标签不生效的解决方案
原因分析
问题核心在于配置未被正确识别或引用:要么是自定义Chart的模板未读取values.yaml中的镜像配置,要么是使用Bitnami官方Chart时配置结构不匹配。
情况1:使用自定义Chart(如你提供的Chart.yaml)
如果是自己搭建的包含Keycloak的自定义Chart,按以下步骤排查:
检查模板文件的镜像引用
确保templates目录下的Deployment等文件中,镜像标签使用values.yaml中的配置,而非硬编码Chart.yaml的appVersion。
错误示例(使用旧版本值):image: "docker.io/bitnami/keycloak:{{ .Chart.AppVersion }}"正确示例(读取values配置):
image: "{{ .Values.keycloak.image.repository }}:{{ .Values.keycloak.image.tag }}"确认helm命令正确传递values文件
执行升级时必须指定自定义values.yaml,否则helm会使用默认配置:helm upgrade keycloak . -f values.yaml -n <你的命名空间>预览渲染结果验证
使用helm template命令查看渲染后的模板,确认镜像标签是否正确:helm template . -f values.yaml | grep "image:"
情况2:直接使用Bitnami官方Keycloak Chart
如果你的目标是基于Bitnami官方Chart做自定义配置,而非自建Chart,按以下步骤操作:
添加并更新Bitnami仓库
helm repo add bitnami https://charts.bitnami.com/bitnami helm repo update修正values.yaml结构
Bitnami官方Chart的镜像配置是顶层字段,无需keycloak.前缀,修改后的values.yaml如下:# 修正后的values.yaml image: repository: docker.io/bitnami/keycloak tag: 23.0.6-debian-11-r4 pullPolicy: IfNotPresent keycloakConfigCli: image: repository: docker.io/bitnami/keycloak-config-cli tag: 5.9.0-debian-11-r1 pullPolicy: IfNotPresent执行升级命令
helm upgrade keycloak bitnami/keycloak -f values.yaml -n <你的命名空间>验证升级结果
查看Pod使用的镜像标签:kubectl get pods -n <你的命名空间> -o jsonpath='{.items[0].spec.containers[0].image}'
额外排查步骤
- 若自定义Chart包含依赖,执行
helm dependency update .更新依赖缓存 - 清理helm本地缓存:
helm repo update确保拉取最新的Chart信息
内容的提问来源于stack exchange,提问作者Misha
相关产品推荐
相关产品推荐

