REST Resource: projects.locations.deliveryPipelines

リソース: DeliveryPipeline

Cloud Deploy API の DeliveryPipeline リソース。

DeliveryPipeline は、Skaffold 構成が進行できるパイプラインを定義します。

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.
}
フィールド
name

string

省略可。DeliveryPipeline の名前。形式は projects/{project}/locations/{location}/deliveryPipelines/{deliveryPipeline} です。deliveryPipeline コンポーネントは [a-z]([a-z0-9-]{0,61}[a-z0-9])? と一致する必要があります。

uid

string

出力専用。DeliveryPipeline の固有識別子。

description

string

DeliveryPipeline の説明。最大長は 255 文字です。

annotations

map (key: string, value: string)

ユーザー アノテーション。これらの属性はユーザーのみが設定、使用できます。Cloud Deploy は設定、使用することはできません。

"key": value ペアのリストを含むオブジェクト。例: { "name": "wrench", "mass": "1.3kg", "count": "3" }

labels

map (key: string, value: string)

ラベルは、ユーザーと Cloud Deploy の両方が設定して使用できる属性です。ラベルは次の制約を満たしている必要があります。

  • キーと値には、小文字、数字、アンダースコア、ダッシュのみを使用できます。
  • すべての文字は UTF-8 でエンコードする必要があります。国際文字も使用できます。
  • キーは、小文字または国際文字で始める必要があります。
  • 各リソースは最大 64 個のラベルに制限されます。

さらに、キーと値の両方が 128 バイト以下に制限されます。

"key": value ペアのリストを含むオブジェクト。例: { "name": "wrench", "mass": "1.3kg", "count": "3" }

createTime

string (Timestamp format)

出力専用。パイプラインが作成された時刻。

RFC3339 UTC「Zulu」形式のタイムスタンプ。精度はナノ秒まで、小数点以下は最大 9 桁。例: "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"

updateTime

string (Timestamp format)

出力専用。パイプラインが最後に更新された時刻。

RFC3339 UTC「Zulu」形式のタイムスタンプ。精度はナノ秒まで、小数点以下は最大 9 桁。例: "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"

condition

object (PipelineCondition)

出力専用。デリバリー パイプラインの状態に関する情報。

etag

string

このチェックサムは、他のフィールドの値に基づいてサーバーによって計算されて、更新リクエストと削除リクエストで送信され、続行する前にクライアントが最新の値を持っていることを確認できます。

suspended

boolean

停止した場合、新しいリリースやロールアウトは作成できませんが、進行中のリリースは完了します。

共用体フィールド pipelineDeliveryPipeline の順序設定。pipeline は次のいずれかになります。
serialPipeline

object (SerialPipeline)

SerialPipeline は、DeliveryPipeline の連続する一連のステージを定義します。

SerialPipeline

SerialPipeline は、DeliveryPipeline の連続する一連のステージを定義します。

JSON 表現
{
  "stages": [
    {
      object (Stage)
    }
  ]
}
フィールド
stages[]

object (Stage)

各ステージが Target の構成を指定します。このリストの順序によって、プロモーションのフローが定義されます。

ステージ

ステージは、デプロイ先の場所を指定します。

JSON 表現
{
  "targetId": string,
  "profiles": [
    string
  ],
  "strategy": {
    object (Strategy)
  },
  "deployParameters": [
    {
      object (DeployParameters)
    }
  ]
}
フィールド
targetId

string

このステージが指す targetId。このフィールドは、ターゲット名の最後のセグメントのみを参照します。たとえば、このフィールドは projects/project/locations/location/targets/my-target ではなく、my-target になります。Target のロケーションは、この Stage を含む DeliveryPipeline のロケーションと同じであると推測されます。

profiles[]

string

このステージの Target のマニフェストをレンダリングするときに使用する Skaffold プロファイル。

strategy

object (Strategy)

省略可。このステージの Rollout に使用する戦略。

deployParameters[]

object (DeployParameters)

省略可。このステージでターゲットに使用するデプロイ パラメータ。

戦略

