kubernetes 更新时出现舵错误:升级失败:修补程序列表中的顺序

mutmk8jj  于 2023-01-16  发布在  Kubernetes
关注(0)|答案(3)|浏览(140)

我在部署helm时遇到了问题。在我向部署中添加了新的环境变量后,出现了这个问题。
当我执行:helm upgrade [RELEASE] [CHART]
出现以下错误:

Error: The order in patch list:
[
    map[name:APP_ENV value:prod]
    map[name:MAILER_URL value:...] 
    map[name:APP_VERSION value:v0-0-3] 
    map[name:APP_COMMIT_SHA value:...]
]
 doesn't match $setElementOrder list:
[
    map[name:APP_ENV] 
    map[name:COMPOSER_HOME] 
    map[name:PHP_XDEBUG_ENABLED] 
    map[name:DATABASE_DRIVER] 
    map[name:DATABASE_HOST] 
    map[name:DATABASE_NAME] 
    map[name:DATABASE_USER] 
    map[name:SECRET] 
    map[name:INDEX_HOSTS]
    map[name:MAILER_FROM_ADDRESS] 
    map[name:MAILER_FROM_NAME] 
    map[name:UPLOAD_DIR] 
    map[name:ARCHIVE_DIR] 
    map[name:CATALOG_STORAGE_DIR] 
    map[name:ASSET_STORAGE_DIR] 
    map[name:TMP_STORAGE_DIR] 
    map[name:UPLOAD_TMP_DIR] 
    map[name:APP_VERSION] 
    map[name:APP_COMMIT_SHA] 
    map[name:APP_CRON] 
    map[name:DATABASE_PASSWORD] 
    map[name:MAILER_URL]
    ...
]

但是,如果我使用标志--dry-run执行相同的命令,我不会得到任何错误(helm upgrade [RELEASE] [CHART] --dry-run
我不知道这个问题的原因,也不知道如何解决

rqqzpn5f

rqqzpn5f1#

我发现这个问题的原因是我复制了一些envvar。在我的部署中,我有:

...
spec:
  template:
    spec:
      container:
        env:
        - name:  ENV_VAR_NAME
          value: "test"
        - name:  ENV_VAR_NAME
          value: "test"
...

删除重复变量后:

...
spec:
  template:
    spec:
      container:
        env:
        - name:  ENV_VAR_NAME
          value: "test"
...

helm upgrade [RELEASE] [CHART]工作正常

rxztt3cl

rxztt3cl2#

我也有同样的错误,但没有重复的变量。按字母顺序重新排序env变量对我很有效:-(

ergxz8rk

ergxz8rk3#

我遇到了同样的错误,但没有重复的env变量。我通过执行以下操作强制更新:

helm upgrade [RELEASE] [CHART] --force

相关问题