OpenShift上にIBM App Connect Enterpriseを構築する

# 概要
IBM CloudのOpenShift上にApp Connect Enterpriseを構築した際の手順についてまとめる。
- 今回の構成では統合サーバ上で稼働させるアプリケーションを含むbarファイルはApp Connect Dashboard（以下、Dashboard）上に保管（※実質的にはDashboardに紐づくcontent serverに保管される）

# Study
- オンプレで構築するApp Connect Enterprise（以下ACE）とは異なり、オンクラウド上ではリリースするアプリケーション単位で統合サーバを構築するイメージ
（マイクロ・サービスへの対応）
- 今回barファイルはDashboard（content server）に事前に登録しておき、BAR URLを確認しておく
- このBAR URLを統合サーバ作成時に指定することで、統合サーバ構築時にBARファイルがダウンロードされ、統合サーバ上にデプロイされる
- content serverをbarファイルの保管場所として利用する場合、統合サーバ構築時に指定できるbarファイルは1つのみとなる（外部リポジトリを使用する場合は複数barファイルの指定が可能）
- Operatorを使用してOpenShift上にApp Connect Enterpriseのランタイム（統合サーバ）を構築する
    - ここではWebコンソールを使用した手順をまとめる
    - CLIでの構成も可能
    - また、Dashboardから統合サーバの構成も可能
    

# 前提
前提条件は[マニュアル](https://www.ibm.com/docs/en/app-connect/containers_cd?topic=resources-integration-server-reference#prereqs)を参照

# 準備：Dashboardの構成＆barファイルの配置
今回統合サーバで稼働させるアプリケーションを含むbarファイルはDashboardで管理するため、まずDashboardを構築する
1. 事前にIBM App ConnectのOperatorをOpenShift上にインストールしておく（[参考URL](https://www.ibm.com/docs/en/app-connect/containers_cd?topic=operator-from-openshift-web-console)）
    - 今回インストールしたOperatorは3.1.0
1. OpenShift Webコンソールを使用し、左のナビゲーターの「Operator」→「インストールされたOperator」を選択
1. インストールされたOperatorから「IBM App Connect」を選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2609126/87a97967-0f06-4173-8eb2-e957cdd4bc51.png)
1. 「IBM App Connect」のオペレーターの上部のメニューで「Dashboard」を選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2609126/0dd50098-fb08-bd62-9ccd-89d7fa0c8346.png)
1. 「Dashboardの作成」ボタンを押す
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2609126/2066aa83-8a76-abbf-64f4-09b28bcd8d26.png)
1. 「Dashboardの作成」画面で作成するDashboardのパラメーターを設定する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2609126/87586286-d4bf-163d-0c32-e91a0723a9bd.png)

    - 設定可能なパラメーターについては[マニュアル](https://www.ibm.com/docs/en/app-connect/containers_cd?topic=resources-integration-server-reference#crvalues)を参照？？？
    - 今回デフォルトから変更したパラメーターは以下
        - 名前：作成するDashboard名を設定
        - License：ライセンス契約への同意、使用するライセンスの種類、用途を指定
        - Channel or version：使用するACEのバージョンを指定
        - Storage class：本来persistent-claimが適切だと思うが、今回は環境の制約でephemeralを指定
        - Use Common Services：IBM Cloud Pak foundational servicesを使用しないためfalseを指定
        - その他CPU、メモリ、ストレージ・サイズはテスト用なので小さく変更
    - （参考）作成したYAML
 ```yaml
apiVersion: appconnect.ibm.com/v1beta1
kind: Dashboard
metadata:
  name: db-n01
  namespace: XXXXXX
spec:
  license:
    accept: true
    license: L-APEH-C79SB3
    use: AppConnectEnterpriseNonProduction
  pod:
    containers:
      content-server:
        resources:
          limits:
            cpu: 250m
            memory: 512Mi
          requests:
            cpu: 30m
            memory: 30Mi
      control-ui:
        resources:
          limits:
            cpu: 500m
            memory: 512Mi
          requests:
            cpu: 30m
            memory: 50Mi
  useCommonServices: false
  version: 12.0.3
  storage:
    size: 1Gi
    type: ephemeral
  replicas: 1

```

　
1. 「作成」ボタンで作成
1. ephemeralで作成するとWarningがでるが、無事構成される  

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2609126/d2513542-5706-6b10-93cd-0c7746502774.png)
[warningの内容]
```text
Ephemeral storage has been selected for this instance, this is not a resilient storage mechanism, if the pods are restarted all contents will be lost which may affect any IntegrationServers configured with associated BAR files.
```
1. 作成したDashboardをクリックし、概要を確認すると「Admin UI」にDashboardのURLが記載されているので、クリックしてDashboardを開く
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2609126/bb402d1e-aa9b-1894-390d-5c43b44af622.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2609126/45f30962-f327-278f-3172-e6a470744905.png)
1. 左側のナビゲーションで「BAR files」を選択し、「Import BAR」をクリックしてあらかじめ用意しておいたBARファイルをアップロードする
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2609126/707298e4-e388-de92-f90e-25d3fb4e5055.png)
1. 「Drag and drop or select a file」にBARファイルをドラッグ＆ドロップし、「Import」ボタンをクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2609126/bcd92bfe-c83c-bc47-2b23-bc9c83673f0e.png)
1. 追加されたBARファイルのメニューから「Display BAR URI...」を選択し、URLを確認し、コピーしておく
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2609126/0dde485b-fc40-a1cb-546f-61c08cac51e3.png)




