Создание независимой копии (fork) продукта в Конструкторе
В этой инструкции описан процесс создания независимой копии продукта и связанных с ним объектов.
Независимая копия позволяет изменять настройки продукта, графы, репозитории, шаблоны и другие компоненты, не затрагивая оригинальный продукт. Такой подход используется для создания собственных версий продуктов и сохранения внесенных изменений при обновлении платформы.
В процессе работы создаются копии продукта, графов, проектов AWX, шаблонов и других связанных объектов, а для репозитория Git создается отдельный форк (fork), то есть независимая копия.
1. Отключение автоматической очистки артефактов Nexus
По умолчанию при обновлении портала выполняется очистка продуктовых репозиториев Nexus. Из репозиториев удаляются:
-
артефакты, отсутствующие в новой версии релиза;
-
артефакты, загруженные вручную.
Если необходимо сохранить пользовательские артефакты, отключите автоматическую очистку:
-
Откройте файл:
inventories/<имя_стенда>/group_vars/k3s/config.yml -
Установите параметр:
nexus_clean: false
|
Если для независимой копии (fork) продукта были загружены собственные артефакты в Nexus, то параметр В противном случае пользовательские артефакты будут удалены при следующем обновлении платформы. |
2. Создание копии продукта
-
Авторизуйтесь в Control Panel:
-
Перейдите в раздел Конструктор → Продукты.
-
Найдите исходный продукт и в строке с ним нажмите ︙.
-
Выберите Создать копию.
После этого будет создана копия. Копия продукта наследует наименование исходного продукта и код продукта с суффиксом -clone.
| Рекомендуется изменить наименование и код продукта, чтобы он отличался от оригинала. |
3. Создание копии графа
Созданная копия продукта продолжает использовать граф исходного продукта, поэтому для копии необходимо создать собственный граф.
Для создания собственного графа:
-
Нажмите на созданную копию продукта.
Откроется режим редактирования.
-
Перейдите на вкладку Граф.
-
В строке с названием графа нажмите на
, чтобы перейти в редактор графа.
-
Копируйте значение из поля Код графа.
-
Перейдите в раздел Конструктор → Графы.
-
Введите в поиск скопированный код графа, чтобы найти нужный граф.
-
Создайте его копию.
По умолчанию копия графа наследует исходное наименование и код с суффиксом
-clone.
-
Измените наименование и код графа и сохраните изменения.
-
Скопируйте новый код графа.
-
Вернитесь в ранее созданную копию продукта и вставьте скопированное значение в поле Код графа на вкладке Граф.
-
Нажмите Сохранить.
4. Создание клона репозитория
Для каждого продукта необходимо определить репозиторий Git, который используется соответствующим Job Template.
|
Все графы на которые ссылаются подграфы, необходимо копировать как обычный граф. После создания копии подграфа в соответствующем узле необходимо заменить ссылку на новый граф. |
Для этого найдите репозиторий, связанный с продуктом:
-
Вернитесь к ранее созданному графу и откройте его.
-
Перейдите на вкладку Узлы.
-
Пролистайте страницу до блока Static data.
-
Выполните следующие действия, если в блоке Static data:
-
Присутствует переменная
"job_template", запомните ее значение. -
Переменная
"job_template"отсутствует:
-
Перейдите в режим редактирования узла подграфа.
-
В строке подграфа нажмите на
иконку стрелки.
-
После перехода в подграф откройте вкладку Узлы.
-
Прокрутите страницу вниз до блока Static data.
-
Найдите переменную
job_templateи запомните ее значение.
-
-
4.1. Поиск проекта AWX
-
Перейдите в сервис AWX.
-
Откройте раздел Resources → Templates.
-
Найдите Job Template по названию, полученному на предыдущем шаге.
-
Откройте найденный Job Template и запомните название проекта, указанное в поле Project. Оно потребуется при создании форка репозитория.
4.2. Создание форка репозитория Gitea
-
Откройте Gitea по адресу
https://git.<FQDN_стенда>, где<FQDN_стенда>— уникальный адрес стенда. -
Найдите репозиторий с названием, совпадающим со значением поля Project, полученным на предыдущем шаге, и откройте его.
-
Нажмите Форкнуть.
-
При необходимости измените название нового репозитория и нажмите Форкнуть репозиторий.
4.3. Создание копии проекта AWX
-
Вернитесь в сервис AWX.
-
Откройте раздел Resources → Projects.
-
Найдите проект, название которого совпадает со значением поля Project, полученным ранее.
-
Нажмите Copy Project.
Будет создана копия проекта. Ее название будет содержать дату и время создания.

-
Откройте созданную копию проекта и нажмите Edit.

