How to Customize Deployment Templates
Содержание
Пользовательский процессНастройка шаблонаСтруктура шаблонаОсновная информацияДинамическая форма UIШаблон развертыванияНастройка интернационализацииНастройка динамической формыТипы элементов управленияПеременные динамической формыИнтернационализация элементов управленияИнформация об отображении элемента управленияПроверка полейДинамический выборРегистрация и проверка шаблонаЧасто задаваемые вопросыКак получить доступ к содержимому встроенного шаблона?Как скрыть встроенный шаблон продукта?Пользовательский процесс
Процесс использования пользовательского шаблона выглядит следующим образом:
- Настройте шаблон: в соответствии с пояснениями в разделе Настройка шаблона настройте содержимое шаблона по необходимости
- Зарегистрируйте и проверьте шаблон: в соответствии с пояснениями в разделе Регистрация и проверка шаблона зарегистрируйте шаблон в целевом кластере и проверьте его содержимое
Настройка шаблона
Структура шаблона
Шаблон развертывания инструмента определяется и управляется через ресурс ConfigMap. Каждый шаблон состоит из следующих трех основных частей:
- Основная информация: содержит базовые сведения о шаблоне, такие как имя, описание и теги
- Динамическая форма UI: определяет элементы формы, которые пользователь должен заполнить при развертывании инструмента
- Шаблон развертывания: содержит конкретные определения ресурсов, необходимые для развертывания инструмента
Основная информация
Основная информация включает имя шаблона, описание, теги, комментарии, отображаемое имя и описание.
Пример:
Динамическая форма UI
UI развертывания инструмента предоставляет функцию динамической формы, которая может автоматически генерировать соответствующий интерфейс формы на основе описания формы в шаблоне, упрощая процесс настройки для пользователя.

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

Получение параметров из пользовательского ввода
В шаблоне можно использовать синтаксис {{ .Values.<field name> }}, чтобы получить значение, введенное пользователем. Например, если в форме для ввода домена развертывания определено поле с именем domain, то в шаблоне можно использовать {{ .Values.domain }} для ссылки на это значение.
Получение параметров из ресурсов k8s
В шаблоне можно использовать функцию lookup, предоставляемую Helm Template, чтобы получить информацию о конфигурации из ресурсов Kubernetes. Например, чтобы получить информацию о подключении к Redis (например, Host, Port) из ресурса Secret harbor-redis в namespace tools, можно использовать функцию lookup следующим образом:
Имя Secret также может быть введено пользователем. Например, если определено поле с именем redisSecret, то в шаблоне можно использовать .Values.redisSecret, чтобы ссылаться на имя Secret, введенное пользователем.
Настройка интернационализации
Шаблон поддерживает настройку интернационализации. При отображении в UI соответствующие имя и описание будут показаны в соответствии с языком, выбранным пользователем.
Поддерживаемые аннотации для интернационализации включают:
ui.cpaas.io/displayName.<language>ui.cpaas.io/description.<language>ui.cpaas.io/configuration.<language>
Чтобы настроить интернационализацию, достаточно добавить код языка в конец поля, например:
zh: отображать при выборе китайского языкаen: отображать при выборе английского языка
Пример:
Настройка динамической формы
Типы элементов управления
К распространенным типам элементов управления относятся: строка, число и выпадающий список.
Пример:
Переменные динамической формы
При описании динамической формы можно использовать следующие переменные:
${context.cluster}: имя текущего кластера${context.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 в качестве отображаемого имени и значения опции.
Регистрация и проверка шаблона
-
Зарегистрируйте пользовательский шаблон:
- Создайте ресурс шаблона (
ConfigMap) в namespacecpaas-systemцелевого кластера, чтобы завершить регистрацию.
- Создайте ресурс шаблона (
-
Проверьте регистрацию шаблона:
- Откройте страницу сведений об операторе инструмента
- Нажмите кнопку
Create Resource, чтобы перейти на страницу выбора шаблона - Если вы видите только что добавленный шаблон, регистрация выполнена успешно
-
Проверьте содержимое шаблона:
- Откройте страницу сведений об Operator инструмента
- Нажмите кнопку
Create Resource, чтобы перейти на страницу выбора шаблона - Если только что добавленный шаблон отображается, это означает, что регистрация выполнена успешно
-
Проверьте содержимое шаблона:
- Выберите пользовательский шаблон
- Следуйте подсказкам интерфейса, чтобы создать экземпляр инструмента
- Если экземпляр инструмента успешно развертывается, это означает, что содержимое шаблона корректно
Часто задаваемые вопросы
Как получить доступ к содержимому встроенного шаблона?
После развертывания оператора инструмента встроенные шаблоны развертывания будут автоматически зарегистрированы в namespace cpaas-system текущего кластера. Просмотреть содержимое шаблона можно по следующему пути:
- Откройте в платформе
Management View - Выберите
Cluster Management>Resource Management - Укажите тип ресурса как
ConfigMap - Выполните поиск по ключевому слову
template, чтобы найти соответствующий шаблон
Как скрыть встроенный шаблон продукта?
Если требуется скрыть встроенный шаблон продукта, можно добавить к ресурсу шаблона метку ui.cpaas.io/hidden и установить для нее значение true. Кроме того, необходимо добавить аннотацию skip-sync; в противном случае оператор восстановит содержимое шаблона при перезапуске или обновлении.