# 構築：Operatorを使用した構築
ここではOperatorのIntegration Server構成画面から統合サーバを構成する手順をまとめる
1. OpenShift Webコンソールを使用し、左のナビゲーターの「Operator」→「インストールされたOperator」を選択
3. インストールされたOperatorから「IBM App Connect」を選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2609126/87a97967-0f06-4173-8eb2-e957cdd4bc51.png)
4. 「IBM App Connect」のオペレーターの上部のメニューで「Integration Server」を選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2609126/c95c1252-f6b7-5039-3217-5b73651d735d.png)
5. 「IntegrationServerの作成」ボタンを押す
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2609126/53a5ac75-4293-9de8-5530-644c86aebe2c.png)
6. 「IntegrationServerの作成」画面で作成するIntegrationServerのパラメーターを設定する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2609126/44d1296f-970b-1b85-50c3-3f136e8a0e40.png)
    - 設定可能なパラメーターについては[マニュアル](https://www.ibm.com/docs/en/app-connect/containers_cd?topic=resources-integration-server-reference#crvalues)を参照
    - 今回デフォルトから変更したパラメーターは以下
        - 名前：作成する統合サーバ名を設定
        - License：ライセンス契約への同意、使用するライセンスの種類、用途を指定
        - Channel or version：使用するACEのバージョンを指定
        - Bar URL：「準備：Dashboardの構成＆barファイルの配置」でアップロードしたBARファイルのURIを指定
    - （参考）作成したYAML
 ```yaml  
apiVersion: appconnect.ibm.com/v1beta1
kind: IntegrationServer
metadata:
  name: is-n01
  namespace: xxxxxx
spec:
  enableMetrics: true
  license:
    accept: true
    license: L-APEH-C79SB3
    use: AppConnectEnterpriseNonProduction
  pod:
    containers:
      runtime:
        resources:
          limits:
            cpu: 300m
            memory: 350Mi
          requests:
            cpu: 300m
            memory: 300Mi
  adminServerSecure: true
  router:
    timeout: 120s
  designerFlowsOperationMode: disabled
  createDashboardUsers: true
  service:
    endpointType: http
  version: 12.0.3
  replicas: 1
  barURL: >-
    https://db-n01-dash:3443/v1/directories/OpenShift_TestBar?xxxxxx-xxx-xxx-xxx-xxxxxx
```  
1. 「作成」ボタンで作成し、正常に処理が完了したことを確認する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2609126/615c1b4f-6a0b-25be-3fcb-6315a8501108.png)
（参考） 左側のメニューリストの「ネットワーク」→「ルート」で構築した統合サーバへのアクセスURLのリストが確認できる
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2609126/e5851616-a465-545c-55c1-4d5782bd0f41.png)

# 参考URL
Installing the IBM App Connect Operator
https://www.ibm.com/docs/en/app-connect/containers_cd?topic=access-installing-app-connect-operator

App Connect Integration Server reference
https://www.ibm.com/docs/en/app-connect/containers_cd?topic=resources-integration-server-reference