OpenShift origin & GitLab Webhook

OpenShift origin GitLab

OpenShift origin 環境とGitLab環境ができたことですし
改めてWebHookの簡単なテストを行います。

まず手始めにOriginのGUIでプロジェクト「http」を作成します。
Catalogから「Apache HTTP Server(httpd)」を選択します。
01openshift.png

表示されるサンプルソースリポジトリにアクセスし内部に構築したGitLabに移植します。
02openshift.png
必要なソースは
 index.html
 openshift/templates/httpd.json
03gitlab.png

次にプロジェクトのGitURL(http://gitlab.app.example.com/imp555sti/httpd.git)をクリップボードにコピーします。
04gitlab.png

コピーしてきたGit Repositoryをペーストし、Application Nameを適宜セットして[Create]をクリックします。
Application Name:httpd
Git Repository:http://gitlab.app.example.com/imp555sti/httpd.git
05openshift.png

06openshift.png

httpのOverviewで状態を確認します。
青い〇でpodが出来上がっていれば完成です。
07openshift.png

ここでrouting-suffixを設定したが故の作業
PodのIPアドレスを調べ、内向けDNSサーバへの登録を行います。
# oc login -u tak
Authentication required for https://127.0.0.1:8443 (openshift)
Username: tak
Password:
Login successful.

You have access to the following projects and can switch between them with 'oc project ':

* gitlab
http

Using project "gitlab".
# oc project http
Now using project "http" on server "https://127.0.0.1:8443".
# oc get svc
NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE
httpd 172.30.237.202 8080/TCP 1m


内向けDNSサーバにhttpdのレコードを追加します。
ホスト名は[アプリケーション名]-[プロジェクト名].[routing-suffix]となりますので
httpd-http.app.example.comとなります。
/var/named/cexample.com
$TTL	86400
@ IN SOA example.com. root.example.com.(
2018010602 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
IN NS example.com.
@ IN A 192.168.253.136

ns IN A 192.168.253.136
os IN A 192.168.253.200
app IN A 192.168.253.200
gitlab.app IN A 172.30.42.250
httpd-http.app IN A 172.30.237.202

これで内向きDNSサーバのサービスを再起動します。
# systemctl restart named-chroot


これでhttpのOverview左上のURLにアクセスしますが…ポートは通常の80ではなく8080なので
一度タイムアウトさせた後で、ポート番号を8080にしてからアクセスします。
http://httpd-http.app.example.com:8080/
そうすると作成した簡易なサンプル(index.html)が表示されました。
これで内部のGitLabのソースを取り込んでビルドすることに成功しています。
08httpd.png

ここからが本題。WebHookの設定を行っていきます。
httpのBuilds》Buildsから名前の部分(httpd)をクリックします。
09openshift.png

10openshift.png

表示されたBuild》httpdのConfigurationをクリックします。
11openshift.png

表示されたConfiguration画面の右側にある「Generic Webhook URL:」をクリップボードにコピーします。
※GitHubの場合は1つ下側の「GitHub Webhook URL:」
12openshift.png

GitLabの画面に戻りhttpdプロジェクトのSettings》Integrationsをクリックします。
13gitlab.png

表示されたIntegrations画面のURLに先ほどコピーしたURLを貼り付けます。
TriggerはデフォルトのPush eventsで良いので下の[Add webhook]ボタンを押し保存します。
14gitlab.png

15gitlab.png

保存したWebhookURLのTestプルダウンからPush eventsを選択しテストしてみます。
16gitlab.png

SSL_connectのエラーが発生しました。
先ほど押した[Add webhook]ボタンの上にあった”Enable SSL verification” オプションを外すべく
保存されているWebhookのEditボタンをクリックし”Enabel SSL verification”オプションを抜いて保存します。
17gitlab.png

18gitlab.png

19gitlab.png

保存したら先ほどと同様にTestプルダウンのPush eventsをクリックします。今度は成功しました。
成功したらOrigin側の画面に戻り、OverviewでPodがビルドを開始していることが確認できます。
成功です♪
20openshift.png

21openshift.png

では、TestプルダウンのPush eventsではなく、実際にソースを修正してみましょう。
GitLabに戻りFilesからindex.htmlを修正します。
22gitlab.png

23gitlab.png

24gitlab.png

25gitlab.png

ソースをCommitするとOpenshift側でPodがリビルドを始めます。
26openshift.png

27openshift.png

実際に編集したソースが取り込まれています!
28httpd.png

これでGitLabとOpenShift originの連携も確認することができました!
関連記事