4.11. ルーターのシャード化と連携するように OpenShift ルートを設定

この手順では、OpenShift Route がルーターのシャード化と連携するようにラベル、アノテーション、およびドメインを設定する方法を説明します 。本章では、既存のインスタンスの設定プロセス、またはインストール予定の設定プロセスを説明します。

前提条件

  • oc および crwctl ツールが利用できる。

手順

  • 新規の OperatorHub インストールの場合:

    1. OpenShift Container Platform を使用して CodeReady Workspaces クラスターを入力し、CheCluster カスタムリソース(CR)を作成します。Red Hat CodeReady Workspaces Operator のインスタンスの作成 を参照してください。
    2. 以下の値を 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
      1 4 7 10 13 15
      ターゲット Ingress コントローラーがルートからサービスのセットをフィルタリングする時に使用するラベルのコンマ区切りの一覧
      2 5 8 11 14 16
      ターゲット Ingress コントローラーが提供する DNS 名
      3 6 9 12 17
      リソースに保管された構造化されていないキー値のマップ
  • 新規の crwctl インストールの場合は、以下のようになります。

    1. 以下を使用してインストールを設定します。

      $ 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
      1 4 7 10 13 15
      ターゲット Ingress コントローラーがルートからサービスのセットをフィルタリングする時に使用するラベルのコンマ区切りの一覧
      2 5 8 11 14 16
      ターゲット Ingress コントローラーが提供する DNS 名
      3 6 9 12 17
      リソースに保管された構造化されていないキー値のマップ
  • 既存の CodeReady Workspaces インストールの場合:

    1. oc ツールを使用して codeready-workspaces CR を更新します。

      1. ラベルを設定するには、以下を実行します。

        重要

        コンマを使用して、ラベルを区切ります: 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>"}]'
      2. ドメインを設定するには、以下を行います。

        $ 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>"}]'
      3. アノテーションを設定するには、以下を行います。

        重要

        オブジェクトを使用してアノテーションを指定します: {"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>}]'