# カスタムのネームスペースを設定

Dynamic Engineとその環境の両方に、独自のネームスペース名を指定します。

## 始める前に

* dynamic-engine-crdカスタムリソース定義は、oci://ghcr.io/talend/helm/dynamic-engine-crd Helmチャートを使用してインストールされている必要があります。インストールされていない場合は、次のコマンドを実行してインストールしてください。
  1. 使用するチャートのバージョンを見つけます。

     * 次のHelmコマンドを実行します:
       ```
       helm show chart oci://ghcr.io/talend/helm/dynamic-engine-crd --version <engine_version>
       ```
     * Talend Management Consoleから直接バージョンを見るか、自分のDynamic Engineバージョンに含まれているチャートバージョンの[Dynamic Engine変更ログ](https://help.qlik.com/talend/en-US/dynamic-engine-changelog/Cloud)をチェックしてください。
     * [Dynamic Engineバージョンエンドポイント](https://talend.qlik.dev/apis/dynamic-engine/2021-03/#operation_return-all-supported-dynamic-engine-versions)へのAPIコールを使用します。

  2. 次のコマンドを実行し、目的のバージョンのHelmチャートをインストールします。

     ```
     helm install dynamic-engine-crd oci://ghcr.io/talend/helm/dynamic-engine-crd --version <helm_chart_version>
     ```

     &lt;helm\_chart\_version&gt;を、お使いのDynamic Engineバージョンでサポートされているチャートのバージョンに置換します。

     バージョンを指定しないと、利用可能な最新のdynamic-engine-crdチャートバージョンがインストールされます。

## このタスクについて

デフォルトでは、以下のネームスペースが作成されます:

* qlik-dynamic-engine: Dynamic Engineのインフラストラクチャーサービス用
* qlik-processing-env-&lt;env-id&gt;: 各Dynamic Engine環境用で、*&lt;env-id&gt;*は環境識別子です。

Helmデプロイメントでは、ネームスペースの管理が容易になるよう、これらのネームスペースにカスタム名を定義できます。

情報メモ注: ネームスペースの変更は、エンジンのデプロイ中のみ可能です。

## 手順

1. Kubernetesマシンで、ダウンロードしておいたHelmデプロイメントのzipファイルを解凍します。
2. Dynamic Engineのカスタムのネームスペース用に、カスタムの値ファイルを作成します。

   お使いのターミナルで、次のコマンドを実行します。
   ```
   cat <<EOF > $DYNAMIC_ENGINE_ID-custom-namespace-values.yaml
   global:
     namespace:
       create: false
       name: <engine-custom-namespace>
   EOF        
   ```

   たとえば、$DYNAMIC\_ENGINE\_IDはc-m-sjufu4qyで、&lt;engine-custom-namespace&gt;はdynamic-engine-devとなります。これにより、c-m-sjufu4qy-custom-namespace-values.yamlという値ファイルが作成されます。このファイルには次の項目が含まれています:
   ```
   global:
     namespace:
       create: false
       name: dynamic-engine-dev
   ```
3. Kubernetesクラスターにカスタムのネームスペースを作成します。
   ```
   kubectl create namespace <engine-custom-namespace>            
   ```
4. カスタムのネームスペース設定を使って、Dynamic Engineをデプロイします。
   ```
   helm install dynamic-engine-$DYNAMIC_ENGINE_ID -f $DYNAMIC_ENGINE_ID-values.yaml  \
   -f $DYNAMIC_ENGINE_ID-custom-namespace-values.yaml \
   oci://ghcr.io/talend/helm/dynamic-engine \
   --version $DYNAMIC_ENGINE_VERSION          
   ```
5. 環境のカスタムのネームスペース用に、カスタムの値ファイルを作成します。

   お使いのターミナルで、次のコマンドを実行します。
   ```
   cat <<EOF > $DYNAMIC_ENGINE_ENVIRONMENT_ID-custom-namespace-values.yaml
   global:
     namespace:
       create: false
       name: <environment-custom-namespace>

   dynamicEngine:
     namespace:
       name: <engine-custom-namespace>
   EOF       
   ```

   &lt;engine-custom-namespace&gt;には、前に作成したものと同じエンジンのカスタムネームスペース名を使用してください。異なるものを使用すると、環境をデプロイできません。

   たとえば、$DYNAMIC\_ENGINE\_ENVIRONMENT\_IDは67f7d562ffd7c3525a902542、&lt;environment-custom-namespace&gt;はdynamic-engine-dev-env-1、engine-custom-namespace&gt;はdynamic-engine-devで、これらは前の例で説明したエンジンのカスタムネームスペース名とまったく同じです。これにより、67f7d562ffd7c3525a902542-custom-namespace-values.yamlという値ファイルが作成されます。このファイルには次の項目が含まれています:
   ```
   global:
     namespace:
       create: false
       name: dynamic-engine-dev-env-1
   dynamicEngine:
     namespace:
       name: dynamic-engine-dev
   ```
6. Kubernetesクラスターにカスタムの環境ネームスペースを作成します。
   ```
   kubectl create namespace <environment-custom-namespace>            
   ```
7. カスタムのネームスペース設定を使って、Dynamic Engine環境をデプロイします。
   ```
   helm install dynamic-engine-environment-$DYNAMIC_ENGINE_ENVIRONMENT_ID -f $DYNAMIC_ENGINE_ENVIRONMENT_ID-values.yaml  \
   -f $DYNAMIC_ENGINE_ENVIRONMENT_ID-custom-namespace-values.yaml \
   oci://ghcr.io/talend/helm/dynamic-engine-environment \
   --version $DYNAMIC_ENGINE_VERSION                  
   ```

   情報メモヒント: 同じDynamic Engineに対して複数のDynamic Engine環境がある場合は、以下の手順を繰り返し、環境ごとに固有のカスタムネームスペース名を作成します。
8. Dynamic Engineと環境のステータスを確認します。
   ```
   kubectl get dynamicengines.apps.qlik.com -n <engine-custom-namespace>
   kubectl get dynamicengineenvs.apps.qlik.com -n <environment-custom-namespace>                    
   ```

   次の行のような情報が表示されます:
   ```
   NAME                               VERSION     STATUS    LAST UPDATE
   qlik-dynamic-engine-$DYNAMIC_ENGINE_ID   0.22.0      RUNNING   5 minutes

   NAME                   VERSION  STATUS    LAST UPDATE
   <environment-resource-name>   0.22.0   RUNNING   3 minutes
   ```

   &lt;environment-resource-name&gt;は環境のカスタムネームスペースと同一で、たとえばdynamic-engine-dev-env-1となります。

## タスクの結果

正しく完了すると、Dynamic Engine環境サービスがクラスターにインストールされ、Dynamic Engineに接続します。

Talend Management Consoleではこの環境のステータスが[Ready] (準備完了)になり、タスクまたはプランを実行する準備ができていることが確定されます。