kubernetes - 更新时 helm 错误:升级失败:补丁列表中的顺序
问题描述
我对 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]
...
]
但是,如果我使用 flag 执行相同的命令--dry-run
,我不会收到任何错误 ( helm upgrade [RELEASE] [CHART] --dry-run
)
我不知道这个问题的原因或如何解决它
解决方案
我发现这个问题的原因是我复制了一些 envVars。在我的部署中,我有:
...
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]
正常
推荐阅读
- dart - 根据方向改变脚手架内容的正确方法
- javascript - 使用 JavaScript 后不返回显示块的初始 css 设置
- python - 使用 needs_threshold 作为 make_scorer 函数的参数有什么用?
- java - Java - 使用给定的 consumerKey、consumerSecret、accessToken、accessTokenSecret 和 realm 执行 oAuth1.0 认证请求
- flex-lexer - 行结束 lex
- javascript - 构建一个按钮以每次生成一个新类
- json - 为什么我的 json 不能将列表中的所有对象解析为带有标题的不同行?
- javascript - 来自兄弟组件的子组件的 google-maps-react onClick onMarkerClick
- c - 双端队列,按引用调用(创建标头)
- c++ - 如何将此代码从 C 转换为 C++?