Mit DM Convert zu Terraform oder dem Kubernetes-Ressourcenmodell (KRM) wechseln

Mit Sammlungen den Überblick behalten Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.

Deployment Manager Convert (DM Convert) ist ein Tool, mit dem Sie Ihre Konfigurationen und Vorlagen in Deployment Manager in andere deklarative Konfigurationsformate konvertieren können, die Google unterstützt. Google unterstützt derzeit Terraform und Kubernetes Resource Model (KRM).

Vorteile der Konvertierung in Terraform oder KRM

Terraform und KRM sind beliebte Optionen zur Verwaltung von Google Cloud-Diensten und -Infrastruktur. Sie bieten aktiv aktualisierte Systeme und unterstützen moderne Features wie die Secret-Verwaltung und den kontinuierlichen Abgleich (für KRM).

Google entwickelt zusammen mit HashiCorp den Terraform-Anbieter für Google Cloud. 2020 hat Google außerdem Config Connector eingeführt, um Kunden bei der Verwendung von Kubernetes zur Verwaltung von Google Cloud-Ressourcentypen zu helfen.

Terraform

Terraform ist ein Open-Source-Tool für die Bereitstellung von Infrastruktur. Mit Terraform können Sie deklarative Konfigurationen zur Verwaltung Ihrer Google Cloud-Dienste und -Ressourcen mit dem Terraform-Anbieter für Google Cloud schreiben. Weitere Informationen finden Sie unter Terraform in Google Cloud.

Kubernetes-Ressourcenmodell (KRM)

KRM ist ein Modell für die Erstellung von APIs und Ressourcendefinitionen für die deklarative Konfigurationsverwaltung. Sie stellt Google Cloud-Ressourcen als benutzerdefinierte Ressourcendefinitionen (Custom Resource Definitions, CRDs) dar und kann über den Config Controller ausgelöst werden.

Unterstützte Typen und Typanbieter

DM Convert konvertiert YAML-Dateien und Jinja- oder Python-Vorlagendateien in KRM- oder Terraform-Konfigurationsdateien.

Mit dem Flag --list-supported-types können Sie den aktuellen Status der Unterstützung von DM Convert für Typanbieter und Ressourcentypen prüfen.

Wie DM Convert Konzepte in verschiedene Formate übersetzt

Die folgende Tabelle zeigt, wie DM Convert Konzepte aus Deployment Manager in KRM und Terraform übersetzt:

Deployment Manager-Konzept KRM/Config-Connector-Konvertierung Terraform-Konvertierung
Verweise Ressourcenreferenzen, wenn das KRM-Schema das Feld als Referenz definiert. Wenn das KRM-Schema das Feld nicht als Referenz definiert, wird die Deployment Manager-Referenz durch ihren aufgelösten Wert ersetzt. Terraform-Referenzen sehen ähnlich aus wie Deployment Manager-Referenzen und verhalten sich auch ähnlich.
Explizite Abhängigkeiten (depends_on) Keine Unterstützung für explizite Abhängigkeitsreihenfolge. Ressourcen arbeiten in der Art einer Eventual Consistency. depends_on
Identitäts- und Zugriffsverwaltungsbindungen (IAM) (autoritative accessControl-Blöcke) IAMPolicy <resource_type>_iam_policy-Typen, z. B. google_pubsub_topic_iam_policy
IAM-Bindungen (nicht autoritative iamMemberBinding-Typen) IAMPolicyMember <resource_type>_iam_member (Beispiel: google_project_iam_member)
Zusammengesetzte Typen Zusammengesetzte Typen wurden verworfen. DM Convert konvertiert sie nicht. Zusammengesetzte Typen wurden verworfen. DM Convert konvertiert sie nicht.
Aktionen, Anbieter benutzerdefinierter Typen und Ausgaben Nicht unterstützt. Aktionen mit deklarativen Entsprechungen in Terraform werden konvertiert. Weitere Informationen finden Sie unter Unterstützung für Aktionen.

Unterstützung für Aktionen in DM Convert (für Terraform)

Aktionen sind eine Vorschaufunktion für Deployment Manager, die die verfügbaren API-Methoden erweitert. Aktionen werden nicht unterstützt und bei der DM Convert konvertiert keine Aktionen, die keine deklarativen Entsprechungen in Terraform haben. Beispiel:

  • APIs patchen, löschen und auflisten

  • In benutzerdefinierten Typanbietern definierte APIs

  • Benutzerdefinierte APIs wie sqladmin-v1beta4:sql.instances.restart

