Как добавить возможность отката в конвейеры CI / CD, построенные через Tekton? - PullRequest
0 голосов
/ 11 июля 2020

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

...