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 das Kubernetes-Ressourcenmodell (KRM).
Warum in Terraform oder KRM konvertieren?
Terraform und KRM sind beliebte Optionen zum Verwalten von Google Cloud-Diensten und -Infrastrukturen. Sie bieten aktiv aktualisierte Systeme und unterstützen moderne Features wie die Secret-Verwaltung und den kontinuierlichen Abgleich (für KRM).
Google arbeitet mit HashiCorp zusammen, um den Terraform-Anbieter für Google Cloud zu entwickeln. 2020 hat Google außerdem Config Connector eingeführt, um Kunden bei der Verwaltung von Google Cloud-Ressourcentypen mit Kubernetes zu unterstützen.
Terraform
Terraform ist ein Open-Source-Tool für die Bereitstellung von Infrastruktur. Sie können Terraform verwenden, um deklarative Konfigurationen zum Verwalten Ihrer Google Cloud-Dienste und -Ressourcen mit dem Terraform-Anbieter für Google Cloud zu 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. Er stellt Google Cloud-Ressourcen als benutzerdefinierte Ressourcendefinitionen (Custom Resource Definitions, CRDs) dar und kann mit Config Controller gesteuert 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 Funktion in der Vorabversion 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 ingoogle_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 ingoogle_compute_subnetwork
konvertiert.setIamPolicy
konvertiert Befehle in (autoritative)*_iam_policy
- oder (nicht autoritative)*_iam_member
-Ressourcen, je nachdem, ob sie mitgetIamPolicy
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 konvertieren Sie Deployment Manager-Konfigurationen mit DM Convert in Terraform:
- Ermitteln Sie die Deployment Manager-Konfiguration, die Sie in Terraform konvertieren möchten.
- Gleichen Sie alle aktiven Bereitstellungen der Konfiguration ab, um sicherzustellen, dass Ihre Ressourcen auf dem neuesten Stand sind.
- Wenn Sie die Konfiguration in Terraform konvertieren möchten, führen Sie das DM Convert-Tool lokal aus.
- Prüfen Sie, ob die generierte Terraform-Konfiguration dem aktuellen Status Ihrer Ressourcen entspricht.
- Löschen Sie die Deployment Manager-Bereitstellung. Damit Ihre Ressourcen erhalten bleiben, wenn Sie die Bereitstellung löschen, legen Sie
delete-policy
aufabandon
fest.
Wir empfehlen, die Best Practices für Terraform zu befolgen, z. B.:
- Terraform-Zustand in einem Cloud Storage-Bucket speichern
- Cloud Build zum Verwalten der Aktivierung verwenden
Eine detaillierte Anleitung für diesen Workflow 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
oderFAILURE
) 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.