Для деплоя в kubernetes используется helm (kubernetes package manager).

В директории .helm в корне проекта описывается helm chart:

.helm/
  templates/
    <name>.yaml
    <name>.tpl
  charts/
  secret/
  Chart.yaml
  values.yaml
  secret-values.yaml

Структура chart-а включает в себя дополнительные файлы secret-values.yaml, директорию и secret, подробнее о которых см. в разделе работа с секретами.

Настройки подключения к kubernetes

Подключение к kubernetes настраивается через тот же конфигурационный файл, что и kubectl: ~/.kube/config.

  • Используется контекст current-context, если он установлен или первый попавшийся контекст из списка contexts.
  • Используется тот же kubernetes namespace по умолчанию, что и kubectl: из поля namespace активного контекста.
    • Если namespace по умолчанию не указан в ~/.kube/config, то используется namespace=default.

Управление выкатом

dapp kube deploy

dapp kube deploy REPO [--image-version=IMAGE_VERSION] [--namespace=NAMESPACE] [--set=<value>] [--values=<values-path>] [--secret-values=<secret-values-path>]

Запускает процесс выката helm-chart’а в kubernetes.

В helm будет создан или обновлен релиз с именем имя dapp-<NAMESPACE>.

REPO

Адрес репозитория, из которого будут взяты образы. Данный параметр должен совпадать с параметром, указываемым в dapp dimg push.

При указании специального значения :minikube будет использован локальный proxy для docker-registry из minikube, см. использование minikube.

--image-version=IMAGE_VERSION

Версия образа из указанного репозитория. Значение параметра пересекается с параметрами --tag*, указываемыми в dapp dimg push.

--namespace=NAMESPACE

Использовать указанный kubernetes namespace. Если не указан, то будет использован namespace по умолчанию в соответствии с ~/.kube/config или, если не указано, namespace=default.

--set=<value>

Передается без изменений в параметр helm --set.

--values=<values-path>

Передается без изменений в параметр helm --values.

Позволяет указать дополнительный values yaml файл, помимо стандартного .helm/values.yaml.

--secret-values=<secret-values-path>

Позволяет указать дополнительный secret-values yaml файл, помимо стандартного .helm/secret-values.yaml. Подробнее о секретах см. в разделе работе с секретами.

dapp kube dismiss

dapp kube dismiss [--namespace=NAMESPACE] [--with-namespace]

Запускает процесс удаления релиза <имя dapp>-<NAMESPACE> из helm.

--namespace=NAMESPACE

Использовать указанный kubernetes namespace. Если не указан, то будет использован namespace по умолчанию в соответствии с ~/.kube/config или, если не указано, namespace=default.

--with-namespace

Удалить используемый kubernetes namespace после удаления релиза из helm. По умолчанию namespace удален не будет.