Creare un target personalizzato

Questo documento descrive come creare un tipo di target Cloud Deploy personalizzato e utilizzarlo come target in una pipeline di distribuzione Cloud Deploy.

Di seguito è riportata la procedura di alto livello per creare un tipo di destinazione personalizzato e utilizzarlo nella pipeline di distribuzione:

  1. Crea un'applicazione containerizzata o applicazioni che includono la funzionalità di deployment nel target personalizzato e che soddisfano i requisiti di Cloud Deploy per i tipi di target personalizzati.

  2. Crea una CustomTargetType definizione con attività che fanno riferimento al container e specifica il comando o i comandi da eseguire.

  3. Definisci un nuovo target con una proprietà customTarget che identifichi il nuovo tipo di target personalizzato.

  4. Fai riferimento a questo target dalla progressione della pipeline di pubblicazione.

  5. Crea una release.

Ciascuno di questi passaggi è descritto in dettaglio nel resto del documento.

Crea le tue applicazioni containerizzate

La funzionalità di deployment nel target personalizzato è definita nelle applicazioni containerizzate, che fornisci a Cloud Deploy nella definizione di CustomTargetType. Quando la pipeline di distribuzione include un target che utilizza un tipo di target personalizzato, Cloud Deploy chiama i container definiti per quel tipo di target personalizzato per eseguire il rendering e il deployment personalizzati che hai definito.

Il comportamento delle tue applicazioni dipende da te. Tuttavia, deve utilizzare le variabili di ambiente di input fornite da Cloud Deploy e deve restituire gli output richiesti.

Nella maggior parte dei casi, creerai un container per il rendering personalizzato e uno per il deployment personalizzato per ogni tipo di target personalizzato che crei. Il rendering personalizzato è facoltativo, ma devi crearne uno a meno che il tuo target personalizzato non funzioni correttamente se sottoposto a rendering con i renderer integrati. Per impostazione predefinita, Cloud Deploy utilizza skaffold render per il rendering dei manifest.

Definisci il tipo di target personalizzato

Definisci un target personalizzato creando prima un tipo di target personalizzato utilizzando la configurazione CustomTargetType. Puoi creare CustomTargetType nello stesso file della definizione della pipeline di pubblicazione, con le definizioni di destinazione o in un file separato.

La definizione di CustomTargetType è la seguente:

apiVersion: deploy.cloud.google.com/v1
kind: CustomTargetType
metadata:
  name: [CUSTOM_TARGET_TYPE_NAME]
  annotations:
  labels:
description:
tasks:
  render: [RENDER_TASK]
  deploy: [DEPLOY_TASK]

Dove

Registra il tipo di target personalizzato

Dopo aver configurato CustomTargetType, esegui il comando gcloud deploy apply per registrare la risorsa CustomTargetType in un progetto Google Cloud :

gcloud deploy apply --file=[FILE] --project=[PROJECT] --region=[REGION]

Dove:

FILE è il nome del file in cui hai definito questo tipo di target personalizzato.

PROJECT è il progetto Google Cloud in cui creare questa risorsa. CustomTargetType deve trovarsi nello stesso progetto della risorsa Target che lo fa riferimento. Non è necessario specificare il progetto se lo hai impostato come progetto predefinito per Google Cloud CLI.

REGION è la regione (ad esempio us-central1) in cui creare questa risorsa. CustomTargetType deve trovarsi nella stessa regione della risorsa Target che lo fa riferimento. Non è necessario specificare la regione se l'hai impostata come regione predefinita per gcloud CLI.

Ora che CustomTargetType è stato creato come risorsa Cloud Deploy, puoi utilizzarlo in una definizione Target per creare la tua destinazione personalizzata.

Per saperne di più sulla definizione di CustomTargetType, consulta il riferimento allo schema di configurazione di Cloud Deploy.

Definisci il target

L'unica differenza tra una definizione del target per un tipo di target supportato e una definizione del target personalizzato è che quest'ultima include una sezione customTarget. La sintassi di un customTarget è la seguente:

customTarget:
  customTargetType: [CUSTOM_TARGET_TYPE_NAME]

Dove CUSTOM_TARGET_TYPE_NAME è il valore della proprietà name definita nella configurazione del tipo di target personalizzato.

Aggiungere la destinazione alla pipeline di pubblicazione

Puoi utilizzare un target personalizzato in una pipeline di distribuzione esattamente come utilizzeresti un tipo di target supportato. ovvero non c'è alcuna differenza nella progressione della pipeline di pubblicazione tra i target di un tipo di target supportato e i target personalizzati.

Tutte le destinazioni in una pipeline di pubblicazione devono utilizzare lo stesso tipo di destinazione. Ad esempio, non puoi avere una pipeline di distribuzione con alcuni target di deployment su Google Kubernetes Engine e alcuni target personalizzati.

Come per i tipi di destinazione supportati, puoi includere parametri di deployment nella fase della pipeline.

Crea una release

Ora che il tipo di target personalizzato è completamente definito e hai creato un target da utilizzare con questo tipo, puoi creare una release nel modo consueto:

gcloud deploy releases create [RELEASE_NAME] \
  --project=[PROJECT_NAME] \
  --region=[REGION] \
  --delivery-pipeline=[PIPELINE_NAME]

Al momento della creazione della release, il rendering personalizzato viene eseguito per ogni target nella pipeline di distribuzione, inclusa l'elaborazione dei parametri di deployment configurati nella release, nei target o nella pipeline di distribuzione. Cloud Deploy fornisce i parametri di deployment come input al container di rendering personalizzato.

Visualizzare l'output dei target personalizzati

Se l'attività di rendering personalizzata soddisfa i requisiti per i target personalizzati, puoi utilizzare Google Cloud console per visualizzare gli artefatti sottoposti a rendering.

Segui questi passaggi per visualizzare l'output dell'attività di rendering personalizzata.

  1. Nella console Google Cloud , vai alla pagina Pipeline di distribuzione di Cloud Deploy per visualizzare la pipeline di distribuzione.

    Apri la pagina Pipeline di distribuzione

  2. Fai clic sul nome della pipeline di distribuzione.

    La visualizzazione della pipeline mostra lo stato di deployment dell'app e la tua release è elencata nella scheda Release in Dettagli pipeline di distribuzione.

  3. Fai clic sul nome della release.

    Viene visualizzata la pagina Dettagli uscita.

  4. Fai clic sulla scheda Artefatti.

  5. In Artefatti di destinazione, fai clic sulla freccia accanto a Visualizza artefatti.

    Vengono elencati gli artefatti sottoposti a rendering, inclusi il file di configurazione Skaffold e il file manifest sottoposto a rendering generato dal renderer personalizzato. Puoi fare clic sul link Posizione di archiviazione accanto a ciascun file per andare al bucket Cloud Storage e visualizzare i file.

    Puoi anche fare clic sul link Visualizza artefatti per visualizzare i file per release, per target o per fase, utilizzando lo strumento di controllo delle release.

Passaggi successivi