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 zu 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-Provider für Google Cloud zu entwickeln. 2020 hat Google außerdem Config Connector eingeführt, um Kunden die Verwendung von Kubernetes zum Verwalten von Google Cloud-Ressourcentypen zu erleichtern.
Terraform
Terraform ist ein Open-Source-Tool für die Bereitstellung von Infrastruktur. Sie können mit Terraform deklarative Konfigurationen schreiben, um Ihre Google Cloud-Dienste und ‑Ressourcen mit dem Terraform-Anbieter für Google Cloud zu verwalten. Weitere Informationen finden Sie unter Terraform in Google Cloud.
Kubernetes-Ressourcenmodell (KRM)
KRM ist ein Paradigma für die Erstellung von APIs und Ressourcendefinitionen für die deklarative Konfigurationsverwaltung. Sie stellt Google Cloud-Ressourcen als benutzerdefinierte Ressourcendefinitionen (CRDs) dar und kann mit dem Config Controller aktiviert 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 Umwandlung in Terraform
So konvertieren Sie Ihre Deployment Manager-Konfigurationen mit DM Convert in Terraform:
- Geben Sie die Deployment Manager-Konfiguration an, die Sie in Terraform konvertieren möchten.
- Damit Ihre Ressourcen auf dem neuesten Stand sind, müssen Sie alle aktiven Bereitstellungen der Konfiguration abgleichen.
- Wenn Sie Ihre Konfiguration in Terraform konvertieren möchten, führen Sie das DM Convert-Tool lokal aus.
- Prüfen Sie, ob die generierte Terraform-Konfiguration den aktuellen Status Ihrer Ressourcen widerspiegelt.
- Löschen Sie die Deployment Manager-Bereitstellung. Wenn Sie Ihre Ressourcen beim Löschen der Bereitstellung beibehalten möchten, legen Sie
delete-policy
aufabandon
fest.
Wir empfehlen, die Best Practices für Terraform zu beachten, z. B.:
Eine detaillierte Anleitung zu diesem 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.