nekop's blog

OpenShift / JBoss / WildFly / Infinispanの中の人 http://twitter.com/nekop

Red Hat OpenShift Application Runtimes

OpenShift 全部俺 Advent Calendar 2017

Red Hat OpenShift Application Runtimesがリリースされたのでさわってみたいと思います。Spring BootVert.x, WildFly Swarmなどを使ってOpenShift上でマイクロサービスアプリケーションの開発をサポートする製品です。

https://launch.openshift.io/ というサイトでプロジェクトのひな型が作成できるので、まずはそれを利用してWildFly Swarmのプロジェクトを見てみましょう。

f:id:nekop:20171206122227p:plain

生成されたプロジェクトはローカル開発とOpenShiftを利用した開発の両方に対応するfabric8を活用したプロジェクトのようです。oc get allを見てみると、Binaryビルドなので、ソースからOpenShift側でビルドされるのではなく、ローカルでビルドしたwarファイルを転送してコンテナイメージをビルドしている構成です。

$ mvn clean fabric8:deploy
(長いので省略)
$ oc get all
NAME                                          TYPE      FROM      LATEST
buildconfigs/booster-crud-wildfly-swarm-s2i   Source    Binary    1

NAME                                      TYPE      FROM      STATUS     STARTED         DURATION
builds/booster-crud-wildfly-swarm-s2i-1   Source    Binary    Complete   2 minutes ago   2m3s

NAME                                      DOCKER REPO                                             TAGS      UPDATED
imagestreams/booster-crud-wildfly-swarm   172.30.1.1:5000/test-rhoar/booster-crud-wildfly-swarm   latest    50 seconds ago

NAME                                           REVISION   DESIRED   CURRENT   TRIGGERED BY
deploymentconfigs/booster-crud-wildfly-swarm   1          1         1         config,image(booster-crud-wildfly-swarm:latest)

NAME                                HOST/PORT                                                     PATH      SERVICES                     PORT      TERMINATION   WILDCARD
routes/booster-crud-wildfly-swarm   booster-crud-wildfly-swarm-test-rhoar.192.168.42.143.nip.io             booster-crud-wildfly-swarm   8080                    None

NAME                                        READY     STATUS      RESTARTS   AGE
po/booster-crud-wildfly-swarm-1-deploy      1/1       Running     0          18s
po/booster-crud-wildfly-swarm-1-fgdj8       0/1       Running     0          15s
po/booster-crud-wildfly-swarm-s2i-1-build   0/1       Completed   0          2m

NAME                              DESIRED   CURRENT   READY     AGE
rc/booster-crud-wildfly-swarm-1   1         1         0         18s

NAME                             CLUSTER-IP     EXTERNAL-IP   PORT(S)    AGE
svc/booster-crud-wildfly-swarm   172.30.79.11   <none>        8080/TCP   20s

BuildConfigを見ると利用イメージがregistry.access.redhat.com/redhat-openjdk-18/openjdk18-openshiftになっているので、これを使えば手元でビルドしてバイナリ転送ではなく、OpenShift側でソースからビルド(s2iビルド)でも大丈夫でしょう。

というわけでRHOARを利用した最小のSwarmプロジェクト https://github.com/nekop/hello-swarm を作ってみました。

$ oc new-project test-swarm
$ oc new-app registry.access.redhat.com/redhat-openjdk-18/openjdk18-openshift~https://github.com/nekop/hello-swarm
$ oc expose svc hello-swarm
$ curl hello-swarm-test-rhoar.192.168.42.143.nip.io
hello world