Конструктор
Конструктор — интерфейс для создания продуктов платформы.
1. Графы
Для создания нового продукта, который будет доступен для заказов на платформе, необходимо создать граф. Граф — это последовательность действий для создания продукта.
1.1. Создание и редактирование графов
1.1.1. Создание графов
Чтобы создать граф:
-
На портале администрирования перейдите в и нажмите +.
-
На вкладке Общая информация введите параметры:
-
Код графа — уникальный символьный идентификатор продукта, может содержать только прописные латинские символы, цифры, нижнее подчеркивание, тире, двоеточие и точку
-
Наименование — произвольное название продукта
-
Тип — укажите тип графа:
-
action — граф может применяться к уже готовому продукту и описывает конкретные операционные действия над объектами, например: добавление дисков, создание базы данных
-
creating — граф описывает действия по созданию нового продукта, который еще отсутствует на платформе
-
-
(Опционально) Описание — текстовое поле для указания отличительных особенностей или функционала продукта
-
Автор — текстовое поле для указания автора продукта
Код графа, наименование и автор необходимы для идентификации и управления графом в системе.
-
При необходимости активируйте опции, отрабатывающие в случае некорректного проигрывания графа:
-
Переводить заказ в статус Ошибка
-
Блокировать заказ при ошибке
-
-
-
Нажмите Сохранить, чтобы создать новый граф и вернуться к редактированию графа позже.
Или перейдите на вкладку Узлы, чтобы создать узлы графа сразу.
Для графа необходимо создать узлы и определить последовательность их выполнения — то есть выстроить последовательность выполнения действий графа.
При создании графа до первого сохранения, для редактирования доступны только вкладки Общая информация и Узлы.
1.1.2. Узлы
Чтобы создать узлы графа:
-
На портале администрирования перейдите в .
-
Нажмите на нужный граф и перейдите на вкладку Узлы.
-
Чтобы копировать существующий узел из другого графа:
-
Нажмите
. -
В окне Копирование узла из графа из выпадающих списков выберите граф, его версию и нужный узел.
-
Нажмите Добавить.
-
-
Чтобы добавить новый узел:
-
Нажмите +.
-
В окне Добавление нового узла укажите параметры:
-
На вкладке Основное:
-
Название — название нового узла
-
Описание — описание нового узла
-
Выберите тип узла:
-
Шаблон — из выпадающего списка выберите шаблон для создания узла
-
Подграф — из выпадающего списка выберите существующий граф, который будет использоваться как узел
-
-
-
На вкладке Параметры:
-
Укажите необходимые параметры в поле Static data
Параметры, заданные в поле Static data, могут быть использованы во всем графе.
-
Определите входные и выходные переменные в полях Input и Output
-
-
На вкладке Дополнительное задайте дополнительные параметры, касающиеся запуска узла.
-
Для организации последовательности выполнения графа между узлами настройте связи.
Связи — это линии, соединяющие узлы на схеме. Одна линия, связывающая два узла на схеме, означает, что действия выполняются последовательно.
Например, на рисунке сначала выполняются действия описанные в узле create_vm_zvirt, а потом действия описанные в узле Создаем UUID.
Если линии соединяют один узел с несколькими узлами, то действия, описанные в данных узлах, выполняются параллельно. Например, на рисунке ниже действия узлов add_provider, add_status, add_config, add_inventory_status выполняются параллельно.
-
-
Нажмите Сохранить.
1.1.3. Параметры заказа
Чтобы редактировать параметры заказа продукта:
-
На портале администрирования перейдите в и нажмите на нужный граф.
-
Перейдите на вкладку Параметры заказа.
Для определения структуры данных и параметров заказа на вкладке Форма заказа используется 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": "Увеличить размер заданной точки монтирования" }
Для создания пользовательского интерфейса формы заказа используется UI-схема.
UI-схемы позволяют визуально организовать поля ввода, кнопки и другие элементы интерфейса, обеспечивая интуитивно понятное и удобное взаимодействие для пользователя.
Также рассмотрим часть UI-схемы графа Добавить диск.
Для поля
mountсвойствоui:readonlyопределяет права на операции с точкой монтирования. В данном случае свойству присвоено значениеtrue, что в пользовательском интерфейсе будет означать доступ к точке монтирования только на чтение. Для определения формы заказа на вкладке Параметры заказа используется свойствоui:order, в котором описаны атрибуты:-
mount— определяет наличие поля Точка монтирования -
size— определяет наличие поля Дополнительный объем дискового пространства, Гб{ "mount": { "ui:readonly": true }, "ui:order": [ "mount", "size" ] }
После задания параметров формы заказов на вкладке Детализация цены выберите продукт для расчета стоимости и получите детализацию заказа.
-
1.1.4. Модификаторы
На вкладке Модификаторы при необходимости можно добавить новый модификатор или изменить тип среды для исполнения графа:
-
dev
-
prod
-
test
1.1.5. Сравнение
На вкладке Сравнение можно сравнить разные версии графов, их отдельные объекты, а также внести изменения в одну из сравниваемых версий при необходимости.
Чтобы сравнить и при необходимости изменить граф:
-
На портале администрирования перейдите в и нажмите на нужный граф.
-
Перейдите на вкладку Сравнение.
-
Выберите Сравнение версий или Сравнение объектов
-
Из выпадающего списка Версия для сравнения выберите версию, с которой будет сравниваться текущая версия графа.
-
Чтобы внести изменения в одну из версий, активируйте опцию Разрешить редактирование.
-
Если были внесены изменения в граф, нажмите Сохранить.
1.2. Копирование графов
Чтобы копировать граф:
-
На портале администрирования перейдите в .
-
Напротив нужного графа нажмите
и выберите Создать копию.
После успешного копирования, копия графа появится в списке графов.
1.3. Импорт графов
Графы можно импортировать на портал администрирования из файла JSON-формата.
Чтобы импортировать графы:
-
На портале администрирования перейдите в .
-
Нажмите
Импорт. -
Перетащите файл в JSON-формате в окно Импорт графа или нажмите на окно, чтобы выбрать файл на вашем компьютере.
-
Выберите тип импорта:
-
Полный импорт — будет выполнен импорт всех объектов из файла
-
Импорт до первого существующего объекта/версии объекта — будет выполнен импорт только тех объектов, которых еще нет в базе данных
-
-
Дождитесь загрузки файла и нажмите Готово.
После успешного завершения процесса, импортированные графы отобразятся в списке.
1.4. Экспорт графов
Графы можно экспортировать с портала администрирования в файл JSON-формата.
Чтобы экспортировать граф:
-
На портале администрирования перейдите в .
-
Напротив нужного графа нажмите
и выберите Экспортировать. -
В открывшемся окне настройте параметры экспорта:
-
Имя файла — можно изменить имя файла экспорта или оставить по умолчанию
-
Версия — из выпадающего списка выберите версию графа
-
При необходимости активируйте опцию Зафиксировать версии всех вложенных объектов
-
-
Нажмите Экспорт.
После этого начнется скачивание файла в JSON-формате.
Чтобы экспортировать группу графов:
-
На портале администрирования перейдите в .
-
Нажмите
Групповые операции. -
Выберите из списка графы, которые хотите экспортировать.
-
В открывшемся окне для файлов экспорта настройте параметры:
-
Имя файла — можно изменить имя файла экспорта или оставить по умолчанию
-
Версия — из выпадающего списка выберите версию графа
-
При необходимости активируйте опцию Зафиксировать версии всех вложенных объектов — опция будет активирована для всех выбранных файлов экспорта
-
-
Нажмите Экспорт.
После этого начнется скачивание ZIP-архива с файлами в JSON-формате.
2. Действия
В процессе создания продуктов и графов могут быть использованы однотипные совокупности операций или Действия. Например: создание пользователя, создание или удаление БД, изменение конфигурации ВМ.
Совокупность доступных на платформе действий находится в .
Чтобы создать копию, экспортировать или удалить действие, напротив нужного действия нажмите
и выберите операцию.
Действия можно отфильтровать:
-
по типу — классифицирует действия в зависимости от ресурса (item), к которому они применимы (виртуальная машина, приложение):
-
vm
-
app
-
vdc
-
cluster
-
-
по провайдеру — платформа виртуализации, система оркестрации, база данных или контейнер, для которого доступно данное действие:
-
zvirt
-
nova
-
kubernetes
-
-
по тегу:
Чтобы создать новое действие:
-
Перейдите на вкладку и нажмите +.
-
Заполните параметры во вкладке Основное:
-
Код действия
-
Наименование
-
Описание
-
Обязательные статусы item — используются для выбора статусов item, при которых действие будет доступно:
-
on
-
off
-
reboot
-
deleted
-
problem
-
-
Обязательные статусы заказов — используются для выбора статусов заказов, при которых действие будет доступно:
-
new
-
pending
-
success
-
damaged
-
maintenance
-
removing
-
-
Тип — отображает, что действие специализированное. Например, тип delete показывает, что действие относится к удалению. Тип помогает определить оркестратору, какой граф использовать.
-
Действующая версия
-
Приоритет сообщения
-
-
Задайте значения на вкладке Параметры.
-
Тип
-
Провайдер
-
-
Задайте значения на вкладке Расположение в заказе.
-
Если действие относится ко множеству объектов, активируйте опцию Групповая операция
-
Путь — указывает путь в структуре item до массива, для которого будет отображаться действие
-
Ключ — должен присутствовать у элемента массива, для которого будет отображаться действие
-
Данные — параметры, которые будут передаваться в форму действия
-
Условия видимости и расположения действия
-
Порядок в меню действий: чем меньше значение поля, тем выше действие в меню
-
-
Укажите название и версию графа, для которого будет использоваться действие на вкладке Граф.
-
При необходимости добавьте Теги и укажите Дополнительные параметры.
-
Для создания ограничений использования действия перейдите на вкладку Ограничения и задайте ограничения на item, контекст или роль.
-
Также доступно сравнение версий и история изменений действия.
| После создания действия его необходимо зарегистрировать. Для этого нажмите Зарегистрировать. В ином случае действие не будет работать. |
3. Запрещенные и разрешенные действия
Для ограничения выполнения действий в рамках заказа для определенного ресурса или контекста в разделе Конструктор предусмотрена возможность создавать Запрещенные или Разрешенные действия.
3.1. Создание нового разрешенного или запрещенного действия
-
Перейдите на вкладку и нажмите +.
-
Заполните параметры на вкладке Основное:
-
Код запрещенного/разрешенного действия — поле заполнится автоматически после заполнения остальных полей
-
Наименование
-
Действие — выбирается из списка доступных действий
-
Направление запрета
-
-
Заполните значения на вкладке Параметры. Для этого перейдите на вкладку и нажмите +
Необходимо добавить как минимум одну запись. -
Тип
-
Провайдер
После выбора значений сохраните запись.
-
-
Заполните параметры на вкладке Ограничения.
-
Ограничения item
-
Контекстные ограничения
-
-
Нажмите Сохранить.
4. Плейграунд схем
Для осуществления парсинга и получения результата выполнения созданных JSON и UI-схем используется раздел Плейграунд схем.
В разделе Плейграунд схем можно выбрать действие или пример, и получить результат в формате JSON, UI-схем и необходимых для них параметров.
5. Продукты
В разделе отображается список продуктов, доступных на платформе. Продукты можно отфильтровать по категории и статусу.
Для каждого продукта отображены следующие параметры:
-
На вкладке Основное:
-
Код продукта
-
Наименование
-
Автор
-
Описание продукта
-
Действующая версия
-
Информация
-
Доступность для заказа: если активирована опция Открытый, то продукт доступен для заказа
-
-
На вкладке Граф:
-
Граф
-
Тип версии
-
Фиксированная
-
Паттерн
-
Значение
На данной вкладке можно перейти в редактор графа, если в поле напротив его названия нажать
Перейти в редактор графа
-
-
-
На вкладке Дополнительные параметры
-
Категория
-
Категория V2
-
Максимальное количество
-
Выбор оплаты
-
Порядок в маркетплейсе
-
Опции
-
-
На вкладке Теги, можно указать необходимые теги.
-
На вкладке Ограничения
-
Контекстные ограничения — содержат параметры контекста, в рамках которого продукт будет доступен для заказа, такие как организация, информационная система, тип среды
-
Инфраструктурные ограничения — указывают элементы инфраструктуры, которые будут доступны или недоступны при заказе продукта, например: среда, сегмент сети, дата-центр, платформа, домен
-
Ролевые ограничения — указывают роли или пользователей, которым разрешён или запрещён доступ к продукту
-
-
На вкладке Сравнение доступно сравнение версий и объектов продукта.
-
На вкладке История изменений отображены изменения за определенный период.
6. Справочники
Для получения описания объектов, таких как список ресурсов или список образов, можно воспользоваться справочником. Справочник содержит группы объектов и описание атрибутов объектов, которые можно использовать в графах и в системе.
Для просмотра справочников перейдите .
Откройте нужный справочник и выберите страницу для просмотра. Для редактирования описания объекта выберите справочник, нажмите
и выберите Редактировать.
6.1. Создание страницы справочника для новой платформы
Для каждой новой платформы виртуализации создается страница справочника resource_pool с описанием ресурсов платформы.
Чтобы создать страницу в справочнике:
-
На портале администрирования перейдите в .
-
В списке справочников выберите resource_pool.
-
В разделе resource_pool нажмите +Добавить страницу.
-
В окне Добавить новую страницу в 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 портала администрирования zVirt5 platform— тип платформы виртуализации — zVirt6 provider_name— имя провайдера7 category— категория использования, значениеvmозначает, что платформа используется для размещения виртуальных машинМожно скопировать значения параметров
name,uuidиdomainна портале администрирования zVirt:-
Перейдите в и скопируйте имя нужного кластера для
name. -
Перейдите в , нажмите имя кластера и скопируйте идентификатор кластера в строке ID кластера для
uuid. -
Перейдите в и скопируйте имя нужного домена из списка для
domain.
-
-
Теги — укажите тег с именем новой страницы справочника и нажмите +, аналогично добавьте тег
vmТег
vmдобавляется, чтобы страница справочника была доступна в заказах.
-
-
Нажмите Сохранить.
7. Шаблоны Jinja2
Jinja — это шаблонизатор для языка программирования Python. В рамках конструктора можно создать и протестировать шаблон Jinja2.
Чтобы создать шаблон Jinja2:
-
Перейдите в и нажмите +.
-
На вкладке Основное укажите Наименование и Код шаблона
-
На вкладке Параметры данных опишите шаблон согласно требованиям синтаксиса шаблонов Jinja2. В окне Текстовые данные укажите необходимые переменные в формате YAML. Для получения результата работы нажмите Протестировать шаблон.
-
Для просмотра версий шаблона и истории изменений воспользуйтесь вкладками Сравнение и История изменений.
8. Шаблоны отображения
Раздел Шаблоны отображения используется для создания шаблонов отображения продукта. Существующие шаблоны отображения можно отфильтровать по типу, провайдеру, состоянию и тегам. Для этого в поле ввода для фильтрации выберите необходимые параметры и нажмите Применить.
Чтобы создать новый шаблон отображения:
-
Перейдите в и нажмите +.
-
Задайте параметры во вкладке Основное
-
Наименование
-
Код шаблона
-
Описание
-
Состояние
-
Тип
-
Провайдер
-
-
Внесите параметры в формате JSON для создания шаблона полного отображения. Шаблон полного отображения отвечает за отображение продукта.
-
Внесите параметры в формате JSON для создания шаблона полного отображения. Данный шаблон отвечает за отображение продукта в таблице Компоненты.
Обязательными свойствами являются: type, name, status.
-
Внесите параметры item в формате JSON на вкладке Item для предпросмотра.
-
Дополнительно можно указать параметры для заказа для предпросмотра и теги.
9. Шаблоны узлов
Данное меню отображает список всех доступных в системе шаблонов узлов, которые могут быть использованы в графах.
Чтобы создать новый узел:
-
Перейдите в и нажмите +.
-
Внесите параметры во вкладку Основное:
-
Наименование
-
Код шаблона
-
Описание
-
Название очереди для старта задачи
-
Название очереди для отката
-
Время ожидания
-
Тип
-
-
Внесите описание входящих и исходящих данных во вкладку Параметры и активируйте опции, определяющие переопределение данных.
-
Задайте ролевые ограничения для узла на вкладке Ограничения.
-
Список графов, в которых используется данный шаблон узла, отображается на вкладке Использование.
-
На вкладке История изменений, отображается история изменений узла.
10. Теги
Теги используются для группировки графов.
Чтобы создать тег:
-
Перейдите в .
-
Нажмите +.
-
В окне Добавление нового тега введите Наименование.
Поле Наименование имеет максимальную длину в 50 символов и может содержать только прописные буквы латинского алфавита [a-z], цифры от 0 до 9 и символы "_","-",":","." -
Нажмите Добавить.
-
Для добавления тега к графу перейдите в .
-
Выберите граф из списка или нажмите +.
-
Перейдите на вкладку Теги, нажмите Добавить и выберите из списка ранее созданный тег.
-
Нажмите Сохранить.
-
Для просмотра графов, имеющих одинаковый тег, перейдите в и нажмите на конкретный тег.
Чтобы удалить тег:
-
Удалите тег из всех графов, где он используется.
-
Перейдите в .
-
Выберите тег из списка и нажмите
.