Обновить
1
0
Сергей Щеглов@ssch1337

Энтузиаст, FullStack Developer

Отправить сообщение

Установка 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? Может быть есть цифры насколько снижается производительность?

Благодаря инструменту Upjet есть возможность за минимальное время сгенерировать Crossplane-провайдер из Terraform-провайдера. Так, например, портирован провайдер для Yandex Cloud.

Небольшая поправка, провайдер для Yandex Cloud был сделан на Terrajet, который уже не поддерживается.
Собственно и сам провайдер не обновлялся уже более года, поэтому у него отсутствует создание/управление новыми ресурсами, к примеру кластером кафки.

Но мы запилили "форк", сделанный с нуля на Upjet — https://github.com/tagesjump/provider-upjet-yc

Ценность комментария от частоты комментирования не меняется. Всё же лучше радоваться тому, что тебя прокомментировал интересный человек.

Видимо я один из золотых молчунов, первый комментарий за 6 лет.

Информация

В рейтинге
Не участвует
Откуда
Стерлитамак, Башкортостан(Башкирия), Россия
Дата рождения
Зарегистрирован
Активность

Специализация

Специалист
Старший