Docker Desktop for Mac の kubernetes に Helm で Redmineをインストールする

## はじめに
Helmを使用してRedmineをインストールします。

## 環境

```bash
$ kubectl version
Client Version: version.Info{Major:"1", Minor:"18", GitVersion:"v1.18.4", GitCommit:"c96aede7b5205121079932896c4ad89bb93260af", GitTreeState:"clean", BuildDate:"2020-06-18T02:59:13Z", GoVersion:"go1.14.3", Compiler:"gc", Platform:"darwin/amd64"}
Server Version: version.Info{Major:"1", Minor:"16+", GitVersion:"v1.16.6-beta.0", GitCommit:"e7f962ba86f4ce7033828210ca3556393c377bcc", GitTreeState:"clean", BuildDate:"2020-01-15T08:18:29Z", GoVersion:"go1.13.5", Compiler:"gc", Platform:"linux/amd64"}
$ helm version
version.BuildInfo{Version:"v3.2.4", GitCommit:"0ad800ef43d3b826f31a5ad8dfbb4fe05d143688", GitTreeState:"dirty", GoVersion:"go1.14.3"}
```


## 手順
### インストール

```bash
$ helm repo add bitnami https://charts.bitnami.com/bitnami
$ helm install redmine bitnami/redmine
NAME: redmine
LAST DEPLOYED: Wed Jul 15 01:07:13 2020
NAMESPACE: default
STATUS: deployed
REVISION: 1
NOTES:
1. Get the Redmine URL:

  NOTE: It may take a few minutes for the LoadBalancer IP to be available.
        Watch the status with: 'kubectl get svc --namespace default -w redmine'


  export SERVICE_IP=$(kubectl get svc --namespace default redmine --template "{{ range (index .status.loadBalancer.ingress 0) }}{{ . }}{{ end }}")
  echo "Redmine URL: http://$SERVICE_IP/"

2. Login with the following credentials

  echo Username: user
  echo Password: $(kubectl get secret --namespace default redmine -o jsonpath="{.data.redmine-password}" | base64 --decode)
```

起動するのに3分くらいかかりました。

```bash
$ kubectl get deployment
NAME      READY   UP-TO-DATE   AVAILABLE   AGE
redmine   1/1     1            1           4m44s
$ kubectl get svc
NAME              TYPE           CLUSTER-IP      EXTERNAL-IP   PORT(S)        AGE
kubernetes        ClusterIP      10.96.0.1       <none>        443/TCP        12d
redmine           LoadBalancer   10.110.55.117   localhost     80:31979/TCP   3m15s
redmine-mariadb   ClusterIP      10.97.11.188    <none>        3306/TCP       3m15s
```

### パスワード設定

```bash
$ export SERVICE_IP=$(kubectl get svc --namespace default--template "{{ range (index .status.loadBalancer.ingress 0) }}{{ . }}{{ end }}")
$ echo "Redmine URL: http://$SERVICE_IP/"
Redmine URL: http://localhost/
$ echo Password: $(kubectl get secret --namespace default redmine -o jsonpath="{.data.redmine-password}" | base64 --decode)
Password: XXXXXXXXXX
```
`localhost:80`にアクセスするとGUIが表示されます。`User:user`、`Password:XXXXXXXXXX`でログインできます。

### プラグインのインストール

pod名を確認し、podにログインします。

```bash
$ kubectl get pod
NAME                       READY   STATUS    RESTARTS   AGE
redmine-749bcf6778-rlccb   1/1     Running   1          27m
redmine-mariadb-0          1/1     Running   0          27m
$ kubectl exec -it redmine-749bcf6778-rlccb /bin/bash
```

プラグインをインストールするディレクトリに移動します。

```bash
# cd /opt/bitnami/redmine/plugins
# ls
README
# cat README 
Put your Redmine plugins here.
```

インストールできるプラグインは[Plugins Directory](https://www.redmine.org/plugins)で一覧を見ることが出来ます。
今回は[Issue Templates](https://www.redmine.org/plugins/redmine_issue_templates)を例にインストールします。

```bash
# git clone https://github.com/akiko-pusu/redmine_issue_templates.git
Cloning into 'redmine_issue_templates'...
remote: Enumerating objects: 118, done.
remote: Counting objects: 100% (118/118), done.
remote: Compressing objects: 100% (80/80), done.
remote: Total 6045 (delta 60), reused 81 (delta 38), pack-reused 5927
Receiving objects: 100% (6045/6045), 1.24 MiB | 1.41 MiB/s, done.
Resolving deltas: 100% (3706/3706), done.
# cd ..
# bundle update
# bundle exec rake redmine:plugins:migrate RAILS_ENV=production
== 1 CreateIssueTemplates: migrating ==========================================
...
== 20200418114157 CreateJoinTableGlobalNoteTemplateProject: migrated (0.0095s)
```
再起動しなくてもOKです（多分）。自分の場合は一回ログアウトして、再ログインしたら[管理]-[プラグイン]画面にプラグインが表示されていました。

<img width="1438" alt="スクリーンショット 2020-07-15 2.29.12.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/211712/be6afcb2-dd9d-35e5-7379-3536d38a1741.png">

## 参考
- [Redmineにプラグインを入れる - ソフトウェアエンジニアリング - Torutk](https://www.torutk.com/projects/swe/wiki/Redmine%E3%81%AB%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3%E3%82%92%E5%85%A5%E3%82%8C%E3%82%8B)