Для улучшения работы сайта мы используем файлы cookies. Оставаясь на сайте, вы соглашаетесь с политикой обработки персональных данных.

Конструктор

Конструктор — интерфейс для создания продуктов платформы.

1. Графы

Для создания нового продукта, который будет доступен для заказов на платформе, необходимо создать граф. Граф — это последовательность действий для создания продукта.

1.1. Создание и редактирование графов

1.1.1. Создание графов

Чтобы создать граф:

  1. На портале администрирования перейдите в Конструктор  Графы и нажмите +.

  2. На вкладке Общая информация введите параметры:

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

    • Наименование — произвольное название продукта

    • Тип —  укажите тип графа:

      • action — граф может применяться к уже готовому продукту и описывает конкретные операционные действия над объектами, например: добавление дисков, создание базы данных

      • creating — граф описывает действия по созданию нового продукта, который еще отсутствует на платформе

    • (Опционально) Описание — текстовое поле для указания отличительных особенностей или функционала продукта

    • Автор — текстовое поле для указания автора продукта

      Код графа, наименование и автор необходимы для идентификации и управления графом в системе.

    • При необходимости активируйте опции, отрабатывающие в случае некорректного проигрывания графа:

      • Переводить заказ в статус Ошибка

      • Блокировать заказ при ошибке

        graph1
  3. Нажмите Сохранить, чтобы создать новый граф и вернуться к редактированию графа позже.

    Или перейдите на вкладку Узлы, чтобы создать узлы графа сразу.

    Для графа необходимо создать узлы и определить последовательность их выполнения — то есть выстроить последовательность выполнения действий графа.

    При создании графа до первого сохранения, для редактирования доступны только вкладки Общая информация и Узлы.

1.1.2. Узлы

Чтобы создать узлы графа:

  1. На портале администрирования перейдите в Конструктор  Графы.

  2. Нажмите на нужный граф и перейдите на вкладку Узлы.

  3. Чтобы копировать существующий узел из другого графа:

    1. Нажмите b copy.

    2. В окне Копирование узла из графа из выпадающих списков выберите граф, его версию и нужный узел.

    3. Нажмите Добавить.

  4. Чтобы добавить новый узел:

    1. Нажмите +.

    2. В окне Добавление нового узла укажите параметры:

    3. На вкладке Основное:

      • Название — название нового узла

      • Описание — описание нового узла

      • Выберите тип узла:

        • Шаблон — из выпадающего списка выберите шаблон для создания узла

        • Подграф — из выпадающего списка выберите существующий граф, который будет использоваться как узел

          graph2
    4. На вкладке Параметры:

      • Укажите необходимые параметры в поле Static data

        Параметры, заданные в поле Static data, могут быть использованы во всем графе.

      • Определите входные и выходные переменные в полях Input и Output

        node1
    5. На вкладке Дополнительное задайте дополнительные параметры, касающиеся запуска узла.

    6. Для организации последовательности выполнения графа между узлами настройте связи.

      Связи — это линии, соединяющие узлы на схеме. Одна линия, связывающая два узла на схеме, означает, что действия выполняются последовательно.

      Например, на рисунке сначала выполняются действия описанные в узле create_vm_zvirt, а потом действия описанные в узле Создаем UUID.

      node3

      Если линии соединяют один узел с несколькими узлами, то действия, описанные в данных узлах, выполняются параллельно. Например, на рисунке ниже действия узлов add_provider, add_status, add_config, add_inventory_status выполняются параллельно.

      node4
  5. Нажмите Сохранить.

1.1.3. Параметры заказа

