我有一个使用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个文件组成的。
答案 0 :(得分:2)
不幸的是,无法一口气更新ConfigMap的特定字段。假设已经创建了ConfigMap资源,则可以按照以下方法解决此问题:
kubectl get configmap <name> --export -o yaml > config.yaml
以在本地获取ConfigMap资源config.yaml
中的字段,以便正确注入falco_rules.yaml
的值。这可以通过编程来完成。kubectl apply -f config.yaml
重新配置现有的ConfigMap资源