Terraform-Kubernetes-App für Google Cloud Marketplace vorbereiten

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:

  1. 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ür cloud-commerce-marketplace-onboarding@twosync-src.google.com und managed-services@cloud-marketplace.iam.gserviceaccount.com
    • Konfigurationsbearbeiter (roles/servicemanagement.configEditor) bis cloud-commerce-producer@system.gserviceaccount.com

    Eine ausführliche Anleitung finden Sie unter Zugriff auf Ressourcen erteilen, ändern und entziehen.

  2. 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.

  3. 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:

  1. 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 weder kubectl noch Erweiterungen zur Authentifizierung bei Artifact Registry mit der gcloud CLI.
  2. Installieren Sie Docker, falls es noch nicht installiert ist.
  3. Aktivieren Sie die Artifact Registry API, damit Sie Images in Artifact Registry übertragen können.
    API aktivieren
  4. Erstellen Sie ein Staging-Artifact Registry-Repository. Eine detaillierte Anleitung finden Sie unter Docker-Container-Images in Artifact Registry speichern.
  5. Aktivieren Sie die Artefaktanalyse für Ihr Artifact Registry-Repository, um Sicherheitsscans zu ermöglichen.
  6. 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:

  1. 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 in us-docker.pkg.dev befinden. Cloud Marketplace unterstützt keine anderen Regionen oder gcr.io-Domains wie europe-docker.pkg.dev, gcr.io oder eu.gcr.io für Terraform-Kubernetes-Apps.
  2. Speichern Sie den Staging-Repository-Pfad oder kopieren Sie ihn, um Ihr Produkt im Producer Portal zu erstellen.
  3. Erstellen Sie das Image, das Sie per Push-Funktion in Ihr Artifact Registry-Staging-Repository übertragen möchten.
  4. 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.

  5. Verwenden Sie gcloud, um Ihr Image zu übertragen:

    gcloud docker push STAGING_REPO_PATH:tag
    
  6. 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: