如何从现有的k8s秘密对象创建tls秘密

时间:2019-08-08 20:02:26

标签: ssl tls1.2 kubernetes-helm lets-encrypt nginx-ingress

我想使用头盔在tls控制器上进行nginx-ingress端接。如何引用一个秘密或从另一个已经创建并具有其值kubernetes.io/tls.crt的秘密创建类型.key的秘密对象。

我有一个在多个微服务上运行的应用程序。我正在创建头盔图以部署所有微服务。其中一项服务称为config-init,这是负责创建所有配置的job。 它创建的文件之一包括configMapsecret对象。两者都有相同的名字,说gluu

我遇到的问题是我似乎无法自动化下面显示的部分。

tls-secret.sh

if [ ! -f ingress.crt ]; then
    kubectl get secret gluu -o json \
    | grep '\"ssl_cert' \
    | awk -F '"' '{print $4}' \
    | base64 --decode > ingress.crt
fi

if [ ! -f ingress.key ]; then
    kubectl get secret gluu -o json \
    | grep '\"ssl_key' \
    | awk -F '"' '{print $4}' \
    | base64 --decode > ingress.key
fi

kubectl create secret tls tls-certificate --key ingress.key --cert ingress.crt

上面的文件从已经创建的秘密对象中获取ssl_certssl_key,然后使用kubectl命令创建一个新的tls类型对象。然后,创建的tls-certificate将在ingress中使用,如下所示:

spec:
  tls:
    - hosts:
      - {{ .Values.global.host }}
      secretName: {{ .Values.global.tlsSecret }} --> #tls-certificate

问题在于,这需要使用头盔进行自动化。

我希望可以自动执行tls-secret.sh掌控步骤,因为我们无法执行kubectl create ...掌控。

任何潜在客户,都欢迎提出建议。

0 个答案:

没有答案