戦略にはデプロイ戦略の情報が含まれます。

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.
}
フィールド
共用体フィールド deployment_strategy。デプロイ戦略の詳細。deployment_strategy は次のいずれかになります。
standard

object (Standard)

標準のデプロイ戦略では、単一のデプロイを実行してデプロイの検証を行えます。

canary

object (Canary)

カナリア デプロイ戦略では、ターゲットに対して漸進的に実行されるパーセンテージ ベースのデプロイを行います。

スタンダード

Standard は標準のデプロイ戦略を表します。

JSON 表現
{
  "verify": boolean,
  "predeploy": {
    object (Predeploy)
  },
  "postdeploy": {
    object (Postdeploy)
  }
}
フィールド
verify

boolean

デプロイを検証するかどうか。

predeploy

object (Predeploy)

省略可。デプロイ前ジョブの構成。構成されていない場合、デプロイ前ジョブは存在しません。

postdeploy

object (Postdeploy)

省略可。デプロイ後ジョブの構成。構成されていない場合、デプロイ後ジョブは存在しません。

デプロイ前

Predeploy には、デプロイ前ジョブの構成情報が含まれています。

JSON 表現
{
  "actions": [
    string
  ]
}
フィールド
actions[]

string

省略可。デプロイ前ジョブの実行中に呼び出す一連の Skaffold カスタム アクション。

デプロイ後

Postdeploy には、デプロイ後ジョブの構成情報が含まれます。

JSON 表現
{
  "actions": [
    string
  ]
}
フィールド
actions[]

string

省略可。デプロイ後ジョブの実行中に呼び出す一連の Skaffold カスタム アクション。

Canary

Canary は、カナリア デプロイ戦略を表します。

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.
}
フィールド
runtimeConfig

object (RuntimeConfig)

省略可。デプロイ戦略のランタイム固有の構成。ランタイム構成は、Cloud Deploy がトラフィックを分割してプログレッシブ デプロイを有効にする方法を決定するために使用されます。

共用体フィールド mode。カナリア デプロイ戦略に使用するモード。mode は次のいずれかになります。
canaryDeployment

object (CanaryDeployment)

Target のプログレッシブ ベースのデプロイを構成します。

customCanaryDeployment

object (CustomCanaryDeployment)

Target のプログレッシブ ベースのデプロイを構成しますが、フェーズレベルでカスタマイズできます。フェーズは、各デプロイの割合を表します。

RuntimeConfig

RuntimeConfig には、デプロイ戦略のためのランタイム固有の構成が含まれています。

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.
}
フィールド
共用体フィールド runtime_config。ランタイム構成の詳細。runtime_config は次のいずれかになります。
kubernetes

object (KubernetesConfig)

Kubernetes ランタイム構成。

cloudRun

object (CloudRunConfig)

Cloud Run ランタイム構成。

KubernetesConfig

KubernetesConfig には Kubernetes ランタイム構成が含まれています。

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.
}
フィールド
共用体フィールド service_definition。サービス定義の構成。service_definition は次のいずれかになります。
gatewayServiceMesh

object (GatewayServiceMesh)

Kubernetes Gateway API サービス メッシュの構成。

serviceNetworking

object (ServiceNetworking)

Kubernetes Service のネットワーク構成。

GatewayServiceMesh

Kubernetes Gateway API サービス メッシュの構成に関する情報。

JSON 表現
{
  "httpRoute": string,
  "service": string,
  "deployment": string,
  "routeUpdateWaitTime": string,
  "stableCutbackDuration": string
}
フィールド
httpRoute

string

必須。Gateway API HTTPRoute の名前。

service

string

必須。Kubernetes Service の名前。

deployment

string

必須。指定された HTTPRoute と Service によってトラフィックが管理される Kubernetes Deployment の名前。

routeUpdateWaitTime

string (Duration format)

省略可。ルートの更新が反映されるまでの待機時間。構成可能な最大時間は 3 時間(秒単位で指定)です。指定しない場合、待機時間はありません。

s で終わる小数 9 桁までの秒単位の期間。例: "3.5s"

stableCutbackDuration

string (Duration format)

