Les conceptions qui incluent des configurations Terraform nécessitent un accès à un environnement d'exécution Terraform que vous intégrez au produit sur site Cloud Assembly.

Ajout d'une exécution Terraform

L'environnement d'exécution se compose d'un cluster Kubernetes qui exécute des commandes de l'interface de ligne de commande Terraform pour effectuer les opérations demandées. En outre, l'environnement d'exécution collecte des journaux et renvoie les résultats des commandes de l'interface de ligne de commande Terraform.

Le produit sur site vRealize Automation nécessite que les utilisateurs configurent leur propre cluster Kubernetes d'exécution Terraform. Un seul environnement d'exécution Terraform par organisation est pris en charge. Tous les déploiements Terraform pour cette organisation utilisent le même environnement d'exécution.

  1. Vérifiez que vous disposez d'un cluster Kubernetes sur lequel vous souhaitez exécuter l'interface de ligne de commande Terraform.
    • Tous les utilisateurs peuvent fournir un fichier kubeconfig pour exécuter l'interface de ligne de commande Terraform sur un cluster Kubernetes non géré.
    • Les utilisateurs de licence Enterprise peuvent choisir d'exécuter l'interface de ligne de commande Terraform sur un cluster Kubernetes géré par vRealize Automation.

      Dans Cloud Assembly, accédez à Infrastructure > Ressources > Kubernetes, et vérifiez que vous disposez d'un cluster Kubernetes. Consultez Utilisation de Kubernetes dans Cloud Assembly si vous devez en ajouter un.

  2. Si le cluster Kubernetes a été récemment ajouté ou modifié, attendez que sa collecte de données se termine.

    La collecte de données récupère la liste des espaces de noms et d'autres informations, et peut prendre jusqu'à 5 minutes selon le fournisseur.

  3. Une fois la collecte de données terminée, accédez à Infrastructure > Connexions > Intégrations > Ajouter une intégration, puis sélectionnez la fiche Exécution Terraform.
  4. Entrée les paramètres.
    Figure 1. Exemple d'intégration d'exécution Terraform
    Exemple d'intégration d'exécution Terraform pour les utilisateurs de licence avancée
    Paramètre Description
    Nom Donnez un nom unique à l'intégration d'exécution.
    Description Expliquez à quoi sert l'intégration.
    Intégration d'exécution Terraform :
    Type d'exécution (Enterprise uniquement) Les utilisateurs de licence Enterprise peuvent choisir d'exécuter l'interface de ligne de commande Terraform sur un cluster Kubernetes géré par vRealize Automation ou sur un cluster non géré.
    Kubernetes kubeconfig (tous les utilisateurs)

    Pour un cluster Kubernetes non géré, collez l'intégralité du contenu du fichier kubeconfig pour le cluster externe.

    Pour utiliser une exécution externe de Kubernetes avec un serveur proxy, consultez Ajout de la prise en charge du proxy.

    Cette option est disponible pour tous les utilisateurs.

    Kubernetes cluster (Enterprise uniquement)

    Pour les clusters Kubernetes gérés par vRealize Automation, sélectionnez le cluster dans lequel vous voulez exécuter l'interface de ligne de commande Terraform.

    Le cluster et son fichier kubeconfig doivent être accessibles. Vous pouvez valider l'accès à kubeconfig avec une action GET sur /cmx/api/resources/k8s/clusters/{clusterId}/kube-config.

    Cette option n'est disponible que pour les licences Enterprise.

    Espace de noms Kubernetes Sélectionnez l'espace de noms à utiliser dans le cluster pour créer des espaces qui exécutent l'interface de ligne de commande Terraform.
    Paramètres du conteneur d'exécution :
    Image Entrez le chemin d'accès à l'image du conteneur de la version de Terraform que vous souhaitez exécuter.
    Note : Le bouton VALIDER ne vérifie pas l'image du conteneur.
    Demande de CPU Entrez la quantité de CPU pour les conteneurs en cours d'exécution. La valeur par défaut est 250 millicœurs.
    Limite de CPU Entrez le CPU maximum autorisé pour l'exécution de conteneurs. La valeur par défaut est 250 millicœurs.
    Demande de mémoire Entrez la quantité de mémoire pour les conteneurs en cours d'exécution. La valeur par défaut est 512 Mo.
    Limite de mémoire Entrez la mémoire maximale autorisée pour les conteneurs en cours d'exécution. La valeur par défaut est 512 Mo.
  5. Cliquez sur VALIDER et ajustez les paramètres selon vos besoins.
  6. Cliquez sur AJOUTER.

