---
title: HelmでSpinnakerをインストールするメモ
tags: ["Spinnaker", "Kubernetes", "Helm"]
categories: ["Dev", "CD", "Spinnaker"]
date: 2019-02-11T14:07:04Z
updated: 2019-02-11T14:08:11Z
---

memo

### Helmのセットアップ

```yaml
cat <<EOF | kubectl apply -f -
apiVersion: v1
kind: ServiceAccount
metadata:
  name: tiller
  namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
  name: tiller
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
  - kind: ServiceAccount
    name: tiller
    namespace: kube-system
EOF
```

```
helm init --service-account tiller
helm upate
```

### Spinnakerのインストール


```
kubectl create ns spinnaker
```

Docker RegistryのWebhook Triggerを使うときはRegistoryがホワイトリストので、
変更したい場合は次のような設定が必要。

```yaml
cat <<EOF >> values.yml
accounts:
- address: https://index.docker.io
  name: dockerhub
  repositories:
  - making/hello-pks
dockerRegistries:
- name: dockerhub
  address: index.docker.io
  repositories:
    - making/hello-pks
EOF
```

```
helm install --name spinnaker stable/spinnaker --timeout 6000 --debug --namespace spinnaker -f values.yml
```

次のChartバージョンで試している。バージョンが違うと全然構成が違うので注意。

```
$ helm list
NAME     	REVISION	UPDATED                 	STATUS  	CHART          	APP VERSION	NAMESPACE
spinnaker	1       	Sun Feb 10 00:38:42 2019	DEPLOYED	spinnaker-1.6.1	1.11.6     	spinnaker
```

deckとgateのService TypeをLoadBalancerにしてアクセス可能にする。

```
kubectl patch -n spinnaker service spin-deck --type='json' -p='[{"op": "replace", "path": "/spec/type", "value": "LoadBalancer" }]'
kubectl patch -n spinnaker service spin-gate --type='json' -p='[{"op": "replace", "path": "/spec/type", "value": "LoadBalancer" }]'
```

`http://<deckのLoadBalancerのIP>:9000`でGUIにアクセスできる。
`http://<gateのLoadBalancerのIP>:8084`でAPIサーバーにアクセスできる。


### GitHub Artifactを有効にする

`hal`コマンドで設定変更する。halyard Pod内で操作すると楽。

```
kubectl exec -n spinnaker -it spinnaker-spinnaker-halyard-0 bash
```

```
hal config features edit --artifacts true
hal config artifact github enable
echo "GitHubのrepoスコープを持つアクセストークン" > /tmp/token_file
hal config artifact github account add $ARTIFACT_ACCOUNT_NAME --token-file /tmp/token_file
hal deploy apply
```
