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

Deployment Manager Conversion (DM Convert) est un outil que vous pouvez utiliser pour convertir vos configurations et modèles Deployment Manager en une autre déclaration. Formats de configuration compatibles avec Google Google est actuellement compatible avec le modèle de ressources Kubernetes (KRM) et Terraform.

Pourquoi effectuer une conversion au format KRM ou Terraform ?

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

En 2020, Google a lancé Config Connector pour aider ses clients à gérer les types de ressources Google Cloud à l'aide de Kubernetes. Google collabore également avec HashiCorp pour développer le fournisseur Terraform pour 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 configuration déclarative. Elle représente les ressources Google Cloud sous la forme de définitions de ressources personnalisées (CRD, Custom Resource Definitions). Par exemple, vous pouvez définir une instance de base de données Cloud Spanner dans KRM comme suit:

apiVersion: spanner.cnrm.cloud.google.com/v1beta1
kind: SpannerInstance
metadata:
  name: spanner-instance-sample
spec:
  config: regional-us-west1
  displayName: Spanner Instance Sample
  numNodes: 2

Les fonctionnalités de KRM incluent le rapprochement continu à l'aide d'opérateurs, des fichiers de configuration déclaratifs faciles à lire et des intégrations à d'autres outils Kubernetes. Par exemple, lorsque vous utilisez le module complémentaire Config Connector pour Kubernetes, vous pouvez appliquer des modifications à vos fichiers de configuration en exécutant la commande suivante:

kubectl apply -f

Terraform

Terraform est un outil Open Source pour le provisionnement de l'infrastructure. Vous pouvez utiliser Terraform pour écrire des configurations déclaratives afin de gérer vos services et vos ressources Google Cloud.

Types et fournisseurs de types acceptés

DM Convert convertit les fichiers de configuration Deployment Manager et 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 avec les fournisseurs de types et les types de ressources, vous pouvez utiliser l'option --list-supported-types.

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

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

Concept de Deployment Manager Conversion KRM/Config Connector Conversion Terraform
Références Références de ressource, 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 se comportent de la même manière que les références Deployment Manager.
Dépendances explicites (depends_on) Impossible de classer les dépendances de manière explicite. Les ressources fonctionnent de manière cohérente à terme. depends_on
Liaisons de gestion de l'authentification et des accès (IAM) (blocs accessControl faisant autorité) IAMPolicy Types <resource_type>_iam_policy (par exemple, google_pubsub_topic_iam_policy)
Liaisons IAM (types iamMemberBinding non primaires) IAMPolicyMember <resource_type>_iam_member (par exemple, google_project_iam_member)
Types composites Les types composites sont obsolètes. mais elles ne sont pas converties. Les types composites sont obsolètes. mais elles ne sont pas converties.
Actions, fournisseurs de types personnalisés et résultats Non compatible. Les actions ayant des équivalents déclaratifs dans Terraform sont converties. Pour en savoir plus, consultez Assistance pour les actions.

Prise en charge des actions dans DM Convert (pour Terraform)

Actions est une fonctionnalité bêta de Deployment Manager qui étend l'ensemble des méthodes API disponibles. Actions n'est pas compatible, et DM Convert ne convertit pas les actions qui n'ont pas d'équivalents déclaratifs dans Terraform, telles que:

  • Appliquer des correctifs, supprimer et répertorier des API

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

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

DM Conversion accepte la conversion en équivalents Terraform pour les actions dans les cas suivants:

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

  • Elle convertit les appels d'action en API qui récupèrent une ressource vers les types data Terraform lorsque cela est possible. Par exemple, actions: gcp-types/compute-v1:compute.subnetworks.get est converti en google_compute_subnetwork.

  • Les commandes setIamPolicy sont converties en ressources *_iam_policy (autorité) ou *_iam_member (non faisant autorité), 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 section Remplacer l'utilisation des actions.

Collecte de données dans DM Convert

Données collectées par défaut

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

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

  • Paramètres d'entrée pour 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 des représentations booléennes indiquant si d'autres options sont spécifiées (nous ne recueillons pas les valeurs spécifiques). de ces indicateurs).

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

  • Date et heure de la 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 l'outil et fournissez des instructions aux utilisateurs ayant besoin d'assistance technique.

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

Désactiver la collecte de données

Google collecte les données d'utilisation par défaut lorsque vous exécutez une conversion. Toutefois, 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 la collecte de données à l'avenir, 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 bien l'omettre dans votre commande.