We'd like to use Tekton experimental features such as the Pipelines In Pipelines feature. We already installed the feature as described in the README via kubectl apply
but end up in an error like this:
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
In this issue it is stated, that we need to enable Tekton alpha features in our deployment. In the Tekton docs at Customizing the Pipelines Controller behavior all feature flags are described - including the Alpha Features. The docs state we should change the enable-api-fields:
field from stable
to alpha
if we want to use those features.
The recommended way of installing Tekton Pipelines is to use kubectl apply
leveraging a remotely served yaml file:
kubectl apply --filename https://storage.googleapis.com/tekton-releases/pipeline/latest/release.yaml
Inside we see the ConfigMap
feature-flags
(shortened):
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"
...
Is there a way to change the enable-api-fields
field to alpha
somehow on-the-fly without the need to store (and in the long run maintain) the official Tekton pipeline yaml file?
A simple combination of
curl
which downloads the file and pipes it intosed
, which substitutes thestable
toalpha
works like a charm - especially since this flag is the only line includingstable
(except of the commentary line directly above).sed
is a common tool to set dynamic values with Kubernetes yaml file.You may test-drive it adding a
grep
at the end to see the lines changed with:Now combining the command with a final
kubectl apply -f -
(instead ofgrep
) will do what was asked for:Now the officially released Tekton pipelines yaml is configured to use alpha features on-the-fly - without the need to store and maintain the
ConfigMap
in a custom git repository for example.