Как добавить возможность отката в конвейеры CI/CD, построенные через Tekton?
Я пытаюсь построить конвейер с использованием Tekton на Kubernetes. Я выполняю задачу развертывания с помощью helm. А теперь я хочу добавить возможность отката к предыдущей работоспособной версии приложения в случае сбоя обновления во время развертывания. Есть ли выход сделать это через тектон?
Я создаю задачу отката следующим образом:
apiVersion: tekton.dev/v1beta1
kind: Task
metadata:
name: rollback
spec:
steps:
- name: rollback
image: alpine/helm:latest
command: ["helm"]
args:
- "rollback"
- "notejam"
- "0"
И ресурс состояния следующим образом:
apiversion: tekton.dev/v1alpha1
kind: Condition
metadata:
name: deployment-check
spec:
check:
image: alpine/helm:latest
script: test "$(helm status notejam | awk '/STATUS/ {print $2}')" = "failed"
Это условие создано, чтобы проверить, не удалось ли последнее развертывание. После этого в мой файл ресурсов конвейера в конце добавлен следующий раздел:
finally:
- name: rollback
taskRef:
name: rollback
conditions:
- conditionRef: "deployment-check"
Я хочу, чтобы моя задача отката наконец-то выполнилась, но только после выполнения этого условия. Однако я получаю сообщение об ошибке, в котором говорится, что в предложении finally не могут быть указаны условия. Не могли бы вы предложить мне обходной путь для этого?