Accéder au contenu principal Passer au contenu complémentaire

Injecter des variables d'environnement depuis ConfigMap

Utilisez ConfigMap Kubernetes pour fournir une configuration non sensible à la casse (comme les endpoints d'API, les feature flags ou les paramètres d'applications comme variables d'environnement pour vos tâches d'intégration de données (y compris Big Data), vos services de données et vos tâches de Routes.

Avant de commencer

Pour plus d'informations, consultez Prérequis et considérations à prendre en compte.

Procédure

  1. Préparez un fichier de ressource ConfigMap avec les variables d'environnement.

    Exemple

    Par exemple, créez un fichier nommé configmap-external-config.yaml :

    cat <<EOF > configmap-external-config.yaml
    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: external-config
      namespace: qlik-processing-env-$DYNAMIC_ENGINE_ENVIRONMENT_ID
    data:
      API_ENDPOINT: "https://api.example.com/v1"
      FEATURE_FLAG_ENABLED: "true"
      LOG_LEVEL: "INFO"
      MAX_RETRIES: "3"
    EOF

    Remplacez $DYNAMIC_ENGINE_ENVIRONMENT_ID par l'ID de votre environnement et mettez à jour les valeurs de configuration avec vos données réelles.

  2. Créez un fichier de valeurs Helm référençant ConfigMap.

    Exemple

    Créez un fichier nommé configmap-values.yaml. Le contenu varie en fonction des types de tâches consommant ConfigMap.
    • Pour les tâches d'intégration de données :
      configuration:
        jobDeployment:
          additionalSpec:
            enabled: true
            envFrom:
              - configMapRef:
                  name: external-config
    • Pour les tâches de services de données et Routes :
      configuration:
        dataServiceRouteDeployment:
          additionalSpec:
            enabled: true
            envFrom:
              - configMapRef:
                  name: external-config
    • Pour combiner les deux :
      configuration:
        jobDeployment:
          additionalSpec:
            enabled: true
            envFrom:
              - configMapRef:
                  name: external-config
      
        dataServiceRouteDeployment:
          additionalSpec:
            enabled: true
            envFrom:
              - configMapRef:
                  name: external-config
    Note InformationsConseil : La structure additionalSpec.envFrom.configMapRef charge toutes les clés de ConfigMap comme variables d'environnement. Toutes les clés deviennent disponibles avec leur nom exact spécifié dans ConfigMap, comme API_ENDPOINT ou FEATURE_FLAG_ENABLED.
  3. Déployez ou mettez à niveau votre environnement de Dynamic Engine pour créer l'espace de noms requis, si ce n'est pas déjà fait.
    helm upgrade --install dynamic-engine-environment-$DYNAMIC_ENGINE_ENVIRONMENT_ID \
      oci://ghcr.io/talend/helm/dynamic-engine-environment \
      --version ${DYNAMIC_ENGINE_VERSION} \
      -f $DYNAMIC_ENGINE_ENVIRONMENT_ID-values.yaml

    Remplacez ${DYNAMIC_ENGINE_VERSION} par la version de votre environnement.

    Cette commande crée l'environnement de Dynamic Engine et son espace de noms associé qlik-processing-env-$DYNAMIC_ENGINE_ENVIRONMENT_ID.

  4. Créez ConfigMap dans l'espace de nom de votre environnement de Dynamic Engine.
    kubectl apply -f configmap-external-config.yaml

    Cette commande crée la ressource ConfigMap dans votre cluster Kubernetes. La ressource ConfigMap est disponible pour utilisation par tous les pods de l'espace de noms de l'environnement.

  5. Mettez à niveau votre environnement de Dynamic Engine avec la configuration ConfigMap.
    helm upgrade dynamic-engine-environment-$DYNAMIC_ENGINE_ENVIRONMENT_ID \
      oci://ghcr.io/talend/helm/dynamic-engine-environment \
      --version ${DYNAMIC_ENGINE_VERSION} \
      -f $DYNAMIC_ENGINE_ENVIRONMENT_ID-values.yaml \
      -f configmap-values.yaml

    Remplacez ${DYNAMIC_ENGINE_VERSION} par la version de votre environnement.

    Cette commande applique votre configuration ConfigMap à l'environnement de Dynamic Engine. Les variables d'environnement deviennent disponibles pour toutes les tâches déployées.

  6. Vérifiez que les variables d'environnement de ConfigMap sont disponibles dans les pods en cours d'exécution.
    kubectl get pod -n qlik-processing-env-$DYNAMIC_ENGINE_ENVIRONMENT_ID <pod-name> \
      -o jsonpath='{.spec.containers[*].envFrom}'

    Le résultat attendu doit inclure la référence ConfigMap :

    [{"configMapRef":{"name":"external-config"}}]

Résultats

Votre environnement de Dynamic Engine fournit l'accès à la configuration depuis votre ConfigMap Kubernetes en tant que variables d'environnement.

Lorsque vous mettez à jour les variables dans votre ConfigMap, les modifications s'appliquent comme suit 

  • Les Jobs (Intégration de données, y compris tâches Big Data) sont des tâches ponctuelles. Les valeurs mises à jour sont lues lorsque l'exécution de la tâche suivante démarre.
  • Les Routes et les services de données sont des tâches AlwaysOn. Ces tâches ne chargent pas automatiquement les modifications apportées au ConfigMap. Mettez à jour la tâche dans Talend Management Console pour déclencher un nouveau déploiement dans votre environnement de Dynamic Engine.

Cette page vous a-t-elle aidé ?

Si vous rencontrez des problèmes sur cette page ou dans son contenu – une faute de frappe, une étape manquante ou une erreur technique – faites-le-nous savoir.