HashiCorp Terraform est un outil IaC (Infrastructure as Code) qui vous permet de provisionner et de gérer l'infrastructure cloud. Terraform fournit des plug-ins appelés providers qui vous permettent d'interagir avec des fournisseurs cloud et d'autres API. Pour Google Distributed Cloud (GDC) air-gapped, vous devez utiliser le fournisseur Kubernetes pour provisionner les ressources, car il n'existe pas de fournisseur GDC air-gapped spécifique pour Terraform.
Les ressources GDC peuvent être gérées par le fournisseur Kubernetes avec la gestion complète du cycle de vie des ressources Kubernetes.
Opération | Fournisseur Terraform |
---|---|
Créer | Fournisseur Kubernetes |
Lire | |
Mettre à jour | |
Supprimer | N/A, utilisez terraform destroy |
Fonctionnement de Terraform
Terraform possède une syntaxe déclarative et axée sur la configuration qui vous permet de décrire l'infrastructure que vous souhaitez provisionner dans votre projet GDC. Après avoir créé cette configuration dans un ou plusieurs fichiers de configuration Terraform, vous pouvez utiliser la CLI Terraform pour appliquer cette configuration à vos ressources GDC.
Les étapes suivantes expliquent le fonctionnement de Terraform :
Vous devez décrire l'infrastructure que vous souhaitez provisionner dans un fichier de configuration Terraform. Vous n'avez pas besoin d'écrire de code décrivant comment provisionner l'infrastructure. Terraform provisionne l'infrastructure pour vous.
Vous exécutez la commande
terraform plan
, qui évalue votre configuration et génère un plan d'exécution. Vous pouvez examiner le plan et apporter les modifications nécessaires.Vous exécutez la commande
terraform apply
, qui effectue les actions suivantes :Il provisionne votre infrastructure en fonction de votre plan d'exécution en appelant les API GDC air-gapped correspondantes en arrière-plan.
Il crée un fichier d'état Terraform, qui est un fichier JSON qui mappe les ressources de votre fichier de configuration avec les ressources de l'infrastructure réelle. Terraform utilise ce fichier pour conserver un enregistrement de l'état le plus récent de votre infrastructure et pour déterminer quand créer, mettre à jour et détruire des ressources.
Lorsque vous exécutez
terraform apply
, Terraform utilise le mappage dans le fichier d'état pour comparer l'infrastructure existante au code et effectuer les mises à jour si nécessaire :Si un objet de ressource est défini dans le fichier de configuration, mais n'existe pas dans le fichier d'état, Terraform le crée.
Si un objet de ressource existe dans le fichier d'état, mais possède une configuration différente de celle contenue dans votre fichier de configuration, Terraform met à jour la ressource en fonction de votre fichier de configuration.
Si un objet de ressource dans le fichier d'état correspond à votre fichier de configuration, Terraform laisse la ressource telle quelle.
Ressources Terraform pour GDC sous air gap
Les ressources sont les éléments fondamentaux du langage Terraform. Chaque bloc de ressources décrit un ou plusieurs objets d'infrastructure.
GDC air-gapped est basé sur Kubernetes. En plus des API Kubernetes de base telles que Node
, PersistentVolume
et Service
, il est également compatible avec l'API CustomResourceDefinition
. En utilisant des définitions de ressources personnalisées, des API spécifiques à GDC sont créées pour représenter l'infrastructure GDC isolée.
Le tableau suivant répertorie les ressources Terraform disponibles pour GDC air-gapped :
Ressources Terraform | Sources de données |
---|---|
kubernetes_manifest
|
Étapes suivantes
Documentation du fournisseur Google Cloud dans HashiCorp