Быстрый старт
Этот документ поможет вам быстро понять, как создать maven-коннектор для подключения к maven-реестру и выполнять операции mvn безопасно, без прямой работы с учетными данными.
Мы создадим maven-коннектор и используем его для выполнения mvn deploy без прямого обращения с учетными данными на стороне клиента.
Содержание
Оценочное время чтенияПредварительные требованияОбзор процессаШаги для выполненияШаг 1: Создать NamespaceШаг 2: Создать учетные данные maven-реестра и коннекторШаг 3: Создать Job для выполненияmvn deployКлючевые настройкиШаг 4: Проверить выполнениеЧто происходит под капотомВажные замечанияПоток аутентификацииТочка монтирования настроекУстранение неполадокДополнительное чтениеReferencesОценочное время чтения
15 минут
Предварительные требования
- Kubernetes кластер с установленной системой Connectors (компоненты Operator, ConnectorsCore и ConnectorsMaven). Подробнее об установке этих компонентов см. в Installation Guide.
- Адрес maven-реестра (snapshots) и учетные данные
- Базовые знания Kubernetes и Maven
Обзор процесса
Шаги для выполнения
Шаг 1: Создать Namespace
Создайте выделенный namespace для этой демонстрации:
Шаг 2: Создать учетные данные maven-реестра и коннектор
Создайте Secret с учетными данными maven-реестра и ресурс maven-коннектора. Ваш maven-реестр должен быть репозиторием snapshots.
Для более подробной информации о создании и настройке коннекторов смотрите Connectors Quick Start Guide.
Проверьте, что коннектор находится в статусе "Ready":
Вывод должен быть следующим:
Шаг 3: Создать Job для выполнения mvn deploy
Создайте job, который использует коннектор для выполнения операций maven:
Ключевые настройки
MAVEN_OPTS в окружении контейнера:
Установлено в MAVEN_OPTS=-Dmaven.resolver.transport=wagon
Скрипты в контейнере:
Используется команда keytool для импорта файла ca.cert в truststore клиента, чтобы доверять прокси-серверу коннектора перед выполнением операций mvn.
volumes[].volumeAttributes
connector.name: имя вашего maven-коннектораconfiguration.names: установлено в "settings", ссылается на конкретный шаблон конфигурации, определённый в классе maven-коннектора. Этот шаблон используется для генерации файла "settings.xml" с соответствующими настройками аутентификации.
Шаг 4: Проверить выполнение
Проверьте логи job, чтобы убедиться, что операции mvn deploy выполнены успешно:
Вы должны увидеть успешное выполнение операций mvn deploy и загрузку jar в maven-репозиторий.
Пример вывода:
Что происходит под капотом
maven-коннектор работает следующим образом:
- Создаёт прокси-сервис, который находится между вашим maven-клиентом и целевым maven-реестром
- Внедряет информацию для аутентификации при прохождении запросов через прокси
- Предоставляет файлы
settings.xmlдля клиента, чтобы выполнять операции mvn через прокси
Для демонстрации этого механизма давайте посмотрим сгенерированный файл settings.xml:
Просмотрите сгенерированные файлы в /opt/maven/:
Просмотрите сгенерированный файл settings.xml:
Пример вывода:
Важные замечания
- В Pod через Connectors CSI Driver монтируются два файла:
settings.xmlиca.cert. - Файл
settings.xmlсодержит секцию конфигурации прокси, которая позволяет подключаться к maven-реестру через прокси. Прокси внедряет информацию для аутентификации при прохождении запросов. - Файл
settings.xmlне содержит оригинальных секретов и монтируется в Pod через Connectors CSI Driver.
Поток аутентификации
Pod inspect-mvn-deploy не содержит оригинальных токенов кластера. Когда maven выполняет HTTPS-запросы к maven-реестру, прокси-сервер перехватывает эти запросы, внедряет учетные данные аутентификации из maven-connector и пересылает аутентифицированные запросы на бэкенд-сервер maven-реестра.
Точка монтирования настроек
Файл settings.xml монтируется в Pod через Connectors CSI Driver.
В приведённом примере файлы settings.xml и ca.cert монтируются в Pod через Connectors CSI Driver.
- Файл
settings.xmlсодержит секцию конфигурации прокси, которая позволяет подключаться к maven-реестру через прокси. Прокси внедряет информацию для аутентификации при прохождении запросов. - Файл
ca.certиспользуется для доверия прокси-серверу коннектора, поэтому перед выполнением операций mvn следует импортировать файлca.certв truststore клиента.
Параметры volumes см. в разделе Using Connectors CSI Driver to mount settings.xml file документа Maven Connector Concepts.
Устранение неполадок
Если операция mvn deploy не удалась, проверьте следующее:
-
Статус коннектора: Убедитесь, что коннектор находится в состоянии "Ready":
-
Проверьте статус развертывания коннекторов: убедитесь, что все компоненты развернуты и находятся в состоянии "Ready"
Дополнительное чтение
После успешного выполнения операций mvn deploy с использованием maven-коннектора вы можете:
- Узнать больше о Concepts of Maven Connectors
- Using Maven Connectors as Maven Registry Mirror
- Using Maven Connectors in Tekton Pipelines