省略可。安定フェーズのデプロイ中に、カナリア サービスから元の Service にトラフィックを戻す時間。指定する場合は 15~3600 秒にする必要があります。指定しない場合は、カットバック時間はありません。

s で終わる小数 9 桁までの秒単位の期間。例: "3.5s"

ServiceNetworking

Kubernetes Service のネットワーク構成に関する情報。

JSON 表現
{
  "service": string,
  "deployment": string,
  "disablePodOverprovisioning": boolean
}
フィールド
service

string

必須。Kubernetes Service の名前。

deployment

string

必須。指定された Service によってトラフィックが管理される Kubernetes Deployment の名前。

disablePodOverprovisioning

boolean

省略可。Pod のオーバープロビジョニングを無効にするかどうか。Pod のオーバー プロビジョニングが無効になっている場合、Cloud Deploy は、デプロイ戦略に使用される Pod の合計数を、クラスタのデプロイメントにある Pod の数に制限します。

CloudRunConfig

CloudRunConfig には、Cloud Run ランタイム構成が含まれています。

JSON 表現
{
  "automaticTrafficControl": boolean,
  "canaryRevisionTags": [
    string
  ],
  "priorRevisionTags": [
    string
  ],
  "stableRevisionTags": [
    string
  ]
}
フィールド
automaticTrafficControl

boolean

トラフィック分割を容易にするために、Cloud Deploy がユーザーに代わって Cloud Run サービスのトラフィック スタンザを更新するかどうか。これは、CanaryDeployments の場合は true である必要がありますが、CustomCanaryDeployments の場合はオプションです。

canaryRevisionTags[]

string

省略可。カナリア フェーズの進行中にカナリア リビジョンに追加されるタグのリスト。

priorRevisionTags[]

string

省略可。カナリア フェーズの進行中に前のリビジョンに追加されるタグのリスト。

stableRevisionTags[]

string

省略可。安定フェーズが適用されるときに最終的な安定版に追加されるタグのリスト。

CanaryDeployment

CanaryDeployment はカナリア デプロイ構成を表します。

JSON 表現
{
  "percentages": [
    integer
  ],
  "verify": boolean,
  "predeploy": {
    object (Predeploy)
  },
  "postdeploy": {
    object (Postdeploy)
  }
}
フィールド
percentages[]

integer

必須。Rollout の一部として発生するパーセンテージ ベースのデプロイ。リストは昇順で、各整数 n は 0 <= n < 100 である必要があります。

verify

boolean

各パーセンテージ デプロイ後に検証テストを実行するかどうか。

predeploy

object (Predeploy)

省略可。最初のフェーズのデプロイ前ジョブの構成。構成されていない場合、このフェーズのデプロイ前ジョブはありません。

postdeploy

object (Postdeploy)

省略可。最後のフェーズのデプロイ後ジョブの構成。構成されていない場合、このフェーズのデプロイ後ジョブはありません。

CustomCanaryDeployment

CustomCanaryDeployment は、カスタム カナリア デプロイの構成を表します。

JSON 表現
{
  "phaseConfigs": [
    {
      object (PhaseConfig)
    }
  ]
}
フィールド
phaseConfigs[]

object (PhaseConfig)

必須。カナリア デプロイの各フェーズの構成(実行順序)。

PhaseConfig

PhaseConfig は、カスタム カナリア デプロイのフェーズの構成を表します。

JSON 表現
{
  "phaseId": string,
  "percentage": integer,
  "profiles": [
    string
  ],
  "verify": boolean,
  "predeploy": {
    object (Predeploy)
  },
  "postdeploy": {
    object (Postdeploy)
  }
}
フィールド
phaseId

string

必須。Rollout フェーズに割り当てる ID。この値は、英小文字、数字、ハイフンで構成する必要があります。また、先頭は英字、末尾は英字または数字にします。最大長は 63 文字です。つまり、次の正規表現に一致する必要があります: ^[a-z]([a-z0-9-]{0,61}[a-z0-9])?$

percentage

integer

必須。フェーズのデプロイの割合。

profiles[]

string

