Как объединить триггеры в конвейере Concourse: git и ресурс времени? - PullRequest
0 голосов
/ 21 мая 2019

Я пытаюсь настроить конвейер Concourse, который будет запускать новое развертывание.Цель состоит в том, чтобы позволить конвейеру работать, только когда новые значения были переданы в репозиторий git И когда время находится в пределах определенного временного окна.

В настоящее время кажется, что триггеры работают в режиме ИЛИ.Когда новая версия нажата, конвейер будет работать.Когда время в пределах окна, конвейер будет запущен.
Кажется, что единственное исключение - это когда оба триггера не сработали хотя бы один раз, например, в первый день, когда время еще не прошло.Это заставило конвейер дождаться первого успеха триггера временного окна перед запуском.Однако после этого продолжалось нежелательное поведение при каждом обновлении репозитория git.

Ниже приведена минимальная версия моего конвейера.Цель состоит в том, чтобы запустить конвейер только с 9:00 до 9:10 вечера, и предпочтительно только после обновления git-репозитория.

resource_types:
  - name: helm
    type: docker-image
    source:
      repository: linkyard/concourse-helm-resource

resources:
  - name: cicd-helm-values_my-service
    type: git
    source:
      branch: master
      username: <redacted>
      password: <redacted>
      uri: https://bitbucket.org/myorg/cicd-helm-values.git
      paths:
        - dev-env/my-service/values.yaml
  - name: helm-deployment
    type: helm
    source:
      cluster_url: '<redacted>'
      cluster_ca: <redacted>
      admin_cert: <redacted>
      admin_key: <redacted>
      repos:
        - name: chartmuseum
          url: '<redacted>'
          username: <redacted>
          password: <redacted>
  - name: time-window
    type: time
    source:
      start: 9:00 PM
      stop: 9:10 PM

jobs:
  - name: deploy-my-service
    plan:
    - get: time-window
      trigger: true
    - get: cicd-helm-values_my-service
      trigger: true
    - put: helm-deployment
      params:
        release: my-service
        namespace: dev-env
        chart: chartmuseum/application-template
        values: ./cicd-helm-values_my-service/dev-env/my-service/values.yaml

Будем весьма благодарны за любые идеи о том, как объединить временное окно и сервис cicd-helm-values_my-service.Заранее спасибо!

1 Ответ

0 голосов
/ 21 мая 2019

Для такого точного планирования времени ресурс времени не адаптирован.Что хорошо работает, так это https://github.com/pivotal-cf-experimental/cron-resource. Это решит одну часть вашей проблемы.

Что касается срабатывания с AND, то это не семантика разветвления.Семантика - это OR, как вы заметили.Вы можете попробовать использовать ресурс шлюза https://github.com/Meshcloud/gate-resource,, хотя я не уверен, что он будет работать для вашего случая.

РЕДАКТИРОВАТЬ: Исправлен URL-адрес ресурса gated

...