Puoi integrare Cloud Deploy con alcuni degli altri sistemi che utilizzi per la distribuzione del software. Questa pagina descrive come integrare Cloud Deploy con i seguenti:
- Strumenti di test
- Gestione dei flussi di lavoro
Consulta Integrazione con il tuo sistema CI per scoprire come chiamare Cloud Deploy dalla pipeline CI.
Prima di iniziare
Le istruzioni in questa pagina presuppongono che tu soddisfi già le seguenti condizioni:
Avere abilitato le API applicabili.
Hai almeno una pipeline di distribuzione definita e registrata con Cloud Deploy.
Hai almeno un target definito e la tua pipeline di distribuzione fa riferimento a questo target.
Hai impostato le notifiche Pub/Sub per ricevere notifiche dai seguenti argomenti:
clouddeploy-operations
clouddeploy-approvals
Integrazione con i test automatici
Puoi utilizzare Cloud Deploy con Pub/Sub per integrare i test con la pipeline di distribuzione, in modo da promuovere la release automaticamente per la distribuzione continua.
Puoi utilizzare le annotazioni anche su un'implementazione per fornire un link ai risultati del test. Per maggiori informazioni, consulta la sezione Utilizzare etichette e annotazioni con Cloud Deploy.
Utilizzo di Pub/Sub per automatizzare la promozione
Ascolta i messaggi Pub/Sub dell'argomento
clouddeploy-operations
.Il messaggio contiene i seguenti attributi:
Action: SUCCEED
ResourceType: Rollout
Resource: projects/.../locations/.../deliveryPipelines/.../releases/.../rollouts/...
Quando ricevi una notifica che indica che il deployment è riuscito, esegui i test sull'applicazione di cui hai eseguito il deployment.
Una volta riusciti i test, chiama Cloud Deploy per la promozione automatica alla fase successiva:
gcloud deploy releases promote RELEASE_NAME \ --delivery-pipeline=PIPELINE_NAME \ --region=REGION \ --annotations=KEY=VALUE,...
dove:
RELEASE_NAME
è il nome della release. Questo valore è obbligatorio.
PIPELINE_NAME
è il nome della pipeline di distribuzione che gestisce questa release. Questo valore è obbligatorio.
REGION
è la regione in cui è in esecuzione la pipeline. Se hai impostato la proprietà
deploy/region
, puoi omettere questo flag.KEY=VALUE,...
è un elenco di una o più coppie di stringhe di valori-chiave, separate da virgole, che possono contenere informazioni sui risultati del test e altre informazioni sui test. Ecco un esempio:
gcloud deploy releases promote --annotations="from_target=test,status=stable"
Le annotazioni sull'implementazione sono immutabili, quindi se aggiungi un'annotazione di stato, non potrai aggiornare lo stato nella stessa implementazione in un secondo momento.
Utilizzare le annotazioni per fornire l'accesso ai risultati dei test
Se il tuo URL rimanda a una pagina in cui è possibile accedere ai risultati del test, puoi fornirlo come annotazione in un'implementazione utilizzando il flag --annotations
.
Ecco un esempio:
gcloud deploy releases promote --delivery-pipeline=my-demo-app-1 --region=us-central1 --project=my-demo-app-1-project --release=test-release-001 --annotations="test_results_url=https://example.com/results/my-demo-app-test-results-dev"
Per maggiori informazioni, consulta la sezione Utilizzare etichette e annotazioni con Cloud Deploy.
Integrazione con la gestione dei flussi di lavoro di terze parti
Cloud Deploy pubblica messaggi operativi in Pub/Sub. Il tuo strumento di gestione dei flussi di lavoro può sottoscrivere questi argomenti Pub/Sub e utilizzarli per attivare flussi di lavoro specifici.
Per le approvazioni
L'argomento clouddeploy-approvals
invia una notifica al sistema quando è necessaria un'approvazione per un'implementazione. Il tuo sistema di flusso di lavoro esterno può quindi fare il possibile per ottenere l'approvazione e chiamare gcloud deploy rollouts approve
.
L'account che invia il comando rollouts approve
deve avere il ruolo IAM predefinito roles/clouddeploy.approver
.
Per impostare un flusso di lavoro di approvazione esterna:
Richiedi l'approvazione del target.
Nella definizione di questo target, includi
requireApproval: true
.Per utilizzare i messaggi, sottoscrivi l'argomento
clouddeploy-approvals
Pub/Sub e configura il tuo sistema di gestione dei flussi di lavoro.Quando il tuo sistema di gestione dei flussi di lavoro riceve un messaggio dall'argomento
clouddeploy-approvals
che include"Action": "Required"
, avvia un flusso di lavoro di approvazione, configurato in base ai requisiti della tua organizzazione.Il messaggio include anche un riferimento all'implementazione da approvare, nel seguente formato:
Resource: projects/.../locations/.../deliveryPipelines/.../releases/.../rollouts/...
L'output del flusso di lavoro di approvazione è un'approvazione o un rifiuto dell'implementazione.
Il tuo sistema di gestione dei flussi di lavoro restituisce l'approvazione o il rifiuto a Cloud Deploy sotto forma di comando seguente:
Il comando per l'approvazione è il seguente:
gcloud deploy rollouts approve ROLLOUT \ --delivery-pipeline=PIPELINE_NAME \ --region=REGION \ --release=RELEASE_NAME
Ecco il comando per rifiutare l'implementazione:
gcloud deploy rollouts reject ROLLOUT \ --delivery-pipeline=PIPELINE_NAME \ --region=REGION \ --release=RELEASE_NAME
dove:
ROLLOUT
è il nome dell'implementazione per cui è stata richiesta l'approvazione.
PIPELINE_NAME
è la pipeline di distribuzione che gestisce il deployment della tua applicazione.
RELEASE_NAME
è il nome della release a cui è associata l'implementazione.
REGION
è la regione in cui è in esecuzione la pipeline di distribuzione.
Ecco un esempio:
gcloud deploy rollouts approve test-rollout --delivery-pipeline=web-app --release=test-release --region=us-central1