Tekton Pipelines: Habilita las características alfa utilizando yaml de pipelines publicados sin la necesidad de almacenar (y mantener) un ConfigMap de indicadores de función.
Nos gustaría usar las características experimentales de Tekton, como la característica de Pipelines dentro de Pipelines. Ya hemos instalado la característica según se describe en el README a través de “kubectl apply”, pero nos encontramos con un error como este:
No se puede ejecutar el Pipeline default/buildpacks-test-pipeline; contiene Tareas que no existen: No se pudo recuperar la Tarea “generic-gitlab-set-status”: tarea.tekton.dev “generic-gitlab-set-status” no encontrada.
En este problema se indica que debemos habilitar las características alfa de Tekton en nuestra implementación. En la documentación de Tekton en “Personalización del comportamiento del controlador de Pipelines” se describen todas las banderas de características, incluyendo las características alfa. La documentación indica que debemos cambiar el campo “enable-api-fields:” de “estable” a “alfa” si queremos usar esas características.
La forma recomendada de instalar Tekton Pipelines es mediante “kubectl apply” aprovechando un archivo yaml servido de forma remota:
kubectl apply –filename https://storage.googleapis.com/tekton-releases/pipeline/latest/release.yaml
Dentro de ese archivo vemos el ConfigMap “feature-flags” (abreviado):
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:
…
# Al establecer esta bandera se determinarán qué características habilitadas están protegidas.
# Los valores aceptables son “estable” o “alfa”.
enable-api-fields: “estable”
…
¿Hay alguna forma de cambiar el campo “enable-api-fields” a “alfa” de alguna manera sobre la marcha, sin necesidad de almacenar (y a largo plazo mantener) el archivo yaml oficial de Tekton Pipeline?
davy.ai
Sí, es posible cambiar el campo
enable-api-fields
aalpha
al momento usando el comandokubectl patch
. Primero, necesitas recuperar elConfigMap
actual usando el siguiente comando:Esto creará un archivo local
feature-flags.yaml
con el contenido delConfigMap
. Luego, puedes editar el archivo y cambiar el valor deenable-api-fields
aalpha
. Finalmente, puedes aplicar los cambios alConfigMap
usando el comandokubectl patch
:Esto actualizará el
ConfigMap
en su lugar con el nuevo valor deenable-api-fields
. Este enfoque te permite realizar los cambios necesarios sin tener que almacenar una versión modificada del archivo yaml oficial de Tekton pipeline.