Prepara l'app Kubernetes Terraform per Google Cloud Marketplace

Prima di eseguire l'onboarding dell'app Terraform Kubernetes tramite Producer Portal, ti consigliamo di preparare l'ambiente Google Cloud e l'app Terraform Kubernetes per Google Cloud Marketplace.

Prima di iniziare

Per accedere a Producer Portal, assicurati di aver compilato il modulo di informazioni sul progetto Cloud Marketplace.

Creare il workspace

Ti consigliamo di creare un nuovo progetto nella consoleGoogle Cloud , con un ID progetto che termina con -public, principalmente per i tuoi prodotti Cloud Marketplace. Per istruzioni dettagliate, vedi Creazione e gestione dei progetti.

Se hai già configurato un progetto per la vendita su Cloud Marketplace, verifica che i ruoli Identity and Access Management (IAM) siano concessi correttamente per Kubernetes e vai direttamente a Configurare Artifact Registry in questo documento.

Concedi ruoli Identity and Access Management e specifica un contatto per la sicurezza per il tuo progetto

Per concedere ruoli Identity and Access Management (IAM) e specificare un contatto per la sicurezza per il tuo progetto, completa i seguenti passaggi:

  1. Concedi i seguenti ruoli IAM a livello di progetto:

    • Editor progetto, per cloud-commerce-marketplace-onboarding@twosync-src.google.com
    • Amministratore Service Management (roles/servicemanagement.serviceAdmin), a cloud-commerce-marketplace-onboarding@twosync-src.google.com e managed-services@cloud-marketplace.iam.gserviceaccount.com
    • Editor di configurazione (roles/servicemanagement.configEditor), per cloud-commerce-producer@system.gserviceaccount.com

    Per istruzioni dettagliate, vedi Concessione, modifica e revoca dell'accesso alle risorse.

  2. Concedi i seguenti ruoli, a livello di servizio, a cloud-commerce-procurement@system.gserviceaccount.com:

    • Consumer servizi (roles/servicemanagement.serviceConsumer)
    • Responsabile controllo servizi (roles/servicemanagement.serviceController)

    Per i passaggi per concedere l'accesso a livello di servizio, vedi Concessione e revoca dell'accesso all'API.

  3. Specifica un contatto per la sicurezza. Per saperne di più, vedi Gestione dei contatti per le notifiche.

Configura Artifact Registry

Per configurare Artifact Registry:

  1. Installa gcloud CLI. Per aggiornare un'installazione esistente, esegui il comando gcloud components update. Nota: su Ubuntu, utilizza il pacchetto Debian per installare gcloud CLI. Il pacchetto snap gcloud CLI non include kubectl o estensioni per l'autenticazione con Artifact Registry utilizzando gcloud CLI.
  2. Installa Docker se non è già installato.
  3. Attiva l'API Artifact Registry, che ti consente di eseguire il push in Artifact Registry.
    Abilita l'API
  4. Crea un repository Artifact Registry di staging. Per la procedura dettagliata, consulta Archiviare immagini container Docker in Artifact Registry.
  5. Attiva Artifact Analysis, che consente la scansione della sicurezza, per il repository Artifact Registry.
  6. Tagga ed esegui il push delle immagini che vuoi distribuire nella tua app nel repository di staging di Artifact Registry.

Tagga e invia le tue immagini

Per taggare ed eseguire il push delle immagini in Artifact Registry:

  1. Scegli il percorso del repository di staging di Artifact Registry. Ti consigliamo di utilizzare la seguente struttura per il repository: us-docker.pkg.dev/YOUR_PARTNER_ID/YOUR_SOLUTION_ID. Il repository di staging deve trovarsi all'interno di us-docker.pkg.dev. Cloud Marketplace non supporta altre regioni o domini gcr.io, come europe-docker.pkg.dev, gcr.io o eu.gcr.io, per le app Kubernetes Terraform.
  2. Salva o copia il percorso del repository di staging per quando crei il prodotto in Producer Portal.
  3. Crea l'immagine di cui vuoi eseguire il push nel repository di staging di Artifact Registry.
  4. Utilizza Docker per taggare l'immagine con il numero di versione, ad esempio 1.0:

    docker tag IMAGE_NAME STAGING_REPO_PATH:VERSION_NUMBER
    

    Ad esempio, questo comando potrebbe essere: docker tag test-image us-docker.pkg.dev/testpartner/testsolution:1.0.

  5. Utilizza gcloud per eseguire il push dell'immagine:

    gcloud docker push STAGING_REPO_PATH:tag
    
  6. Per ogni tag o immagine aggiuntiva che vuoi aggiungere al repository di staging, ripeti i passaggi precedenti. Puoi aggiungere più tag a una singola immagine.

