Wardhold

GitLab CI

Переменные CI/CD перестают быть хранилищем

Переменные проекта в GitLab видны всем, кто может править пайплайн, не имеют истории и не знают, кто их читал. Wardhold отдаёт значения раннеру по токену — с версиями, правами и журналом.

Подключение одной строкой

include:
  - remote: https://wardhold.ru/ci/wardhold.gitlab-ci.yml

deploy:
  extends: .wardhold
  variables:
    WARDHOLD_URL: https://app.wardhold.ru
    WARDHOLD_REF: billing/deploy   # проект/секрет
  script:
    - ./deploy.sh                  # значения уже в окружении

Токен кладётся в защищённую и маскируемую переменную проекта — единственный секрет, который остаётся в GitLab. Всё остальное живёт в Wardhold.

Что внутри

Шаблон и компонентработает

Классический include: remote для self-managed и компонент CI/CD Catalog с параметрами версии, адреса загрузки и контрольной суммы.

Установка бинаряработает

Linux amd64 и arm64, curl с запасным wget, проверка sha256. Переменная адреса загрузки переключает установку на внутреннее зеркало.

Закрытый контурработает

Ни один шаг не ходит в интернет, если зеркало и адрес инстанса внутренние — это основной сценарий self-managed GitLab в изолированной сети.

Маскирование в логев плане

У GitLab нет механизма, эквивалентного маскированию в GitHub. Пока правило простое: значения не печатать, токен держать masked и protected, срок — короткий.

Перенесём пайплайн вместе

Если у вас self-managed GitLab в закрытом контуре — расскажите про схему, подскажем порядок переноса переменных без остановки выкаток.