Чтобы редактировать параметры заказа продукта:

  1. На портале администрирования перейдите в Конструктор  Графы и нажмите на нужный граф.

  2. Перейдите на вкладку Параметры заказа.

    Для определения структуры данных и параметров заказа на вкладке Форма заказа используется JSON-схема.

    Рассмотрим описание части структуры данных графа Добавить диск.

    В данной структуре необходимо создать объект c обязательными полями (required): mount и size.

    Далее в структуре описываются свойства (properties) каждого из этих полей. Например: поле size является целым числом (integer), называется Дополнительный объем дискового пространства, Гб, его значение по умолчанию равно 10 (default), максимальное значение равно 2048 (maximum), а минимальное значение равно 10 (minimum).

    {
      "type": "object",
      "required": [
        "mount",
        "size"
      ],
      "properties": {
        "size": {
          "type": "integer",
          "title": "Дополнительный объем дискового пространства, Гб",
          "default": 10,
          "maximum": 2048,
          "minimum": 10
        },
        "mount": {
          "type": "string",
          "title": "Точка монтирования",
          "pattern": "(^/[a-zA-Z0-9_\\/-]+$)",
          "maxLength": 255,
          "minLength": 1
        }
      },
      "description": "Увеличить размер заданной точки монтирования"
    }
    node5

    Для создания пользовательского интерфейса формы заказа используется UI-схема.

    UI-схемы позволяют визуально организовать поля ввода, кнопки и другие элементы интерфейса, обеспечивая интуитивно понятное и удобное взаимодействие для пользователя.

    Также рассмотрим часть UI-схемы графа Добавить диск.

    Для поля mount свойство ui:readonly определяет права на операции с точкой монтирования. В данном случае свойству присвоено значение true, что в пользовательском интерфейсе будет означать доступ к точке монтирования только на чтение. Для определения формы заказа на вкладке Параметры заказа используется свойство ui:order, в котором описаны атрибуты:

    1. mount — определяет наличие поля Точка монтирования

    2. size — определяет наличие поля Дополнительный объем дискового пространства, Гб

      {
        "mount": {
          "ui:readonly": true
        },
        "ui:order": [
          "mount",
          "size"
        ]
      }
      node6

      После задания параметров формы заказов на вкладке Детализация цены выберите продукт для расчета стоимости и получите детализацию заказа.

1.1.4. Модификаторы

На вкладке Модификаторы при необходимости можно добавить новый модификатор или изменить тип среды для исполнения графа:

  • dev

  • prod

  • test

mode

1.1.5. Сравнение

На вкладке Сравнение можно сравнить разные версии графов, их отдельные объекты, а также внести изменения в одну из сравниваемых версий при необходимости.

Чтобы сравнить и при необходимости изменить граф:

  1. На портале администрирования перейдите в Конструктор  Графы и нажмите на нужный граф.

  2. Перейдите на вкладку Сравнение.

  3. Выберите Сравнение версий или Сравнение объектов

  4. Из выпадающего списка Версия для сравнения выберите версию, с которой будет сравниваться текущая версия графа.

  5. Чтобы внести изменения в одну из версий, активируйте опцию Разрешить редактирование.

    compare
  6. Если были внесены изменения в граф, нажмите Сохранить.

1.1.6. Использование

Чтобы просмотреть, в каких продуктах используется описанный граф, перейдите на вкладку Использование.

1.1.7. Теги

Чтобы просмотреть используемые теги графа или создать новые, перейдите на вкладку Теги.

1.1.8. История изменений

Чтобы просмотреть историю изменений графа, перейдите на вкладку История изменений.

1.2. Копирование графов

Чтобы копировать граф:

  1. На портале администрирования перейдите в Конструктор  Графы.

  2. Напротив нужного графа нажмите b menu и выберите Создать копию.

После успешного копирования, копия графа появится в списке графов.

1.3. Импорт графов

Графы можно импортировать на портал администрирования из файла JSON-формата.

Чтобы импортировать графы:

  1. На портале администрирования перейдите в Конструктор  Графы.

  2. Нажмите b service import Импорт.

  3. Перетащите файл в JSON-формате в окно Импорт графа или нажмите на окно, чтобы выбрать файл на вашем компьютере.

  4. Выберите тип импорта:

    • Полный импорт — будет выполнен импорт всех объектов из файла

    • Импорт до первого существующего объекта/версии объекта — будет выполнен импорт только тех объектов, которых еще нет в базе данных

  5. Дождитесь загрузки файла и нажмите Готово.

    После успешного завершения процесса, импортированные графы отобразятся в списке.

1.4. Экспорт графов

Графы можно экспортировать с портала администрирования в файл JSON-формата.

Чтобы экспортировать граф:

  1. На портале администрирования перейдите в Конструктор  Графы.

  2. Напротив нужного графа нажмите b menu и выберите Экспортировать.

  3. В открывшемся окне настройте параметры экспорта:

    • Имя файла — можно изменить имя файла экспорта или оставить по умолчанию

    • Версия — из выпадающего списка выберите версию графа

    • При необходимости активируйте опцию Зафиксировать версии всех вложенных объектов

  4. Нажмите Экспорт.

    После этого начнется скачивание файла в JSON-формате.

