Spinnaker のパイプラインを実行するためのトリガーが多数用意されています。
- Webhook
- GitHub
- Cloud Pub/Sub
- Cloud Build *1
- GCS *2
- Docker Registry
- Jenkins
- Travis CI
- Wercker
- 別のパイプライン
- CRON
- Manually run (手動実行)
本記事ではトリガーの一つである、Webhook の設定方法や呼び出し方について紹介します。
パイプラインの設定
Configuration の Automated Triggers で Type を Webhook にするだけです。
Source は Webhook のエンドポイント名につきます。

画面上に出てくる、 http://localhost:8084/webhooks/<source> が Webhook のエンドポイントです。
Webhook にペイロードを POST することでパイプラインが実行されます。
$ curl http://localhost:8084/webhooks/<source> \
-X POST \
-H "content-type: application/json" \
-d '{ }'
オプションで特定のペイロードのみ受け付けるように制約をかけることもできます。
上記画像の Payload Constraints でパラメータ名と許容する値を指定します。 上図の例では .* にしているため、値は何でも受け付けます。
リクエストするときは以下のようにペイロードの付与します。
$ curl http://localhost:8084/webhooks/<source> \
-X POST \
-H "content-type: application/json" \
-d '{"api_name": "FooApiService"}'
ペイロードの受け取り
Webhook で渡したペイロードを次のステージで受け取る方法です。
例えば、 Bake (Packerによるイメージ作成) ステージの場合は、以下の図のように Show Advanced Options で ${ trigger['payload']['api_name'] } を Value に指定します。
