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

0 ответов

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