REST Resource: projects.locations.deliveryPipelines

Ressource: DeliveryPipeline

Eine DeliveryPipeline-Ressource in der Cloud Deploy API.

Ein DeliveryPipeline definiert eine Pipeline, die eine Skaffold-Konfiguration durchlaufen kann.

JSON-Darstellung
{
  "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.
}
Felder
name

string

Optional. Name von DeliveryPipeline. Das Format ist projects/{project}/locations/{location}/deliveryPipelines/{deliveryPipeline}. Die Komponente „deliveryPipeline“ muss mit „[a-z]([a-z0-9-]{0,61}[a-z0-9])?“ übereinstimmen

uid

string

Nur Ausgabe. Eindeutige Kennung von DeliveryPipeline.

description

string

Beschreibung von DeliveryPipeline. Maximale Länge: 255 Zeichen

annotations

map (key: string, value: string)

Nutzeranmerkungen Diese Attribute können nur vom Nutzer und nicht von Cloud Deploy festgelegt und verwendet werden.

Ein Objekt, das eine Liste von "key": value-Paaren enthält. Beispiel: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

labels

map (key: string, value: string)

Labels sind Attribute, die sowohl vom Nutzer als auch von Cloud Deploy festgelegt und verwendet werden können. Labels müssen die folgenden Einschränkungen erfüllen:

  • Schlüssel und Werte dürfen nur Kleinbuchstaben, numerische Zeichen, Unterstriche und Bindestriche enthalten.
  • Alle Zeichen müssen die UTF-8-Codierung verwenden; internationale Zeichen sind zulässig.
  • Schlüssel müssen mit einem Kleinbuchstaben oder einem internationalen Zeichen beginnen.
  • Jede Ressource ist auf maximal 64 Labels beschränkt.

Sowohl Schlüssel als auch Werte sind zusätzlich auf maximal 128 Byte beschränkt.

Ein Objekt, das eine Liste von "key": value-Paaren enthält. Beispiel: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

createTime

string (Timestamp format)

Nur Ausgabe. Zeitpunkt, zu dem die Pipeline erstellt wurde.

Ein Zeitstempel im Format RFC3339 UTC "Zulu" mit einer Auflösung im Nanosekundenbereich und bis zu neun Nachkommastellen. Beispiele: "2014-10-02T15:01:23Z" und "2014-10-02T15:01:23.045123456Z".

updateTime

string (Timestamp format)

Nur Ausgabe. Zeitpunkt, zu dem die Pipeline zuletzt aktualisiert wurde.

Ein Zeitstempel im Format RFC3339 UTC "Zulu" mit einer Auflösung im Nanosekundenbereich und bis zu neun Nachkommastellen. Beispiele: "2014-10-02T15:01:23Z" und "2014-10-02T15:01:23.045123456Z".

condition

object (PipelineCondition)

Nur Ausgabe. Informationen zum Status der Bereitstellungspipeline.

etag

string

Diese Prüfsumme wird vom Server basierend auf dem Wert anderer Felder berechnet und kann bei Aktualisierungs- und Löschanfragen gesendet werden, um sicherzustellen, dass der Client vor dem Fortfahren über einen aktuellen Wert verfügt.

suspended

boolean

Wenn das Konto gesperrt ist, können keine neuen Releases oder Roll-outs erstellt werden. Laufende Releases werden jedoch abgeschlossen.

Union-Feld pipeline. Die Bestellkonfiguration von DeliveryPipeline. Für pipeline ist nur einer der folgenden Werte zulässig:
serialPipeline

object (SerialPipeline)

SerialPipeline definiert eine sequenzielle Reihe von Phasen für eine DeliveryPipeline.

SerialPipeline

SerialPipeline definiert eine sequenzielle Reihe von Phasen für eine DeliveryPipeline.

JSON-Darstellung
{
  "stages": [
    {
      object (Stage)
    }
  ]
}
Felder
stages[]

object (Stage)

Jede Phase definiert die Konfiguration für eine Target. Die Reihenfolge in dieser Liste definiert den Ablauf der Werbeaktion.

