首页 > 解决方案 > Tekton 通过传递参数运行管道

问题描述

我有一个 TektonPipelinePipelineRun定义。但是,我无法Pipeline通过传递参数实现运行。

apiVersion: tekton.dev/v1beta1
kind: PipelineRun
metadata:
  generateName: build-deploy-
  labels:
    tekton.dev/pipeline: build-deploy
spec:
  serviceAccountName: tekton-build-bot
  pipelineRef:
    name: build-deploy
  params:
    - name: registry-address
      value: $(REG_ADDRESS)
    - name: repo-address
      #value: $(REPO_ADDRESS)
      value: $(REPO_ADDRESS)
    - name: repo-name
      value: $(REPO_NAME)
    - name: version
      value: $(VERSION)
  workspaces:
    - name: source
      persistentVolumeClaim:
        claimName: my-pvc

尝试使用以下命令运行该运行器时如何传递参数kubectl create -f pipelinerun.yaml

例子:

value: $(REG_ADDRESS)-> 我想在运行管道之前传递注册表地址,而不是提供硬编码常量。

有任何想法吗?

标签: kuberneteskubectltektontekton-pipelines

解决方案


使用时不能传递这些参数kubectl create

有两种选择:

使用 tkn cli

您可以使用tkn,这是为 Tekton 专门设计的 CLI。然后你可以开始运行管道,例如:

tkn pipeline start build-deploy \
    --param registry-address=yay \
    --param repo-name=nay \
    --workspace name=source,claimName=my-pvc

使用触发器启动管道

您可以设置一个触发器,在某些事件上启动您的管道运行,例如当您推送到 Git 时。

然后PipelineRun使用TriggerTemplate完成带有参数映射的模板


推荐阅读