代码之家  ›  专栏  ›  技术社区  ›  CodeMonkey

kubectl为所有命名空间创建secret docker注册表

  •  0
  • CodeMonkey  · 技术社区  · 3 年前

    我有一个用于测试的本地集群,我正在用我编写的脚本启动它。在脚本中,我使用以下命令:

    kubectl create secret docker-registry myname --namespace mynamespace --docker-server "my.server.com" --docker-username "user" --docker-password "pass"

    这对该命名空间来说很好。

    我的问题是,我是否可以在一个命令中为所有名称空间(包括稍后将创建的名称空间)创建秘密,而不仅仅是为特定的名称空间?

    0 回复  |  直到 3 年前
        1
  •  0
  •   Emile Pels    3 年前

    现在可以使用类似的方法为每个命名空间创建机密:

    #!/usr/bin/env bash
    
    set -eu
    
    for namespace in $(kubectl get namespaces -o=json | jq -r ".items | .[] | .metadata.name"); do
        kubectl create secret docker-registry myname --namespace "$namespace" --docker-server "my.server.com" --docker-username "user" --docker-password "pass" || true
    done
    

    然而,在未来的每个新命名空间中都不支持开箱即用地创建机密。为此,您可以考虑通过编写自定义运算符来扩展Kubernetes。请参阅: https://kubernetes.io/docs/concepts/extend-kubernetes/operator/