您可以自己编写该 yaml,但使用以下两个步骤创建它会更快kubectl
:
- 生成一个“yaml”文件。您可以使用相同的命令,但在空运行模式和输出模式下
yaml
。
下面是一个命令示例,它将一个秘密保存到一个kubectl
版本 < 1.18 的 'docker-secret.yaml' 文件中(检查版本kubectl version --short|grep Client
):
kubectl create secret docker-registry --dry-run=true $secret_name \
--docker-server=<DOCKER_REGISTRY_SERVER> \
--docker-username=<DOCKER_USER> \
--docker-password=<DOCKER_PASSWORD> \
--docker-email=<DOCKER_EMAIL> -o yaml > docker-secret.yaml
对于kubectl
版本 >= 1.18:
kubectl create secret docker-registry --dry-run=client $secret_name \
--docker-server=<DOCKER_REGISTRY_SERVER> \
--docker-username=<DOCKER_USER> \
--docker-password=<DOCKER_PASSWORD> \
--docker-email=<DOCKER_EMAIL> -o yaml > docker-secret.yaml
您可以像任何其他 Kubernetes 'yaml' 一样应用该文件:
kubectl apply -f docker-secret.yaml
UPD,作为一个问题已更新。
如果您使用的是 Helm,这里是有关如何创建ImagePullSecret
.
来自文档:
- 首先,假设凭证是在
values.yaml
文件中定义的,如下所示:
imageCredentials:
registry: quay.io
username: someone
password: sillyness
- 然后我们定义我们的帮助模板如下:
{{- define "imagePullSecret" }}
{{- printf "{\"auths\": {\"%s\": {\"auth\": \"%s\"}}}" .Values.imageCredentials.registry (printf "%s:%s" .Values.imageCredentials.username .Values.imageCredentials.password | b64enc) | b64enc }}
{{- end }}
- 最后,我们在更大的模板中使用辅助模板来创建
Secret
清单:
apiVersion: v1
kind: Secret
metadata:
name: myregistrykey
type: kubernetes.io/dockerconfigjson
data:
.dockerconfigjson: {{ template "imagePullSecret" . }}