【问题标题】:How do I remove a specific block from the value of a config map?如何从配置映射的值中删除特定块?
【发布时间】:2022-01-28 17:14:33
【问题描述】:

我有一个如下所示的配置映射:

kubectl describe configmap example-config --namespace kube-system
Name:         example-config
Namespace:    kube-system
Labels:       <none>
Annotations:  <none>

Data
====
mapRoles:
----
- rolearn: arn:aws:iam::0123456789012:role/user-role-1
  username: system:node:{{EC2PrivateDNSName}}
  groups:
  - system:bootstrappers
  - system:nodes
- rolearn: arn:aws:iam::0123456789012:role/user-role-2
  username: system:node:{{EC2PrivateDNSName}}
  groups:
  - system:bootstrappers
  - system:nodes

我想从 configmap 中删除 user-role-2。我想我需要使用带有“删除”操作的 kubectl 补丁。从配置映射中删除部分的语法是什么?

这是我可以用来附加到配置映射的示例命令:

kubectl patch -n=kube-system cm/aws-auth --patch "{\"data\":{\"mapRoles\": \"- rolearn: "arn:aws:iam::0123456789012:role/user-role-3" \n  username: system:node:{{EC2PrivateDNSName}}\n  groups:\n  - system:bootstrappers\n  - system:nodes\n\"}}" 

【问题讨论】:

    标签: kubernetes kubectl configmap


    【解决方案1】:

    根据 kubernetes 官方文档: https://kubernetes.io/docs/tasks/manage-kubernetes-objects/update-api-object-kubectl-patch/

    kubectl patch 中没有这样的语法可以从 api 对象(如配置映射)中删除部分。

    这是我可以用来附加到配置映射的示例命令:

    kubectl patch -n=kube-system cm/aws-auth --patch "{\"data\":{\"mapRoles\": \"- rolearn: "arn:aws:iam::0123456789012:role/user-role-3" \n username: system:node:{{EC2PrivateDNSName}}\n groups:\n - system:bootstrappers\n - system:nodes\n\"}}"

    上面的命令用于替换configmap中的整个数据字段。所以你可以简单地用它来修补更新你想要的数据:

    kubectl patch -n=kube-system cm/example-config --patch '{"data":{"mapRoles": "- rolearn: arn:aws:iam::0123456789012:role/user-role-1\n  username: system:node:{{EC2PrivateDNSName}}\n  groups:\n  - system:bootstrappers\
    n  - system:nodes"}}'
    

    【讨论】:

      【解决方案2】:

      我认为最简单的方法是这样的:

      kubectl get configmaps foo -o yaml &gt; foo.yaml

      现在以您想要的方式编辑foo.yaml

      然后应用你的新配置:

      kubectl apply -f foo.yaml

      【讨论】:

        猜你喜欢
        • 2020-08-19
        • 2018-07-08
        • 1970-01-01
        • 1970-01-01
        • 2016-09-15
        • 2016-07-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多