Les paramètres sont mis en cache. Après l'ajout de l'intégration, vous pouvez modifier des paramètres tels que le cluster ou l'espace de noms, mais il peut s'écouler jusqu'à 5 minutes pour qu'une modification soit détectée et pour que l'interface de ligne de commande Terraform s'exécute sous les nouveaux paramètres.

Dépannage de l'exécution Terraform

Certains problèmes de déploiement de la configuration Terraform peuvent être liés à l'intégration d'exécution.

Problème Cause Résolution
La validation échoue avec une erreur indiquant que l'espace de noms n'est pas valide. Vous avez modifié le cluster, mais vous avez laissé l'espace de noms précédent dans l'interface utilisateur. Resélectionnez toujours un espace de noms après avoir modifié la sélection du cluster.
La liste déroulante d'espaces de noms est vide ou ne répertorie pas les espaces de noms récemment ajoutés. La collecte de données pour le cluster n'est pas terminée. La collecte de données prend jusqu'à 5 minutes après la saisie ou la modification du cluster et jusqu'à 10 minutes lors de la saisie ou de la modification de l'espace de noms. Pour un nouveau cluster avec des espaces de noms existants, attendez jusqu'à 5 minutes pour que la collecte de données se termine.

Pour un nouvel espace de noms dans un cluster existant, attendez jusqu'à 10 minutes pour que la collecte de données se termine.

Si le problème persiste, supprimez le cluster et rajoutez-le de nouveau sous Infrastructure > Ressources > Kubernetes.

Les conteneurs de l'interface de ligne de commande Terraform sont créés dans un cluster précédent, un espace de noms précédent ou avec des paramètres d'exécution précédents, même après la mise à jour du compte d'intégration. Le client de l'API Kubernetes utilisée par vRealize Automation est mis en cache pendant 5 minutes. Les modifications peuvent nécessiter jusqu'à 5 minutes pour prendre effet.
La validation ou une opération de déploiement Terraform échoue avec une erreur indiquant que kubeconfig n'est pas disponible. Ces erreurs se produisent parfois, car le cluster n'est pas accessible depuis vRealize Automation.

Dans d'autres cas, les informations d'identification de l'utilisateur, les jetons ou les certificats ne sont pas valides.

L'erreur kubeconfig peut se produire pour plusieurs raisons et peut nécessiter l'implication du support technique pour le dépannage.

Ajout de la prise en charge du proxy

Pour que votre cluster de runtime Kubernetes externe se connecte via un serveur proxy, suivez ces étapes.

  1. Connectez-vous à votre serveur de cluster Kubernetes.
  2. Créez un dossier vide.
  3. Dans le nouveau dossier, ajoutez les lignes suivantes à un nouveau fichier nommé Dockerfile.
    FROM projects.registry.vmware.com/vra/terraform:latest as final
    ENV https_proxy=protocol://username:password@proxy_host:proxy_port
    ENV http_proxy=protocol://username:password@proxy_host:proxy_port
    ENV no_proxy=.local,.localdomain,localhost
  4. Modifiez les valeurs d'espaces réservés de telle sorte que les variables d'environnement https_proxy et http_proxy incluent les paramètres du serveur proxy que vous utilisez pour accéder à Internet.

    protocol sera http ou https en fonction des éléments utilisés par votre serveur proxy, qui peut ne pas correspondre au nom de la variable d'environnement https_proxy ou http_proxy.

  5. Enregistrez et fermez Dockerfile.
  6. Dans le dossier vide, exécutez la commande suivante. Selon vos privilèges de compte, vous devrez peut-être exécuter la commande en mode sudo.

    docker build --file Dockerfile --tag custom-terraform-runtime:1.0 .

    La commande crée une image Docker custom-terraform-runtime:1.0 locale.

  7. Dans Cloud Assembly, sous Infrastructure > Connexions > Intégrations, accédez à l'intégration d'exécution Terraform.
  8. Créez ou modifiez les paramètres du conteneur d'exécution pour utiliser l'image custom-terraform-runtime:1.0.
    Image de proxy d'exécution Terraform