Integrazione di Cloud Deploy con altri sistemi

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:

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

  1. 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/...
  2. Quando ricevi una notifica che indica che il deployment è riuscito, esegui i test sull'applicazione di cui hai eseguito il deployment.

  3. 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:

  1. Richiedi l'approvazione sul target.

    Nella definizione del target, includi requireApproval: true.

  2. Per utilizzare i messaggi, iscriviti a clouddeploy-approvals Pub/Sub e configurare il sistema di gestione dei flussi di lavoro.

  3. 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.

  4. 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