我们想使用Tekton实验功能,例如管道中的管道功能。我们已经通过kubectl application
安装了README中描述的功能,但最终出现了如下错误:
Pipeline default/buildpacks-test-pipeline can't be Run; it contains Tasks that don't exist: Couldn't retrieve Task "generic-gitlab-set-status": tasks.tekton.dev "generic-gitlab-set-status" not found
在这个问题中,我们需要在我们的部署中启用Tekton alpha功能。在自定义管道控制器行为的Tekton文档中,描述了所有功能标志-包括Alpha功能。如果我们想使用这些功能,我们应该将enable-api字段:
字段从稳定
更改为alpha
。
安装Tekton管道的推荐方法是使用kubectl application
利用远程提供的yaml文件:
kubectl apply --filename https://storage.googleapis.com/tekton-releases/pipeline/latest/release.yaml
在里面我们看到ConfigMap
feature ure-标志
(缩短):
apiVersion: v1
kind: ConfigMap
metadata:
name: feature-flags
namespace: tekton-pipelines
labels:
app.kubernetes.io/instance: default
app.kubernetes.io/part-of: tekton-pipelines
data:
...
# Setting this flag will determine which gated features are enabled.
# Acceptable values are "stable" or "alpha".
enable-api-fields: "stable"
...
有没有一种方法可以将enable-api-field
字段更改为alpha
,而无需存储(并长期维护)官方Tekton管道yaml文件?
curl
的简单组合下载文件并将其导入sed
,将稳定
替换为alpha
就像一个魅力-特别是因为这个标志是唯一包含稳定
的行(除了正上方的注释行)。sed
是使用库伯斯内特yaml文件设置动态值的常用工具。
您可以在末尾添加grep
来测试它以查看更改的行:
curl https://storage.googleapis.com/tekton-releases/pipeline/latest/release.yaml | sed "s#stable#alpha#g" | grep enable-api-fields
现在将该命令与最终的kubectl application-f-
(而不是grep
)结合使用将执行要求:
curl https://storage.googleapis.com/tekton-releases/pipeline/latest/release.yaml | sed "s#stable#alpha#g" | kubectl apply -f -
现在正式发布的Tekton管道yaml被配置为即时使用alpha功能——例如,无需在自定义git存储库中存储和维护ConfigMap
。