Как настроить шаблоны развертывания
Содержание
Пользовательский процессСтруктура шаблонаОсновная информацияДинамическая форма UIШаблон развертыванияТипы элементов управленияПеременные динамической формыИнтернационализация элементов управленияОтображаемая информация элемента управленияВалидация полейДинамический выборЧасто задаваемые вопросыКак получить доступ к содержимому встроенного шаблона?Как скрыть встроенный шаблон продукта?Пользовательский процесс
Процесс настройки шаблона следующий:
- Настройка шаблона: согласно описанию в разделе Configure Template настройте содержимое шаблона по необходимости
- Регистрация и проверка шаблона: согласно описанию в разделе Register and Verify the Template зарегистрируйте шаблон в целевом кластере и проверьте содержимое шаблона
Настройка шаблона
Структура шаблона
Шаблон развертывания инструмента определяется и управляется через ресурс ConfigMap. Каждый шаблон состоит из следующих трёх основных частей:
- Основная информация: содержит базовую конфигурационную информацию, такую как имя, описание и теги шаблона
- Динамическая форма UI: определяет элементы формы, которые пользователь должен заполнить при развертывании инструмента
- Шаблон развертывания: содержит конкретные определения ресурсов, необходимые для развертывания инструмента
Основная информация
Основная информация включает имя шаблона, описание, теги, комментарии, отображаемое имя и описание.
Пример:
Динамическая форма UI
UI развертывания инструмента предоставляет функциональность динамической формы, которая автоматически генерирует соответствующий интерфейс формы на основе описания формы в шаблоне, упрощая процесс настройки для пользователя.

Информация о конфигурации динамической формы хранится в аннотации ui.cpaas.io/descriptors, конкретный формат следующий:
Пожалуйста, обратитесь к разделу Configure Dynamic Form для списка поддерживаемых типов элементов управления динамической формы.
Шаблон развертывания
Движок шаблонов реализован на основе Helm Template и поддерживает все встроенные функции шаблонов Helm template functions, такие как обработка строк, математические операции, управление потоком и др. Вы можете использовать эти функции для создания гибких шаблонов развертывания.
Основная функция шаблона — подстановка входных параметров в предопределённый шаблон. Входные параметры поступают из двух основных источников:
- Значения, введённые пользователем в форме
- Конфигурационная информация, полученная из ресурсов 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, иначе оператор восстановит содержимое шаблона при перезапуске или обновлении.