Utiliser DM Convert pour effectuer la transition vers Terraform ou le modèle de ressource Kubernetes (KRM)

Restez organisé à l'aide des collections Enregistrez et classez les contenus selon vos préférences.

Deployment Manager Convert (DM Convert) est un outil qui permet de convertir vos configurations et modèles Deployment Manager en d'autres formats de configuration déclarative compatibles avec Google. Google accepte actuellement Terraform et le modèle de ressources Kubernetes (KRM).

Pourquoi effectuer une conversion vers Terraform ou KRM ?

Terraform et KRM sont des options populaires pour la gestion des services et de l'infrastructure Google Cloud. Ils proposent des écosystèmes activement mis à jour, compatibles avec des fonctionnalités modernes telles que la gestion des secrets et le rapprochement continu (KRM).

Google collabore avec HashiCorp pour développer le fournisseur Terraform pour Google Cloud. En 2020, Google a également lancé Config Connector pour aider les clients à utiliser Kubernetes pour gérer les types de ressources Google Cloud.

Terraform

Terraform est un outil Open Source pour le provisionnement de l'infrastructure. Terraform vous permet d'écrire des configurations déclaratives pour gérer vos ressources et services Google Cloud à l'aide du fournisseur Terraform pour Google Cloud. Pour en savoir plus, consultez la page Terraform sur Google Cloud.

Modèle de ressource Kubernetes (KRM)

KRM est un paradigme permettant de créer des API et des définitions de ressources pour la gestion de la configuration déclarative. Il représente les ressources Google Cloud en tant que définitions de ressources personnalisées (CRD) et peut être activé à l'aide de Config Controller.

Types compatibles et fournisseurs de types acceptés

DM Convert convertit les fichiers de configuration YAML de Deployment Manager ou les fichiers de modèle Jinja ou Python en fichiers de configuration KRM ou Terraform.

Pour vérifier l'état actuel de la compatibilité de DM Convert pour les fournisseurs de types et les types de ressources, vous pouvez utiliser l'option --list-supported-types.

Comprendre comment DM Convert convertit les concepts dans différents formats

Le tableau suivant montre comment DM Convert convertit les concepts de Deployment Manager en formats KRM et Terraform :

Concept de Deployment Manager Conversion KRM/Config Connector Conversion Terraform
Références Références aux ressources, si le schéma KRM définit le champ comme référence. Si le schéma KRM ne définit pas le champ comme référence, la référence Deployment Manager est remplacée par sa valeur résolue. Les références Terraform ressemblent aux références Deployment Manager et se comportent de la même manière.
Dépendances explicites (depends_on) Aucune compatibilité avec le classement des dépendances explicites. Les ressources sont activées de manière cohérente à terme. depends_on
Liaisons IAM (Identity and Access Management) (blocs accessControl primaires) IAMPolicy Types <resource_type>_iam_policy (par exemple, google_pubsub_topic_iam_policy)
Liaisons IAM (types iamMemberBinding secondaires) IAMPolicyMember <resource_type>_iam_member (par exemple, google_project_iam_member)
Types composites Les types composites sont obsolètes. DM Convert ne les convertit pas. Les types composites sont obsolètes. DM Convert ne les convertit pas.
Actions, fournisseurs de types personnalisés et sorties Non compatible. Les actions ayant des équivalents déclaratifs dans Terraform sont converties. Pour en savoir plus, consultez la page Compatibilité avec les actions.

Compatibilité avec les actions dans DM Convert (pour Terraform)

La fonctionnalité Actions est une fonctionnalité d'aperçu de Deployment Manager qui étend l'ensemble des méthodes d'API disponibles. Actions non compatibles : DM Convert ne convertit pas les actions qui n'ont pas d'équivalents déclaratifs dans Terraform, telles que :

  • Appliquer un correctif, supprimer et répertorier les API

  • API définies dans des fournisseurs de types personnalisés

  • API personnalisées, telles que sqladmin-v1beta4:sql.instances.restart

