Как передать файл, используя файл значений в рулевой диаграмме? - PullRequest
0 голосов
/ 26 февраля 2020

Я хочу передать сертификат на рулевую диаграмму, и в настоящее время я передаю ее с использованием --set-file global.dbValues.dbcacertificate =. / Server.crt, но вместо этого я хочу передать файл в файле значений на рулевой диаграмме. Файл Values.yaml читает

global:
  dbValues:
    dbcacertificate: <Some Way to pass the .crt file>

1 Ответ

3 голосов
/ 26 февраля 2020

Согласно соответствующей документации , необходимо предварительно обработать файл, внешний по отношению к диаграмме, в средство, которое может быть предоставлено через --set или --values, поскольку .Files.Get не может прочитать пути к файлам, которые являются внешними по отношению к комплекту диаграммы.

Итак, учитывая следующий пример шаблона templates/secret.yaml, содержащий:

apiVersion: v1
kind: Secret
data:
  dbcacertificate: {{ .Values.dbcacertificate | b64enc }}

, можно использовать интерполяцию оболочки как:

helm template --set dbcacertificate="$(cat ./server.crt)" .

или, если интерполяция оболочки не подходит для ваших обстоятельств, вы можете предварительно обработать сертификат в формате, совместимом с yaml, и передать его через --values:

$ { echo "dbcacertificate: |"; sed -e 's/^/    /' server.crt; } > ca-cert.yaml
$ helm template --values ./ca-cert.yaml .
...