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:
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.
Crea una
CustomTargetTypedefinizione con attività che fanno riferimento al container e specifica il comando o i comandi da eseguire.Definisci un nuovo target con una proprietà
customTargetche identifichi il nuovo tipo di target personalizzato.Fai riferimento a questo target dalla progressione della pipeline di pubblicazione.
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
CUSTOM_TARGET_TYPE_NAMEÈ un nome arbitrario che assegni a questa definizione del tipo di target personalizzato. Questo nome viene indicato nella definizione del target per qualsiasi target che utilizza il tipo di target personalizzato che stai definendo.
RENDER_TASKÈ l'attività che definisce il rendering personalizzato. Se non fornito, Cloud Deploy utilizza il renderer integrato specificato nella configurazione di Skaffold.
DEPLOY_TASKÈ l'attività che definisce il deployment personalizzato.
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.