我有一个TektonPipeline
和PipelineRun
定义。但是,我无法通过传递参数来实现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
运行该runner时,如何传递while参数?
示例:
value: $(REG_ADDRESS)
->我想在运行管道之前传递注册表地址,而不是给出硬编码的常量。
使用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时。
然后使用TriggerTemplate 完成带有参数映射的PipelineRun
模板
另一个例子如下:
tkn pipeline start pipeline-name --showlog
-w name=namespace-name,claimName=youor-pvc
-w name=git-credentials,secret=gh-token
-p repo-url=https://github.com/your-url
-p revision=REV-507