DM Convert unterstützt die Konvertierung in Terraform-Entsprechungen für Aktionen in den folgenden Fällen:

  • Es ersetzt Aktionsaufrufe für APIs, die eine Ressource mit entsprechenden Terraform-Ressourcen einfügen. action: gcp-types/storage-v1:storage.buckets.insert wird beispielsweise in google_storage_bucket konvertiert.

  • Es konvertiert Aktionsaufrufe für APIs, die eine Ressource nach Möglichkeit in Terraform-data-Typen abrufen. actions: gcp-types/compute-v1:compute.subnetworks.get wird beispielsweise in google_compute_subnetwork konvertiert.

  • setIamPolicy konvertiert Befehle in (autoritative) *_iam_policy- oder (nicht autoritative) *_iam_member-Ressourcen, je nachdem, ob sie mit getIamPolicy verwendet werden oder nicht.

Informationen zur Migration der Nutzung von Aktionen zu deklarativen Alternativen in Deployment Manager finden Sie unter Nutzung von Aktionen ersetzen.

Workflow für die Konvertierung in Terraform

So wandeln Sie Ihre Deployment Manager-Konfigurationen mit DM Convert in Terraform um:

  1. Ermitteln Sie die Deployment Manager-Konfiguration, die Sie in Terraform konvertieren möchten.
  2. Gleichen Sie alle aktiven Bereitstellungen der Konfiguration ab, damit Ihre Ressourcen aktuell sind.
  3. Wenn Sie die Konfiguration in Terraform umwandeln möchten, führen Sie das DM-Konvertierungstool lokal aus.
  4. Prüfen Sie, ob die generierte Terraform-Konfiguration den aktuellen Status Ihrer Ressourcen widerspiegelt.
  5. Löschen Sie das Deployment Manager-Deployment. Wenn Sie die Ressourcen nach dem Löschen der Bereitstellung beibehalten möchten, legen Sie für delete-policy den Wert abandon fest.

Wir empfehlen die Best Practices für Terraform. Beispiele:

Eine ausführliche Anleitung finden Sie unter Deployment Manager-Konfigurationen mit DM Convert konvertieren.

Datenerfassung in DM Convert

Was wird standardmäßig erfassen

Das Tool DM Convert sendet standardmäßig anonyme Nutzungsdaten an Google, damit wir das Tool warten und verbessern können. Wenn das Tool DM Convert ausgeführt wird, werden Daten zum angeforderten Vorgang, zum Erfolg des Vorgangs und zum Zeitpunkt der Konvertierung erfasst. Diese Daten sind anonym und schließen alle personenbezogenen Daten, sensiblen Daten oder Kundeninhalte aus.

Die Nutzungsdaten können Folgendes enthalten:

  • Eingabeparameter für den Konvertierungsbefehl: Wir erfassen die Parameterwerte Ihres Konvertierungsbefehls, wenn Sie das Tool ausführen, einschließlich des Ausgabeformats (KRM oder Terraform) und boolescher Darstellungen, ob andere Flags angegeben sind (die spezifischen Werte dieser Flags werden nicht erfasst).

  • Konvertierungsergebnis: Wir zeichnen die Ergebnisse der Konvertierung auf, einschließlich des Konvertierungsstatus (SUCCESS oder FAILURE) sowie des Fehlercodes und der Fehlermeldung, wenn ein Problem auftritt.

  • Konvertierungszeit:Wir erfassen die Start- und Endzeiten der Konvertierung.

So verwenden wir diese Daten

Google erfasst und verarbeitet die Nutzungsdaten zu folgenden Zwecken:

  • Zum besseren Verständnis, wie das Tool eingesetzt wird und welche Features und Einstellungen am häufigsten verwendet werden.

  • Diagnose von fehlgeschlagener Nutzung des Tools und Anbieten von technischer Unterstützung und Hinweisen für Nutzer.

  • Verbesserung des Tools durch Beheben von Problemen und Einführen weiterer Features.

Datenerfassung deaktivieren

Google erfasst standardmäßig Nutzungsdaten, wenn Sie eine Konvertierung ausführen, aber Sie können diese Erfassung von Daten deaktivieren.

Wenn Sie die Datenerfassung für eine bestimmte Konvertierung deaktivieren möchten, können Sie in Ihrem Konvertierungsbefehl das Flag --opt_out_data_collection=true angeben. Wenn Sie diese Datenerfassung weiterhin deaktivieren möchten, müssen Sie das Flag jedes Mal angeben, wenn Sie eine Konvertierung ausführen.

Wenn Sie die Datenerfassung für eine bestimmte Konvertierung aktivieren möchten, können Sie das Flag --opt_out_data_collection=false in Ihrem Konvertierungsbefehl angeben oder das Flag in Ihrem Befehl weglassen.