Phase

Die Phase gibt den Standort für die Bereitstellung an.

JSON-Darstellung
{
  "targetId": string,
  "profiles": [
    string
  ],
  "strategy": {
    object (Strategy)
  },
  "deployParameters": [
    {
      object (DeployParameters)
    }
  ]
}
Felder
targetId

string

Die targetId, auf die diese Phase verweist. Dieses Feld bezieht sich ausschließlich auf das letzte Segment eines Zielnamens. Dieses Feld würde beispielsweise nur my-target (statt projects/project/locations/location/targets/my-target) enthalten. Der Standort von Target wird abgeleitet, damit er mit dem Standort der DeliveryPipeline übereinstimmt, die diese Stage enthält.

profiles[]

string

Skaffold-Profile, die beim Rendern des Manifests für die Target dieser Phase verwendet werden sollen.

strategy

object (Strategy)

Optional. Die Strategie, die für Rollout in dieser Phase verwendet werden soll.

deployParameters[]

object (DeployParameters)

Optional. Die Bereitstellungsparameter, die in dieser Phase für das Ziel verwendet werden sollen.

Strategie

Die Strategie enthält Informationen zur Bereitstellungsstrategie.

JSON-Darstellung
{

  // 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.
}
Felder
Union-Feld deployment_strategy. Details zur Bereitstellungsstrategie Für deployment_strategy ist nur einer der folgenden Werte zulässig:
standard

object (Standard)

Bei der Standardbereitstellungsstrategie wird eine einzelne Bereitstellung ausgeführt und sie kann geprüft werden.

canary

object (Canary)

Die Canary-Bereitstellungsstrategie bietet schrittweise prozentuale Bereitstellungen für ein Ziel.

Standard

„Standard“ steht für die Standardbereitstellungsstrategie.

JSON-Darstellung
{
  "verify": boolean,
  "predeploy": {
    object (Predeploy)
  },
  "postdeploy": {
    object (Postdeploy)
  }
}
Felder
verify

boolean

Gibt an, ob eine Bereitstellung geprüft werden soll.

predeploy

object (Predeploy)

Optional. Konfiguration für den Vorabbereitstellungsjob. Wenn dies nicht konfiguriert ist, ist kein Vorab-Bereitstellungsjob vorhanden.

postdeploy

object (Postdeploy)

Optional. Konfiguration für den Postdeploy-Job. Wenn dies nicht konfiguriert ist, ist kein Job nach der Bereitstellung vorhanden.

Vor Bereitstellung

„Predeploy“ enthält die Konfigurationsinformationen des Jobs zum Vorbereitstellungsjob.

JSON-Darstellung
{
  "actions": [
    string
  ]
}
Felder
actions[]

string

Optional. Eine Abfolge von benutzerdefinierten Skaffold-Aktionen, die während der Ausführung des Pre-Deploy-Jobs aufgerufen werden sollen.

Nach Bereitstellung

Postdeploy enthält die Konfigurationsinformationen des postdeploy-Jobs.

JSON-Darstellung
{
  "actions": [
    string
  ]
}
Felder
actions[]

string

Optional. Eine Abfolge von benutzerdefinierten Skaffold-Aktionen, die während der Ausführung des Postdeploy-Jobs aufgerufen werden.

Canary

Canary stellt die Canary-Bereitstellungsstrategie dar.

JSON-Darstellung
{
  "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.
}
Felder
runtimeConfig

object (RuntimeConfig)

Optional. Laufzeitspezifische Konfigurationen für die Bereitstellungsstrategie. Mit der Laufzeitkonfiguration wird bestimmt, wie Cloud Deploy den Traffic aufteilt, um eine progressive Bereitstellung zu ermöglichen.

Union-Feld mode. Der Modus, der für die Canary-Bereitstellungsstrategie verwendet werden soll. Für mode ist nur einer der folgenden Werte zulässig:
canaryDeployment

object (CanaryDeployment)

Konfiguriert die progressive Bereitstellung für ein Ziel.

