【问题标题】:Helm upgrade fails on new subchart新子图上的 Helm 升级失败
【发布时间】:2023-03-08 14:45:01
【问题描述】:

升级包含新子图表的图表时,Helm 失败

例如:

chart
    /templates
    /charts
        /sub-1
    values.yaml

现在此图表已更新,并添加了一个新的子图表,其中包含配置图等。

chart
    /templates
    /charts
        /sub-1
        /sub-2
            /templates
                configmap.yaml #config
    values.yaml

当我们运行 helm upgrade <release> <chart> --install 时,我们不断得到:

Error: UPGRADE FAILED: no ConfigMap with the name "config" found

我的猜测是 helms 试图将它与 config 的“先前”版本进行比较,但它还不存在。因此错误。但是,如何在不删除并重新安装图表的情况下完成这项工作。这不是生产场景的最佳选择。

【问题讨论】:

  • 你试过--force 标志吗?
  • @RVandersteen 一个可能的原因是配置映射在被创建之前就被使用了。你能检查并确认不是这样吗?
  • @Emruz Hossain 在生产场景中不应该鼓励使用武力。我们不知道会产生什么影响。
  • 我确实尝试了 --force 然后它工作了 - 但正如 @AnanthuRV 所说,这可能不是一个好主意。
  • @AnanthuRV 双重检查,事实并非如此

标签: kubernetes kubernetes-helm


【解决方案1】:

我会在您安装 Chart 的任何 Kubernetes 命名空间中创建一个空白的 ConfigMap。

$ kubectl -n <namespace> create cm config

如果出于某种原因它抱怨 data 字段或其他字段不可用,您始终可以创建一个虚拟字段:

$ kubectl -n <namespace> edit cm config

$ kubectl -n <namespace> patch cm config -p '{"data": {"dummy": "dummy1"}}'

【讨论】:

  • 这可能是最终要走的路,希望进行非人工干预,但除了--force,我没有看到解决方案。
猜你喜欢
  • 2022-11-11
  • 1970-01-01
  • 1970-01-01
  • 2022-09-26
  • 2021-04-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-29
相关资源
最近更新 更多