【问题标题】:Error: UPGRADE FAILED: failed to create resource: ConfigMap in version "v1" cannot be handled as a ConfigMap错误:升级失败:创建资源失败:版本“v1”中的 ConfigMap 无法作为 ConfigMap 处理
【发布时间】:2023-03-28 07:57:01
【问题描述】:

根据 github 上的 this spec 和这些 helm instructions,我正在尝试使用以下语法升级我们的 Helm 安装的 datadog:

helm upgrade datadog-monitoring --set datadog.confd."kube_scheduler\.yaml".instances[0].prometheus_url="http://localhost:10251/metrics",datadog.confd."kube_scheduler\.yaml".init_config= stable/datadog

但是,无论是否尝试更改 prometheus_url 值的语法(将 url 放在引号中、转义引号等),我都会收到以下错误:

错误:升级失败:创建资源失败:版本“v1”中的 ConfigMap 无法作为 ConfigMap 处理:v1.ConfigMap.Data:ReadString:需要“或 n,但找到 {,在 #10 字节中发现错误...|er.yaml":{"instances|..., 更大的上下文 ...|{"apiVersion":"v1","data":{"kube_scheduler.yaml":{"instances":[{ "prometheus_url":"\"http://localhost|...

如果我添加 --dry-run --debug 标志,我会得到以下 yaml 输出:

REVISION: 7
RELEASED: Mon Mar  2 14:28:52 2020
CHART: datadog-1.39.7
USER-SUPPLIED VALUES:
datadog:
  confd:
    kube_scheduler.yaml:
      init_config: ""
      instances:
      - prometheus_url: http://localhost:10251/metrics

Yaml 输出似乎与此 github page 中指定的集成相吻合。

【问题讨论】:

  • 有时您可能会在 APP_PORT 上遇到问题:“8080”。在这种情况下,您需要在代码中解析为整数。但是使用双引号或单引号将解决问题

标签: kubernetes-helm datadog


【解决方案1】:

嘿!

如果我的答案不正确,请提前抱歉,因为 我是 kuber 和 helm 的新手,我不能确定它是否会有所帮助,但也许会有所帮助。 p>

因此,据我所知,问题在于生成的 ConfigMap 配置。根据我的经验,我在以下配置中遇到了同样的问题:

apiVersion: v1
kind: ConfigMap
metadata:
  name: my-config
  labels:
    group: mock
data:
  APP_NAME: my-mock
  APP_PORT: 8080
  APP_PATH: /api

而我只能通过用引号将所有值括起来来解决它:

apiVersion: v1
kind: ConfigMap
metadata:
  name: my-config
  labels:
    group: mock
data:
  APP_NAME: "my-mock"
  APP_PORT: "8080"
  APP_PATH: "/api"

【讨论】:

  • 有时您可能会在 APP_PORT 上遇到问题:“8080”。在这种情况下,您需要在代码中解析为整数。但是使用双引号或单引号将解决问题。
猜你喜欢
  • 2022-09-29
  • 2022-10-13
  • 1970-01-01
  • 2021-11-22
  • 1970-01-01
  • 1970-01-01
  • 2022-09-30
  • 1970-01-01
  • 2018-12-18
相关资源
最近更新 更多