Spinnakerを試したメモ

継続的デリバリーのためのシステムであるSpinnakerを試したメモをまとめておきます.
今回はGoogle Compute Engineを使用しました.
Spinnaker: Getting Started
基本的には公式サイトのGetting startedに従います.AWSでのセットアップも載っているので見た感じ面倒くさそうですが思っていたよりも簡単でした.

インスタンスの準備

指示されているAPI(Compute Engine APIとCompute Engine Autoscaler API)を有効にした後,google cloud launcherを用いることで簡単にインスタンスを用意する事ができます.
Cloud Launcher — Google Cloud Platform
Launch on Google Cloud Platform ボタンから順にたどっていけば構築で迷うことはないと思います.インスタンスの起動からspinnakerのインストール,起動を自動で行ってくれます.
この後の操作はspinnakerのサイトにはあまり書かれていませんが,cloud launcherで指示されます.

Google Cloud SDKのインストール

次にGoogle Cloud SDKがなければ入れておきます.Google Compute Engineとやりとりするコマンドラインツールが提供されます.
インストールした後はgcloud initコマンドで使用するgoogleアカウントの設定などを行います.windowsの場合はGoogle Cloud SDK shellは管理者として実行する必要もあると思います.
sshの鍵がない場合は自動的に生成プロンプトが表示されます.

Spinnakerへの接続

あとはGoogle Cloud SDK shellからsshで接続します.コマンドは以下の通りです.

gcloud compute ssh spinnaker-test --ssh-flag="-L 8084:localhost:8084" --ssh-flag="-L 9000:localhost:9000" --ssh-flag="-L 8087:localhost:8087"

spinnaker-testの部分は自分で決めたインスタンス名です.他にも方法があるようですが一番簡単そうなのがこのやり方です.
ただし,windowsの場合はこのままでは動きません.以下の記事で対応策が紹介されています.
NETFLIXのSpinnakerをさわってみた備忘禄 - ゆるふわカウンターアタック

gcloud compute ssh spinnaker-test --ssh-flag="-L" --ssh-flag="8084:localhost:8084" --ssh-flag="-L" --ssh-flag=" 9000:localhost:9000" --ssh-flag="-L" --ssh-flag="8087:localhost:8087"

-Lはポートフォワーディングのオプションです.初めて使いましたが,特定ポートへのアクセスを別のコンピュータの特定ポートへと送る機能だそうです.
SSH ポートフォワーディング
後はブラウザを開きlocalhost:9000にアクセスするとspinnakerのロゴが表示されたページが出るはずです
僕の環境のFireFoxでは先に進めなかったのでChromeを使用しました.

実行

公式のGetting startedにしたがってデリバリーのパイプラインを作り,実行します.
うまくいけば,Google Developers Consoleからinstance groups,VM instancesの下に新しいインスタンスが設定した分だけ起動されているのが確認できるはずです.

テストが終わったら,起動したインスタンスを止めておくのを忘れずに.こちらもspinnakerのコントロールパネルからできます.また,spinnakerのインスタンスを止めて再起動した後もspinnakerは自動的に起動するようです.