Offrire app Kubernetes Terraform tramite Cloud Marketplace

Le app Kubernetes di Terraform in Google Cloud Marketplace consentono ai tuoi clienti di utilizzare Terraform per eseguire il deployment delle tue app containerizzate su Google Kubernetes Engine. Agli utenti non viene addebitato alcun costo per l'utilizzo delle tue app Terraform Kubernetes, ma viene addebitato un costo per l'utilizzo delle risorse Google Cloud . Puoi offrire pubblicamente le app Terraform Kubernetes a tutti gli utenti di Cloud Marketplace oppure privatamente utilizzando le offerte private.

Le app Kubernetes Terraform che offri tramite Cloud Marketplace definiscono le loro configurazioni utilizzando i grafici Helm, che ospiti in Artifact Registry. Una volta configurato, esegui l'onboarding dell'app su Cloud Marketplace tramite Producer Portal.

Panoramica dell'onboarding di un'app Kubernetes Terraform

L'offerta di un'app Terraform Kubernetes tramite Cloud Marketplace prevede i seguenti passaggi:

  1. Prepara l'app Kubernetes Terraform per Cloud Marketplace. Ciò include la configurazione di Artifact Registry e il push delle immagini della tua app.

  2. Aggiungi le informazioni sui prezzi per la tua app nel Producer Portal.

  3. Configura il deployment della tua app in Producer Portal, inclusi il modulo Terraform, il grafico Helm e le immagini container.

  4. Pubblica il tuo prodotto su Cloud Marketplace. Durante l'onboarding del prodotto, invii varie parti del prodotto per la revisione. Il team di Cloud Marketplace esamina ogni invio e collabora con te per risolvere eventuali problemi prima di approvarlo. Una volta approvati tutti gli invii, puoi pubblicare e lanciare il prodotto in pochi minuti.

Requisiti per le app Kubernetes Terraform

Tutti i prodotti che offri tramite Cloud Marketplace devono rispettare i requisiti delle schede di Cloud Marketplace.

La tua app Terraform Kubernetes deve soddisfare i seguenti requisiti aggiuntivi:

  • La tua app deve essere eseguita su nodi GKE che utilizzano processori x86.
  • Tutti i grafici Helm e le immagini container della tua app devono essere caricati nel tuo registro Artifact Registry, nello stesso repository e progetto che utilizzi per l'app Terraform Kubernetes.
  • Il tuo registro Artifact Registry deve includere un grafico Helm.
  • Il modulo Terraform deve essere ospitato come file ZIP in un bucket Cloud Storage che si trova nello stesso progetto che utilizzi per l'app Terraform Kubernetes.
  • Devi abilitare il controllo delle versioni per il bucket Cloud Storage che utilizzi per ospitare il modulo Terraform.
  • Devi includere una guida dell'utente con i passaggi per eseguire il deployment dell'app dalla riga di comando, configurarla e utilizzarla. Per maggiori dettagli, consulta Requisiti per la guida dell'utente in questo documento.
  • Per proteggere gli utenti da API instabili, utilizza solo risorse Kubernetes beta o disponibili a livello generale.

Requisiti per le immagini dell'app

Le immagini dell'app devono soddisfare i seguenti requisiti:

  • Tutte le immagini della tua app devono essere taggate con il canale di rilascio e la versione attuale. Ad esempio, se rilasci la versione 2.0.5 nel canale di rilascio 2.0, tutte le immagini corrispondenti devono essere taggate con 2.0 e 2.0.5. Per maggiori dettagli, vedi Organizzare le release.
  • Tutte le immagini della tua app devono contenere la seguente annotazione nel manifest dell'immagine:

    com.googleapis.cloudmarketplace.product.service.name=services/SERVICE_NAME
    

    Sostituisci SERVICE_NAME con il nome del tuo servizio. Per trovare il nome del servizio, consulta la tabella dei prodotti nella pagina Panoramica di Producer Portal. Per maggiori informazioni sulle annotazioni, consulta la documentazione di Open Container Initiative relativa alle annotazioni su GitHub.

Requisiti per il repository Artifact Registry

Il grafico Helm e le immagini container della tua app devono far parte di un unico repository Artifact Registry.

Ad esempio, se il repository Artifact Registry è us-docker.pkg.dev/exampleproject, il grafico Helm e le immagini container della tua app dovrebbero essere simili a quanto segue:

  • us-docker.pkg.dev/exampleproject/exampleapp/chart
  • us-docker.pkg.dev/exampleproject/exampleapp/image1
  • us-docker.pkg.dev/exampleproject/exampleapp/image2

Requisiti per il modulo Terraform

I clienti utilizzano il modulo Terraform per eseguire il deployment del tuo prodotto da Cloud Marketplace tramite Infrastructure Manager. Il modulo Terraform pacchettizza la configurazione Kubernetes della tua app.

Utilizza il modulo di esempio come punto di partenza e segui la guida per i partner per creare un modulo Terraform compatibile con la tua app.

Parametri passati alla tua app

Il modulo Terraform deve dichiarare i parametri che devono essere raccolti dai clienti quando selezionano la tua app. Questi parametri vengono poi forniti al container del grafico Helm quando gli utenti eseguono il deployment dell'app.

Per configurare questi parametri, il modulo Terraform deve includere un file schema.yaml.

Per scoprire come creare uno schema.yaml, consulta la guida alla creazione di uno schema su GitHub.

Richieste di cluster GPU

Se la tua app ha esigenze specifiche di GPU o richiede un utilizzo intensivo della GPU, puoi specificare il tipo e il numero di GPU nel cluster utilizzando lo schema del deployer. Se specifichi le tue esigenze di GPU, disattivi la creazione assistita del cluster.

La tua app può richiedere una GPU Nvidia generica o una piattaforma Nvidia specifica.

Requisiti per la guida utente della tua app

La guida utente dell'app deve includere le seguenti informazioni:

  • Panoramica: una panoramica generale della tua app, che copre le funzioni di base e le opzioni di configurazione. Questa sezione deve anche collegarsi all'app pubblicata su Cloud Marketplace.
  • Configurazione una tantum: include i passaggi per configurare Helm e installare la risorsa personalizzata CustomResourceDefinition (CRD) in modo che il cluster possa gestire la risorsa personalizzata.
  • Installazione: sono inclusi:
    • Comandi per il deployment dell'app
    • Trasmissione dei parametri disponibili nella configurazione della UI
    • Blocco dei riferimenti alle immagini su digest immutabili
    • Informazioni su eventuali campi di input personalizzati che hai aggiunto al tuo modulo Terraform, se applicabile. Consulta le istruzioni per aggiungere campi di input al tuo modulo Terraform.
  • Utilizzo di base: guide per le seguenti attività:
    • Modifica di nomi utente e password
    • Connessione a una Console di amministrazione, se applicabile
    • Connessione di uno strumento client ed esecuzione di un comando di esempio, se applicabile
    • Abilitazione dell'ingresso e installazione dei certificati TLS, se applicabile
  • Backup e ripristino: informazioni sul backup dello stato dell'app e sul ripristino dello stato dell'app da un backup.
  • Aggiornamenti delle immagini: informazioni sull'aggiornamento delle immagini dell'app per patch o aggiornamenti secondari.
  • Scalabilità: informazioni sulla scalabilità dell'app, se applicabile.
  • Eliminazione: guide per eliminare l'app e pulire le risorse che potrebbero rimanere, ad esempio PersistentVolumeClaims.

Passaggi successivi