Что такое GitLab CI/CD Variables?

«Что такое GitLab CI/CD Variables?» — вопрос из категории Git, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

GitLab CI/CD Variables — это пары «ключ-значение», которые используются для передачи конфигурационных данных и секретов в пайплайны. Они позволяют отделить код пайплайна от чувствительных данных (токены, пароли) и переменных окружения.

Основные типы переменных:

  • Project Variables: Доступны только в рамках конкретного проекта.
  • Group Variables: Наследуются всеми проектами внутри группы.
  • Instance Variables: Глобальные переменные уровня всего GitLab-инстанса.

Пример использования в .gitlab-ci.yml:

variables:
  APP_VERSION: "1.0.0"

deploy_to_prod:
  stage: deploy
  script:
    - echo "Deploying version $APP_VERSION"
    # Использование переменной, заданной в настройках CI/CD
    - deploy-script --api-key $PRODUCTION_API_KEY
  only:
    - main

Ключевые атрибуты переменных:

  • Masked (masked): Значение переменной скрывается в логах выполнения заданий.
  • Protected (protected): Переменная доступна только для защищенных веток (например, main) и тегов.
  • File (file): Значение переменной записывается в файл, что удобно для передачи сертификатов или ключей (например, $KUBECONFIG).

На практике я использую Group Variables для общих настроек, таких как DOCKER_REGISTRY_URL, а Project Variables — для специфичных для проекта секретов, помечая их как masked и protected.