在 Tekton Task 中使用 Maven Connector

在 Tekton Task 中使用 Maven Connector,可以在 Tekton Task 执行期间集中管理工具集成信息,并安全访问 Maven registry。

本文将介绍如何在一个 TaskRun 中使用多 connector 能力来:

  • 从镜像 Maven repository 拉取依赖
  • 将构建产物发布到私有 Maven repository

Tekton Task 的要求

并非所有 Tekton Task 都可以使用 Maven Connector。

Maven Connector 通过 Connectors CSI Driver 注入临时 Maven 凭据。它提供一个名为 settings 的配置,该配置会生成包含临时身份验证信息的 settings.xml 文件,以及用于信任 connector 代理服务器的 ca.cert 文件。

因此,Tekton Task 必须满足以下要求才能使用 Maven Connector:

支持通过 Workspace 挂载 settings.xmlca.cert 文件

多 Connector 场景

要在同一个 TaskRun 中从镜像拉取依赖并部署到私有 repository,请准备两个 Maven connector:

  • maven-mirror-connector:配置 useAsMirror=true,用于依赖解析
  • maven-deploy-connector:配置为部署目标 repository

然后使用 volumeAttributes.connectors 将这两个 connector 挂载到同一个 workspace 中。

INFO

该场景需要在 connectors-config 中启用 enable-multi-connector feature flag。详情请参阅 Feature Flags

使用说明

在确认 Tekton Task 可以使用 Maven Connector 后,将这两个 connector 添加到 TaskRun YAML 中。

例如:

apiVersion: tekton.dev/v1
kind: TaskRun
metadata:
  name: maven-connector-demo
spec:
  params:
  - name: GOALS
    value:
    - "deploy"
    - "-Dmaven.resolver.transport=wagon" # See: https://maven.apache.org/guides/mini/guide-resolver-transport.html#switching-between-transports
    - "-DaltDeploymentRepository=nexus::https://<repository-url>/repository/maven-releases" # Optional if deploy repository is configured in pom.xml
  # other parameters...
  workspaces:
  - name: settings
    csi:
      driver: connectors-csi
      readOnly: true
      volumeAttributes:
        connectors: "maven-mirror-connector,maven-deploy-connector"
        configuration.names: "settings"
  - name: cert
    csi:
      driver: connectors-csi
      readOnly: true
      volumeAttributes:
        connectors: "maven-mirror-connector,maven-deploy-connector"
        configuration.names: "settings"

在此示例中:

  • maven-mirror-connector 用于从已配置的 mirror 拉取依赖。
  • maven-deploy-connector 用于 mvn deploy 将构建产物上传到私有 repository。
  • settings.xmlca.cert 会从同一个 settings 配置中挂载。

关于 workspace 参数,请参阅:

有关 Connectors CSI Driver 的更多信息,请参阅 Connectors CSI 配置

延伸阅读

参考