Tekton Pipelines: включение альфа-функций с использованием выпущенных конвейеров yaml без необходимости хранить (и поддерживать) флаги функций ConfigMap

Мы хотели бы использовать экспериментальные функции Tekton, такие как функция Pipelines In Pipelines . Мы уже но установили эту функцию, как описано в 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 в нашем развертывании. В документации Tekton в разделе Настройка поведения контроллера конвейеров описаны все флаги функций, включая альфа-функции . В документации говорится, что мы должны изменить enable-api-fields: поле из stable если мы хотим использовать эти функции.

Но рекомендуемый способ установки Tekton Pipelines - использовать kubectl apply используя удаленно обслуживаемый файл yaml:

      kubectl apply --filename https://storage.googleapis.com/tekton-releases/pipeline/latest/release.yaml

Внутри мы видим ConfigMap feature-flags (сокращенно):

      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-fields поле для alpha как-то на лету без необходимости хранить (и в конечном итоге поддерживать) официальный yaml-файл конвейера Tekton?

1 ответ

Простая комбинация curlкоторый загружает файл и передает его в , который заменяет to alphaработает как шарм - тем более, что этот флаг - единственная строка, включающая stable(кроме строки комментариев непосредственно выше). sed— это распространенный инструмент для установки динамических значений с помощью файла yaml Kubernetes .

Вы можете протестировать его, добавив в конце, чтобы увидеть, как строки изменились:

      curl https://storage.googleapis.com/tekton-releases/pipeline/latest/release.yaml | sed "s#stable#alpha#g" | grep enable-api-fields

Теперь объедините команду с финальным kubectl apply -f -(вместо grep) сделает то, о чем просили:

      curl https://storage.googleapis.com/tekton-releases/pipeline/latest/release.yaml | sed "s#stable#alpha#g" | kubectl apply -f -

Теперь официально выпущенный yaml конвейеров Tekton настроен на использование альфа-функций «на лету» — без необходимости хранить и поддерживать ConfigMapнапример, в пользовательском репозитории git.

Другие вопросы по тегам