Как настроить шаблоны развертывания
Содержание
Процесс настройкиНастройка шаблонаСтруктура шаблонаОсновная информацияДинамическая форма UIШаблон развертыванияТипы элементов управленияПеременные динамической формыИнтернационализация элементов управленияИнформация об отображении элемента управленияВалидация полейДинамический выборЧасто задаваемые вопросыКак получить доступ к содержимому встроенного шаблона?Как скрыть встроенный шаблон продукта?Процесс настройки
Процесс настройки шаблона следующий:
- Настройка шаблона: согласно объяснению в разделе Configure Template настройте содержимое шаблона по необходимости
- Регистрация и проверка шаблона: согласно объяснению в разделе Register and Verify the 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.
Настройка интернационализации
Шаблон поддерживает конфигурацию интернационализации. При отображении в UI будет показано соответствующее имя и описание в зависимости от выбранного пользователем языка.
Поддерживаемые аннотации для конфигурации интернационализации включают:
ui.cpaas.io/displayName.<language>ui.cpaas.io/description.<language>ui.cpaas.io/configuration.<language>
Для настройки интернационализации достаточно добавить код языка в конце поля, например:
zh: отображается при выборе китайского языкаen: отображается при выборе английского языка
Пример:
Настройка динамической формы
Типы элементов управления
Распространённые типы элементов управления включают: строка, число и выпадающий список.
Пример:
Переменные динамической формы
При описании динамической формы можно использовать следующие переменные:
${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 как имя и значение опции.
Регистрация и проверка шаблона
-
Регистрация пользовательского шаблона:
- Создайте ресурс шаблона (
ConfigMap) в пространстве имёнcpaas-systemцелевого кластера для завершения регистрации.
- Создайте ресурс шаблона (
-
Проверка регистрации шаблона:
- Перейдите на страницу деталей оператора инструмента
- Нажмите кнопку
Create Resourceдля перехода на страницу выбора шаблона - Если вы видите недавно добавленный шаблон, регистрация прошла успешно
-
Проверка содержимого шаблона:
- Перейдите на страницу деталей оператора инструмента
- Нажмите кнопку
Create Resourceдля перехода на страницу выбора шаблона - Если виден недавно добавленный шаблон, это означает успешную регистрацию
-
Проверка содержимого шаблона:
- Выберите пользовательский шаблон
- Следуйте подсказкам интерфейса для создания экземпляра инструмента
- Если экземпляр инструмента успешно развернут, значит содержимое шаблона корректно
Часто задаваемые вопросы
Как получить доступ к содержимому встроенного шаблона?
После развертывания оператора инструмента он автоматически зарегистрирует встроенные шаблоны развертывания в пространстве имён cpaas-system текущего кластера. Вы можете просмотреть содержимое шаблона по следующему пути:
- Перейдите в
Management Viewплатформы - Выберите
Cluster Management>Resource Management - Выберите тип ресурса
ConfigMap - Выполните поиск по ключевому слову
template, чтобы найти соответствующий шаблон
Как скрыть встроенный шаблон продукта?
Если необходимо скрыть встроенный шаблон продукта, можно добавить метку ui.cpaas.io/hidden в ресурс шаблона и установить её в true. Кроме того, нужно добавить аннотацию skip-sync, иначе оператор восстановит содержимое шаблона при перезапуске или обновлении.