JFrog Connector
JFrog Connector 是一个平台无关的连接器,可用于连接到 JFrog Artifactory 实例。
您可以使用 JFrog Connector 在 CICD 流水线中安全访问托管在 JFrog Artifactory 中的私有 Maven、NPM 和 PyPI 仓库,或者在 Kubernetes 工作负载中使用它执行无凭证的包操作。
此外,您还可以集中管理跨命名空间的 JFrog Artifactory 访问配置,避免在每个命名空间中重复凭证。
目录
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 Connector
- 高级功能:代理功能及 Maven、NPM 和 PyPI 的配置文件
Integration Requirements
JFrog Artifactory 先决条件
- Kubernetes 集群可访问的 JFrog Artifactory 实例
- 具有适当仓库权限的用户凭证
Creating a simple JFrog connector
以下是创建基础 JFrog Connector 的方法:
Fields Reference
spec.connectorClassName:
jfrog(常量),指定用于 JFrog Artifactory 集成的 ConnectorClass 名称。
spec.address:
JFrog Artifactory 基础 URL,例如:https://jfrog.example.com。
spec.auth(可选):
指定 JFrog Artifactory 实例的认证方式。
-
spec.auth.name:对于 JFrog Connector,应为basicAuth。 -
spec.auth.secretRef:指定包含 JFrog Artifactory 实例认证信息的 Secret。该 Secret 应创建在与 Connector 相同的命名空间中。
可选元数据字段:
-
cpaas.io/description:JFrog Connector 的描述信息,例如:
Capabilities of JFrog Connector
Authentication
JFrog Connector 支持以下认证类型:
basicAuth:基于用户名和密码的认证,对应的 Secret 类型为kubernetes.io/basic-auth
例如:
有关完整的状态信息,请参见 Connector Status Documentation。
Credential Permissions Required
所需凭证权限取决于您打算如何使用它。
例如:
- 下载操作:如果仅需下载依赖,凭证只需对目标仓库具有读取权限。
- 发布操作:如果需要发布制品,凭证必须对目标仓库同时具有读写权限。
出于安全最佳实践,建议创建权限最小化的凭证。当需要额外权限时,创建具有更高权限的独立 Connector,并通过命名空间隔离控制用户对各 Connector 的访问。
JFrog Connector Proxy and Configuration Files
为了让客户端能够无凭证访问 JFrog Artifactory,JFrog Connector 提供了一个代理服务器,用于自动注入认证信息。
创建 Connector 后,系统会自动为目标 JFrog Artifactory 实例配置代理服务。
代理端点记录在 status.proxy.httpAddress 中:
JFrog ConnectorClass 提供以下可通过 Connectors CSI Driver 挂载的配置文件:
Maven Configuration: settings.xml
JFrog Connector 提供了用于 Maven 的 settings.xml 配置文件,通过 Connector 代理将制品下载路由到 JFrog Artifactory Maven 仓库。
配置参数:
mirrorRepository(可选):用于作为 Maven 镜像的 JFrog Artifactory 仓库 key。若省略,生成的settings.xml中不会包含<mirrors>部分。
示例 CSI 卷定义:
示例生成的 settings.xml:
NPM Configuration: .npmrc and .yarnrc.yml
JFrog Connector 提供了用于 NPM/Yarn 的 .npmrc 和 .yarnrc.yml 配置文件,通过 Connector 代理将请求路由到 JFrog Artifactory NPM 仓库。
配置参数:
repository:JFrog Artifactory NPM 仓库 key,用于构建 NPM/Yarn registry URLstrictSSL(可选):若设置,Connector 会将该值写入.npmrc(strict-ssl)和.yarnrc.yml(enableStrictSsl)
示例 CSI 卷定义:
PyPI Configuration: pip.conf and .pypirc
JFrog Connector 提供了用于 PyPI 工具的 pip.conf 和 .pypirc 配置文件,通过 Connector 代理将请求路由到 JFrog Artifactory PyPI 仓库。
配置参数:
repository:JFrog Artifactory PyPI 仓库 key(用于pip.conf)deployRepository:JFrog Artifactory PyPI 发布仓库 key(用于.pypirc)
示例 CSI 卷定义:
Using Connectors CSI Driver to Mount Configuration Files
CSI 卷参数说明:
csi.readOnly:固定值truecsi.driver:Connector CSI Driver,固定为connectors-csicsi.volumeAttributes:CSI 卷属性connector.name:JFrog Connector 名称connector.namespace:JFrog Connector 所在命名空间;若未指定,则使用 Pod 所在命名空间configuration.names:配置名称。支持值:settings(Maven)、npmrc、yarnrc、pipconf、pypircconfiguration.params:每个命名配置的运行时参数的 JSON 字符串
configuration.params for JFrog
有关 configuration.params 的通用格式、校验流程及合并行为,请参见 Connectors CSI Driver 文档中的 configuration.params。
在当前 JFrog ConnectorClass 清单中,configurations[].params 的 schema/默认值未显式声明。配置模板从 configuration.params 中读取以下键: