REST Resource: projects.locations.deliveryPipelines

Risorsa: DeliveryPipeline

Una risorsa DeliveryPipeline nell'API Cloud Deploy.

Un elemento DeliveryPipeline definisce una pipeline attraverso la quale può avanzare una configurazione Skaffold.

Rappresentazione JSON
{
  "name": string,
  "uid": string,
  "description": string,
  "annotations": {
    string: string,
    ...
  },
  "labels": {
    string: string,
    ...
  },
  "createTime": string,
  "updateTime": string,
  "condition": {
    object (PipelineCondition)
  },
  "etag": string,
  "suspended": boolean,

  // Union field pipeline can be only one of the following:
  "serialPipeline": {
    object (SerialPipeline)
  }
  // End of list of possible types for union field pipeline.
}
Campi
name

string

Facoltativo. Nome di DeliveryPipeline. Il formato è projects/{project}/locations/{location}/deliveryPipelines/{deliveryPipeline}. Il componente deliveryPipeline deve corrispondere a [a-z]([a-z0-9-]{0,61}[a-z0-9])?

uid

string

Solo output. Identificatore univoco di DeliveryPipeline.

description

string

Descrizione del DeliveryPipeline. La lunghezza massima è di 255 caratteri.

annotations

map (key: string, value: string)

Annotazioni dell'utente. Questi attributi possono essere impostati e utilizzati solo dall'utente e non da Cloud Deploy.

Un oggetto contenente un elenco di "key": value coppie. Esempio: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

labels

map (key: string, value: string)

Le etichette sono attributi che possono essere impostati e utilizzati sia dall'utente sia da Cloud Deploy. Le etichette devono soddisfare i seguenti vincoli:

  • Le chiavi e i valori possono contenere solo lettere minuscole, caratteri numerici, trattini bassi e trattini.
  • Tutti i caratteri devono utilizzare la codifica UTF-8 e sono consentiti caratteri internazionali.
  • Le chiavi devono iniziare con una lettera minuscola o un carattere internazionale.
  • Ogni risorsa è limitata a un massimo di 64 etichette.

Sia le chiavi che i valori sono vincolati a essere inoltre <= 128 byte.

Un oggetto contenente un elenco di "key": value coppie. Esempio: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

createTime

string (Timestamp format)

Solo output. L'ora in cui è stata creata la pipeline.

Un timestamp in formato "Zulu" RFC3339 UTC, con risoluzione in nanosecondi e fino a nove cifre frazionarie. Esempi: "2014-10-02T15:01:23Z" e "2014-10-02T15:01:23.045123456Z".

updateTime

string (Timestamp format)

Solo output. L'ora più recente in cui è stata aggiornata la pipeline.

Un timestamp in formato "Zulu" RFC3339 UTC, con risoluzione in nanosecondi e fino a nove cifre frazionarie. Esempi: "2014-10-02T15:01:23Z" e "2014-10-02T15:01:23.045123456Z".

condition

object (PipelineCondition)

Solo output. Informazioni sullo stato della pipeline di distribuzione.

etag

string

Questo checksum viene calcolato dal server in base al valore di altri campi e può essere inviato in caso di richieste di aggiornamento ed eliminazione per garantire che il client abbia un valore aggiornato prima di procedere.

suspended

boolean

Una volta sospeso, non sarà possibile creare nuove release o implementazioni, mentre quelle in corso verranno completate.

Campo di unione pipeline. La configurazione dell'ordinamento di DeliveryPipeline. pipeline può essere solo uno dei seguenti:
serialPipeline

object (SerialPipeline)

SerialPipeline definisce un insieme sequenziale di fasi per un elemento DeliveryPipeline.

SerialPipeline

SerialPipeline definisce un insieme sequenziale di fasi per un elemento DeliveryPipeline.

Rappresentazione JSON
{
  "stages": [
    {
      object (Stage)
    }
  ]
}
Campi
stages[]

object (Stage)

Ogni fase specifica la configurazione per un Target. L'ordine di questo elenco definisce il flusso di promozione.

Fase

La fase specifica una località in cui eseguire il deployment.

Rappresentazione JSON
{
  "targetId": string,
  "profiles": [
    string
  ],
  "strategy": {
    object (Strategy)
  },
  "deployParameters": [
    {
      object (DeployParameters)
    }
  ]
}
Campi
targetId

string

Il valore targetId a cui rimanda questa fase. Questo campo si riferisce esclusivamente all'ultimo segmento di un nome target. Ad esempio, questo campo sarebbe solo my-target (anziché projects/project/locations/location/targets/my-target). La posizione di Target viene dedotta per corrispondere alla posizione dell'elemento DeliveryPipeline che contiene Stage.

profiles[]

string

Profili Skaffold da utilizzare per il rendering del manifest per Target di questa fase.

strategy

object (Strategy)

Facoltativo. La strategia da utilizzare per un Rollout in questa fase.

deployParameters[]

object (DeployParameters)

Facoltativo. I parametri di deployment da utilizzare per la destinazione in questa fase.

Strategia

La strategia contiene informazioni sulla strategia di deployment.

Rappresentazione JSON
{

  // Union field deployment_strategy can be only one of the following:
  "standard": {
    object (Standard)
  },
  "canary": {
    object (Canary)
  }
  // End of list of possible types for union field deployment_strategy.
}
Campi
Campo di unione deployment_strategy. Dettagli della strategia di deployment. deployment_strategy può essere solo uno dei seguenti:
standard

object (Standard)

La strategia di deployment standard esegue un singolo deployment e consente la verifica del deployment.

canary

object (Canary)

La strategia di deployment canary fornisce deployment percentuali progressivi verso una destinazione.

Standard

Standard rappresenta la strategia di deployment standard.

Rappresentazione JSON
{
  "verify": boolean,
  "predeploy": {
    object (Predeploy)
  },
  "postdeploy": {
    object (Postdeploy)
  }
}
Campi
verify

boolean

Se verificare un deployment.

predeploy

object (Predeploy)

Facoltativo. Configurazione del job di pre-deployment. Se non è configurato, il job di pre-deployment non sarà presente.

postdeploy

object (Postdeploy)

Facoltativo. Configurazione del job post-deployment. Se non è configurato, il job post-deployment non sarà presente.

Pre-deployment

Il pre-deployment contiene le informazioni di configurazione del job di pre-deployment.

Rappresentazione JSON
{
  "actions": [
    string
  ]
}
Campi
actions[]

string

Facoltativo. Una sequenza di azioni personalizzate Skaffold da richiamare durante l'esecuzione del job di pre-deployment.

Post-deployment

Postdeploy contiene le informazioni di configurazione del job post-deployment.

Rappresentazione JSON
{
  "actions": [
    string
  ]
}
Campi
actions[]

string

Facoltativo. Una sequenza di azioni personalizzate Skaffold da richiamare durante l'esecuzione del job post-deployment.

Canary

Canary rappresenta la strategia di deployment canary.

Rappresentazione JSON
{
  "runtimeConfig": {
    object (RuntimeConfig)
  },

  // Union field mode can be only one of the following:
  "canaryDeployment": {
    object (CanaryDeployment)
  },
  "customCanaryDeployment": {
    object (CustomCanaryDeployment)
  }
  // End of list of possible types for union field mode.
}
Campi
runtimeConfig

object (RuntimeConfig)

Facoltativo. Configurazioni specifiche del runtime per la strategia di deployment. La configurazione di runtime viene utilizzata per determinare in che modo Cloud Deploy suddivide il traffico per consentire un deployment progressivo.

Campo di unione mode. La modalità da utilizzare per la strategia di deployment canary. mode può essere solo uno dei seguenti:
canaryDeployment

object (CanaryDeployment)

Configura il deployment progressivo per una destinazione.

customCanaryDeployment

object (CustomCanaryDeployment)

Configura il deployment progressivo per un target, ma consente la personalizzazione a livello di fase, in cui una fase rappresenta ogni percentuale di deployment.

RuntimeConfig

RuntimeConfig contiene le configurazioni specifiche del runtime per una strategia di deployment.

Rappresentazione JSON
{

  // Union field runtime_config can be only one of the following:
  "kubernetes": {
    object (KubernetesConfig)
  },
  "cloudRun": {
    object (CloudRunConfig)
  }
  // End of list of possible types for union field runtime_config.
}
Campi
Campo di unione runtime_config. I dettagli di configurazione del runtime. runtime_config può essere solo uno dei seguenti:
kubernetes

object (KubernetesConfig)

Configurazione del runtime Kubernetes.

cloudRun

object (CloudRunConfig)

Configurazione del runtime di Cloud Run.

KubernetesConfig

KubernetesConfig contiene la configurazione del runtime Kubernetes.

Rappresentazione JSON
{

  // Union field service_definition can be only one of the following:
  "gatewayServiceMesh": {
    object (GatewayServiceMesh)
  },
  "serviceNetworking": {
    object (ServiceNetworking)
  }
  // End of list of possible types for union field service_definition.
}
Campi
Campo di unione service_definition. La configurazione della definizione del servizio. service_definition può essere solo uno dei seguenti:
gatewayServiceMesh

object (GatewayServiceMesh)

Configurazione del mesh di servizi API Kubernetes Gateway.

serviceNetworking

object (ServiceNetworking)

del networking dei servizi Kubernetes.

GatewayServiceMesh

Informazioni sulla configurazione del mesh di servizi dell'API Kubernetes Gateway.

Rappresentazione JSON
{
  "httpRoute": string,
  "service": string,
  "deployment": string,
  "routeUpdateWaitTime": string,
  "stableCutbackDuration": string
}
Campi
httpRoute

string

Obbligatorio. Nome HTTPRoute dell'API Gateway.

service

string

Obbligatorio. Nome del servizio Kubernetes.

deployment

string

Obbligatorio. Nome del deployment Kubernetes il cui traffico è gestito dall'HTTPRoute e dal servizio specificati.

routeUpdateWaitTime

string (Duration format)

Facoltativo. Il tempo di attesa per la propagazione degli aggiornamenti della route. Il tempo configurabile massimo è di 3 ore nel formato in secondi. Se non specificati, non è previsto alcun tempo di attesa.

Una durata in secondi con un massimo di nove cifre frazionarie, che termina con "s". Esempio: "3.5s".

stableCutbackDuration

string (Duration format)

Facoltativo. Il tempo necessario per eseguire la migrazione del traffico dal servizio canary al servizio originale durante il deployment della fase stabile. Se specificato, deve essere compreso tra 15 e 3600 secondi. Se non specificati, non è previsto alcun tempo limite.

Una durata in secondi con un massimo di nove cifre frazionarie, che termina con "s". Esempio: "3.5s".

ServiceNetworking

Informazioni sulla configurazione del networking del servizio Kubernetes.

Rappresentazione JSON
{
  "service": string,
  "deployment": string,
  "disablePodOverprovisioning": boolean
}
Campi
service

string

Obbligatorio. Nome del servizio Kubernetes.

deployment

string

Obbligatorio. Nome del deployment Kubernetes il cui traffico è gestito dal servizio specificato.

disablePodOverprovisioning

boolean

Facoltativo. Se disabilitare il provisioning eccessivo dei pod. Se l'overprovisioning dei pod è disabilitato, Cloud Deploy limiterà il numero totale di pod utilizzati per la strategia di deployment al numero di pod del deployment nel cluster.

CloudRunConfig

CloudRunConfig contiene la configurazione del runtime Cloud Run.

Rappresentazione JSON
{
  "automaticTrafficControl": boolean,
  "canaryRevisionTags": [
    string
  ],
  "priorRevisionTags": [
    string
  ],
  "stableRevisionTags": [
    string
  ]
}
Campi
automaticTrafficControl

boolean

Indica se Cloud Deploy deve aggiornare la stanza del traffico in un servizio Cloud Run per conto dell'utente al fine di facilitare la suddivisione del traffico. Questo deve essere vero per CanaryDeployments, ma facoltativo per CustomCanaryDeployments.

canaryRevisionTags[]

string

Facoltativo. Un elenco di tag che vengono aggiunti alla revisione canary mentre è in corso la fase canary.

priorRevisionTags[]

string

Facoltativo. Un elenco di tag aggiunti alla revisione precedente mentre è in corso la fase canary.

stableRevisionTags[]

string

Facoltativo. Un elenco di tag che vengono aggiunti alla revisione stabile finale quando viene applicata la fase stabile.

CanaryDeployment

CanaryDeployment rappresenta la configurazione del deployment canary

Rappresentazione JSON
{
  "percentages": [
    integer
  ],
  "verify": boolean,
  "predeploy": {
    object (Predeploy)
  },
  "postdeploy": {
    object (Postdeploy)
  }
}
Campi
percentages[]

integer

Obbligatorio. I deployment basati sulla percentuale che verranno eseguiti nell'ambito di un'Rollout. L'elenco è previsto in ordine crescente e ogni numero intero n è 0 <= n < 100.

verify

boolean

Se eseguire i test di verifica dopo ogni percentuale di deployment.

predeploy

object (Predeploy)

Facoltativo. Configurazione per il job di pre-deployment della prima fase. Se non è configurato, non ci saranno job di pre-deployment per questa fase.

postdeploy

object (Postdeploy)

Facoltativo. Configurazione per il job post-deployment dell'ultima fase. Se non è configurato, non ci sarà alcun job post-deployment per questa fase.

CustomCanaryDeployment

CustomCanaryDeployment rappresenta la configurazione del deployment canary personalizzato.

Rappresentazione JSON
{
  "phaseConfigs": [
    {
      object (PhaseConfig)
    }
  ]
}
Campi
phaseConfigs[]

object (PhaseConfig)

Obbligatorio. Configurazione per ogni fase del deployment canary nell'ordine di esecuzione.

PhaseConfig

FaseConfig rappresenta la configurazione per una fase del deployment canary personalizzato.

Rappresentazione JSON
{
  "phaseId": string,
  "percentage": integer,
  "profiles": [
    string
  ],
  "verify": boolean,
  "predeploy": {
    object (Predeploy)
  },
  "postdeploy": {
    object (Postdeploy)
  }
}
Campi
phaseId

string

Obbligatorio. L'ID da assegnare alla fase Rollout. Questo valore deve essere composto da lettere minuscole, numeri e trattini, deve iniziare con una lettera, terminare con una lettera o un numero e avere una lunghezza massima di 63 caratteri. In altre parole, deve corrispondere alla seguente regex: ^[a-z]([a-z0-9-]{0,61}[a-z0-9])?$.

percentage

integer

Obbligatorio. Percentuale di deployment per la fase.

profiles[]

string

Profili Skaffold da utilizzare durante il rendering del manifest per questa fase. Questi si aggiungono all'elenco di profili specificato nella fase DeliveryPipeline.

verify

boolean

Se eseguire i test di verifica dopo il deployment.

predeploy

object (Predeploy)

Facoltativo. Configurazione per il job di pre-deployment di questa fase. Se non è configurato, non ci saranno job di pre-deployment per questa fase.

postdeploy

object (Postdeploy)

Facoltativo. Configurazione per il job post-deployment di questa fase. Se non è configurato, non ci sarà alcun job post-deployment per questa fase.

DeployParameters

DeployParameters contiene informazioni sui parametri di deployment.

Rappresentazione JSON
{
  "values": {
    string: string,
    ...
  },
  "matchTargetLabels": {
    string: string,
    ...
  }
}
Campi
values

map (key: string, value: string)

Obbligatorio. I valori sono parametri di deployment in coppie chiave/valore.

Un oggetto contenente un elenco di "key": value coppie. Esempio: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

matchTargetLabels

map (key: string, value: string)

Facoltativo. I parametri di deployment vengono applicati ai target con etichette di corrispondenza. Se non specificati, i parametri di deployment vengono applicati a tutte le destinazioni (incluse quelle figlio di un target multiplo).

Un oggetto contenente un elenco di "key": value coppie. Esempio: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

PipelineCondition

PipelineCondition contiene tutte le condizioni pertinenti a una pipeline di distribuzione.

Rappresentazione JSON
{
  "pipelineReadyCondition": {
    object (PipelineReadyCondition)
  },
  "targetsPresentCondition": {
    object (TargetsPresentCondition)
  },
  "targetsTypeCondition": {
    object (TargetsTypeCondition)
  }
}
Campi
pipelineReadyCondition

object (PipelineReadyCondition)

Dettagli sullo stato generale della pipeline.

targetsPresentCondition

object (TargetsPresentCondition)

Dettagli relativi ai target enumerati nella pipeline.

targetsTypeCondition

object (TargetsTypeCondition)

Dettagli che indicano se i target enumerati nella pipeline sono dello stesso tipo.

PipelineReadyCondition

PipelineReadyCondition contiene informazioni sullo stato della pipeline.

Rappresentazione JSON
{
  "status": boolean,
  "updateTime": string
}
Campi
status

boolean

True se la pipeline è in uno stato valido. In caso contrario, almeno una condizione in PipelineCondition è in uno stato non valido. Esegui l'iterazione su queste condizioni e verifica quali condizioni hanno lo stato = false per scoprire qual è il problema della pipeline.

updateTime

string (Timestamp format)

L'ultima volta che la condizione è stata aggiornata.

Un timestamp in formato "Zulu" RFC3339 UTC, con risoluzione in nanosecondi e fino a nove cifre frazionarie. Esempi: "2014-10-02T15:01:23Z" e "2014-10-02T15:01:23.045123456Z".

TargetsTypeCondition

TargetTypeCondition contiene informazioni che indicano se i target definiti nella pipeline di pubblicazione sono dello stesso tipo.

Rappresentazione JSON
{
  "status": boolean,
  "errorDetails": string
}
Campi
status

boolean

True se i target sono tutti di tipo paragonabile. Ad esempio, questo è vero se tutte le destinazioni sono cluster GKE. Questo valore è falso se alcuni target sono Cloud Run e altri sono cluster GKE.

errorDetails

string

Messaggio di errore leggibile.

Metodi

create

Crea un nuovo DeliveryPipeline in un determinato progetto e località.

delete

Elimina una singola DeliveryPipeline.

get

Recupera i dettagli di una singola DeliveryPipeline.

getIamPolicy

Ottieni il criterio di controllo dell'accesso per una risorsa.

list

Elenca DeliveryPipelines in un determinato progetto e in una località specifici.

patch

Aggiorna i parametri di una singola DeliveryPipeline.

rollbackTarget

Crea un oggetto Rollout per eseguire il rollback del target specificato.

setIamPolicy

Imposta il criterio di controllo dell'accesso sulla risorsa specificata.

testIamPermissions

Restituisce le autorizzazioni di cui un chiamante dispone per la risorsa specificata.