-
Измените значение поля Name.
-
В поле Source Control URL укажите URL форка репозитория, созданного ранее.
-
При необходимости в поле Source Control Branch/Tag/Commit укажите ветку форка репозитория.
После создания форка изменяется URL репозитория. Вместо пути https://git.<FQDN_стенда>/cloud/original-repo.gitиспользуется путьhttps://git.<FQDN_стенда>/gitea/fork-repo.git. Укажите новый URL в поле Source Control URL.
-
Нажмите Save и дождитесь завершения синхронизации проекта.
-
Убедитесь, что в поле Last Job Status отображается статус Successful.
4.4. Создание копии Job Template
После создания копии проекта вкладка Job Templates будет пустой. Необходимо создать копию Job Template, имя которого было получено ранее из переменной job_template.
-
Откройте исходный проект.
-
Перейдите на вкладку Job Templates.
-
Найдите Job Template, название которого соответствует значению переменной
job_template. -
Откройте меню действий и выберите Copy Template.
-
Будет создана копия Job Template. Ее название будет содержать дату и время создания.
-
Откройте созданную копию и нажмите Edit.
-
Измените значение поля Name.
-
Запомните значение поля Playbook. Оно потребуется после изменения значения поля Project, поскольку при выборе другого проекта поле Playbook очищается автоматически.
-
В поле Project выберите созданную ранее копию проекта.
-
В поле Playbook укажите сохраненное ранее значение.
-
Остальные параметры оставьте без изменений.
-
Нажмите Save.
| Если исходный проект содержит несколько Job Templates, повторите эту процедуру для каждого шаблона. |
5. Создание пользовательских справочников
5.1. Создание справочника images
Создание отдельного справочника images необязательно.
Если требуется использовать собственные образы:
-
Авторизуйтесь в Control Panel.
-
Перейдите в раздел Конструктор → Справочники.
-
Нажмите + и создайте новый справочник.
-
Укажите имя и описание справочника. В примере используется имя
images_custom. -
Откройте созданный справочник и добавьте необходимые страницы с образами.
-
После создания справочника настройте граф продукта.
-
Перейдите в раздел Конструктор → Графы.
-
Откройте ранее созданную копию графа продукта.
-
Перейдите на вкладку Параметры заказа.
-
Откройте вкладку UI и в блоке кода UI найдите параметр
image. -
Замените значение свойства
directory__nameс"images"на имя созданного ранее справочника. В примере используется значение"images_custom".
-
-
Сохраните изменения.
5.2. Создание справочника flavors
По умолчанию продукты используют общий справочник flavors, содержащий доступные конфигурации виртуальных машин.
Если для копии продукта необходимо использовать собственный набор конфигураций, создайте отдельный справочник flavors и настройте фильтр для его использования.
-
Перейдите в раздел Control Panel: Конструктор → Справочники.
-
Нажмите + и создайте новый справочник.
-
Укажите имя и описание справочника. В примере используется имя
flavors_custom. -
Откройте созданный справочник и добавьте необходимые страницы с конфигурациями.
-
После создания справочника настройте фильтр для доступа к его содержимому:
-
Перейдите на вкладку Фильтры.
-
Нажмите + и создайте новый фильтр.
-
В поле Ключ укажите имя фильтра. В примере используется значение
redos_custom. -
В поле Значение:
-
Укажите имя созданного ранее справочника в параметре
directory__name; -
Задайте значение параметра
tags, которое будет использоваться для отбора записей справочника.
-
-
Сохраните фильтр.
-
После создания фильтра настройте граф продукта:
-
Откройте копию графа продукта.
-
Перейдите на вкладку Параметры заказа.
-
Откройте вкладку UI и найдите параметр
flavor. -
Измените значение свойства
filter, указав ключ созданного ранее фильтра. В примере используется значениеredos_custom. -
Сохраните изменения.
5.3. Настройка справочника enums
Страница EventProvider справочника enums содержит список провайдеров событий, доступных в продуктах платформы.
Если для копии продукта требуется использовать собственный провайдер, добавьте его в поле PageData страницы EventProvider. Создавать копию справочника enums или отдельную страницу EventProvider не требуется.
При обновлении платформы Cloudlink пользовательские значения в поле PageData объединяются со значениями, поставляемыми в составе платформы.
-
Перейдите в раздел Конструктор → Справочники.
-
Откройте справочник enums.
-
Перейдите на вкладку Страницы и найдите страницу EventProvider.
-
В строке c EventProvider нажмите ︙ и выберите Редактировать.
-
В поле PageData добавьте новую пару ключ-значение в формате JSON, например:
"CUSTOM_PROVIDER": "custom_provider"При добавлении нового значения:
-
используйте уникальный ключ;
-
укажите значение, которое будет использоваться в качестве кода провайдера в настройках продукта;
-
соблюдайте корректный синтаксис JSON.
-
-
Нажмите Сохранить.
После сохранения добавленный провайдер можно использовать в копии продукта.
Если пользовательский EventProvider используется в копии продукта, создайте также копии шаблона отображения и действия удаления. В противном случае изменения, внесенные в оригинальные шаблон и действие, могут быть перезаписаны при обновлении платформы.
|
6. Создание копии шаблона отображения
В качестве примера используется пользовательское значение EventProvider, созданное для продукта Nginx.
-
Перейдите в раздел Конструктор → Шаблоны отображения.
-
С помощью фильтра Провайдер найдите шаблон отображения, соответствующий пользовательскому значению
EventProvider. -
Нажмите Применить, чтобы отфильтровать шаблоны.
-
Создайте копию шаблона:
-
Нажмите в строке оригинального шаблона на ︙.
-
Выберите Создать копию.
-
-
В созданной копии измените значения полей Наименование и Код.
-
В поле Провайдер выберите ранее заданное пользовательское значение.
-
Измените состояние шаблона на Включено.
-
Нажмите Сохранить.
7. Создание копии действия удаления
-
Перейдите в раздел Конструктор → Действия.
-
С помощью фильтра найдите действие удаления, соответствующее исходному значению
EventProvider. -
Создайте копию действия:
-
Нажмите в строке оригинального действия на ︙.
-
Выберите Создать копию.
-
-
Откройте созданную копию.
-
Измените значения полей Наименование и Код.
-
Перейдите на вкладку Параметры и добавьте пользовательское значение
EventProvider.
-
Нажмите Зарегистрировать.
-
Нажмите Сохранить.