このフェーズのマニフェストをレンダリングするときに使用する Skaffold プロファイル。DeliveryPipeline ステージで指定されたプロファイル リストとは別のものです。

verify

boolean

デプロイ後に検証テストを実行するかどうか。

predeploy

object (Predeploy)

省略可。このフェーズのデプロイ前ジョブの構成。構成されていない場合、このフェーズのデプロイ前ジョブはありません。

postdeploy

object (Postdeploy)

省略可。このフェーズのデプロイ後ジョブの構成。構成されていない場合、このフェーズのデプロイ後ジョブはありません。

DeployParameters

DeployParameters には、デプロイ パラメータの情報が含まれます。

JSON 表現
{
  "values": {
    string: string,
    ...
  },
  "matchTargetLabels": {
    string: string,
    ...
  }
}
フィールド
values

map (key: string, value: string)

必須。値は、Key-Value ペアのデプロイ パラメータです。

"key": value ペアのリストを含むオブジェクト。例: { "name": "wrench", "mass": "1.3kg", "count": "3" }

matchTargetLabels

map (key: string, value: string)

省略可。デプロイ パラメータは、一致ラベルを持つターゲットに適用されます。指定しない場合、デプロイ パラメータはすべてのターゲット(マルチターゲットの子ターゲットを含む)に適用されます。

"key": value ペアのリストを含むオブジェクト。例: { "name": "wrench", "mass": "1.3kg", "count": "3" }

PipelineCondition

PipelineCondition には、デリバリー パイプラインに関連するすべての条件が含まれます。

JSON 表現
{
  "pipelineReadyCondition": {
    object (PipelineReadyCondition)
  },
  "targetsPresentCondition": {
    object (TargetsPresentCondition)
  },
  "targetsTypeCondition": {
    object (TargetsTypeCondition)
  }
}
フィールド
pipelineReadyCondition

object (PipelineReadyCondition)

パイプラインの全体のステータスの詳細。

targetsPresentCondition

object (TargetsPresentCondition)

パイプラインで列挙されるターゲットの詳細。

targetsTypeCondition

object (TargetsTypeCondition)

パイプラインに列挙されているターゲットが同じ型であるかどうかの詳細。

PipelineReadyCondition

PipelineReadyCondition には、パイプラインのステータスに関する情報が含まれます。

JSON 表現
{
  "status": boolean,
  "updateTime": string
}
フィールド
status

boolean

パイプラインが有効な状態の場合は true です。それ以外の場合は、PipelineCondition の少なくとも 1 つの条件が無効な状態です。これらの条件を反復処理し、どの条件のステータスが false であるかを確認し、パイプラインの何が問題かを調べます。

updateTime

string (Timestamp format)

条件が最後に更新された時刻。

RFC3339 UTC「Zulu」形式のタイムスタンプ。精度はナノ秒まで、小数点以下は最大 9 桁。例: "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"

TargetsTypeCondition

TargetsTypeCondition には、デリバリー パイプラインで定義されたターゲットが同じタイプであるかどうかに関する情報が含まれます。

JSON 表現
{
  "status": boolean,
  "errorDetails": string
}
フィールド
status

boolean

ターゲットがすべて比較可能な型の場合は true です。たとえば、すべてのターゲットが GKE クラスタの場合は true です。ターゲットに Cloud Run ターゲットと GKE クラスタがある場合は false になります。

errorDetails

string

人が読めるエラー メッセージ。

メソッド

create

指定されたプロジェクトとロケーションで新しい DeliveryPipeline を作成します。

delete

単一の DeliveryPipeline を削除します。

get

1 つの DeliveryPipeline の詳細情報を取得します。

getIamPolicy

リソースのアクセス制御ポリシーを取得します。

list

指定されたプロジェクトとロケーションの DeliveryPipelines を一覧表示します。

patch

単一の DeliveryPipeline のパラメータを更新します。

rollbackTarget

指定したターゲットをロールバックする Rollout を作成します。

setIamPolicy

指定したリソースにアクセス制御ポリシーを設定します。

testIamPermissions

指定されたリソースに対して呼び出し元が持っている権限を返します。