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

Конструктор

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

Граф представляет собой последовательность действий для создания продукта. Графы отличаются по типу:

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

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

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

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

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

  1. Перейдите в Конструктор  Графы.

  2. Нажмите +

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

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

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

      Код графа, наименование и автор необходимы для идентификации и управления графом в системе.
    3. Тип —  указывается один из двух типов: acting или creating

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

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

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

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

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

    kon1
  4. Добавьте узлы графа

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

      node
    2. Укажите параметры:

      • Название

      • Описание

      • Шаблон или Подграф из выпадающего списка

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

        Параметры заданные в поле Static data могут быть использованы во всем графе.
      • Определите входные и выходные переменные в полях Input и Output

        node1
      • Задайте дополнительные параметры, касающиеся запуска узла

        node2

        Для организации последовательности выполнения графа между узлами необходимо настроить взаимосвязи. Связи представляют собой линии соединяющие узлы на схеме. Одна линия, связывающая два узла на схеме, означает, что действия выполняются последовательно. Например, на рисунке сначала выполняются действия описанные в узле create_vm_zvirt, а потом действия описанные в узле Создаем UUID.

        node3

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

        node4
  5. Задайте параметры заказа во вкладке Параметры заказа.

    Для определения структуры данных и параметров заказа на вкладке Форма заказа используется 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 cвойство ui:readonly определяет права на операции с точкой монтирования. В данном случае свойству присвоено значение true, что в пользовательском интерфейсе будет означать доступ к точке монтирования только на чтение. Для определения формы заказа на вкладке Параметры заказа используется свойство ui:order, в котором описаны атрибуты:

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

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

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

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

      detail order

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

      • dev

      • prod

      • test

        mode

        Для сравнения версий или объектов можно воспользоваться вкладкой Сравнение

        compare

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

        use graf

        Дополнительно есть возможность увидеть используемые теги и историю изменений.

2. Действия

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

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

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

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

    1. vm

    2. app

    3. vdc

    4. cluster

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

    1. zvirt

    2. nova

    3. vsphere

    4. openstack

    5. kubernetes

  3. по тегу:

    action1

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

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

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

    1. Код действия

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

    3. Описание

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

      1. on

      2. off

      3. reboot

      4. deleted

      5. problem

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

      1. new

      2. pending

      3. success

      4. damaged

      5. maintenance

      6. removing

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

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

    8. Приоритет сообщения

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

    1. Тип

    2. Провайдер

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    1. Код запрещенного/разрешенного действия

      Поле может содержать только символы: "a-z", "0-9", "_", "-", ":", "."
    2. Наименование

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

      err acc1
    4. Направление запрета

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

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

    2. Провайдер

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

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

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

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

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

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

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

play

5. Продукты

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

prod

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

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

    1. Код продукта

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

    3. Автор

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

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

    6. Доступность для заказа (Открыт или Закрыт)

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

    1. Граф

    2. Тип версии

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

      • Паттерн

      • Значение

        prod ver1

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

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

    1. Категории

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

    3. Выбор оплаты

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

    5. Опции

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

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

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

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

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

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

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

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

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

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

synopsis1

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

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

  1. Перейдите в Конструктор  Справочники.

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

  3. На вкладке страницы нажмите + Добавить страницу.

  4. В открывшемся окне укажите параметры:

    • Имя — символьное имя кластера из системы виртуализации

      В zVirt для получения имени перейдите на вкладку Ресурсы  Кластеры, выберите из списка кластер, скопируйте имя на вкладке Общее.

      cluster name
    • Степень важности — определяет приоритет использования для размещения ресурсов

    • PageData — содержит описание платформы в формате JSON со следующей структурой:

      • resource_pool — описывает пул ресурсов для создания платформы:

        • name — имя кластера хранения из системы виртуализации

        • uuid — идентификатор кластера хранения

        • domain — имя домена хранения, который будет доступен для заказа ресурсов в DC Manager

        • endpoint — FQDN платформы виртуализации

        • platform — описывает тип платформы, обычно в зависимости от используемой платформы виртуализации

        • category — описывает категорию использования, например значение vm указывает, что платформа используется для размещения виртуальных машин

  5. Укажите Теги, которые используются как Код при дальнейшем создании платформы.

    Один из тегов должен быть уникальным для однозначной идентификации новой платформы.
    resource pool

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 для создания шаблона полного отображения. Шаблон полного отображения отвечает за отображение продукта.

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

    • Первый элемент должен иметь тип tabs

    • Значение первого элемента должно содержать tab с name=main

    • У каждого элемента обязательно должен быть указан type и задано значение value

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

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

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

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

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

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

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

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

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

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

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

    3. Описание

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

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

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

    7. Тип

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

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

    temp10
  5. Проверьте изменения во вкладке Сравнение версий.

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

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

10. Теги

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

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

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

  2. Нажмите +.

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

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

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

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

    tags 1
  7. Нажмите Сохранить.

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

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

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

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

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

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

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

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

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

    temp13