customCanaryDeployment

object (CustomCanaryDeployment)

Konfiguriert die progressive Bereitstellung für ein Ziel, ermöglicht jedoch eine Anpassung auf Phasenebene, wobei eine Phase jede der prozentualen Bereitstellungen repräsentiert.

RuntimeConfig

RuntimeConfig enthält die laufzeitspezifischen Konfigurationen für eine Bereitstellungsstrategie.

JSON-Darstellung
{

  // 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.
}
Felder
Union-Feld runtime_config. Die Details zur Laufzeitkonfiguration. Für runtime_config ist nur einer der folgenden Werte zulässig:
kubernetes

object (KubernetesConfig)

Kubernetes-Laufzeitkonfiguration

cloudRun

object (CloudRunConfig)

Cloud Run-Laufzeitkonfiguration

KubernetesConfig

KubernetesConfig enthält die Kubernetes-Laufzeitkonfiguration.

JSON-Darstellung
{

  // 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.
}
Felder
Union-Feld service_definition. Die Dienstdefinitionskonfiguration. Für service_definition ist nur einer der folgenden Werte zulässig:
gatewayServiceMesh

object (GatewayServiceMesh)

Service Mesh-Konfiguration der Kubernetes Gateway API

serviceNetworking

object (ServiceNetworking)

Netzwerkkonfiguration des Kubernetes-Dienstes.

GatewayServiceMesh

Informationen zur Service Mesh-Konfiguration der Kubernetes Gateway API.

JSON-Darstellung
{
  "httpRoute": string,
  "service": string,
  "deployment": string,
  "routeUpdateWaitTime": string,
  "stableCutbackDuration": string
}
Felder
httpRoute

string

Erforderlich. Name der Gateway API-HTTP-Route.

service

string

Erforderlich. Name des Kubernetes-Dienstes.

deployment

string

Erforderlich. Name des Kubernetes-Deployments, dessen Traffic von der angegebenen HTTPRoute und dem angegebenen Dienst verwaltet wird.

routeUpdateWaitTime

string (Duration format)

Optional. Die Zeit, die gewartet wird, bis Routenaktualisierungen weitergegeben werden. Die maximal konfigurierbare Zeit beträgt 3 Stunden im Sekundenformat. Wenn keine Vorgabe erfolgt, gibt es keine Wartezeit.

Die Dauer in Sekunden mit bis zu neun Nachkommastellen und am Ende mit "s". Beispiel: "3.5s".

stableCutbackDuration

string (Duration format)

Optional. Die Zeit für die Migration des Traffics vom Canary-Dienst zum ursprünglichen Dienst während der Bereitstellung in der stabilen Phase. Falls angegeben, muss der Wert zwischen 15 und 3.600 Sekunden liegen. Wenn keine Vorgabe erfolgt, gibt es keine Zeitverkürzung.

Die Dauer in Sekunden mit bis zu neun Nachkommastellen und am Ende mit "s". Beispiel: "3.5s".

ServiceNetworking

Informationen zur Netzwerkkonfiguration des Kubernetes-Dienstes.

JSON-Darstellung
{
  "service": string,
  "deployment": string,
  "disablePodOverprovisioning": boolean
}
Felder
service

string

Erforderlich. Name des Kubernetes-Dienstes.

deployment

string

Erforderlich. Name des Kubernetes-Deployments, dessen Traffic vom angegebenen Dienst verwaltet wird.

disablePodOverprovisioning

boolean

Optional. Gibt an, ob die Pod-Überbereitstellung deaktiviert werden soll. Wenn die Pod-Überbereitstellung deaktiviert ist, begrenzt Cloud Deploy die Gesamtzahl der für die Bereitstellungsstrategie verwendeten Pods auf die Anzahl der Pods im Deployment im Cluster.

CloudRunConfig

CloudRunConfig enthält die Cloud Run-Laufzeitkonfiguration.

JSON-Darstellung
{
  "automaticTrafficControl": boolean,
  "canaryRevisionTags": [
    string
  ],
  "priorRevisionTags": [
    string
  ],
  "stableRevisionTags": [
    string
  ]
}
Felder
automaticTrafficControl

boolean

Gibt an, ob Cloud Deploy die Traffic-Stanza in einem Cloud Run-Dienst im Namen des Nutzers aktualisieren soll, um die Trafficaufteilung zu vereinfachen. Dies muss für CanaryDeployments zutreffen, für CustomCanaryDeployments jedoch optional sein.

canaryRevisionTags[]

string

Optional. Eine Liste der Tags, die der Canary-Version während der Canary-Phase hinzugefügt werden.

priorRevisionTags[]

string

Optional. Eine Liste der Tags, die der vorherigen Überarbeitung während der Canary-Phase hinzugefügt wurden.

stableRevisionTags[]

string

Optional. Eine Liste von Tags, die der endgültigen stabilen Version hinzugefügt werden, wenn die stabile Phase beginnt.

CanaryDeployment

„CanaryDeployment“ stellt die Canary-Deployment-Konfiguration dar

JSON-Darstellung
{
  "percentages": [
    integer
  ],
  "verify": boolean,
  "predeploy": {
    object (Predeploy)
  },
  "postdeploy": {
    object (Postdeploy)
  }
}
Felder
percentages[]

integer

Erforderlich. Die prozentualen Bereitstellungen, die als Teil einer Rollout stattfinden. Die Liste wird in aufsteigender Reihenfolge erwartet und jede Ganzzahl n ist 0 <= n < 100.

verify

boolean

Gibt an, ob Verifizierungstests nach jeder prozentualen Bereitstellung ausgeführt werden sollen.

predeploy

object (Predeploy)

Optional. Konfiguration für den Vorbereitstellungsjob der ersten Phase. Wenn dies nicht konfiguriert ist, gibt es für diese Phase keinen Vorab-Job.

postdeploy

object (Postdeploy)

Optional. Konfiguration für den Postdeploy-Job der letzten Phase. Wenn dies nicht konfiguriert ist, gibt es für diese Phase keinen Nachbereitstellungsjob.

CustomCanaryDeployment

CustomCanaryDeployment stellt die benutzerdefinierte Canary-Deployment-Konfiguration dar.

JSON-Darstellung
{
  "phaseConfigs": [
    {
      object (PhaseConfig)
    }
  ]
}
Felder
phaseConfigs[]

object (PhaseConfig)

Erforderlich. Konfiguration für jede Phase des Canary-Deployments in der ausgeführten Reihenfolge.

PhaseConfig

PhaseConfig stellt die Konfiguration für eine Phase im benutzerdefinierten Canary-Deployment dar.

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

string

Erforderlich. Die ID, die der Phase Rollout zugewiesen werden soll. Dieser Wert muss aus Kleinbuchstaben, Ziffern und Bindestrichen bestehen, mit einem Buchstaben beginnen und mit einem Buchstaben oder einer Ziffer enden. Er darf maximal 63 Zeichen lang sein. Er muss also dem folgenden Regex entsprechen: ^[a-z]([a-z0-9-]{0,61}[a-z0-9])?$.

percentage

integer

Erforderlich. Prozentuale Implementierung für die Phase.

profiles[]

string

Skaffold-Profile, die beim Rendern des Manifests für diese Phase verwendet werden sollen. Sie gelten zusätzlich zu der Profilliste, die in der Phase DeliveryPipeline angegeben wurde.

verify

boolean

Gibt an, ob Verifizierungstests nach der Bereitstellung ausgeführt werden sollen.

predeploy

object (Predeploy)

Optional. Konfiguration für den Vorbereitstellungsjob in dieser Phase. Wenn dies nicht konfiguriert ist, gibt es für diese Phase keinen Vorab-Job.

postdeploy

object (Postdeploy)

Optional. Konfiguration für den Postdeploy-Job in dieser Phase. Wenn dies nicht konfiguriert ist, gibt es für diese Phase keinen Nachbereitstellungsjob.

DeployParameters

DeployParameters enthält Informationen zu Bereitstellungsparametern.

