私たちの製品にヘルムチャートを書こうとしています。画像はGCRプライベートレポに保存されます。すべてのコンポーネントのチャートは準備ができていますが、imagePullSecretsのチャートにYAMLファイルを書き込もうとしています。gcrからimagePullSecretのチャートを書くには
kubectl create secret docker-registry mydockercfg \
--docker-server "https://eu.gcr.io" \
--docker-username _json_key \
--docker-email [email protected] \
--docker-password=$(cat your_service_account.json)
しかし、私は値のパスワードに「your_service_account.json」の内容を記入する方法がわからない:私はまたしてimagePullSecretを作成する方法を知っている、hereから
をチャートのヒントを読みましたそのチャートの.yaml。 values.yamlのパスワードを更新するために、 "your_service_account.json"という名前を変更することができます。
次のように現在、私の実装は次のとおりです。secrets.yamlの
$ cat values.yaml
secretName: gcr-json-key-test
imageCredentials:
registry: us.gcr.io/xxxxx
username: _json_key
password:
内容:_helpers.tplの
$ cat templates/secrets.yaml
apiVersion: v1
kind: Secret
metadata:
name: {{ .Values.secretName }}
labels:
app: {{ template "fullname" . }}
chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
release: "{{ .Release.Name }}"
heritage: "{{ .Release.Service }}"
type: kubernetes.io/dockercfg
data:
.dockerconfigjson: {{ template "imagePullSecret" . }}
内容:
$ cat templates/_helpers.tpl
{{/*
Expand the name of the chart.
*/}}
{{- define "name" -}}
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/*
Create a default fully qualified app name.
We truncate at 63 chars because some Kubernetes name fields are limited
to this (by the DNS naming spec).
*/}}
{{- define "fullname" -}}
{{- $name := default .Chart.Name .Values.nameOverride -}}
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{- define "imagePullSecret" }}
{{- printf "{\"auths\": {\"%s\": {\"auth\": \"%s\"}}}" .Values.imageCredentials.registry (printf "%s:%s" .Values.imageCredentials.username .Values.imageCredentials.password | b64enc) | b64enc }}
{{- end }}
そして
を使用して$ helm install ./secrets --set imageCredentials.password "$(cat ./my_service_account.json)"
はエラーが発生します:
Error: This command needs 1 argument: chart name
どのように私はこの問題を解決することができますか?
設定値のフォーマットは次のとおりです。--set = 。 "="を試しましたか? $ helm install ./secrets --set imageCredentials.password = "$(cat ./my_service_account.json)" –
kscoder
ありがとうございました。私はまだ私の入力を修正した後に問題があります。文字の制限については、次の答えに出力を置きます。 –
表示されている最新のエラーで質問を更新できますか? また、your_service_account.jsonの形式は何ですか? – kscoder