GitLab — Хранение кода и запуск пайплайнов

Репозитории в GitLab

Все репозитории хранятся в GitLab в группе project_k.

  • kolla-ansible — репозиторий, в котором хранятся плейбуки и роли Ansible от текущего релиза. Носит информативный характер и в жизненном цикле участия не принимает.

  • kolla — репозиторий с исходным кодом для сборки образов docker для компонентов OpenStack. Носит информативный характер и в жизненном цикле участия не принимает.

  • keystack — репозиторий, который содержит базовые файлы конфигурации со значениями параметров для сервисов, рекомендуемыми вендором.

  • dib — репозиторий для сборки образов операционных систем.

  • ci — репозиторий с базовыми скриптами и пайплайнами, которые используются для развёртывания окружений.

  • deployments — группа, которая содержит набор репозиториев для создания и управления регионами/инсталляциями OpenStack, а также общие репозитории для всех площадок — baremetal, bifrost и backup.

  • baremetal — репозиторий для установки и базовой настройки операционных систем на физические серверы, которые участвуют в облаке.

  • bifrost — репозиторий, который содержит код для запуска контейнера bifrost, используемого логикой baremetal.

Развёртывание компонентов

Для запуска развёртывания какого-либо компонента, выполните следующие действия:

  1. Откройте веб-интерфейс развернутого GitLab.

  2. Откройте проект project_k / deployments / <имя региона>.

  3. Создайте новый пайплайн: Build > Pipelines > New Pipeline.

  4. В открывшемся окне добавьте параметры, например:

    • KOLLA_ARGS — укажите тег компонента, который необходимо развернуть и серверы для развёртывания. Например, для Cinder укажите -t cinder, а для первого Control-узла — --limit ctrl01. Можно указать несколько элементов через запятую без пробелов.

    • KOLLA_ANSIBLE_DEPLOY_ACTION — выберите deploy.

  5. Запустите пайплайн: New pipeline.

Запуск пайплайна из репозитория

Запуск пайплайна из репозитория

Развёртывание компонентов opensearch/drs/adminui/prometheus/grafana/ha

Для развёртывания данных сервисов убедитесь в наличии соответствующих переменных в файле globals.d/REGION.yml в репозитории региона project_k / deployments / <имя региона>.

Если соответствующие переменные существуют и имеют значение yes, то компоненты будут установлены при развёртывании региона.

enable_grafana: "yes"
enable_prometheus: "yes"
enable_prometheus_alertmanager: "yes"
enable_drs: "yes"
enable_adminui: "yes"
enable_consul: "yes"
enable_opensearch: "no"

Если какие-то переменные отсутствуют или у них уставлено значение no, то их компоненты не будут развёрнуты.

При необходимости их можно отдельно указать при развёртывании. Для этого в переменных пайплайна укажите переменную со значением yes, например, enable_opensearch: yes. После этого выполните развёртывание с указанием компонента в KOLLA_ARGS, например, -t opensearch.

Более подробную информацию о специфике развёртывания отдельных компонентов смотрите в разделах документации этих компонентов.

Развёртывание компонентов, связанных с Neutron

Neutron — сетевая служба, бесконтрольное развёртывание которой приведёт к нарушению сетевой доступности облака, поэтому развёртывание этого компонента выполняется с предварительной подготовкой.

Развёртывание тега neutron на серверы с ролью Control обязательно выполняется с лимитом в один узел (KOLLA_ARGS: --limit ctrl01), затем после выполнения пайплайна можно указать лимит на оставшиеся два узла (KOLLA_ARGS: --limit ctrl02,ctrl03) и запустить пайплайн.

Развёртывание тега neutron на серверы с ролью Network выполняется в определённой последовательности:

  1. Получите список L3-агентов и их идентификаторы:

    $ openstack network agent list --agent-type l3
    
  2. Выключите L3-агент на том узле, на который планируется внести изменения.

    $ openstack network agent set --disable <l3 agent uuid>
    
  3. Подождите 5 минут.

  4. Запустите пайплайн с тегом neutron и лимитом на тот сервер, на котором выключен L3-агент:

    Параметры запуска пайплайна

    Параметры запуска пайплайна

  5. Включите L3-агент на данном узле.

    $ openstack network agent set --enable <l3_agent_uuid>
    
  6. Подождите 30 минут, отслеживая сообщения в логах /var/log/kolla/neutron/neutron-l3-agent.log. Дождитесь окончания сообщений синхронизации синков на сотни секунд.

  7. Повторите шаги выше для каждого L3-агента (для каждого Network-узла).