Puoi integrare Cloud Deploy con alcuni degli altri sistemi su cui fai affidamento per la distribuzione del software. Questa pagina descrive come integrare Cloud Deploy con i seguenti elementi:
- Strumenti di test
- Gestione dei flussi di lavoro
Consulta la sezione Integrazione con il tuo sistema CI per scoprire come chiamare Cloud Deploy dalla pipeline CI.
Prima di iniziare
Le istruzioni riportate in questa pagina presuppongono che tu soddisfi già le seguenti condizioni:
Hai definito e registrato almeno una pipeline di distribuzione con Cloud Deploy.
Hai definito almeno una destinazione, e la pipeline di distribuzione fa riferimento a questa destinazione.
Hai configurato le notifiche Pub/Sub per ricevere notifiche dai seguenti argomenti:
clouddeploy-operationsclouddeploy-approvals
Integrazione con i test automatici
Puoi utilizzare Cloud Deploy con Pub/Sub per integrare i test nella pipeline di distribuzione, in modo da poter promuovere automaticamente la release per la distribuzione continua.
Puoi anche utilizzare le annotazioni in un'implementazione per fornire un link ai risultati dei test. Per saperne di più, consulta Utilizzare etichette e annotazioni con Cloud Deploy.
Utilizzare Pub/Sub per automatizzare la promozione
Ascolta i messaggi Pub/Sub dall'argomento
clouddeploy-operations.Il messaggio contiene i seguenti attributi:
Action: SUCCEEDResourceType: RolloutResource: 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.
Quando i test hanno esito positivo, chiama Cloud Deploy per eseguire automaticamente la promozione 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 chiave-valore, separate da virgole, che possono contenere informazioni sui risultati dei test e altre informazioni sui test. Ecco un esempio:
gcloud deploy releases promote --annotations="from_target=test,status=stable"Le annotazioni nell'implementazione sono immutabili, quindi se aggiungi un'annotazione di stato, non puoi aggiornarla in un secondo momento nella stessa implementazione.
Utilizzare le annotazioni per fornire l'accesso ai risultati dei test
Se hai l'URL che rimanda alla posizione in cui è possibile accedere ai risultati dei 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 saperne di più, consulta Utilizzare etichette e annotazioni con Cloud Deploy.
Integrazione con la gestione dei flussi di lavoro di terze parti
Cloud Deploy pubblica messaggi operativi su Pub/Sub. Lo strumento di gestione dei workflow può sottoscrivere questi argomenti Pub/Sub e utilizzarli per attivare workflow specifici.
Per le approvazioni
L'argomento clouddeploy-approvals notifica al sistema quando è richiesta un'approvazione per un'implementazione. Il sistema di workflow esterno può quindi eseguire la procedura per ottenere l'approvazione, quindi chiamare gcloud deploy rollouts approve.
L'account che emette il comando rollouts approve deve avere il ruolo IAM predefinito roles/clouddeploy.approver.
Per configurare un flusso di lavoro di approvazione esterno:
Richiedi l'approvazione per la destinazione.
Nella definizione della destinazione, includi
requireApproval: true.Per utilizzare i messaggi, sottoscrivi l'argomento Pub/Sub
clouddeploy-approvalse configura il sistema di gestione dei flussi di lavoro.Quando il sistema di gestione dei workflow riceve un messaggio dall'
clouddeploy-approvalsargomento che include"Action": "Required", avvia un workflow 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 sistema di gestione dei workflow restituisce l'approvazione o il rifiuto a Cloud Deploy sotto forma del seguente comando:
Il comando per l'approvazione è il seguente:
gcloud deploy rollouts approve ROLLOUT \ --delivery-pipeline=PIPELINE_NAME \ --region=REGION \ --release=RELEASE_NAMEIl comando per rifiutare l'implementazione è il seguente:
gcloud deploy rollouts reject ROLLOUT \ --delivery-pipeline=PIPELINE_NAME \ --region=REGION \ --release=RELEASE_NAMEdove:
ROLLOUT
è il nome dell'implementazione per cui è stata richiesta l'approvazione.
PIPELINE_NAME
è la pipeline di distribuzione che gestisce il deployment dell'applicazione.
RELEASE_NAME
è il nome della release a cui è associata questa 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