Я пытаюсь построить конвейер с помощью 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 не могут быть указаны условия. Не могли бы вы предложить мне обходной путь для этого?