Как настроить шаблоны развертывания
Содержание
Процесс настройкиConfigure TemplateСтруктура шаблонаОсновная информацияДинамическая форма UIШаблон развертыванияConfigure InternationalizationConfigure Dynamic FormТипы элементов управленияПеременные динамической формыИнтернационализация элементов управленияОтображаемая информация элемента управленияВалидация полейДинамический выборRegister and Verify the TemplateЧасто задаваемые вопросыКак получить доступ к содержимому встроенного шаблона?Как скрыть встроенный шаблон продукта?Процесс настройки
Процесс настройки шаблона следующий:
- Настройка шаблона: согласно объяснению в разделе Configure Template настройте содержимое шаблона по необходимости
- Регистрация и проверка шаблона: согласно объяснению в разделе Register and Verify the Template зарегистрируйте шаблон в целевом кластере и проверьте содержимое шаблона
Configure Template
Структура шаблона
Шаблон развертывания инструмента определяется и управляется через ресурс ConfigMap. Каждый шаблон состоит из следующих трех основных частей:
- Основная информация: содержит базовую конфигурационную информацию, такую как имя, описание и теги шаблона
- Динамическая форма UI: определяет элементы формы, которые пользователь должен заполнить при развертывании инструмента
- Шаблон развертывания: содержит конкретные определения ресурсов, необходимые для развертывания инструмента
Основная информация
Основная информация включает имя шаблона, описание, теги, комментарии, отображаемое имя и описание.
Пример:
Динамическая форма UI
UI развертывания инструмента предоставляет функциональность динамической формы, которая может автоматически генерировать соответствующий интерфейс формы на основе описания формы в шаблоне, упрощая процесс настройки для пользователя.

Информация о конфигурации динамической формы хранится в аннотации ui.cpaas.io/descriptors, конкретный формат следующий:
Пожалуйста, обратитесь к разделу Configure Dynamic Form для поддерживаемых типов управления динамической формы.
Шаблон развертывания
Шаблонизатор реализован на основе Helm Template и поддерживает все встроенные функции шаблонов Helm, такие как обработка строк, математические операции, управление потоком и др. Вы можете использовать эти функции для создания гибких шаблонов развертывания.
Основная функция шаблона — подстановка входных параметров в предопределенный шаблон. Входные параметры поступают из двух основных источников:
- Значения, введенные пользователем в форме
- Конфигурационная информация, полученная из ресурсов Kubernetes

Получение параметров из пользовательского ввода
В шаблоне можно использовать синтаксис {{ .Values.<имя поля> }}, чтобы получить значение, введенное пользователем. Например, если в форме определено поле с именем domain для ввода домена развертывания, то в шаблоне можно ссылаться на это значение через {{ .Values.domain }}.
Получение параметров из ресурсов k8s
В шаблоне можно использовать функцию lookup, предоставляемую Helm Template, чтобы получить конфигурационную информацию из ресурсов Kubernetes. Например, чтобы получить информацию о подключении к Redis (например, Host, Port) из ресурса Secret gitlab-redis в пространстве имен tools, можно использовать функцию lookup следующим образом:
Имя Secret также может быть введено пользователем. Например, если определено поле с именем redisSecret, то в шаблоне можно ссылаться на имя Secret, введенное пользователем, через .Values.redisSecret.
Configure Internationalization
Шаблон поддерживает конфигурацию интернационализации. При отображении в UI будет показано соответствующее имя и описание в зависимости от выбранного пользователем языка.
Поддерживаемые аннотации для конфигурации интернационализации включают:
ui.cpaas.io/displayName.<language>ui.cpaas.io/description.<language>ui.cpaas.io/configuration.<language>
Для настройки интернационализации достаточно добавить код языка в конце поля, например:
zh: отображается при выборе китайского языкаen: отображается при выборе английского языка
Пример:
Configure Dynamic Form
Типы элементов управления
Распространенные типы элементов управления включают: строка, число и выпадающий список.
Пример:
Переменные динамической формы
При описании динамической формы можно использовать следующие переменные:
${context.cluster}: имя текущего кластера${context.namespace}: текущее пространство имен (пространство имен, в котором пользователь выбирает инструмент для развертывания)
Пример:
Интернационализация элементов управления
Шаблон развертывания инструмента поддерживает настройку международного отображения имени, описания и плейсхолдера элемента управления. Добавляя дескрипторы с кодами языков в x-descriptors, система может динамически отображать соответствующий текст в зависимости от предпочтений языка пользователя.
Поддерживаемые типы конфигурации интернационализации включают:
- Имя элемента управления (label):
urn:alm:descriptor:label:<language>:<name> - Описание элемента управления (description):
urn:alm:descriptor:description:<language>:<description> - Плейсхолдер элемента управления (placeholder):
urn:alm:descriptor:placeholder:<language>:<placeholder>
Где <language> — код языка, в настоящее время поддерживаются:
zh: китайскийen: английский
Пример: настройка поля ввода домена с поддержкой китайского и английского языков:
Отображаемая информация элемента управления
Элементы управления динамической формы поддерживают настройку международного отображения. При отображении в UI будет показано соответствующее имя и описание в зависимости от выбора языка пользователя.

Валидация полей
Динамическая форма поддерживает проверку введенных пользователем данных. Поддерживаемые правила валидации:
Пример 1: ограничение диапазона значений: 30000 ~ 32767
Пример 2: обязательное строковое поле
Пример 3: ограничение пути, введенного пользователем, абсолютным путем
Пример 4: ограничение длины ввода пользователя от 2 до 32 символов
Динамический выбор
Динамическая форма поддерживает динамическую загрузку списка опций через вызов API.
Пример: получить ресурс Secret из пространства имен devops кластера test и использовать metadata.name как имя и значение опции.
Register and Verify the Template
-
Регистрация пользовательского шаблона:
- Создайте ресурс шаблона (
ConfigMap) в пространстве именcpaas-systemцелевого кластера для завершения регистрации.
- Создайте ресурс шаблона (
-
Проверка регистрации шаблона:
- Перейдите на страницу деталей оператора инструмента
- Нажмите кнопку
Create Resourceдля перехода на страницу выбора шаблона - Если вы видите недавно добавленный шаблон, регистрация прошла успешно
-
Проверка содержимого шаблона:
- Откройте страницу деталей оператора инструмента
- Нажмите кнопку
Create Resourceдля перехода на страницу выбора шаблона - Если отображается недавно добавленный шаблон, это означает успешную регистрацию
-
Проверка содержимого шаблона:
- Выберите пользовательский шаблон
- Следуйте подсказкам интерфейса для создания экземпляра инструмента
- Если экземпляр инструмента успешно развернут, значит содержимое шаблона корректно
Часто задаваемые вопросы
Как получить доступ к содержимому встроенного шаблона?
После развертывания оператора инструмента встроенные шаблоны развертывания автоматически регистрируются в пространстве имен cpaas-system текущего кластера. Вы можете просмотреть содержимое шаблона следующим образом:
- Перейдите в
Management Viewплатформы - Выберите
Cluster Management>Resource Management - Выберите тип ресурса
ConfigMap - Выполните поиск по ключевому слову
template, чтобы найти соответствующий шаблон
Как скрыть встроенный шаблон продукта?
Если необходимо скрыть встроенный шаблон продукта, можно добавить метку ui.cpaas.io/hidden в ресурс шаблона и установить ее в true. Кроме того, нужно добавить аннотацию skip-sync, иначе оператор восстановит содержимое шаблона при перезапуске или обновлении.