ПРИМЕЧАНИЕ: в настоящее время werf поддерживает сборку образов с использованием Docker-сервера или без его использования (в экспериментальном режиме). Эта страница содержит инструкции, которые подходят только для экспериментального режима без Docker-сервера. На данный момент для этого типа сборки доступен только сборщик образов на основе Dockerfile’ов. Сборщик Stapel будет доступен через некоторое время.

1. Настройте GitLab-раннер в Kubernetes

Убедитесь, что удовлетворены системные требования и выберите один из доступных режимов работы (в зависимости от возможностей вашего GitLab-раннера) и перейдите к нему.

Ядро Linux с поддержкой OverlayFS в режиме rootless

Базовая конфигурация раннера:

[[runners]]
  name = "docker-runner-for-werf"
  executor = "docker"
  ...
  [runners.docker]
    security_opt = ["seccomp:unconfined", "apparmor:unconfined"]
    ...

Ядро Linux без поддержки OverlayFS в режиме rootless и использование привилегированного контейнера

Базовая конфигурация раннера:

[[runners]]
  name = "docker-runner-for-werf"
  executor = "docker"
  ...
  [runners.docker]
    privileged = true
    ...

Ядро Linux без поддержки OverlayFS в режиме rootless и использование непривилегированного контейнера

Базовая конфигурация раннера:

[[runners]]
  name = "docker-runner-for-werf"
  executor = "docker"
  ...
  [runners.docker]
    security_opt = ["seccomp:unconfined", "apparmor:unconfined"]
    devices = ["/dev/fuse"]
    ...

2. Настройте доступ к кластеру Kubernetes

Присвойте переменной окружения WERF_KUBECONFIG_BASE64 в GitLab-проекте значение из файла ~/.kube/config, закодированное в base64. werf будет автоматически использовать данную конфигурацию для подключения к кластеру Kubernetes.

3. Настройте файл gitlab-ci.yml проекта

Ниже приведено описание базового задания по сборке и развертыванию проекта:

stages:
  - build-and-deploy

Build and deploy application:
  stage: build-and-deploy
  image: registry.werf.io/werf/werf
  script:
    - source $(werf ci-env gitlab --as-file)
    - werf converge
  tags: ["docker-runner-for-werf"]

Устранение проблем

Если у вас возникли какие-либо сложности, пожалуйста, обратитесь к разделу Устранение проблем