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