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

У меня есть файл склада доверенных сертификатов (двоичный файл), который мне нужно предоставить при обновлении helm. Этот файл отличается для каждого целевого env (dev, qa, staging или prod). Поэтому я могу предоставить этот файл только во время развертывания. helm upgrade --set-file не принимает двоичный файл. Это проблема, которую я нашел здесь: https://github.com/helm/helm/issues/3276. Файлы доверенного хранилища хранятся в хранилище учетных данных Jenkins.

1 Ответ

1 голос
/ 11 марта 2020

Как сама команда описана ниже:

--set-file stringArray     set values from respective files specified via the command line (can specify multiple or separate values with commas: key1=path1,key2=path2)

также важно знать Формат и ограничения --set .

Ошибка, которую вы см .: Error: failed parsing --set-file data... означает, что файл, который вы пытаетесь использовать, не соответствует требованиям. См. Пример ниже:

--set-file key=filepath - это другой вариант --set. Он читает файл и использует его содержимое в качестве значения. Примером его использования является вставка многострочного текста в значения без учета отступов в YAML. Скажем, вы хотите создать бригадный проект с определенным значением, содержащим 5 строк JavaScript кода, вы можете написать значение values.yaml, например:

defaultScript: |
  const { events, Job } = require("brigadier")
  function run(e, project) {
    console.log("hello default script")
  }
  events.on("run", run)

Встраиваясь в YAML, вам будет труднее использовать возможности IDE и среду тестирования, и так далее, которая поддерживает написание кода. Вместо этого вы можете использовать --set-file defaultScript=brigade.js с brigade.js, содержащим:

const { events, Job } = require("brigadier")
function run(e, project) {
  console.log("hello default script")
}
events.on("run", run)

Надеюсь, это поможет.

...