Обновить

Комментарии 2

Установка unconfined повышает совместимость и может ускорить сборку. Добавляем необходимую аннотацию к нашим подам

Думаю лучше не отключать apparmor для всех запускаемых джобов.

Можно разрешить включение этой аннотации в джобах на уровне раннера:

[[runners]]
  [runners.kubernetes]
    pod_annotations_overwrite_allowed = "container.apparmor.security.beta.kubernetes.io/build=unconfined"

И далее уже использовать там, где нужно:

build:
  stage: build
  image:
    name: moby/buildkit:rootless
  variables:
    BUILDKITD_FLAGS: --oci-worker-no-process-sandbox
    KUBERNETES_POD_ANNOTATIONS_1: "container.apparmor.security.beta.kubernetes.io/build=unconfined"

printf "%s:%s" "${REGISTRY_USER}" "${REGISTRY_PASSWORD}" | base64 | tr -d '\n'

Тут уже вкусовщина, но я бы заменил на следующую конструкцию:

echo -n "${REGISTRY_USER}:${REGISTRY_PASSWORD}" | base64 -w 0

Но думаю всё равно не самая лучшая идея закидывать переменные для доступа к registry в ci и после этого собирать файл, проще сразу же его монтировать как секрет:

[[runners]]
  [[runners.kubernetes.volumes.secret]]
    "name" = "dockerconfigjson"
    "mount_path" = "/docker"
    [runners.kubernetes.volumes.secret.items]
      ".dockerconfigjson" = "config.json"

Очень интересны следующие вопросы:

  • Как обстоят дела с попаданием в кэш, особенно когда команда разрабатывается одновременно в нескольких фича ветках. По моему опыту пришлось использовать несколько бэкэндов для кэша, иначе кэш будет постоянно перезаписываться последней сборкой. Мы используем registry backend, может быть с S3 дела обстоят иначе, на тот момент его не было и как я вижу фича пока только экспериментальная

  • Не было ли проблем при использовании в закрытой инфраструктуре, где все сертификаты selfsigned? Помню были проблемы с одним из кейсов

  • Сравнивали ли обычную версию и rootless? Может быть есть цифры насколько снижается производительность?

Был опыт использования в закрытом контуре, проблем не возникало.

Создаем config map с сертификатом и подключаем в конфиг раннера:

[[runners.kubernetes.volumes.config_map]]
  name = "ca-cert"
  mount_path = "/etc/ssl/certs/"
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Информация

Сайт
kts.tech
Дата регистрации
Дата основания
Численность
201–500 человек
Местоположение
Россия