Я немного рассуждаю о том, как получить шаблонный файл.
У меня есть шаблон Secret, определенный
apiVersion: v1
kind: Secret
metadata:
name: "awx-secrets"
type: Opaque
data:
confd_contents: <value-is-an-entire-file>
Теперь файл credentials.py
, который должен бытьзначение ключа confd_contents
выглядит как
DATABASES = {
'default': {
'ATOMIC_REQUESTS': True,
'ENGINE': 'django.db.backends.postgresql',
'NAME': "{{ .Values.dbDatabaseName }}",
'USER': "{{ .Values.dbUser }}",
'PASSWORD': "{{ .Values.dbPassword }}",
'HOST': "{{ .Values.dbHostname }}",
'PORT': "{{ .Values.dbService.port }}",
}
}
Как вы можете видеть, в этом файле также есть значения, которые определены в моем values.yaml
файле.
Теперь я хочуубедитесь, что файл credentials.py
отображается с правильными значениями, а затем передается в Secret и что секрет отображается правильно.
Я попытался определить его как объект File, выполнив следующее:
apiVersion: v1
kind: Secret
metadata:
name: "awx-secrets"
type: Opaque
data:
confd_contents: {{ .Files.Get "files/credentials.py" }}
Но это не работает.Если я попытаюсь создать шаблон, я получу реальные имена переменных:
helm template management
apiVersion: v1
kind: Secret
metadata:
name: "awx-secrets"
type: Opaque
data:
confd_contents: DATABASES = {
'default': {
'ATOMIC_REQUESTS': True,
'ENGINE': 'django.db.backends.postgresql',
'NAME': "{{ .Values.dbDatabaseName }}",
'USER': "{{ .Values.dbUser }}",
'PASSWORD': "{{ .Values.dbPassword }}",
'HOST': "{{ .Values.dbHostname }}",
'PORT': "{{ .Values.dbService.port }}",
}
}
Я также попытался поместить весь файл в свой секретный шаблон.Что-то вроде
apiVersion: v1
kind: Secret
metadata:
name: "awx-secrets"
type: Opaque
data:
confd_contents: DATABASES = {
'default': {
'ATOMIC_REQUESTS': True,
'ENGINE': 'django.db.backends.postgresql',
'NAME': "{{ .Values.dbDatabaseName }}",
'USER': "{{ .Values.dbUser }}",
'PASSWORD': "{{ .Values.dbPassword }}",
'HOST': "{{ .Values.dbHostname }}",
'PORT': "{{ .Values.dbService.port }}",
}
}
Когда я запускаю helm template management
, он отображается правильно, но когда я делаю helm install
, я получаю ошибку:
error: error parsing test.yaml: error converting YAML to JSON: yaml: line 8: mapping values are not allowed in this context
Любая идея, что я делаю неправильноили что может помочь?