Вы можете сделать следующее для вашей конфигурации:
apiVersion: v1
kind: Secret
metadata:
name: cloudsql-instance-credentials
namespace: wp-{{ .Values.name }}
labels:
app: wp-{{ .Values.name }}
type: Opaque
data:
credentials.json: |-
{{ include (print $.Template.BasePath "/_helper_conf.tpl") . | b64enc }}
Обратите внимание, что когда вы пытаетесь внедрить конфигурацию в секретную (особенно большие), вам может понадобиться использовать | -
вы также можете использовать помощника типа
{{ include (print $.Template.BasePath "/_helper_conf.tpl") . | b64enc }}
Или даже лучше, в вашей конфигурации yaml (values.yml) вы можете просто написать следующее:
dbCred:
type: ''
project_id: ''
private_key_id: ''
private_key: '-----BEGIN PRIVATE KEY-----\n\n-----END PRIVATE KEY-----\n'
client_email: ''
client_id: ''
auth_uri: ''
token_uri: ''
auth_provider_x509_cert_url: ''
client_x509_cert_url: ''
Чтобы использовать этот тип конфигурации, вы можете проверить объект ниже:
apiVersion: v1
kind: Secret
metadata:
name: cloudsql-instance-credentials
namespace: wp-{{ .Values.name }}
labels:
app: wp-{{ .Values.name }}
type: Opaque
data:
credentials.json: |-
{{ toJson .Values.dbCred | b64enc }}
Использование этой конфигурации состоит в том, чтобы предоставить абстракцию предоставленного json и поместить его в ваши values.yml
{{ toJson .Values.dbCred | b64enc }}
Обратите внимание, что это может дублироваться, если вы поддерживаете несколько сред, поэтому вы можете предпочесть использовать помощник и некоторые переменные внутри (или tpl), чтобы избежать дублирования кода
Надеюсь, это поможет