Чтобы экспортировать группу графов:

  1. На портале администрирования перейдите в Конструктор  Графы.

  2. Нажмите b group oper Групповые операции.

  3. Выберите из списка графы, которые хотите экспортировать.

  4. В открывшемся окне для файлов экспорта настройте параметры:

    • Имя файла — можно изменить имя файла экспорта или оставить по умолчанию

    • Версия — из выпадающего списка выберите версию графа

    • При необходимости активируйте опцию Зафиксировать версии всех вложенных объектов — опция будет активирована для всех выбранных файлов экспорта

  5. Нажмите Экспорт.

    После этого начнется скачивание ZIP-архива с файлами в JSON-формате.

1.5. Удаление графов

Чтобы удалить граф:

  1. На портале администрирования перейдите в Конструктор  Графы.

  2. Напротив нужного графа нажмите b menu и выберите Удалить.

  3. Введите идентификатор графа, чтобы подтвердить удаление, и нажмите Удалить.

2. Действия

В процессе создания продуктов и графов могут быть использованы однотипные совокупности операций или Действия. Например: создание пользователя, создание или удаление БД, изменение конфигурации ВМ.

Совокупность доступных на платформе действий находится в Конструктор  Действия.

Действия можно отфильтровать:

  1. по типу — классифицирует действия в зависимости от ресурса (item), к которому они применимы (виртуальная машина, приложение):

    • vm

    • app

    • vdc

    • cluster

  2. по провайдеру — платформа виртуализации, система оркестрации, база данных или контейнер, для которого доступно данное действие:

    • zvirt

    • nova

    • vsphere

    • openstack

    • kubernetes

  3. по тегу:

    action1

Чтобы создать новое действие:

  1. Перейдите на вкладку Конструктор  Действия и нажмите +.

  2. Заполните параметры во вкладке Основное:

    • Код действия

    • Наименование

    • Описание

    • Обязательные статусы item — используются для выбора статусов item, при которых действие будет доступно:

      • on

      • off

      • reboot

      • deleted

      • problem

    • Обязательные статусы заказов — используются для выбора статусов заказов, при которых действие будет доступно:

      • new

      • pending

      • success

      • damaged

      • maintenance

      • removing

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

    • Действующая версия

    • Приоритет сообщения

      action2
  3. Задайте значения на вкладке Параметры.

    • Тип

    • Провайдер

      action3
  4. Задайте значения на вкладке Расположение в заказе.

    • Если действие относится ко множеству объектов, активируйте опцию Групповая операция

    • Путь — указывает путь в структуре item до массива, для которого будет отображаться действие

    • Ключ — должен присутствовать у элемента массива, для которого будет отображаться действие

    • Данные — параметры, которые будут передаваться в форму действия

    • Условия видимости и расположения действия

    • Порядок в меню действий: чем меньше значение поля, тем выше действие в меню

      action4
  5. Укажите название и версию графа, для которого будет использоваться действие на вкладке Граф.

    action5
  6. При необходимости добавьте Теги и укажите Дополнительные параметры.

  7. Для создания ограничений использования действия перейдите на вкладку Ограничения и задайте ограничения на item, контекст или роль.

    action6
  8. Также доступно сравнение версий и история изменений действия.

После создания действия его необходимо зарегистрировать. Для этого нажмите Зарегистрировать. В ином случае действие не будет работать.

3. Запрещенные и разрешенные действия

Для ограничения выполнения действий в рамках заказа для определенного ресурса или контекста в разделе Конструктор предусмотрена возможность создавать Запрещенные или Разрешенные действия.

3.1. Создание нового разрешенного или запрещенного действия

  1. Перейдите на вкладку Конструктор  Запрещенные/Разрешенные действия и нажмите +.

  2. Заполните параметры на вкладке Основное:

    • Код запрещенного/разрешенного действия — поле заполнится автоматически после заполнения остальных полей

    • Наименование

    • Действие — выбирается из списка доступных действий

    • Направление запрета

      err acc1
  3. Заполните значения на вкладке Параметры. Для этого перейдите на вкладку и нажмите +

    Необходимо добавить как минимум одну запись.
    1. Тип

    2. Провайдер

      После выбора значений сохраните запись.

      err acc3
  4. Заполните параметры на вкладке Ограничения.

    1. Ограничения item

    2. Контекстные ограничения

  5. Нажмите Сохранить.

