Integrazione di Google Cloud Deploy con altri sistemi

Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.

Puoi integrare Google Cloud Deploy con alcuni degli altri sistemi su cui fai affidamento per la distribuzione del software. In questa pagina viene descritto come integrare Google Cloud Deploy con quanto segue:

  • Strumenti di test
  • Gestione del flusso di lavoro

Consulta la pagina relativa all'integrazione con il tuo sistema CI per scoprire come chiamare Google Cloud Deploy dalla tua pipeline CI.

Prima di iniziare

Le istruzioni riportate in questa pagina presuppongono che le tue condizioni siano già soddisfatte:

Integrazione con i test automatici

Puoi utilizzare Google Cloud Deploy con Pub/Sub per integrare i test con la tua pipeline di distribuzione, in modo da poter promuovere automaticamente la release, per la distribuzione continua.

Puoi anche utilizzare le annotazioni durante un'implementazione per fornire un link ai risultati dei test. Per saperne di più, vedi Utilizzo di etichette e annotazioni con Google Cloud Deploy.

Utilizzo di Pub/Sub per automatizzare la promozione

  1. Ascolta i messaggi Pub/Sub dall'argomento clouddeploy-operations.

    Il messaggio contiene i seguenti attributi:

    • Action: SUCCEEDED
    • 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 Google Cloud Deploy per eseguire la promozione automatica nella 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 chiave-valore, separate da virgole, che possono contenere informazioni sui risultati del test e altre informazioni. Ecco un esempio:

      gcloud deploy releases promote --annotations="from_target=test,status=stable"

      Le annotazioni sul lancio sono immutabili, quindi se aggiungi un'annotazione di stato non potrai aggiornarla in un secondo momento durante la stessa implementazione.

Utilizzare le annotazioni per fornire l'accesso ai risultati dei test

Se hai l'URL che rimanda alla posizione da cui è possibile accedere ai risultati del test, puoi fornire questo URL come annotazione su 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ù, vedi Utilizzo di etichette e annotazioni con Google Cloud Deploy.

Integrazione con la gestione dei flussi di lavoro di terze parti

Google Cloud Deploy pubblica messaggi operativi in Pub/Sub. Il tuo strumento di gestione dei flussi di lavoro può iscriversi a questi argomenti Pub/Sub e utilizzarli per attivare flussi di lavoro specifici.

Per approvazioni

L'argomento clouddeploy-approvals avvisa il tuo sistema quando è necessaria un'approvazione per un'implementazione. Il tuo sistema del flusso di lavoro esterno può quindi eseguire la procedura magica per ottenere l'approvazione, quindi chiamare il numero gcloud deploy rollouts approve.

L'account che invia il comando rollouts approve deve avere il ruolo IAM predefinito roles/clouddeploy.approver.

Per configurare un flusso di lavoro di approvazione esterno:

  1. Richiedi l'approvazione per il target.

    Includi requireApproval: true nella definizione del target.

  2. Per consumare i messaggi, iscriviti all'argomento Pub/Sub clouddeploy-approvals e configura il tuo sistema di gestione del flusso di lavoro.

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

  4. Il tuo sistema di gestione dei flussi di lavoro restituisce l'approvazione o il rifiuto a Google Cloud Deploy sotto forma di 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 del lancio per il quale è 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 questa implementazione.

    • REGION

      è l'area geografica 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