Bevor Sie Ihre Terraform-Kubernetes-Anwendung über das Producer Portal einbinden, sollten Sie Ihre Google Cloud-Umgebung und Ihre Terraform-Kubernetes-Anwendung für Google Cloud Marketplace vorbereiten.
Hinweise
Damit Sie Zugriff auf das Producer Portal erhalten, müssen Sie das Cloud Marketplace-Projektinformationsformular ausfüllen.
Arbeitsbereich erstellen
Wir empfehlen, ein neues Projekt in der Google Cloud -Konsole mit einer Projekt-ID zu erstellen, die auf -public
endet, in erster Linie für Ihre Cloud Marketplace-Produkte. Eine detaillierte Anleitung finden Sie unter Projekte erstellen und verwalten.
Wenn Sie bereits ein Projekt für den Verkauf auf Cloud Marketplace eingerichtet haben, prüfen Sie, ob die IAM-Rollen (Identity and Access Management) für Kubernetes richtig zugewiesen sind, und fahren Sie direkt mit Artifact Registry einrichten in diesem Dokument fort.
Identity and Access Management-Rollen zuweisen und Sicherheitskontakt für Ihr Projekt angeben
Wenn Sie IAM-Rollen (Identity and Access Management) zuweisen und einen Sicherheitskontakt für Ihr Projekt angeben möchten, führen Sie die folgenden Schritte aus:
Gewähren Sie die folgenden IAM-Rollen auf Projektebene:
- Projektbearbeiter, zu
cloud-commerce-marketplace-onboarding@twosync-src.google.com
- Service Management-Administrator
(
roles/servicemanagement.serviceAdmin
) fürcloud-commerce-marketplace-onboarding@twosync-src.google.com
undmanaged-services@cloud-marketplace.iam.gserviceaccount.com
- Konfigurationsbearbeiter (
roles/servicemanagement.configEditor
) biscloud-commerce-producer@system.gserviceaccount.com
Eine ausführliche Anleitung finden Sie unter Zugriff auf Ressourcen erteilen, ändern und entziehen.
- Projektbearbeiter, zu
Weisen Sie
cloud-commerce-procurement@system.gserviceaccount.com
auf Dienstebene die folgenden Rollen zu:- Service Consumer (
roles/servicemanagement.serviceConsumer
) - Dienstüberwacher (
roles/servicemanagement.serviceController
)
Eine Anleitung zum Gewähren des Zugriffs auf Dienstebene finden Sie unter Zugriff auf die API gewähren und entziehen.
- Service Consumer (
Geben Sie einen für Sicherheit zuständigen Kontakt an. Weitere Informationen finden Sie unter Kontakte für Benachrichtigungen verwalten.
Artifact Registry einrichten
Führen Sie die folgenden Schritte aus, um Artifact Registry einzurichten:
- Installieren Sie das gcloud-CLI.
Führen Sie den Befehl
gcloud components update
aus, um eine vorhandene Installation zu aktualisieren. Hinweis: Verwenden Sie unter Ubuntu das Debian-Paket, um die gcloud CLI zu installieren. Das gcloud CLI-Snap-Paket enthält wederkubectl
noch Erweiterungen zur Authentifizierung bei Artifact Registry mit der gcloud CLI. - Installieren Sie Docker, falls es noch nicht installiert ist.
- Aktivieren Sie die Artifact Registry API, damit Sie Images in Artifact Registry übertragen können.
API aktivieren - Erstellen Sie ein Staging-Artifact Registry-Repository. Eine detaillierte Anleitung finden Sie unter Docker-Container-Images in Artifact Registry speichern.
- Aktivieren Sie die Artefaktanalyse für Ihr Artifact Registry-Repository, um Sicherheitsscans zu ermöglichen.
- Taggen Sie die Bilder, die Sie in Ihrer App verteilen möchten, und übertragen Sie sie per Push in Ihr Staging-Repository für Artifact Registry.
Images taggen und per Push übertragen
Führen Sie die folgenden Schritte aus, um Ihre Images mit einem Tag zu versehen und per Push in die Artifact Registry zu übertragen:
- Wählen Sie den Pfad des Staging-Repositorys für Artifact Registry aus. Wir empfehlen, dass Ihr Repository die folgende Struktur verwendet:
us-docker.pkg.dev/YOUR_PARTNER_ID/YOUR_SOLUTION_ID
. Ihr Staging-Repository muss sich inus-docker.pkg.dev
befinden. Cloud Marketplace unterstützt keine anderen Regionen odergcr.io
-Domains wieeurope-docker.pkg.dev
,gcr.io
odereu.gcr.io
für Terraform-Kubernetes-Apps. - Speichern Sie den Staging-Repository-Pfad oder kopieren Sie ihn, um Ihr Produkt im Producer Portal zu erstellen.
- Erstellen Sie das Image, das Sie per Push-Funktion in Ihr Artifact Registry-Staging-Repository übertragen möchten.
Verwenden Sie Docker, um das Image mit seiner Versionsnummer zu taggen, z. B.
1.0
:docker tag IMAGE_NAME STAGING_REPO_PATH:VERSION_NUMBER
Dieser Befehl könnte beispielsweise so aussehen:
docker tag test-image us-docker.pkg.dev/testpartner/testsolution:1.0
.Verwenden Sie
gcloud
, um Ihr Image zu übertragen:gcloud docker push STAGING_REPO_PATH:tag
Wiederholen Sie die vorherigen Schritte für jedes zusätzliche Tag oder Image, das Sie Ihrem Staging-Repository hinzufügen möchten. Sie können einem einzelnen Bild mehrere Tags hinzufügen.
Wenn Sie ein Image per Push-Funktion in Ihr Staging-Repository übertragen, wird es nicht automatisch für Nutzer sichtbar. Ihre Bilder werden für Nutzer sichtbar, nachdem Sie sie veröffentlicht haben.
Entwicklungscluster in Kubernetes Engine erstellen
Mit Google Kubernetes Engine können Sie Kubernetes-Cluster verwalten und skalieren. Befolgen Sie die Schnellanleitung zu Google Kubernetes Engine, um einen Testcluster zu erstellen und eine Basisanwendung darauf bereitzustellen.
Releases organisieren
Im Allgemeinen muss jede Version Ihrer Anwendung die semantische Versionsverwaltung 2.0 einhalten, die der Namenskonvention MAJOR.MINOR.PATCH
entspricht. Jede Version muss eine eindeutige Versionsnummer wie 1.0.1
, 1.0.2
oder 1.3.1
haben. Optional können Sie nach der Versionsnummer einen Bindestrich einfügen, um einen Vorrelease-Modifikator hinzuzufügen, z. B. 1.3.1-alpha201910
. Sie können mit Modifikatoren vor der Veröffentlichung zusätzliche Informationen speichern und hervorheben, die für Sie nützlich sind, z. B. Build-Daten, die angeben, wann Versionen erstellt wurden.
Wir empfehlen, dass Sie Ihre Software in Tracks veröffentlichen. Jeder Track ist eine Reihe von Versionen mit abwärtskompatiblen Updates. Die Release-Tracks sollten auf Nebenversionen, beispielsweise 4.1.x
, basieren. Vermeiden Sie allgemeine Versionsnamen wie newest
.
Wenn Sie beispielsweise die Version 2.0
Ihrer App auf dem Cloud Marketplace veröffentlichen und erwarten, dass die Versionen 2.0.1
, 2.0.5
und höher abwärtskompatibel mit 2.0
sind, verwalten Sie diese Releases unter dem Release-Track 2.0
.
Wenn Sie eine abwärtskompatible Version Ihrer App veröffentlichen oder eine Version, bei der Nutzer manuelle Migrationsschritte ausführen müssen, geben Sie sie auf einer neuen Spur frei, damit Nutzer ihre Updates planen können.
Terraform-Modul-Wrapper erstellen und in Cloud Storage hochladen
Sie müssen ein Terraform-Modul bereitstellen, mit dem Cloud Marketplace-Nutzer Ihre Terraform Kubernetes-App bereitstellen können. Dieses Modul verwendet den Helm-Anbieter, um die von Ihnen bereitgestellten Helm-Diagramme bereitzustellen. Eine Anleitung zum Erstellen eines Terraform-Moduls, das mit Ihrer Terraform Kubernetes-App kompatibel ist, finden Sie im Terraform Kubernetes-Partnerleitfaden auf GitHub.
Produktkennzeichnungen auswählen
Sie müssen die folgenden Kennzeichnungen für Ihr Unternehmen, Ihr Produkt und Ihre Container-Images auswählen, mit denen Ihre Cloud Marketplace-URLs und die URIs für Ihre Container-Images erstellt werden:
- Name Ihres Unternehmens: Wenn der Name Ihres Unternehmens beispielsweise Examplesoft Inc. lautet, können Sie die Kennzeichnung
examplesoft
verwenden. - Der Name Ihres Produkts. Wenn der Produktname beispielsweise Example Pro lautet, verwenden Sie die Kennzeichnung
example-pro
. - Release-Track Ihres Produkts, z. B.
4.0
. Weitere Informationen finden Sie oben auf dieser Seite unter Releases organisieren.
Beispiel für Produktkennzeichnungen
Das Unternehmen "Examplesoft Inc." wählt beispielsweise die folgenden Kennzeichnungen für sein Produkt "Example Pro":
Name | Kennzeichnung | |
---|---|---|
Unternehmen | Examplesoft Inc | examplesoft |
Produkt | Example Pro | example-pro |
Helm-Diagramm | Helm-Diagramm | Diagramm |
Bild [1] | Beispieldatenbank | example-db |
Image [2] | Example Queue | example-queue |
Release-Track [1] | Version 4.x.x | 4.0 |
Release-Track [2] | Version 5.x.x | 5,0 |
Aus diesen Kennzeichnungen werden automatisch folgende Informationen generiert:
- Die Produkt-URL im Cloud Marketplace:
https://console.cloud.google.com/marketplace/details/examplesoft/example-pro
- Die Artifact Registry-URIs in Ihrem Projekt:
us-docker.pkg.dev/examplesoft/example-pro/chart:4.0
us-docker.pkg.dev/examplesoft/example-pro/example-db:4.0
us-docker.pkg.dev/examplesoft/example-pro/example-query:4.0
us-docker.pkg.dev/examplesoft/example-pro/chart:5.0
us-docker.pkg.dev/examplesoft/example-pro/example-db:5.0
us-docker.pkg.dev/examplesoft/example-pro/example-query:5.0
Nächste Schritte
Nachdem Sie Ihre Google Cloud Umgebung für Terraform Kubernetes-Apps eingerichtet haben, bereiten Sie Ihre Apps weiter auf die Veröffentlichung vor, indem Sie die folgenden Schritte ausführen:
- Fügen Sie Ihre Terraform-Kubernetes-App dem Producer Portal hinzu.
- Preisinformationen für Ihre App hinzufügen
- Konfigurieren Sie die Bereitstellung Ihrer App, einschließlich des Helm-Diagramms und der Container-Images.