##参考:CLI を使用したアプリケーションの作成
https://access.redhat.com/documentation/ja-jp/openshift_container_platform/4.4/html/applications/creating-applications-using-cli
##注意localじゃなくてgitからS2I Build & Deploy
localでうまく起動できるかはまず確認しないと!!!
##セットアップ
IBM CloudとIKSクラスタの操作に必要なCLIツールのセットアップ
$ curl -sL https://ibm.biz/idt-installer | bash
oc cliのinstall
$ brew install openshift-cli
projectを作成
$ oc new-project test
secretの作成
$ oc create secret generic github-token --from-literal=username=<githubのユーザーネーム> --from-literal=password=<githubのパスワード> --type=kubernetes.io/basic-auth
secret/github-token created
作成したsecretの確認
$ oc get secret
(optional)secretを削除したい場合
$ oc delete secret
ビルドイメージのプッシュおよびプルにシークレットを使用するには、シークレットは Pod 内でマウント可能である必要があります
$ oc secrets link builder github-token
プライベートリモートリポジトリー内のソースコードに基づいて新規アプリケーションを作成
3分ぐらいかかった
$ oc new-app <https://github.ibm.com/XXXXXX/XXXX.git> -e PORT=8080 --source-secret github-token
...
Run 'oc status' to view your app.
デプロイ進捗を確認
$ oc get bc
NAME TYPE FROM LATEST
api-gateway Source Git 1
$ oc project
Using project "wu" on server "https://c100-e.jp-tok.containers.cloud.ibm.com:31036".
$ oc status
$ oc get pods
NAME READY STATUS RESTARTS AGE
api-gateway-1-build 0/1 Completed 0 7m1s
api-gateway-222222-5555 0/1 CrashLoopBackOff 5 5m30s
$ oc logs -f api-gateway-222222-5555
$ oc logs -f api-gateway-1-build
Caching blobs under "/var/cache/blobs".
Getting image source signatures
...
Writing manifest to image destination
Storing signatures
Generating dockerfile with builder image image-registry.openshift-image-registry.svc:5000/openshift
...
STEP 3: ENV OPENSHIFT_BUILD_NAME="api-gateway-1"
STEP 4: USER root
STEP 5: COPY upload/src /tmp/src
STEP 6: RUN chown -R 1001:0 /tmp/src
STEP 7: USER 1001
STEP 8: RUN /usr/libexec/s2i/assemble
---> Installing application source ...
---> Installing all dependencies
audited 904 packages in 6.81s
...
Push successful
無事にデプロイ後、外部公開(同サービスに外部からアクセスさせたい場合を想定します。)
$ oc status
$ oc get route
No resources found in XX namespace.
->routeがない状態
$ oc get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
api-gateway ClusterIP 111.11.1.111 <none> 8080/TCP 6m59s
#ルートとして公開する
$ oc expose service api-gateway
route.route.openshift.io/api-gateway exposed
#routeが新規生成される
$ oc get route
NAME HOST/PORT PATH SERVICES PORT TERMINATION WILDCARD
api-gateway XXXXXX api-gateway 8080-tcp None
$ oc start build XXXXX