Il push di un'immagine nel repository di staging non la rende automaticamente visibile agli utenti. Le immagini diventano visibili agli utenti dopo la pubblicazione.

Crea un cluster di sviluppo in Kubernetes Engine

Utilizzi Google Kubernetes Engine per gestire e scalare i cluster Kubernetes. Per creare un cluster di test ed eseguirvi il deployment di un'app di base, segui la guida rapida di Google Kubernetes Engine.

Organizzare le uscite

In generale, ogni versione della tua app deve adottare il controllo delle versioni semantico 2.0, che segue la convenzione di numerazione MAJOR.MINOR.PATCH. Ogni versione deve avere un numero di versione univoco, ad esempio 1.0.1, 1.0.2 o 1.3.1. (Facoltativo) Per aggiungere un modificatore di pre-release, utilizza un trattino dopo il numero di versione, ad esempio 1.3.1-alpha201910. Puoi utilizzare i modificatori di pre-release per memorizzare ed evidenziare qualsiasi informazione aggiuntiva che ritieni utile, ad esempio le date di build che indicano quando sono state create le versioni.

Ti consigliamo di rilasciare il software in tracce. Ogni traccia è una serie di versioni con aggiornamenti compatibili con le versioni precedenti. I canali di rilascio devono essere basati su versioni secondarie, ad esempio 4.1.x. Evita di utilizzare nomi di versioni generici, ad esempio newest.

Ad esempio, se rilasci la versione 2.0 della tua app su Cloud Marketplace e prevedi che le versioni 2.0.1, 2.0.5 e successive saranno compatibili con le versioni precedenti a 2.0, organizza queste release nella traccia di rilascio 2.0.

Quando rilasci una versione della tua app non compatibile con le versioni precedenti o una versione che richiede agli utenti di eseguire passaggi di migrazione manuale, rilasciala su un nuovo canale, in modo che gli utenti possano pianificare gli aggiornamenti.

Crea e carica il wrapper del modulo Terraform su Cloud Storage

Devi fornire un modulo Terraform che gli utenti di Cloud Marketplace possano utilizzare per eseguire il deployment dell'app Terraform Kubernetes. Questo modulo utilizza il provider Helm per eseguire il deployment dei grafici Helm che hai fornito. Per i passaggi per creare un modulo Terraform compatibile con l'app Terraform Kubernetes, consulta la guida per i partner Terraform Kubernetes su GitHub.

Scegli gli identificatori dei prodotti

Devi selezionare i seguenti identificatori per la tua azienda, il tuo prodotto e le tue immagini container, che vengono utilizzati per creare gli URL di Cloud Marketplace e gli URI delle tue immagini container:

  • Il nome della tua azienda. Ad esempio, se il nome della tua azienda è Examplesoft Inc., puoi utilizzare l'identificatore examplesoft.
  • Il nome del tuo prodotto. Ad esempio, se il nome del prodotto è Example Pro, utilizza l'identificatore example-pro.
  • Il canale di rilascio del tuo prodotto, ad esempio 4.0. Per maggiori dettagli, vedi Organizzare le release, in precedenza in questa pagina.

ID prodotto di esempio

Ad esempio, la società Examplesoft Inc. sceglie i seguenti identificatori per il suo prodotto Example Pro:

Nome Identificatore
Società Examplesoft Inc examplesoft
Prodotto Example Pro example-pro
Grafico Helm Grafico Helm grafico
Immagine [1] Database di esempio example-db
Immagine [2] Coda di esempio example-queue
Canale di release [1] Versione 4.x.x 4.0
Canale di release [2] Versione 5.x.x 5,0

A partire da questi identificatori, vengono generate automaticamente le seguenti informazioni:

  • L'URL del prodotto in Cloud Marketplace: https://console.cloud.google.com/marketplace/details/examplesoft/example-pro
  • Gli URI di Artifact Registry nel tuo progetto:
    • 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

Passaggi successivi

Dopo aver configurato l'ambiente per le app Terraform Kubernetes, continua a preparare le app per la pubblicazione completando i seguenti passaggi: Google Cloud