9.3.11. プラグイン用の meta.yaml の作成
ワークスペース Pod でカスタムバックエンドを実行する CodeReady Workspaces プラグインを表す meta.yaml
定義を作成します。meta.yaml
の詳細は、「Che-Theia プラグインについて」 を参照してください。
例9.11 meta.yaml
apiVersion: v2 publisher: demo-publisher name: little-telemetry-backend version: 0.0.1 type: Che Plugin displayName: Little Telemetry Backend description: A Demo telemetry backend title: Little Telemetry Backend category: Other spec: workspaceEnv: - name: CHE_WORKSPACE_TELEMETRY_BACKEND_PORT value: '4167' containers: - name: YOUR BACKEND NAME image: YOUR IMAGE NAME env: - name: CHE_API value: $(CHE_API_INTERNAL)
ほとんどの場合、ユーザーはこのファイルを企業 web サーバーにデプロイします。本書では、OpenShift で Apache Web サーバーを作成し、そこでプラグインをホストする方法を説明します。
新規 meta.yaml
ファイルを参照する ConfigMap を作成します。
$ oc create configmap --from-file=meta.yaml -n openshift-workspaces telemetry-plugin-meta
Web サーバーを公開するためにデプロイメント、サービス、およびルートを作成します。デプロイメントはこの ConfigMap を参照して、これを /var/www/html
ディレクトリーに配置します。
例9.12 manifests.yaml
kind: Deployment apiVersion: apps/v1 metadata: name: apache namespace: <openshift-workspaces> spec: replicas: 1 selector: matchLabels: app: apache template: metadata: labels: app: apache spec: volumes: - name: plugin-meta-yaml configMap: name: telemetry-plugin-meta defaultMode: 420 containers: - name: apache image: 'registry.redhat.io/rhscl/httpd-24-rhel7:latest' ports: - containerPort: 8080 protocol: TCP resources: {} volumeMounts: - name: plugin-meta-yaml mountPath: /var/www/html strategy: type: RollingUpdate rollingUpdate: maxUnavailable: 25% maxSurge: 25% revisionHistoryLimit: 10 progressDeadlineSeconds: 600 --- kind: Service apiVersion: v1 metadata: name: apache namespace: <openshift-workspaces> spec: ports: - protocol: TCP port: 8080 targetPort: 8080 selector: app: apache type: ClusterIP --- kind: Route apiVersion: route.openshift.io/v1 metadata: name: apache namespace: <openshift-workspaces> spec: host: apache-che.apps-crc.testing to: kind: Service name: apache weight: 100 port: targetPort: 8080 wildcardPolicy: None
$ oc apply -f manifests.yaml
イメージがプルし、デプロイメントが起動するまで数分待機してから、meta.yaml
が Web サーバーで利用可能であることを確認します。
$ curl apache-che.apps-crc.testing/meta.yaml
このコマンドにより、meta.yaml
ファイルが返されるはずです。