DM Convert accepte les conversions en équivalents Terraform pour les actions dans les cas suivants :

  • Il remplace les appels d'action aux API qui insèrent une ressource avec des ressources Terraform équivalentes. Par exemple, action: gcp-types/storage-v1:storage.buckets.insert est converti en google_storage_bucket.

  • Dans la mesure du possible, il convertit les appels d'action en API qui obtiennent une ressource vers les types data Terraform. Par exemple, actions: gcp-types/compute-v1:compute.subnetworks.get est converti en google_compute_subnetwork.

  • Il convertit les commandes setIamPolicy en ressources *_iam_policy (primaires) ou *_iam_member (secondaires), selon qu'elles sont utilisées ou non avec getIamPolicy.

Pour en savoir plus sur la migration de l'utilisation des actions vers des alternatives déclaratives dans Deployment Manager, consultez la page Remplacer l'utilisation des actions.

Workflow de conversion vers Terraform

Pour convertir vos configurations Deployment Manager en Terraform à l'aide de DM Convert, procédez comme suit:

  1. Identifiez la configuration Deployment Manager que vous souhaitez convertir en Terraform.
  2. Pour vous assurer que vos ressources sont à jour, rapprochez tous les déploiements actifs de la configuration.
  3. Pour convertir votre configuration en Terraform, exécutez l'outil DM Convert en local.
  4. Vérifiez que la configuration Terraform générée reflète l'état actuel de vos ressources.
  5. Supprimer le déploiement Deployment Manager Pour conserver vos ressources lorsque vous supprimez le déploiement, définissez delete-policy sur abandon.

Nous vous recommandons de suivre les bonnes pratiques de Terraform, par exemple:

Pour obtenir une présentation détaillée de ce workflow, consultez la page Convertir vos configurations Deployment Manager avec DM Convert.

Collecte de données dans DM Convert

Données que nous collectons par défaut

Par défaut, l'outil DM Convert envoie des données d'utilisation anonymes à Google pour nous aider à maintenir et à améliorer cet outil. Lorsque l'outil DM Convert s'exécute, les données sur l'opération demandée, la réussite de l'opération et la chronologie de la conversion sont collectées. Ces données sont anonymes et excluent toutes les informations personnelles, les données sensibles ou le contenu des clients.

Les données d'utilisation peuvent contenir les éléments suivants :

  • Paramètres de saisie de la commande de conversion : nous enregistrons les valeurs des paramètres de votre commande de conversion lors de l'exécution de l'outil, y compris le format de sortie (KRM ou Terraform) et les représentations booléennes des autres options spécifiées (nous ne collectons pas les valeurs spécifiques de ces options).

  • Résultat de conversion : nous enregistrons les résultats de la conversion, y compris l'état de la conversion (SUCCESS ou FAILURE), ainsi que le code d'erreur et le message d'erreur si un problème survient.

  • Heure de conversion : nous enregistrons les heures de début et de fin de la conversion.

Utilisation de ces données

Google collecte et traite les données d'utilisation pour :

  • Découvrez comment l'outil est utilisé, y compris les fonctionnalités et les paramètres les plus populaires.

  • Diagnostiquez l'échec de l'utilisation de cet outil et guidez les utilisateurs qui ont besoin d'une assistance technique.

  • Améliorez l'outil en résolvant les problèmes et en augmentant potentiellement la couverture des caractéristiques.

Désactiver la collecte de données

Google collecte les données d'utilisation par défaut lorsque vous exécutez une conversion, mais cette collecte de données peut être désactivée.

Pour désactiver la collecte de données pour une conversion spécifique, vous pouvez spécifier l'option --opt_out_data_collection=true dans votre commande de conversion. Pour continuer à désactiver cette collecte de données, vous devez spécifier l'option chaque fois que vous exécutez une conversion.

Pour activer la collecte de données pour une conversion spécifique, vous pouvez spécifier l'option --opt_out_data_collection=false dans votre commande de conversion ou l'omettre de votre commande.