始めに
OpenShift Origin v3.9 の環境構築とアプリケーションのデプロイ(後編)
の続きです。
GitHub からのビルドからデプロイまでの方法を紹介しましたが、今回は認証付きのGitLab にあるソースからのビルド方法を書きます。
違いはビルドの定義だけですので、その部分のみ書きます。
ビルドの定義と実行
[master-01]
まず、認証のためのsecret を作成する。
<user>, <password> はそれぞれGitLab のユーザー名、パスワード。
例として、telnetman という名前で作成する。
oc create secret generic telnetman \
--from-literal=username=<user> \
--from-literal=password=<password> \
--type=kubernetes.io/basic-auth
Web コンソールで作成する場合は、Resources → Secrets から作成する。
次に、ビルドコンフィグファイルを作成する。
例として、telnetman2-web コンテナの場合。
apiVersion: "v1"
kind: "BuildConfig"
metadata:
name: "telnetman2-web"
spec:
runPolicy: "Serial"
source:
type: "Git"
git:
uri: "https://gitlab.example.com/telnetman/telnetman2.git"
ref: "master"
sourceSecret:
name: "telnetman"
contextDir: "./"
strategy:
type: "Docker"
dockerStrategy:
dockerfilePath: "Dockerfile-web"
env:
- name: "DBSERVER"
value: "telnetman2"
output:
to:
kind: "ImageStreamTag"
name: "telnetman2-web:latest"
triggers:
- type: "GitLab"
gitlab:
secret: "XXXYYYZZZ"
前記事のGitHub のときと違う点は以下の2点だけ。
- 認証のためにspec.source.sourceSecret.name でsecret を指定
- triggers でGitHub, github となっていた部分をそれぞれGitLab, gitlab に変更
そして、定義済のビルドコンフィグを入れ替えてビルドを実行する。
未定義の場合はoc create -f telnetman2-web-buildconfig.yaml
コマンドラインではなくWeb コンソールのImport YAML / JSON からでも行える。
oc replace -f telnetman2-web-buildconfig.yaml
oc start-buil telnetman2-web
前記事のGitHub のときとの違いはこれだけ。
あとはGitLab でWebhook の設定をすれば、GitLab 上のイベントをトリガーにしてビルド、デプロイが自動で行われる。
参考
Build Inputs
Install input secret into OpenShift build configuration