JSON-Darstellung
{
  "values": {
    string: string,
    ...
  },
  "matchTargetLabels": {
    string: string,
    ...
  }
}
Felder
values

map (key: string, value: string)

Erforderlich. Werte sind Bereitstellungsparameter in Schlüssel/Wert-Paaren.

Ein Objekt, das eine Liste von "key": value-Paaren enthält. Beispiel: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

matchTargetLabels

map (key: string, value: string)

Optional. Bereitstellungsparameter werden auf Ziele mit Übereinstimmungslabels angewendet. Wenn Sie nichts angeben, werden Bereitstellungsparameter auf alle Ziele angewendet (einschließlich der untergeordneten Ziele eines Multi-Ziels).

Ein Objekt, das eine Liste von "key": value-Paaren enthält. Beispiel: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

PipelineCondition

PipelineCondition enthält alle Bedingungen, die für eine Bereitstellungspipeline relevant sind.

JSON-Darstellung
{
  "pipelineReadyCondition": {
    object (PipelineReadyCondition)
  },
  "targetsPresentCondition": {
    object (TargetsPresentCondition)
  },
  "targetsTypeCondition": {
    object (TargetsTypeCondition)
  }
}
Felder
pipelineReadyCondition

object (PipelineReadyCondition)

Details zum Gesamtstatus der Pipeline.

targetsPresentCondition

object (TargetsPresentCondition)

Details zu in der Pipeline aufgezählten Zielen.

targetsTypeCondition

object (TargetsTypeCondition)

Details dazu, ob die in der Pipeline aufgeführten Ziele denselben Typ haben.

PipelineReadyCondition

PipelineReadyCondition enthält Informationen zum Status der Pipeline.

JSON-Darstellung
{
  "status": boolean,
  "updateTime": string
}
Felder
status

boolean

True, wenn die Pipeline einen gültigen Status hat. Andernfalls hat mindestens eine Bedingung in PipelineCondition den ungültigen Status. Iterieren Sie diese Bedingungen und prüfen Sie, welche Bedingungen den Status = "false" haben, um herauszufinden, was mit der Pipeline nicht in Ordnung ist.

updateTime

string (Timestamp format)

Zeitpunkt der letzten Aktualisierung der Bedingung.

Ein Zeitstempel im Format RFC3339 UTC "Zulu" mit einer Auflösung im Nanosekundenbereich und bis zu neun Nachkommastellen. Beispiele: "2014-10-02T15:01:23Z" und "2014-10-02T15:01:23.045123456Z".

TargetsTypeCondition

TargetsTypeCondition enthält Informationen darüber, ob die in der Bereitstellungspipeline definierten Ziele vom gleichen Typ sind.

JSON-Darstellung
{
  "status": boolean,
  "errorDetails": string
}
Felder
status

boolean

Dieser Wert ist „True“, wenn alle Ziele einen vergleichbaren Typ haben. Dies gilt beispielsweise, wenn alle Ziele GKE-Cluster sind. Dies ist falsch, wenn einige Ziele Cloud Run-Ziele und andere GKE-Cluster sind.

errorDetails

string

Menschenlesbare Fehlermeldung.

Methoden

create

Erstellt eine neue DeliveryPipeline in einem bestimmten Projekt und an einem bestimmten Standort.

delete

Löscht eine einzelne DeliveryPipeline.

get

Ruft Details zu einer einzelnen DeliveryPipeline ab.

getIamPolicy

Ruft die Richtlinie für die Zugriffssteuerung für eine Ressource ab.

list

Listet DeliveryPipelines in einem bestimmten Projekt und an einem bestimmten Standort auf.

patch

Aktualisiert die Parameter einer einzelnen DeliveryPipeline.

rollbackTarget

Erstellt einen Rollout für das Rollback des angegebenen Ziels.

setIamPolicy

Legt die Richtlinie für die Zugriffssteuerung für die angegebene Ressource fest.

testIamPermissions

Gibt die Berechtigungen des Aufrufers für die angegebene Ressource zurück.