快速开始

本指南将现有的 Tekton 安装连接到 Artifact Hub Shim,并从内置目录中解析一个 Task。

前提条件

  • Artifact Hub Shim 已安装并可用。
  • 已安装 Alauda DevOps Pipelines v4.0 或更高版本。
  • 你可以在测试命名空间中编辑 TektonConfig 并创建 TaskRun

流程概览

步骤操作预期结果
1验证 Artifact Hub ShimAPI 返回健康且就绪。
2配置 Tektonhub resolver 使用集群内的 shim Service。
3验证 resolver生成的 resolver ConfigMap 包含 shim URL。
4解析 TaskTaskRun 进度超出远程解析阶段。

验证 Artifact Hub Shim

以下命令使用默认命名空间和 Service 名称:

kubectl get deployment,service -n artifacthub-shim-system

kubectl get --raw \
  '/api/v1/namespaces/artifacthub-shim-system/services/http:artifacthub-shim-api:80/proxy/readyz'

就绪响应应包含 "status":"ready"。返回就绪状态表示 API 已发布目录快照。

配置 Tekton

对于集成了 Artifact Hub Shim 的标准 ACP 安装,可能已经包含以下设置。如果这些值缺失,或者插件使用了自定义命名空间,请将适用字段合并到 TektonConfig.spec.pipeline 中:

apiVersion: operator.tekton.dev/v1alpha1
kind: TektonConfig
metadata:
  name: config
spec:
  pipeline:
    enable-hub-resolver: true
    hub-resolver-config:
      artifact-hub-api: http://artifacthub-shim-api.artifacthub-shim-system.svc.cluster.local
      default-artifact-hub-task-catalog: catalog
      default-artifact-hub-pipeline-catalog: catalog-pipelines
      default-kind: task
      default-tekton-hub-catalog: catalog
      default-type: artifact

保留与 hub resolver 无关的现有 spec.pipeline 字段。有关 Pipelines as Code 和非默认安装,请参见 配置 Tekton 集成

验证 Resolver 配置

找到 Tekton 目标命名空间并检查已调和的 ConfigMap:

RESOLVER_NAMESPACE="$(kubectl get tektonconfig config \
  -o jsonpath='{.spec.targetNamespace}')"

kubectl get configmap hubresolver-config \
  -n "${RESOLVER_NAMESPACE}" \
  -o jsonpath='{.data.artifact-hub-api}{"\n"}'

预期输出:

http://artifacthub-shim-api.artifacthub-shim-system.svc.cluster.local

同时验证 resolver 功能已启用:

kubectl get configmap resolvers-feature-flags \
  -n "${RESOLVER_NAMESPACE}" \
  -o jsonpath='{.data.enable-hub-resolver}{"\n"}'

预期输出:

true

解析内置 Task

创建一个引用 run-script Task 的 0.1 版本的 TaskRun。如果打包目录提供了其他版本,请将 0.1 替换为列出的版本。

apiVersion: tekton.dev/v1
kind: TaskRun
metadata:
  generateName: artifacthub-shim-quick-start-
spec:
  taskRef:
    resolver: hub
    params:
      - name: type
        value: artifact
      - name: catalog
        value: catalog
      - name: kind
        value: task
      - name: name
        value: run-script
      - name: version
        value: "0.1"
  params:
    - name: script
      value: echo artifacthub-shim-ready

将清单保存为 taskrun.yaml,应用到测试命名空间,并检查结果:

kubectl apply -n <test-namespace> -f taskrun.yaml
kubectl get taskrun -n <test-namespace>

远程解析成功后,Tekton 会创建 TaskRun pod。如果 TaskRun 仍处于解析错误状态,请参见 Hub Resolver 无法解析资源

下一步