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:
Concedi i seguenti ruoli IAM a livello di progetto:
- Editor progetto, a
cloud-commerce-marketplace-onboarding@twosync-src.google.com
- Amministratore Service Management
(
roles/servicemanagement.serviceAdmin
), acloud-commerce-marketplace-onboarding@twosync-src.google.com
emanaged-services@cloud-marketplace.iam.gserviceaccount.com
- Editor di configurazione (
roles/servicemanagement.configEditor
), percloud-commerce-producer@system.gserviceaccount.com
Per istruzioni dettagliate, consulta Concessione, modifica e revoca dell'accesso alle risorse.
- Editor progetto, a
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.
- Consumer servizi (
Specifica un contatto per la sicurezza. Per saperne di più, vedi Gestione dei contatti per le notifiche.
Configura Artifact Registry
Per configurare Artifact Registry, completa i seguenti passaggi:
- 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 includekubectl
o estensioni per l'autenticazione con Artifact Registry utilizzando gcloud CLI. - Installa Docker se non è già installato.
- Attiva l'API Artifact Registry, che ti consente di eseguire il push in Artifact Registry.
Abilita l'API - Crea un repository Artifact Registry di staging. Per la procedura dettagliata, consulta Archiviare immagini container Docker in Artifact Registry.
- Attiva Artifact Analysis, che consente l'analisi della sicurezza, per il repository Artifact Registry.
- Tagga ed esegui il push delle immagini che vuoi distribuire nella tua app nel repository di staging di Artifact Registry.
Taggare e inviare le immagini
Per taggare ed eseguire il push delle immagini in Artifact Registry, completa i seguenti passaggi:
- 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 dius-docker.pkg.dev
. Cloud Marketplace non supporta altre regioni o dominigcr.io
, comeeurope-docker.pkg.dev
,gcr.io
oeu.gcr.io
, per le app Kubernetes Terraform. - Salva o copia il percorso del repository di staging per quando crei il prodotto in Producer Portal.
- Crea l'immagine di cui vuoi eseguire il push nel repository di staging di Artifact Registry.
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
.Utilizza
gcloud
per eseguire il push dell'immagine:gcloud docker push STAGING_REPO_PATH:tag
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 la tua app Terraform Kubernetes, consulta la guida per i partner Terraform Kubernetes su GitHub.
(Solo deployment dell'interfaccia utente) Crea metadati per il modulo Terraform personalizzato
Affinché il modulo personalizzato supporti il deployment della UI, devi creare e aggiungere metadati che Cloud Marketplace utilizza per analizzare correttamente il modulo e renderizzarlo nella UI per il tuo cliente.
Per creare e aggiungere questi metadati, utilizza lo strumento CFT CLI open source per completare i seguenti passaggi:
Installa lo strumento CLI CFT. Ti consigliamo di specificare il valore di
VERSION
comelatest
e di impostarePLATFORM
su uno dei seguenti valori:linux
windows
darwin
Per saperne di più, consulta la documentazione dell'interfaccia a riga di comando CFT.
Esegui questo comando:
cft blueprint metadata -p TF_PACKAGE_PATH -q -d --nested=false
In questo comando, i flag vengono utilizzati come segue:
- Il flag
-p
fornisce un percorso per il pacchetto Terraform. - Il flag
-q
genera metadati senza richiedere informazioni per un repository remoto. - Il flag
-d
genera il filemetadata.display.yaml
. - Il flag
--nested=false
genera i metadati per il modulo principale, ignorando tutti i moduli nella cartellamodules/
.
- Il flag
Dopo aver completato i passaggi precedenti, lo strumento CFT CLI genera i seguenti file:
metadata.yaml
metadata.display.yaml
Personalizzare i metadati del modulo Terraform personalizzato
Cloud Marketplace utilizza il file metadata.display.yaml
per creare il modulo
che i clienti utilizzano per eseguire il deployment del tuo prodotto tramite la UI. Per personalizzare l'aspetto del modulo per i tuoi clienti, modifica i valori dei campi in metadata.display.yaml
. Per i dettagli sulle opzioni di personalizzazione disponibili,
visita la
documentazione dell'interfaccia utente Blueprint
open source o consulta lo
schema dell'interfaccia utente Blueprint.
Ti consigliamo di utilizzare l'estensione
GooglePropertyExtensions
per modificare i metadati. GooglePropertyExtensions
ti consente di utilizzare le convalide specifiche per Google Cloud, ad esempio l'applicazione della regola che i clienti possono selezionare solo le reti Virtual Private Cloud (VPC) già esistenti nel loro progettoGoogle Cloud . Per un esempio, consulta il
modulo Terraform personalizzato di esempio.
Convalidare i metadati del modulo personalizzato
Per convalidare i metadati del modulo personalizzato, esegui questo comando:
cft blueprint metadata -p TF_PACKAGE_PATH -v
Nel comando precedente, i flag agiscono nel seguente modo:
- Il flag
-p
fornisce un percorso per il pacchetto Terraform. - Il flag
-v
convalida tutti i file di metadati nel percorso fornito in base allo schemaBlueprintMetadata
.
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 Google Cloud per le app Terraform Kubernetes, continua a preparare le app per la pubblicazione completando i seguenti passaggi:
- Aggiungi l'app Kubernetes Terraform a Producer Portal.
- Aggiungi le informazioni sui prezzi per la tua app.
- Configura il deployment della tua app, inclusi il grafico Helm e le immagini container.