Как передать тег изображения Docker в веб-крючок Spinnaker, чтобы запустить конвейер со стадией * Run Job * - PullRequest
0 голосов
/ 26 июня 2019

У меня есть конвейер Spinnaker с одноступенчатым конвейером типа Run Job (Запускает контейнер).Эта конфигурация имеет имя образа для запуска, но тег специально говорит, что он будет разрешен во время выполнения.Я создал триггер Docker Registry , который действительно разрешает имя тега.Когда я запускаю ручное выполнение, в диалоговом окне отображается выпадающий список для выбора тега (этого не происходит, если триггер Docker Registry не настроен).До этого момента как Docker Registry , так и Ручное выполнение триггеры работают нормально.

Проблема возникает в webhookспусковой крючок.Я получаю Status: TERMINAL с сообщением:

No tag found for image gcr.io/xxxx in trigger context.

Я попытался передать тег в параметрах.Это не работает.

1 Ответ

0 голосов
/ 04 июля 2019

Это происходит потому, что триггер webhook не предоставляет никаких артефактов докера для вашего конвейера.

Для его решения вы можете указать артефакт по умолчанию.

Второй вариант - предоставить описание артефакта через webhook.Добавьте артефакт докера к «Ограничениям артефакта» в Spinnaker:


  "expectedArtifacts": [
    {
      "displayName": "docker-image",
      "id": "artifact-id",
      "matchArtifact": {
        "id": "match-artifact-id",
        "type": "docker/image"
      },
      "useDefaultArtifact": false,
      "usePriorArtifact": false
    }
  ]

...

    {
      "enabled": true,
      "expectedArtifactIds": [
        "artifact-id"
      ],
      "payloadConstraints": {},
      "source": "test",
      "type": "webhook"
    }

и добавьте полезную нагрузку к вашему запросу :

POST http://spinnaker.cluster.local/webhooks/webhook/test
Content-Type: application/json

{
  "artifacts": [
    {
      "name": "docker-registry.local/org/app",
      "reference": "docker-registry.local/org/app:1.0.0",
      "type": "docker/image",
      "version": "1.0.0"
    }
  ]
}
...