【问题标题】:Kubectl update ConfigMap with filesKubectl 使用文件更新 ConfigMap
【发布时间】:2020-04-03 10:32:08
【问题描述】:

我有一个在 K8s 上工作的工具,它使用四个配置文件:

falco-config/falco.yaml             
falco-config/falco_rules.local.yaml 
falco-config/falco_rules.yaml       
falco-config/k8s_audit_rules.yaml

在部署时,我使用以下命令为此工具创建配置映射:

kubectl create configmap falco-config --from-file=..../falco-config/

它使用这四个文件创建一个 ConfigMap。现在假设我只想更新falco_rules.yaml,但我没有(出于不同原因)其他文件。哪个 kubectl 命令可以帮助我做到这一点?我在 K8s doc 和 Stackoverflow 上搜索了解决方案,但没有成功。

另一个问题是,有没有一个例子可以通过 Javascript 中的 K8s API 做同样的事情?

注意: 我读过这个问题: Kubectl update configMap 但它没有解决通过 API 进行的修改以及我只需要更新一个文件而整个配置由 4 个文件组成的事实。

【问题讨论】:

  • 这能回答你的问题吗? Kubectl update configMap
  • 没有。请参阅我上面的说明。
  • 再次嗨,更好地阅读他们非常相似的问题。该问题讨论了只有一个配置文件的 ConfigMap,只需要更改一个参数。就我而言,我的 ConfigMap 由 4 个文件组成,我只需要更新一个。查看答案,除非您不以编程方式操作 ConfigMap,否则似乎两者都没有解决方案。如果您认为这个问题是重复的,我不反对,对此我深表歉意。我在提交之前进行了搜索,我认为我的问题有所不同,因为我认为单个文件是可变的。

标签: kubernetes


【解决方案1】:

很遗憾,无法一次性更新 ConfigMap 的特定字段。假设已经创建了 ConfigMap 资源,您可以按以下方式解决此问题:

  1. 获取ConfigMap资源:kubectl get configmap <name> --export -o yaml > config.yaml本地获取ConfigMap资源
  2. 更新config.yaml 中的字段,以便正确注入falco_rules.yaml 的值。这可以通过编程方式完成。
  3. kubectl apply -f config.yaml 重新配置现有的 ConfigMap 资源

【讨论】:

  • 是的,我想到了这样的解决方案。但你有我的问题。我想避免以编程方式操作文件并有一个更优雅的解决方案。
猜你喜欢
  • 2018-10-04
  • 2023-01-25
  • 1970-01-01
  • 1970-01-01
  • 2019-02-10
  • 1970-01-01
  • 2021-01-01
  • 1970-01-01
  • 2018-12-20
相关资源
最近更新 更多