4. Плейграунд схем

Для осуществления парсинга и получения результата выполнения созданных JSON и UI-схем используется раздел Плейграунд схем.

В разделе Плейграунд схем можно выбрать действие или пример, и получить результат в формате JSON, UI-схем и необходимых для них параметров.

play

5. Продукты

В разделе Конструктор  Продукты отображается список продуктов, доступных на платформе. Продукты можно отфильтровать по категории и статусу.

Для каждого продукта отображены следующие параметры:

  1. На вкладке Основное:

    • Код продукта

    • Наименование

    • Автор

    • Описание продукта

    • Действующая версия

    • Информация

    • Доступность для заказа: если активирована опция Открытый, то продукт доступен для заказа

      prod ver
  2. На вкладке Граф:

    • Граф

    • Тип версии

      • Фиксированная

      • Паттерн

      • Значение

        prod ver1

        На данной вкладке можно перейти в редактор графа, если в поле напротив его названия нажать b go Перейти в редактор графа

  3. На вкладке Дополнительные параметры

    • Категория

    • Категория V2

    • Максимальное количество

    • Выбор оплаты

    • Порядок в маркетплейсе

    • Опции

      prod att
  4. На вкладке Теги, можно указать необходимые теги.

  5. На вкладке Ограничения

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

    • Инфраструктурные ограничения — указывают элементы инфраструктуры, которые будут доступны или недоступны при заказе продукта, например: среда, сегмент сети, дата-центр, платформа, домен

    • Ролевые ограничения — указывают роли или пользователей, которым разрешён или запрещён доступ к продукту

      prod restrictions
  6. На вкладке Сравнение доступно сравнение версий и объектов продукта.

  7. На вкладке История изменений отображены изменения за определенный период.

6. Справочники

Для получения описания объектов, таких как список ресурсов или список образов, можно воспользоваться справочником. Справочник содержит группы объектов и описание атрибутов объектов, которые можно использовать в графах и в системе.

Для просмотра справочников перейдите Конструктор  Справочники.

Откройте нужный справочник и выберите страницу для просмотра. Для редактирования описания объекта выберите справочник, нажмите b edit и выберите Редактировать.

6.1. Создание страницы справочника для новой платформы

Для каждой новой платформы виртуализации создается страница справочника resource_pool с описанием ресурсов платформы.

Чтобы создать страницу в справочнике:

  1. На портале администрирования перейдите в Конструктор  Справочники.

  2. В списке справочников выберите resource_pool.

  3. В разделе resource_pool нажмите +Добавить страницу.

  4. В окне Добавить новую страницу в resource_pool заполните поля:

    • Имя — укажите имя страницы справочника, которое соответствует имени платформы

    • Степень важности — оставьте значение по умолчанию

    • PageData — заполните поле описанием ресурсов платформы в формате JSON:

      {
        "data": {
          "resource_pool": {
            "name":"Default", (1)
            "uuid":"d90193d6-5c5a-11ee-bd56-00163e10167d", (2)
            "domain":"domain_name", (3)
            "endpoint":"https://sample.box.zvirt.loc/ovirt-engine", (4)
            "platform":"zvirt", (5)
            "provider_name":"zvirt_provider_name" (6)
        },
        },
        "category":"vm", (7)
        "platform":"zvirt1" (5)
      }
      1 name — имя кластера
      2 uuid — идентификатор кластера
      3 domain — имя домена хранения
      4 endpoint — URL портала администрирования zVirt
      5 platform — тип платформы виртуализации — zVirt
      6 provider_name — имя провайдера
      7 category — категория использования, значение vm означает, что платформа используется для размещения виртуальных машин

      Можно скопировать значения параметров name, uuid и domain на портале администрирования zVirt:

      • Перейдите в Ресурсы  Кластеры и скопируйте имя нужного кластера для name.

      • Перейдите в Ресурсы  Кластеры, нажмите имя кластера и скопируйте идентификатор кластера в строке ID кластера для uuid.

      • Перейдите в Хранилище  Домены и скопируйте имя нужного домена из списка для domain.

    • Теги — укажите тег с именем новой страницы справочника и нажмите +, аналогично добавьте тег vm

      Тег vm добавляется, чтобы страница справочника была доступна в заказах.

  5. Нажмите Сохранить.

