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.