我想使用头盔在tls
控制器上进行nginx-ingress
端接。如何引用一个秘密或从另一个已经创建并具有其值kubernetes.io/tls
和.crt
的秘密创建类型.key
的秘密对象。
我有一个在多个微服务上运行的应用程序。我正在创建头盔图以部署所有微服务。其中一项服务称为config-init
,这是负责创建所有配置的job
。
它创建的文件之一包括configMap
和secret
对象。两者都有相同的名字,说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_cert
和ssl_key
,然后使用kubectl命令创建一个新的tls类型对象。然后,创建的tls-certificate
将在ingress
中使用,如下所示:
spec:
tls:
- hosts:
- {{ .Values.global.host }}
secretName: {{ .Values.global.tlsSecret }} --> #tls-certificate
问题在于,这需要使用头盔进行自动化。
我希望可以自动执行tls-secret.sh
掌控步骤,因为我们无法执行kubectl create ...
掌控。
任何潜在客户,都欢迎提出建议。