kubernetes - 从文件或使用 json 修补 configmap

标签 kubernetes amazon-eks configmap

我想编辑来自 aws-auth 的配置映射在 vagrant 部署期间为我的 vagrant 用户提供对 EKS 集群的访问权限。我需要在现有的 aws-auth 中添加一个片段配置图。我如何以编程方式执行此操作?

如果你做 kubectl edit -n kube-system configmap/aws-auth你得到

apiVersion: v1
data:
  mapRoles: |
    - groups:
      - system:bootstrappers
      - system:nodes
      rolearn: arn:aws:iam::123:role/nodegroup-abc123
      username: system:node:{{EC2PrivateDNSName}}
kind: ConfigMap
metadata:
  creationTimestamp: "2019-05-30T03:00:18Z"
  name: aws-auth
  namespace: kube-system
  resourceVersion: "19055217"
  selfLink: /api/v1/namespaces/kube-system/configmaps/aws-auth
  uid: 0000-0000-0000

我需要以某种方式在其中输入这个位。

  mapUsers: |
    - userarn: arn:aws:iam::123:user/sergeant-poopie-pants
      username: sergeant-poopie-pants
      groups:
      - system:masters

我试过做 cat <<EOF > {file} EOF然后从文件中打补丁。但是 patch 中不存在该选项仅在 create上下文。

我还发现了这个:How to patch a ConfigMap in Kubernetes

但似乎没有用。或许我并不真正理解建议的解决方案。

最佳答案

有几种方法可以使事情自动化。直接的方式是 kubectl get configmap -o yaml ... > cm.yml && patch ... < cm.yml > cm2.yml && kubectl apply -f cm2.yml或类似的东西。您可能希望使用解析和修改 YAML 数据的脚本而不是文字补丁来使其不那么脆弱。你也可以做类似 EDITOR="myeditscript" kubectl edit configmap ... 的事情但这比我想做的更聪明。

关于kubernetes - 从文件或使用 json 修补 configmap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57546656/

相关文章:

kubernetes - GKE 上的 Clean Ambassador Edge Stack 安装因 DNS 解析失败

kubernetes - 当我从 EKS 中删除相应的入口时,ALB 监听器不会自动删除

kubernetes - 递归地从文件创建配置映射

ConfigMap中设置的环境变量动态变化

kubernetes - 如何使用kubectl重新部署谷歌云平台

linux - 在节点中访问 Kubernetes DNS 服务器

kubernetes - Kubernetes-监控号码请求

amazon-web-services - Kubernetes CoreDNS 间歇性解析名称

kubernetes - Terraform:错误:Kubernetes 集群无法访问:配置无效

kubernetes - 我们可以将相同的Configmap用于不同的卷安装吗?