Как настроить шаблоны развертывания
Содержание
Процесс настройкиНастройка шаблонаСтруктура шаблонаОсновная информацияДинамическая форма 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, можно использовать .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}: текущее пространство имен (пространство имен, в котором пользователь выбирает инструмент для развертывания)
Пример:
Интернационализация элементов управления
Шаблон развертывания инструмента поддерживает настройку международного отображения имени, описания и заполнителя элемента управления. Добавляя дескрипторы с кодами языков в 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, иначе оператор восстановит содержимое шаблона при перезапуске или обновлении.