Как настроить шаблоны развертывания
Содержание
Пользовательский процесс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 и поддерживает все встроенные template functions Helm, такие как обработка строк, математические операции, управление потоком выполнения и т. д. Эти функции можно использовать для создания гибких шаблонов развертывания.
Основная функция шаблона — подставлять входные параметры в заранее определенный шаблон. Входные параметры в основном поступают из двух источников:
- Значение, введенное пользователем в форме
- Информация о конфигурации, полученная из ресурсов Kubernetes

Получение параметров из пользовательского ввода
В шаблоне можно использовать синтаксис {{ .Values.<field name> }} для получения значения, введенного пользователем. Например, если в форме для ввода домена развертывания определено поле с именем domain, то в шаблоне можно использовать {{ .Values.domain }} для ссылки на это значение.
Получение параметров из ресурсов k8s
В шаблоне можно использовать функцию lookup, предоставляемую Helm Template, для получения информации о конфигурации из ресурсов Kubernetes. Например, чтобы получить информацию о подключении Redis (например, Host, Port) из ресурса Secret gitlab-redis в namespace tools, можно использовать функцию lookup следующим образом:
Имя Secret также может быть введено пользователем. Например, если определено поле с именем redisSecret, можно использовать .Values.redisSecret для обращения к имени Secret, введенному пользователем в шаблоне.
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}: текущий namespace (namespace, в котором пользователь выбирает инструмент для развертывания)
Пример:
Интернационализация элементов управления
Шаблон развертывания инструмента поддерживает настройку международного отображаемого содержимого имени, описания и placeholder элемента управления. Добавляя дескрипторы с кодами языков в x-descriptors, система может динамически отображать соответствующий текст в соответствии с языковыми предпочтениями пользователя.
Поддерживаемые типы настройки интернационализации включают:
- Имя элемента управления (label):
urn:alm:descriptor:label:<language>:<name> - Описание элемента управления (description):
urn:alm:descriptor:description:<language>:<description> - Placeholder элемента управления (placeholder):
urn:alm:descriptor:placeholder:<language>:<placeholder>
Где <language> — код языка; в настоящее время поддерживаются:
zh: китайскийen: английский
Пример: настройка поля ввода домена с поддержкой китайского и английского языков:
Информационное отображение элементов управления
Элементы динамической формы поддерживают настройку международного отображаемого содержимого. При отображении в UI соответствующее имя и описание будут показаны в соответствии с языковым выбором пользователя.

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