Crea i target e la pipeline di distribuzione

Questa pagina descrive come creare la pipeline di distribuzione e i target che descrivono dove e come Cloud Deploy eseguirà il deployment della tua applicazione. Consulta Schema del file di configurazione per una descrizione della struttura dei file YAML per le pipeline di distribuzione e le destinazioni.

Informazioni sulla pipeline di distribuzione e sui target

La pipeline di distribuzione descrive l'avanzamento dei target di deployment. Puoi definire questi target nello stesso file della pipeline di distribuzione o in uno o più file separati.

Dopo aver creato la pipeline di distribuzione e il file o i file di definizione di destinazione, esegui gcloud deploy apply su ciascuno di questi file per registrarli come risorse Cloud Deploy.

Definisci i target e la pipeline di distribuzione

La struttura della pipeline di distribuzione e dei file di configurazione di destinazione è descritta qui.

Puoi chiamare questo file come preferisci. Per convenzione, una configurazione della pipeline di distribuzione che include definizioni di target è denominata clouddeploy.yaml, mentre una che fa riferimento a target definiti in uno o più file separati è denominata delivery-pipeline.yaml.

La destinazione può puntare a GKE, GKE Enterprise o Cloud Run. All'interno di una pipeline di distribuzione, tutte le destinazioni devono fare riferimento allo stesso tipo di runtime (ad esempio tutto GKE o GKE Enterprise).

Crea una pipeline di distribuzione e i target utilizzando la console Google Cloud

Puoi utilizzare la console Google Cloud per creare una nuova pipeline di distribuzione e un nuovo target o target. È utile per provare Cloud Deploy, ma non è adatto ai carichi di lavoro di produzione. Puoi anche utilizzare la console Google Cloud per creare una release.

Per creare la pipeline di distribuzione:

  1. Nella pagina pipeline di distribuzione, fai clic su Crea.

  2. Specifica un nome (o mantieni il valore predefinito) e, facoltativamente, una descrizione.

  3. Seleziona la tua area.

  4. Scegli l'ambiente di runtime.

    Per GKE, scegli Google Kubernetes Engine o seleziona Cloud Run se è il runtime in cui stai eseguendo il deployment.

  5. In Nuovo target, specifica un nome (o mantieni il valore predefinito).

  6. Se vuoi richiedere l'approvazione per questo target, seleziona la casella di controllo Richiedi l'approvazione per le implementazioni.

  7. Se hai intenzione di utilizzare una strategia di deployment canary su questo target, seleziona la casella di controllo Abilita canary.

  8. Fai clic su Fine.

  9. Fai clic su Aggiungi target e segui questi passaggi per ogni target aggiuntivo che vuoi creare.

  10. Quando hai a disposizione tutti i target, fai clic su Crea per creare la pipeline di distribuzione e le risorse di destinazione.

Registra la pipeline di distribuzione e i target

Se hai creato la pipeline e i target utilizzando la console Google Cloud, non è necessario eseguire questa operazione.

Per registrare la pipeline di distribuzione con Cloud Deploy, devi eseguire gcloud deploy apply una volta per ogni file di definizione separato. In altre parole, se definisci tre destinazioni in tre file, devi eseguire il comando quattro volte, una per la pipeline di distribuzione e una per ogni destinazione.

Il seguente comando registra una pipeline di distribuzione con i target definiti nello stesso file.

gcloud deploy apply --file=PIPELINE_CONFIG \
                    --region=LOCATION \
                    --project=PROJECT

Ora disponi di una pipeline di distribuzione in grado di gestire il deployment delle tue release e di scegliere come target risorse che possono essere utilizzate da qualsiasi pipeline di distribuzione nello stesso progetto e nella stessa regione.

Esempio di file singolo

Il comando in questo esempio registra una pipeline di distribuzione e i target che sono tutti definiti nello stesso file:

gcloud deploy apply --file=clouddeploy.yaml --region=us-central1

Esempio di utilizzo di file separati

Per questo esempio, sono tre le destinazioni definite in tre file separati, quindi esegui quattro comandi:

gcloud deploy apply --file=delivery-pipeline.yaml --region=us-central1 && \
gcloud deploy apply --file=target_dev.yaml --region=us-central1 && \
gcloud deploy apply --file=target_staging.yaml --region=us-central1 && \
gcloud deploy apply --file=target_prod.yaml --region=us-central1

Il flag --region è obbligatorio, a meno che tu non abbia impostato un valore predefinito (utilizzando gcloud config set deploy/region [REGION]). La regione deve essere la stessa per la pipeline di distribuzione e per tutti i target a cui fa riferimento la pipeline.

Creare la pipeline di distribuzione e i target utilizzando Terraform

Puoi anche utilizzare il provider Terraform per Google Cloud per creare le risorse di pipeline di distribuzione e target.

Il provider Terraform per Google Cloud beta potrebbe includere il supporto per le funzionalità di Cloud Deploy in Anteprima.

Modifica le pipeline e i target esistenti

In seguito puoi modificare qualsiasi pipeline di distribuzione o configurazione di destinazione ed eseguire gcloud deploy apply per aggiornare la pipeline o la risorsa di destinazione. Tuttavia, queste modifiche non influiscono sulle release esistenti, poiché sono gestite dalla pipeline di distribuzione originale.

Richiedi l'approvazione manuale per un deployment

Per richiedere l'approvazione manuale per un determinato target, includi la seguente proprietà nella definizione di target:

requireApproval: true

Il valore predefinito è false. Se ometti questa proprietà dalla configurazione della pipeline di distribuzione o non fornisci alcun valore, il deployment in questa destinazione non richiede l'approvazione. Tuttavia, il chiamante che cerca di passare alla destinazione ha comunque bisogno dell'autorizzazione IAM clouddeploy.rollouts.create.

Puoi anche richiedere l'approvazione manuale per il primo target. Quando viene creata una release utilizzando l'interfaccia a riga di comando, per il primo target, viene creato automaticamente rollout. Se è necessaria l'approvazione, Cloud Deploy crea il rollout, ma in stato di rilascio fino all'approvazione.

Passaggi successivi