Инструкция описывает настройку главной на новой установке Deckhouse Development Portal (DDP, портал) с каноничной моделью каталога. В результате на главной отображаются окружения и развёртывания кластера, а разработчики создают микросервисы из шаблонов и разворачивают их на окружения.

Перед началом работы

Для выполнения инструкции подготовьте:

  • пользователя портала с разрешениями apply:seeds, update:home-mapping-sets, edit:template-registries и read:template-packs, например с пресетом роли «Admin»;
  • URL API-сервера Kubernetes и токен сервисного аккаунта с правами на создание неймспейсов и развёртываний;
  • URL Vault или Deckhouse Stronghold и токен доступа;
  • URL GitLab, персональный токен GitLab с правами на создание проектов и имя пользователя GitLab;
  • хранилище образов контейнеров с опубликованными пакетами шаблонов. Как опубликовать пакет, описано в примере «Создание и публикация шаблона микросервиса».

Применение наборов данных

Наборы данных создают модель каталога, правила маппинга, подключения к внешним системам, источники данных и процессы главной.

Чтобы применить наборы данных:

  1. Перейдите в раздел «Администрирование» → «Справочники» → «Наборы данных» и нажмите «Первоначальная настройка».

  2. На шаге «Пресет» выберите «Настройка платформы». Чтобы наполнить каталог примерами, выберите «Настройка платформы с демоданными».

  3. На шаге «Выбор» оставьте все наборы отмеченными и нажмите «Далее».

  4. На шаге «Параметры» заполните обязательные параметры:

    • «URL Kubernetes API» в наборе «Kubernetes», например https://api.cluster.example.com;
    • «URL Vault» в наборе «Vault», например https://vault.example.com;
    • «URL GitLab» в наборе «GitLab», например https://gitlab.example.com.

    Остальные параметры мастер заполняет автоматически.

  5. На шаге «Проверка» включите «Подтвердить применение» и нажмите «Применить».

  6. Дождитесь сообщения «Все выбранные наборы успешно применены».

Если применение набора завершилось ошибкой, исправьте причину и нажмите «Повторить с текущего».

Включение главной

Главная выключена после установки портала. Включите её:

  1. Перейдите в раздел «Администрирование» → «Справочники» → «Правила маппинга».
  2. Убедитесь, что в таблице есть набор «Главная (по умолчанию)» с включённым переключателем «По умолчанию для главной».
  3. Включите переключатель «Показывать главную».

В верхней панели портала появится вкладка «Главная».

Учётные данные

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

Заполните учётные данные в профиле пользователя: токен Kubernetes, токен Vault, токен и имя пользователя GitLab. Порядок описан в разделе «Учётные данные».

Каждый пользователь, который запускает процессы с главной, заполняет учётные данные в своём профиле.

Окружения из кластера

Источники данных Kubernetes загружают в каталог только неймспейсы, Deployment и Ingress с лейблом ddp.deckhouse.io/environment. Неймспейсы, созданные кнопкой «Создать окружение» на главной, получают лейбл автоматически.

Чтобы существующий неймспейс отображался на главной как окружение, добавьте ему лейбл со значением, равным имени неймспейса:

d8 k label namespace <NAMESPACE> ddp.deckhouse.io/environment=<NAMESPACE>

Где <NAMESPACE> — имя неймспейса.

Неймспейсы d8-* и kube-* не загружаются.

Окружение появится в разделе «Окружения» после синхронизации источника данных неймспейсов из набора «Kubernetes: deployments, ingresses и namespaces». Заполните в каталоге параметры окружения, которые не приходят из кластера: тип, домен и связь с кластером.

Подключение реестра шаблонов

Реестр шаблонов подключает хранилище образов с пакетами шаблонов. Подключите хранилище:

  1. Перейдите в раздел «Администрирование» → «Интеграции» → «Шаблоны».
  2. На вкладке «Реестры» нажмите «Подключить реестр» и заполните поля:
    • «Название» — например company;
    • «Реестр» — хост хранилища, например registry.example.com;
    • «Префикс репозиториев» — например ddp-templates;
    • «Имя пользователя» и «Пароль» — учётные данные хранилища.
  3. Сохраните подключение.
  4. На вкладке «Настройки» включите «Включить синхронизацию» и сохраните настройки.
  5. На вкладке «Запуски синхронизации» нажмите «Синхронизировать» и дождитесь статуса «Успех».
  6. На вкладке «Шаблоны» проверьте, что у версий шаблонов статус «доступна».

Если синхронизация завершилась ошибкой, текст ошибки отображается в колонке «Ошибка». Причины ошибок описаны в разделе «Реестр шаблонов».

Привязка процессов к шаблонам

Действия над микросервисом выполняют процессы, привязанные к шаблону микросервиса. Набор данных «Реестр шаблонов микросервисов» создал процессы, которые подходят для любого шаблона.

Привяжите процессы к каждому шаблону:

  1. Перейдите в раздел «Администрирование» → «Справочники» → «Правила маппинга» и откройте набор «Главная (по умолчанию)».
  2. На вкладке «Маппинг каталога» раскройте область «Микросервисы» и найдите блок «Действия по шаблонам».
  3. Нажмите «Добавить шаблон» и выберите шаблон в поле «Шаблон».
  4. Выберите процессы действий:
    • «Создать микросервис» — «Создать микросервис из шаблона»;
    • «Развернуть микросервис на окружение» — «Развернуть микросервис на окружение»;
    • «Удалить микросервис с окружения» — «Удалить микросервис с окружения»;
    • «Обновить микросервис из шаблона» — «Обновить микросервис из шаблона».
  5. Повторите шаги 3–4 для остальных шаблонов и нажмите «Сохранить».

Проверка результата

Проверьте работу главной на создании микросервиса:

  1. Откройте вкладку «Главная» → «Создать микросервис».
  2. Выберите шаблон, заполните шаги «Сервис» и «Параметры» и нажмите «Создать микросервис».
  3. В окне «Запустить процесс» нажмите «Запустить».
  4. Дождитесь завершения процесса в панели «Мои активности».

Главная настроена, если выполнены условия:

  • в GitLab создан проект микросервиса с файлом .ddp/template.lock.yaml;
  • микросервис отображается в разделе «Микросервисы», а в его карточке заполнены поля «Шаблон» и «Версия»;
  • в разделе «Окружения» отображаются окружения кластера.

Следующие шаги

После базовой настройки выполните при необходимости: