お疲れ様です!Rancher を使っているとカタログにないものや自分で作成したテンプレートを使いたくなりますよね。そこで自分で作成したテンプレートをカタログに表示してみます。ここでは Rancher 1.4.0 を使います。
目次
git リポジトリの作成
カタログとして登録するには git clone によってハンドルされる URL が必要とのことなので git 系にリポジトリを作成します。今回は GitHub に作成しました。 miyabis/rancher-catalog
テンプレートの作成
テンプレートフォルダの作成
今回は GitBucket のテンプレートを作成してみます。
Rancher 公式の Creating Private Catalogs を参考にします。
最初にどのオーケストレーションのテンプレートを作るかでフォルダを分けます。
今回は Rancher 標準の Cattle 用なので templates フォルダを作成します。
- Cattle : templates フォルダ
- Kubernetes : kubernetes-templates フォルダ
- Swarm : swarm-templates フォルダ
- Mesos : mesos-templates フォルダ
サービスフォルダの作成
次に作成対象となるサービスの名称でフォルダを作成します。
今回は GitBucket フォルダを作成します。
このフォルダにはカタログに表示する情報の定義 config.yml と アイコンファイルを置きます。
バージョンフォルダの作成
次はそのサービスに対してのバージョン別となるフォルダを0からの追番で作成します。
今回は2バージョン作成することにしたので0、1フォルダを作成します。
各0、1フォルダには docker-compose.yml と rancher-compose.yml のセットで作成していきます。
-- templates
|-- GitBucket
| |-- 0
| | |-- docker-compose.yml
| | |-- rancher-compose.yml
| |-- 1
| | |-- docker-compose.yml
| | |-- rancher-compose.yml
| |-- catalogIcon-GitBucket.png
| |-- config.yml
...
config.yml の作成
name: GitBucket
description: "GitHub Clone"
version: v1.0.0
category: "Versioning"
maintainer: MiYABiS
license:
projectURL: https://github.com/miyabis/rancher-catalog
docker-compose.yml の作成
Compose file version 2 reference | Docker Documentation この辺を参考に作成します。
今回は私が作った miyabis/gitbucket と busybox を使う定義をしました。
version: '2'
services:
gitbucket-primary:
image: miyabis/gitbucket:latest
environment:
DB_URL: ${db_url}
DB_USER: ${db_user}
DB_PASSWORD: ${db_password}
volumes_from:
- gitbucket-datavolume
ports:
- ${ssh_port}:29418/tcp
- ${public_port}:8080/tcp
labels:
io.rancher.sidekicks: gitbucket-datavolume
io.rancher.container.hostname_override: container_name
gitbucket-datavolume:
image: busybox
volumes:
- /var/gitbucket:/gitbucket
labels:
io.rancher.container.start_once: 'true'
rancher-compose.yml の作成
テンプレートとして表示する内容を定義します。
入力項目もここへ定義します。
version: '2'
catalog:
name: "GitBucket"
version: "v4.26.0"
description: ""
questions:
- variable: "public_port"
label: "Public Port"
description: "Public listening port"
type: "int"
required: true
default: "8200"
- variable: "ssh_port"
label: "SSH Port"
description: "SSH listening port"
type: "int"
required: true
default: "29418"
- variable: "db_url"
label: "DB URL"
description: "DB URL"
type: "string"
- variable: "db_user"
label: "DB USER"
description: "DB USER"
type: "string"
- variable: "db_password"
label: "DB PASSWORD"
description: "DB PASSWORD"
type: "password"
services:
gitbucket-primary:
scale: 1
start_on_create: true
health_check:
healthy_threshold: 2
response_timeout: 2000
port: 8080
unhealthy_threshold: 3
interval: 2000
strategy: recreate
gitbucket-datavolume:
scale: 1
start_on_create: true
全て作成し終えたら git にあげます。
Rancher カタログへ追加
管理者 => 設定 メニューを表示します。
カタログのところの カタログを追加 リンクをクリックして行を追加し、名称、URL、ブランチを入力します。
名称:MiYABiS
URL:https://github.com/miyabis/rancher-catalog.git
ブランチ:master
メニューへ反映させるために一度 F5(Command+R) でリフレッシュします。
カタログから GitBucket を追加
カタログ => MiYABiS メニューを表示します。
GitBucket の詳細を見るリンクをクリックします。
テンプレートバージョンを選択します。
今回はデフォルトのまま起動をクリックして作成します。
ポートの変更や外部のDBを使う時はここで指定します。
しばらくすると起動するのでメニューの スタック => ユーザー で確認します。
GitBucket をクリックします。
ポート:8200 のリンクをクリックすると GitBucket が表示されます。