Kubectl用文件更新ConfigMap

时间:2020-04-03 10:32:08

标签: kubernetes

我有一个使用K8的工具,它使用四个配置文件:

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个文件组成的。

1 个答案:

答案 0 :(得分:2)

不幸的是,无法一口气更新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资源