4.11. ルーターのシャード化と連携するように OpenShift ルートを設定
この手順では、OpenShift Route がルーターのシャード化と連携するようにラベル、アノテーション、およびドメインを設定する方法を説明します 。本章では、既存のインスタンスの設定プロセス、またはインストール予定の設定プロセスを説明します。
前提条件
-
oc
およびcrwctl
ツールが利用できる。
手順
新規の OperatorHub インストールの場合:
- OpenShift Container Platform を使用して CodeReady Workspaces クラスターを入力し、CheCluster カスタムリソース(CR)を作成します。Red Hat CodeReady Workspaces Operator のインスタンスの作成 を参照してください。
以下の値を codeready-workspaces カスタムリソース(CR)に設定します。
spec: server: devfileRegistryRoute: labels: <labels> 1 domain: <domain> 2 annotations: 3 key1: value1 key2: value2 pluginRegistryRoute: labels: <labels> 4 domain: <domain> 5 annotations: 6 key1: value1 key2: value2 dashboardRoute: labels: <labels> 7 domain: <domain> 8 annotations: 9 key1: value1 key2: value2 cheServerRoute: labels: <labels> 10 domain: <domain> 11 annotations: 12 key1: value1 key2: value2 customCheProperties: CHE_INFRA_OPENSHIFT_ROUTE_LABELS: <labels> 13 CHE_INFRA_OPENSHIFT_ROUTE_HOST_DOMAIN__SUFFIX: <domain> 14 auth: identityProviderRoute: labels: <labels> 15 domain: <domain> 16 annotations: 17 key1: value1 key2: value2
新規の
crwctl
インストールの場合は、以下のようになります。以下を使用してインストールを設定します。
$ crwctl server:deploy --che-operator-cr-patch-yaml=patch.yaml ...
patch.yaml
ファイルには以下を含める必要があります。spec: server: devfileRegistryRoute: labels: <labels> 1 domain: <domain> 2 annotations: 3 key1: value1 key2: value2 pluginRegistryRoute: labels: <labels> 4 domain: <domain> 5 annotations: 6 key1: value1 key2: value2 dashboardRoute: labels: <labels> 7 domain: <domain> 8 annotations: 9 key1: value1 key2: value2 cheServerRoute: labels: <labels> 10 domain: <domain> 11 annotations: 12 key1: value1 key2: value2 customCheProperties: CHE_INFRA_OPENSHIFT_ROUTE_LABELS: <labels> 13 CHE_INFRA_OPENSHIFT_ROUTE_HOST_DOMAIN__SUFFIX: <domain> 14 auth: identityProviderRoute: labels: <labels> 15 domain: <domain> 16 annotations: 17 key1: value1 key2: value2
既存の CodeReady Workspaces インストールの場合:
oc
ツールを使用してcodeready-workspaces
CR を更新します。ラベルを設定するには、以下を実行します。
重要コンマを使用して、ラベルを区切ります:
key1=value1,key2=value2
$ oc patch checluster/codeready-workspaces -n openshift-workspaces --type=json -p \ '[{"op": "replace", "path": "/spec/server/cheServerRoute/labels",'\ '"value": "<labels for a codeready-workspaces server route>"}]'
$ oc patch checluster/codeready-workspaces -n openshift-workspaces --type=json -p \ '[{"op": "replace", "path": "/spec/server/pluginRegistryRoute/labels", '\ '"value": "<labels for a plug-ins registry route>"}]'
$ oc patch checluster/codeready-workspaces -n openshift-workspaces --type=json -p \ '[{"op": "replace", "path": "/spec/server/devfileRegistryRoute/labels", '\ '"value": "<labels for a devfile registry route>"}]'
$ oc patch checluster/codeready-workspaces -n openshift-workspaces --type=json -p \ '[{"op": "replace", "path": "/spec/server/dashboardRoute/labels", '\ '"value": "<labels for a dashboard route>"}]'
$ oc patch checluster/codeready-workspaces -n openshift-workspaces --type=json -p \ '[{"op": "replace", "path": "/spec/auth/identityProviderRoute/labels", '\ '"value": "<labels for a RH-SSO route>"}]'
$ oc patch checluster/codeready-workspaces -n openshift-workspaces --type=json -p \ '[{"op": "replace", "path": "/spec/server/customCheProperties/CHE_INFRA_OPENSHIFT_ROUTE_LABELS", '\ '"value": "<labels for a workspace routes>"}]'
ドメインを設定するには、以下を行います。
$ oc patch checluster/codeready-workspaces -n openshift-workspaces --type=json -p \ '[{"op": "replace", "path": "/spec/server/cheServerRoute/domain",'\ '"value": "<ingress domain>"}]'
$ oc patch checluster/codeready-workspaces -n openshift-workspaces --type=json -p \ '[{"op": "replace", "path": "/spec/server/pluginRegistryRoute/domain", '\ '"value": "<ingress domain>"}]'
$ oc patch checluster/codeready-workspaces -n openshift-workspaces --type=json -p \ '[{"op": "replace", "path": "/spec/server/devfileRegistryRoute/domain", '\ '"value": "<ingress domain>"}]'
$ oc patch checluster/codeready-workspaces -n openshift-workspaces --type=json -p \ '[{"op": "replace", "path": "/spec/server/dashboardRoute/domain", '\ '"value": "<ingress domain>"}]'
$ oc patch checluster/codeready-workspaces -n openshift-workspaces --type=json -p \ '[{"op": "replace", "path": "/spec/auth/identityProviderRoute/domain", '\ '"value": "<ingress domain>"}]'
$ oc patch checluster/codeready-workspaces -n openshift-workspaces --type=json -p \ '[{"op": "replace", "path": "/spec/server/customCheProperties/CHE_INFRA_OPENSHIFT_ROUTE_HOST_DOMAIN__SUFFIX", '\ '"value": "<ingress domain>"}]'
アノテーションを設定するには、以下を行います。
重要オブジェクトを使用してアノテーションを指定します:
{"key1": "value1", "key2" : "value2"}
$ oc patch checluster/codeready-workspaces -n openshift-workspaces --type=json -p \ '[{"op": "replace", "path": "/spec/server/cheServerRoute/annotations",'\ '"value": <annotations for a codeready-workspaces ingress>}]'
$ oc patch checluster/codeready-workspaces -n openshift-workspaces --type=json -p \ '[{"op": "replace", "path": "/spec/server/pluginRegistryRoute/annotations", '\ '"value": <annotations for a plug-ins registry ingress>}]'
$ oc patch checluster/codeready-workspaces -n openshift-workspaces --type=json -p \ '[{"op": "replace", "path": "/spec/server/devfileRegistryRoute/annotations", '\ '"value": <annotations for a devfile registry ingress>}]'
$ oc patch checluster/codeready-workspaces -n openshift-workspaces --type=json -p \ '[{"op": "replace", "path": "/spec/server/dashboardRoute/annotations", '\ '"value": <annotations for a dashboard ingress>}]'
$ oc patch checluster/codeready-workspaces -n openshift-workspaces --type=json -p \ '[{"op": "replace", "path": "/spec/auth/identityProviderRoute/annotations", '\ '"value": <annotations for a RH-SSO ingress>}]'