werf реализует режим гитерминизма при чтении конфигурации helm. Все конфигурационные файлы и дополнительные файлы (указанные через параметры) должны быть в коммитнуты в текущем коммите git репозитория проекта, потому что werf будет читать конфигурацию напрямую из git. Эти файлы включают в себя:

  1. Все конфигурационные файлы чарта:

    .helm/
      Chart.yaml
      Chart.lock
      templates/
        <name>.yaml
        <name>.tpl
        <some_dir>/
          <name>.yaml
          <name>.tpl
      charts/
      secret/
      values.yaml
      secret-values.yaml
    
  2. Любые дополнительные файлы со значениями (values), указанные пользователем с помощью опций --values, --secret-values, --set-file.

ЗАМЕЧАНИЕ werf поддерживает режим разработки, который позволяет работать с файлами проекта без создания ненужных промежуточных коммитов в процессе отладки и разработки. Режим активируется опцией --dev (к примеру, werf converge --dev).

Сабчарты и гитерминизм

Для корректного использования сабчартов необходимо добавить файл .helm/Chart.lock и коммитнуть его в git репозиторий. werf автоматически скачает все зависимости указанные в lock-файле и загрузит файлы сабчартов корректно. Для стандартного кейса использования рекомендуется добавить директорию .helm/charts в .gitignore.

Имеется возможность явно добавить файлы сабчартов в директорию .helm/charts/ и коммитнуть содержимое этой директории в git репозиторий. В таком случае werf скачает все сабчарты указанные в .helm/Chart.lock и загрузит чарты существующие в директории .helm/charts и совместит их. Чарты указанные в .helm/charts будут иметь приоритет в данном случае и должны переопределять чарты указанные в .helm/Chart.lock.

Больше информации по сабчартам в отдельной статье: зависимости чартов.