LoginSignup
1
0

More than 3 years have passed since last update.

GKEとSpinnakerでCD環境構築

Last updated at Posted at 2019-05-18

やりたいこと

  • 簡単にSpinnakerをGKEにインストールしたい
  • 新しいやつを入れたい

GCPの公式のSpinnakerのドキュメントを見て、GKEにインストールしてみたくなったが、最新(19/5/18)のSpinnaker(v1.12.5)ではなく、0.31というめっちゃ古いやつやって、そのままではインストールできなかった!

GCP公式のドキュメント
https://cloud.google.com/solutions/continuous-delivery-spinnaker-kubernetes-engine?hl=ja#start_a_cloud_shell_instance

MACにHalyardをインストールして構築したことはあるが、全部Kubernetesでやりたかった。

Spinnakerの必要条件

  • Kubernetesクラスタ
  • DockerRegistoryの権限

やることリスト

  • サービスアカウント作成
  • アクセス権限付与
  • サービスアカウントのSecretリソース作成

サービスアカウント作成

SERVICE_ACCOUNT_NAME=spinnaker-account

gcloud iam service-accounts create $SERVICE_ACCOUNT_NAME \
    --display-name $SERVICE_ACCOUNT_NAME

変数整理

export SA_EMAIL=$(gcloud iam service-accounts list \
    --filter="displayName:$SERVICE_ACCOUNT_NAME" \
    --format='value(email)')

export PROJECT=$(gcloud info --format='value(config.project)')

アクセス権限付与

gcloud projects add-iam-policy-binding $PROJECT \
    --member serviceAccount:$SA_EMAIL \
    --role roles/storage.admin 

gcloud projects add-iam-policy-binding $PROJECT \
    --member serviceAccount:$SA_EMAIL \
    --role roles/browser
gcloud iam service-accounts keys create spinnaker-sa.json --iam-account $SA_EMAIL

values.yamlファイル作成

詳しくはこちらを参考にしてください。

halyard:
  spinnakerVersion: 1.12.5
  image:
    repository: gcr.io/spinnaker-marketplace/halyard
    tag: 1.16.0
dockerRegistries:
- name: gcr
  address: asia.gcr.io
  username: _json_key
  # パスワードは先ほど作ったspinnaker-sa.jsonをコピペ
  password: |
    {
      "type": "service_account",
      ...
    }
spinnakerFeatureFlags:
  - artifacts
  - jobs
minio:
  enabled: true
  imageTag: RELEASE.2018-06-09T02-18-09Z
  serviceType: ClusterIP
  accessKey: spinnakeradmin
  secretKey: spinnakeradmin
  bucket: "spinnaker"
rbac:
  create: true # ここはkubeconfigをsecretでやる方法とRBACでやる方法の2種類があります、こちらの方が簡単かと

Helmからインストール

helm install -n cd -f values.yaml stable/spinnaker --timeout 600

ログの確認

こちらで、どこでつまづいたのか確認できます。先ほどのvalues.yamlの rbac.createtrue にするのを忘れると、インストーラ(cd-install-using-hal)がデプロイできなかったりするので注意が必要です。他にも、認証が通ってないとかって問題も発生しやすそうです。

k logs jobs/cd-install-using-hal -f

# stern をお使いの場合は
stern cd-i

Spinnakerにアクセス

ちなみに、ポッドが立ち上がるまで若干かかります。

export DECK_POD=$(kubectl get pods --namespace spinnaker -l "cluster=spin-deck" -o jsonpath="{.items[0].metadata.name}")

kubectl port-forward --namespace spinnaker $DECK_POD 9000

export GATE_POD=$(kubectl get pods --namespace spinnaker -l "cluster=spin-gate" -o jsonpath="{.items[0].metadata.name}")

kubectl port-forward --namespace spinnaker $GATE_POD 8084
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0