- あるリポジトリのあるプルリクエストがmasterブランチにマージされたら飛んでくるwebhookを受け取る
- そのリポジトリをcloneし、イメージのバージョンが書かれているファイルを探す
- 見つかったファイルのイメージのバージョンを上げる
- 変更をmasterブランチにpushする
- GitHubにDeploymentを発行する
工程に失敗したら必ず通知される。
- そのリポジトリをcloneし、イメージのバージョンが書かれているファイルを探す
- Cloud Container Builderでビルド、イメージをプッシュする
- k8sにjobを発行する
- kubernetesに対してDeploymentを操作してBlue/Green Deploymentを実行させる
- deployment.yamlをコピーしてgreenラベルつきに修正する
- greenラベルつきのdeploymentをapplyする
- serviceのselectorをgreenラベルつきに変える
- 元のdeployment.yamlをapplyする
- serviceのselectorからgreenラベルを外す
- greenラベルのdeploymentを削除する
- Slackに通知する
- GitHubのアカウント名
- GitHubのメールアドレス
- GitHubのアクセストークン
- 通知先のSlackのアクセストークン
- 通知先のSlackの部屋名
- k8sのデプロイ先のnamespace(デフォルトでdefault)
- cloudbuild.yamlの名前リスト(デフォルトで
cloudbuild.y(a)ml
を探す) - deployment.yamlの名前リスト(デフォルトで
deployment.y(a)ml
を探す) - job.yamlの名前リスト
- GitHubの真似をして知らない人がこのAPIを叩いてきた時にちゃんと弾く方法
- 送信元を見るかな
- 手元でyamlを編集してgit commit/pushする方法
- またJGitに入門かな...
- k8sを操作する方法
- JavaのSDKがあった気がするから、それでAPI叩いてみれないかな
- 複数リポジトリのhookをうまいこと扱う方法
- 初回は鍵を順番に試して、リクエストに成功したらその情報を覚えておく?