Puoi integrare Cloud Deploy con alcuni degli altri sistemi per la distribuzione del software. Questa pagina descrive come integrare Cloud Deploy con quanto segue:
- Strumenti di test
- Gestione dei flussi di lavoro
Consulta la sezione Integrazione con il sistema CI per scoprire come chiamare Cloud Deploy dalla tua pipeline CI.
Prima di iniziare
Le istruzioni riportate in questa pagina presuppongono che le seguenti condizioni siano già soddisfatte:
Hai almeno una pipeline di distribuzione definita e registrato con Cloud Deploy.
Hai almeno un target definito, e la tua pipeline di distribuzione fa riferimento a quel target.
Avere configurato le notifiche Pub/Sub. per ricevere notifiche relative ai seguenti argomenti:
clouddeploy-operations
clouddeploy-approvals
Integrazione con i test automatici
Puoi utilizzare Cloud Deploy con Pub/Sub per integrare i test con la tua pipeline di distribuzione, in modo da poter promuovere la release automaticamente, la distribuzione continua.
Puoi anche utilizzare le annotazioni in un'implementazione per fornire un link ai risultati dei test. Per ulteriori informazioni, consulta Utilizzo di etichette e annotazioni con Cloud Deploy.
Utilizzo di Pub/Sub per automatizzare la promozione
Ascoltare i messaggi Pub/Sub dall'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 superati i test, chiama Cloud Deploy per eseguire passa alla fase successiva:
gcloud deploy releases promote RELEASE_NAME \ --delivery-pipeline=PIPELINE_NAME \ --region=REGION \ --annotations=KEY=VALUE,...
dove:
RELEASE_NAME
è il nome dell'uscita. 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 coppie chiave/valore, separate da virgole, che possono Contengono 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 sull'implementazione sono immutabili, quindi se aggiungi uno stato non puoi aggiornare lo stato nella stessa implementazione in un secondo momento.
Utilizzo delle annotazioni per consentire l'accesso ai risultati del test
Se hai l'URL che rimanda alla pagina in cui è possibile accedere ai risultati del test, puoi fornire questo URL come annotazione per 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 ulteriori informazioni, consulta Utilizzo di 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. 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 tuo sistema quando viene effettuata un'approvazione
richiesta per un'implementazione. Il tuo sistema di flussi di lavoro esterno può quindi sfruttare
ottieni l'approvazione, quindi chiama gcloud deploy rollouts approve
.
L'account che emette 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 sul target.
Nella definizione del target, includi
requireApproval: true
.Per utilizzare i messaggi, iscriviti a
clouddeploy-approvals
Pub/Sub e configurare il sistema di gestione dei flussi di lavoro.Quando il 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, nella sezione seguente formato:
Resource: projects/.../locations/.../deliveryPipelines/.../releases/.../rollouts/...
L'output del flusso di lavoro di approvazione è un'approvazione o un rifiuto del lancio.
Il sistema di gestione del flusso di lavoro 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_NAME
Il comando per rifiutare l'implementazione è il seguente:
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 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