JFrog Connector
JFrog Connector — это платформонезависимый коннектор, который можно использовать для подключения к экземплярам JFrog Artifactory.
Вы можете использовать JFrog Connector для безопасного доступа к приватным Maven, NPM и PyPI репозиториям, размещённым в JFrog Artifactory, в CICD пайплайнах, либо использовать его в Kubernetes workload для выполнения операций с пакетами без учётных данных.
Кроме того, вы можете централизовать управление конфигурациями доступа к JFrog Artifactory по пространствам имён, избегая необходимости повторять учётные данные в каждом namespace.
Содержание
OverviewIntegration RequirementsCreating a simple JFrog connectorFields ReferenceCapabilities of JFrog ConnectorAuthenticationCredential Permissions RequiredJFrog Connector Proxy and Configuration FilesMaven Configuration: settings.xmlNPM Configuration: .npmrc and .yarnrc.ymlPyPI Configuration: pip.conf and .pypircUsing Connectors CSI Driver to Mount Configuration Filesconfiguration.params for JFrogFurther ReadingReferencesOverview
В этом документе рассматривается:
- Требования к интеграции: предпосылки для целевых экземпляров JFrog Artifactory
- Создание JFrog коннектора
- Расширенные возможности: прокси и конфигурационные файлы для Maven, NPM и PyPI
Integration Requirements
JFrog Artifactory предпосылки
- Экземпляр JFrog Artifactory, доступный из кластера Kubernetes
- Учётные данные пользователя с соответствующими правами на репозитории
Creating a simple JFrog connector
Пример создания базового JFrog Connector:
Fields Reference
spec.connectorClassName:
jfrog (константа), указывает имя ConnectorClass для интеграции с JFrog Artifactory.
spec.address:
Базовый URL JFrog Artifactory, например: https://jfrog.example.com.
spec.auth(optional):
Определяет метод аутентификации для экземпляра JFrog Artifactory.
-
spec.auth.name: должен бытьbasicAuthдля JFrog коннектора. -
spec.auth.secretRef: указывает секрет, содержащий данные аутентификации JFrog Artifactory. Секрет должен быть создан в том же namespace, что и коннектор.
Опциональные поля Metadata:
-
cpaas.io/description: описание JFrog коннектора, например:
Capabilities of JFrog Connector
Authentication
JFrog коннектор поддерживает следующие типы аутентификации:
basicAuth: аутентификация по имени пользователя и паролю, соответствующий тип секрета:kubernetes.io/basic-auth
Пример:
Для подробной информации о статусе смотрите Connector Status Documentation.
Credential Permissions Required
Необходимые права для настроенных учётных данных зависят от того, как вы планируете их использовать.
Например:
- Операции загрузки: если нужно только скачивать зависимости, учётные данные требуют только права на чтение целевого репозитория.
- Операции публикации: если необходимо публиковать артефакты, учётные данные должны иметь права на чтение и запись целевого репозитория.
Для обеспечения безопасности рекомендуется создавать учётные данные с минимально необходимыми правами. При необходимости дополнительных привилегий создавайте отдельные коннекторы с более привилегированными секретами и используйте изоляцию namespace для контроля доступа пользователей к каждому коннектору.
JFrog Connector Proxy and Configuration Files
Для предоставления клиентам возможности доступа к JFrog Artifactory без учётных данных, JFrog коннектор предоставляет прокси-сервер, который автоматически внедряет информацию об аутентификации.
При создании коннектора система автоматически разворачивает прокси-сервис для целевого экземпляра JFrog Artifactory.
Адрес прокси записывается в status.proxy.httpAddress:
JFrog ConnectorClass предоставляет следующие конфигурационные файлы, которые можно монтировать через Connectors CSI Driver:
Maven Configuration: settings.xml
JFrog коннектор предоставляет конфигурационный файл settings.xml для Maven, который направляет загрузку артефактов через прокси коннектора к Maven репозиторию JFrog Artifactory.
Параметры конфигурации:
mirrorRepository(опционально): ключ репозитория JFrog Artifactory, используемый в качестве Maven mirror. Если не указан, в сгенерированномsettings.xmlне будет секции<mirrors>.
Пример определения CSI volume:
Пример сгенерированного settings.xml:
NPM Configuration: .npmrc and .yarnrc.yml
JFrog коннектор предоставляет конфигурационные файлы .npmrc и .yarnrc.yml для NPM/Yarn, которые направляют запросы через прокси коннектора к NPM репозиторию JFrog Artifactory.
Параметры конфигурации:
repository: ключ NPM репозитория JFrog Artifactory, используется для формирования URL реестра NPM/YarnstrictSSL(опционально): если задан, коннектор записывает это значение в.npmrc(strict-ssl) и.yarnrc.yml(enableStrictSsl)
Пример определения CSI volume:
PyPI Configuration: pip.conf and .pypirc
JFrog коннектор предоставляет конфигурационные файлы pip.conf и .pypirc для PyPI инструментов, которые направляют запросы через прокси коннектора к PyPI репозиторию JFrog Artifactory.
Параметры конфигурации:
repository: ключ PyPI репозитория JFrog Artifactory (дляpip.conf)deployRepository: ключ PyPI репозитория JFrog Artifactory для публикации (для.pypirc)
Пример определения CSI volume:
Using Connectors CSI Driver to Mount Configuration Files
Описание параметров CSI volume:
csi.readOnly: фиксированное значениеtruecsi.driver: драйвер Connector CSI, фиксированное значениеconnectors-csicsi.volumeAttributes: атрибуты CSI volumeconnector.name: имя JFrog Connectorconnector.namespace: namespace JFrog Connector; если не указан, используется namespace Podconfiguration.names: имя конфигурации. Поддерживаемые значения:settings(Maven),npmrc,yarnrc,pipconf,pypircconfiguration.params: JSON-строка с параметрами времени выполнения для каждой именованной конфигурации
configuration.params for JFrog
Общий формат, процесс валидации и поведение слияния configuration.params описаны в configuration.params в документации Connectors CSI Driver.
В текущем манифесте JFrog ConnectorClass схема/значения по умолчанию для configurations[].params явно не объявлены. Шаблоны конфигураций читают следующие ключи из configuration.params: