前回の記事でクラスタのPodがたくさん作れるようになったので今回は気になっていた Spinnaker をインストールして使ってみることにしました。
動機としては会社で Spinnaker を使っているのが理由です。
会社だとメンテナンスされた Spinnaker の上で自分はパイプラインを作るだけです。これ自体はとても良いのですが、個人的に自分が使うツールは自分でゼロからいれてみて試行錯誤したいので、今回はプライベートでメンテナンスしている Kubernetes にいれてみることにしました。
後はきっかけとしては下記のブログを読んだのもあります。
ただドキュメントにも書かれているように Operator は評価のために使うものみたいなので本番は Halyard を使ってインストールするのが良いみたいです。
インストール自体はドキュメント通りに Halyard (hal
) をインストールして進めていくだけでした。
ただひとつハマったこととしては、Spinnaker の設定などを S3 にいれていたのですが、うまく権限が設定されておらず Pod の一部で Service: Amazon S3; Status Code: 403
が出ていました。
S3をStorageとして指定する時はドキュメントにもあるように s3:*
の権限をもったユーザーの認証情報が必要です。
terraform だと下記のように指定して作成します。
resource "aws_iam_user" "spinnaker" { name = "spinnaker" } resource "aws_iam_user_policy" "spinnaker" { name = "spinnaker" user = aws_iam_user.spinnaker.name policy = <<EOF { "Version": "2012-10-17", "Statement": [ { "Action": [ "s3:*" ], "Effect": "Allow", "Resource": "*" } ] } EOF }
後は hal コマンドで設定します。
$ hal config storage s3 edit \ --bucket spinnaker-bucket-name \ --access-key-id xxxx \ --secret-access-key \ --region ap-northeast-1
無事すべての Pod が起動した後は hal deploy connect
するとフォワーディングされてブラウザで
アクセスできるようになります。