# Déployer Dynamic Engine sur OpenShift

Une fois que votre cluster OpenShift est prêt, configurez le registre d'images et, si nécessaire, la contrainte de contexte de sécurité, puis déployez votre Dynamic Engine et son environnement.

## Avant de commencer

* Un cluster OpenShift configuré pour un déploiement Dynamic Engine. Pour les conditions préalables requises spécifiques à la plateforme, les versions compatibles et les étapes d'accès au cluster, consultez [Configurer OpenShift (OKD) pour le déploiement de Dynamic Engine](https://help.qlik.com/talend/fr-FR/dynamic-engine-configuration-guide/Cloud/deploying-dynamic-engine-on-openshift "Dynamic Engine peut être déployé dans un cluster OpenShift (OKD).").
* Les fichiers de valeurs Helm générés par Talend Management Console pour votre Dynamic Engine et son environnement. Pour plus d'informations, consultez [Déploiement par défaut avec Helm](https://help.qlik.com/talend/fr-FR/dynamic-engine-configuration-guide/Cloud/deploy-with-helm-values-files "Les charts Helm vous permettent de déployer un Dynamic Engine avec des espaces de noms, des noms de services et des configurations de stockage personnalisé·es.").
* Les définitions des ressources personnalisées dynamic-engine-crd doivent avoir été installées à l'aide du chart Helm oci://ghcr.io/talend/helm/dynamic-engine-crd. Si ce n'est pas le cas, exécutez les commandes suivantes pour l'installation :
  1. Trouvez la version du chart à utiliser :

     * Exécutez la commande Helm suivante :
       ```
       helm show chart oci://ghcr.io/talend/helm/dynamic-engine-crd --version <engine_version>
       ```
     * Visualisez la version directement depuis Talend Management Console ou consultez le [Dynamic Engine journal de modification](https://help.qlik.com/talend/fr-FR/dynamic-engine-changelog/Cloud) de la version du chart dans votre version de Dynamic Engine.
     * Utilisez un appel d'API pour [l'endpoint de version de Dynamic Engine](https://talend.qlik.dev/apis/dynamic-engine/2021-03/#operation_return-all-supported-dynamic-engine-versions) (en anglais).

  2. Exécutez la commande suivante pour installer le chart Helm dans une version donnée :

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

     Remplacez &lt;helm\_chart\_version&gt; par la version du chart supportée par votre version du Dynamic Engine.

     Si vous ne spécifiez pas la version, vous installez la dernière version disponible du chart dynamic-engine-crd.

## Pourquoi et quand exécuter cette tâche

Note InformationsImportant : If you deploy with global.profile: standard and do not provide a security context constraint, the deployment fails with the message Only minimal profile is supported in an OpenShift cluster if no securityContextConstraint is provided. Either set global.profile: minimal, or provide configuration.security.securityContextConstraint as described in step 2.

Cette procédure ajoute un fichier de valeurs spécifique à OpenShift en plus des fichiers de valeurs générés par Talend Management Console.

## Procédure

1. Créez un fichier de valeurs spécifique à OpenShift pour votre Dynamic Engine qui désactive le registre d'images intégré.
   ```
   ---
   global:
     profile: minimal
   docker-registry:
     enabled: false
   ```

   Le service docker-registry intégré n'est pas adapté pour un usage en production sur un cluster OpenShift.

   Note InformationsConseil : To pull Dynamic Engine's own service images through a private registry proxy instead of directly from ghcr.io/talend, configure global.registry.dockerRegistry as described in [Utiliser un registre privé d'images pour les déploiements de Dynamic Engine](https://help.qlik.com/talend/fr-FR/dynamic-engine-configuration-guide/Cloud/deploy-dynamic-engine-using-private-image-registry "Configurez Dynamic Engine pour utiliser un registre privé d'images pour les déploiements."). This is separate from configuration.registry, which points to the registry for your own Data Integration and Data Services/Routes images, as described in the following step.
2. Créez un fichier de valeurs spécifique à OpenShift pour votre environnement Dynamic Engine qui pointe vers votre registre d'images.

   Avec le profil minimal :
   ```
   ---
   global:
     profile: minimal
   configuration:
     registry:
       url: <your-registry-url>
       secretName: <your-registry-secret>
   ```

   Avec le profil standard, ajoutez une contrainte de contexte de sécurité qui accepte tout ID utilisateur.trice autre que racine :
   ```
   ---
   global:
     profile: standard
   configuration:
     registry:
       url: <your-registry-url>
       secretName: <your-registry-secret>
     security:
       securityContextConstraint: nonroot-v2
   ```

   Note InformationsConseil : You can set dedicated constraints for data integration Jobs and for Data Services and Routes with configuration.jobDeployment.securityContextConstraint and configuration.dataServiceRouteDeployment.securityContextConstraint. If these are not set, the value of configuration.security.securityContextConstraint applies.

   Note InformationsRemarque : The Dynamic Engine itself does not require this constraint, because its operator service account already has access to a more permissive constraint.
3. Déployez l'instance de Dynamic Engine et son environnement avec les deux fichiers de valeurs.
   ```
   helm upgrade --install dynamic-engine-$DYNAMIC_ENGINE_ID \
    -f $DYNAMIC_ENGINE_ID-values.yaml \
    -f $DYNAMIC_ENGINE_ID-custom-openshift-values.yaml \
    oci://ghcr.io/talend/helm/dynamic-engine \
    --version $DYNAMIC_ENGINE_VERSION

   helm upgrade --install dynamic-engine-environment-$DYNAMIC_ENGINE_ENVIRONMENT_ID \
    -f $DYNAMIC_ENGINE_ENVIRONMENT_ID-values.yaml \
    -f $DYNAMIC_ENGINE_ENVIRONMENT_ID-custom-openshift-values.yaml \
    oci://ghcr.io/talend/helm/dynamic-engine-environment \
    --version $DYNAMIC_ENGINE_VERSION
   ```
4. Facultatif : Si vos tâches nécessitent un stockage persistant, configurez une classe de stockage ReadWriteMany.

   Pour plus d'informations, consultez [Provisionner une classe de stockage dédiée aux services d'environnements du Dynamic Engine](https://help.qlik.com/talend/fr-FR/dynamic-engine-configuration-guide/Cloud/deploy-dynamic-engine-with-specific-storageclass "Configurez une classe de stockage spécifique pour les services d'environnement du Dynamic Engine au lieu d'utiliser la classe de stockage Kubernetes par défaut.").

## Résultats

Votre Dynamic Engine et son environnement sont déployés dans votre cluster OpenShift. Vérifiez le statut du pod :

```
oc get pods -n <your-namespace>
```

Dans Talend Management Console, le statut de cet environnement devient Ready (Prêt), confirmant qu'il est prêt à exécuter des tâches ou des plans.

Si le déploiement échoue ou si les services de Dynamic Engine sont dissociés, le statut devient Not ready (Pas prêt).

## Que faire ensuite

Après un déploiement réussi, vous pouvez ajouter des tâches à l'environnement de Dynamic Engine comme pour les moteurs standards. Pour plus de détails, consultez [Ajouter une tâche de Job dans un environnement de Dynamic Engine](https://help.qlik.com/talend/fr-FR/dynamic-engine-configuration-guide/Cloud/adding-task-in-dynamic-engine-environment "Les tâches des Jobs sont des processus d'intégration exécutables contenant un artefact de Job publié à partir de Studio Talend.").