7. Шаблоны Jinja2

Jinja — это шаблонизатор для языка программирования Python. В рамках конструктора можно создать и протестировать шаблон Jinja2.

Чтобы создать шаблон Jinja2:

  1. Перейдите в Конструктор  Шаблоны Jinja2 и нажмите +.

  2. На вкладке Основное укажите Наименование и Код шаблона

    temp1
  3. На вкладке Параметры данных опишите шаблон согласно требованиям синтаксиса шаблонов Jinja2. В окне Текстовые данные укажите необходимые переменные в формате YAML. Для получения результата работы нажмите Протестировать шаблон.

    temp2
  4. Для просмотра версий шаблона и истории изменений воспользуйтесь вкладками Сравнение и История изменений.

8. Шаблоны отображения

Раздел Шаблоны отображения используется для создания шаблонов отображения продукта. Существующие шаблоны отображения можно отфильтровать по типу, провайдеру, состоянию и тегам. Для этого в поле ввода для фильтрации выберите необходимые параметры и нажмите Применить.

temp3

Чтобы создать новый шаблон отображения:

  1. Перейдите в Конструктор  Шаблоны отображения и нажмите +.

  2. Задайте параметры во вкладке Основное

    1. Наименование

    2. Код шаблона

    3. Описание

    4. Состояние

    5. Тип

    6. Провайдер

      temp4
  3. Внесите параметры в формате JSON для создания шаблона полного отображения. Шаблон полного отображения отвечает за отображение продукта.

    temp5
  4. Внесите параметры в формате JSON для создания шаблона полного отображения. Данный шаблон отвечает за отображение продукта в таблице Компоненты.

    Обязательными свойствами являются: type, name, status.

    temp6
  5. Внесите параметры item в формате JSON на вкладке Item для предпросмотра.

  6. Дополнительно можно указать параметры для заказа для предпросмотра и теги.

9. Шаблоны узлов

Данное меню отображает список всех доступных в системе шаблонов узлов, которые могут быть использованы в графах.

Чтобы создать новый узел:

  1. Перейдите в Конструктор  Шаблоны узлов и нажмите +.

  2. Внесите параметры во вкладку Основное:

    1. Наименование

    2. Код шаблона

    3. Описание

    4. Название очереди для старта задачи

    5. Название очереди для отката

    6. Время ожидания

    7. Тип

      temp8
  3. Внесите описание входящих и исходящих данных во вкладку Параметры и активируйте опции, определяющие переопределение данных.

    temp9
  4. Задайте ролевые ограничения для узла на вкладке Ограничения.

  5. Список графов, в которых используется данный шаблон узла, отображается на вкладке Использование.

  6. На вкладке История изменений, отображается история изменений узла.

10. Теги

Теги используются для группировки графов.

Чтобы создать тег:

  1. Перейдите в Конструктор  Теги.

  2. Нажмите +.

  3. В окне Добавление нового тега введите Наименование.

    Поле Наименование имеет максимальную длину в 50 символов и может содержать только прописные буквы латинского алфавита [a-z], цифры от 0 до 9 и символы "_","-",":","."
  4. Нажмите Добавить.

  5. Для добавления тега к графу перейдите в Конструктор  Графы.

  6. Выберите граф из списка или нажмите +.

  7. Перейдите на вкладку Теги, нажмите Добавить и выберите из списка ранее созданный тег.

  8. Нажмите Сохранить.

  9. Для просмотра графов, имеющих одинаковый тег, перейдите в Конструктор  Теги и нажмите на конкретный тег.

Чтобы удалить тег:

  1. Удалите тег из всех графов, где он используется.

  2. Перейдите в Конструктор  Теги.

  3. Выберите тег из списка и нажмите b garbage.

11. Настройки контекста

В рамках задания контекста можно задать:

  1. Тип среды по умолчанию

  2. Идентификатор проекта для каждого типа среды

    temp13