kubernetes - Tekton 通过传递参数运行管道
问题描述
我有一个 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
?
例子:
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 时。
然后PipelineRun
使用TriggerTemplate完成带有参数映射的模板