REST Resource: projects.locations.deliveryPipelines.automations

リソース: Automation

Cloud Deploy API の Automation リソース。

Automation を使用すると、Target 間での Release プロモーション、Rollout の修正、Rollout のデプロイ戦略の推進など、デリバリー パイプラインでの手動主導のアクションの自動化が可能になります。自動化の目的は、継続的デリバリー プロセスにおける手動による介入を減らすことです。

JSON 表現
{
  "name": string,
  "uid": string,
  "description": string,
  "createTime": string,
  "updateTime": string,
  "annotations": {
    string: string,
    ...
  },
  "labels": {
    string: string,
    ...
  },
  "etag": string,
  "suspended": boolean,
  "serviceAccount": string,
  "selector": {
    object (AutomationResourceSelector)
  },
  "rules": [
    {
      object (AutomationRule)
    }
  ]
}
フィールド
name

string

出力専用。Automation の名前。形式は projects/{project}/locations/{location}/deliveryPipelines/{deliveryPipeline}/automations/{automation} です。

uid

string

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

description

string

省略可。Automation の説明。最大長は 255 文字です。

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"

annotations

map (key: string, value: string)

省略可。ユーザー アノテーション。これらの属性はユーザーのみが設定、使用できます。Cloud Deploy は設定、使用することはできません。アノテーションは次の制約を満たす必要があります。

  • アノテーションは Key-Value ペアです。
  • 有効なアノテーション キーには 2 つのセグメントがあります。接頭辞(省略可能)と名前で、スラッシュ(/)で区切って指定します。
  • 名前セグメントは必須で、63 文字以下で指定する必要があり、先頭と末尾の 1 文字には英数字([a-z0-9A-Z])を使用し、その他の部分にはダッシュ(-)、アンダースコア(_)、ドット(.)、英数字を使用します。
  • 接頭辞は省略可能です。指定する場合、接頭辞は DNS サブドメインにする必要があります。このサブドメインには、一連の DNS ラベルをドット(.)で区切って、合計 253 文字以内で指定し、その後にスラッシュ(/)を付けます。

詳細については、https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/#syntax-and-character-set をご覧ください。

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

labels

map (key: string, value: string)

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

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

さらに、キーと値の両方が 63 文字以下に制限されます。

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

etag

string

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

suspended

boolean

省略可。一時停止すると、自動化は実行されなくなります。

serviceAccount

string

必須。Cloud Deploy のリリースとロールアウトのリソースを作成するユーザー管理の IAM サービス アカウントのメールアドレス。

selector

object (AutomationResourceSelector)

必須。自動化が適用される選択されたリソース。

rules[]

object (AutomationRule)

必須。Automation リソースに関連付けられた自動化ルールのリスト。少なくとも 1 つのルールが必要です。デリバリー パイプラインあたり 250 個のルールに制限されています。注: ここでのルールの順序は、実行順序と同じではありません。

AutomationResourceSelector

AutomationResourceSelector には、Automation を適用するリソースを選択するための情報が含まれます。

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

object (TargetAttribute)

ターゲットに関する属性が含まれています。

TargetAttribute

ターゲットを選択するための条件が含まれています。

JSON 表現
{
  "id": string,
  "labels": {
    string: string,
    ...
  }
}
フィールド
id

string

Target の ID。 このフィールドの値は次のいずれかになります: * ターゲット名の最後のセグメント。どのターゲットが参照されているかを決定するには ID のみが必要です * "*" は、ロケーション内のすべてのターゲットです。

labels

map (key: string, value: string)

ターゲット ラベル。

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

AutomationRule

AutomationRule は、自動化アクティビティを定義します。

JSON 表現
{

  // Union field rule can be only one of the following:
  "promoteReleaseRule": {
    object (PromoteReleaseRule)
  },
  "advanceRolloutRule": {
    object (AdvanceRolloutRule)
  },
  "repairRolloutRule": {
    object (RepairRolloutRule)
  }
  // End of list of possible types for union field rule.
}
フィールド
共用体フィールド rule。自動化ルールの構成。rule は次のいずれかになります。
promoteReleaseRule

object (PromoteReleaseRule)

省略可。PromoteReleaseRule は、現在のターゲットから指定されたターゲットにリリースを自動的にプロモートします。

advanceRolloutRule

object (AdvanceRolloutRule)

省略可。AdvanceRolloutRule は、成功した Rollout を自動的に進めます。

repairRolloutRule

object (RepairRolloutRule)

省略可。RepairRolloutRule は、失敗した Rollout を自動的に修復します。

PromoteReleaseRule

PromoteRelease ルールは、現在のターゲットから指定されたターゲットにリリースを自動的にプロモートします。

JSON 表現
{
  "id": string,
  "wait": string,
  "destinationTargetId": string,
  "condition": {
    object (AutomationRuleCondition)
  },
  "destinationPhase": string
}
フィールド
id

string

必須。ルールの ID。この ID は、このルールが属する Automation リソース内で一意である必要があります。形式は [a-z]([a-z0-9-]{0,61}[a-z0-9])? です。

wait

string (Duration format)

省略可。次のターゲットにプロモートされるまでリリースを一時停止しておく期間。

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

destinationTargetId

string

省略可。この Release がデプロイされているパイプラインのステージの ID。指定しない場合は、プロモーション フローの次のステージにデフォルト設定されます。このフィールドの値は、次のいずれかです。

  • ターゲット名の最後のセグメント。ターゲットが、パイプラインで定義されたプロモーション シーケンスのステージのいずれかかどうかを判断するには、ID のみが必要です。
  • 「@next」、プロモーション シーケンスの次のターゲット。
condition

object (AutomationRuleCondition)

出力専用。自動化ルールの状態に関する情報。

destinationPhase

string

省略可。このオペレーションによって作成されたロールアウトの開始フェーズ。デフォルトは最初のフェーズです。

AutomationRuleCondition

AutomationRuleCondition には、Automation ルールに関連する条件が含まれます。

JSON 表現
{
  "targetsPresentCondition": {
    object (TargetsPresentCondition)
  }
}
フィールド
targetsPresentCondition

object (TargetsPresentCondition)

省略可。ルールで列挙されるターゲットの詳細。

AdvanceRolloutRule

rollouts.advance 自動化ルールは、成功した Rollout を次のフェーズに自動的に進めます。

JSON 表現
{
  "id": string,
  "sourcePhases": [
    string
  ],
  "wait": string,
  "condition": {
    object (AutomationRuleCondition)
  }
}
フィールド
id

string

必須。ルールの ID。この ID は、このルールが属する Automation リソース内で一意である必要があります。形式は [a-z]([a-z0-9-]{0,61}[a-z0-9])? です。

sourcePhases[]

string

省略可。フェーズ名がリスト内のいずれかに一致した場合にのみ続行します。この値は、英小文字、数字、ハイフンで構成する必要があります。また、先頭は英字、末尾は英字または数字にします。最大長は 63 文字です。つまり、次の正規表現に一致する必要があります: ^[a-z]([a-z0-9-]{0,61}[a-z0-9])?$

wait

string (Duration format)

省略可。ロールアウト終了後の待機時間。

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

condition

object (AutomationRuleCondition)

出力専用。自動化ルールの状態に関する情報。

RepairRolloutRule

RepairRolloutRule 自動化ルールは、失敗した Rollout を自動的に修復します。

JSON 表現
{
  "id": string,
  "sourcePhases": [
    string
  ],
  "jobs": [
    string
  ],
  "repairModes": [
    {
      object (RepairMode)
    }
  ],
  "condition": {
    object (AutomationRuleCondition)
  }
}
フィールド
id

string

必須。ルールの ID。この ID は、このルールが属する Automation リソース内で一意である必要があります。形式は [a-z]([a-z0-9-]{0,61}[a-z0-9])? です。

sourcePhases[]

string

省略可。ジョブが失敗した場合に自動修復アクションの対象となるフェーズ。フェーズ名がリスト内のいずれかに一致した場合にのみ続行します。指定されていない場合はすべてのフェーズが対象になります。この値は、英小文字、数字、ハイフンで構成する必要があります。また、先頭は英字、末尾は英字または数字にします。最大長は 63 文字です。つまり、次の正規表現に一致する必要があります: ^[a-z]([a-z0-9-]{0,61}[a-z0-9])?$

jobs[]

string

省略可。修復するジョブ。ジョブ名がリスト内のいずれかに一致した場合にのみ続行します。指定されていないか空の場合はすべてのジョブが対象になります。ジョブを含むフェーズは、sourcePhase で指定されたフェーズ ID と一致する必要があります。この値は、英小文字、数字、ハイフンで構成する必要があります。また、先頭は英字、末尾は英字または数字にします。最大長は 63 文字です。つまり、次の正規表現に一致する必要があります: ^[a-z]([a-z0-9-]{0,61}[a-z0-9])?$

repairModes[]

object (RepairMode)

必須。失敗したジョブの自動修復アクションのタイプを定義します。

condition

object (AutomationRuleCondition)

出力専用。「自動化」ルールの状態に関する情報。

RepairMode

修復アクションの構成。

JSON 表現
{

  // Union field mode can be only one of the following:
  "retry": {
    object (Retry)
  },
  "rollback": {
    object (Rollback)
  }
  // End of list of possible types for union field mode.
}
フィールド
共用体フィールド mode。実施する修復アクション。mode は次のいずれかになります。
retry

object (Retry)

省略可。失敗したジョブを再試行します。

rollback

object (Rollback)

省略可。Rollout をロールバックします。

再試行

失敗したジョブを再試行します。

JSON 表現
{
  "attempts": string,
  "wait": string,
  "backoffMode": enum (BackoffMode)
}
フィールド
attempts

string (int64 format)

必須。再試行の合計回数。0 に設定すると、再試行はスキップされます。最小値は 1、最大値は 10 です。

wait

string (Duration format)

省略可。最初の再試行までの待機時間。デフォルトは 0、最大値は 14d です。

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

backoffMode

enum (BackoffMode)

省略可。待機時間をどのように増やすかのパターン。デフォルトは線形です。wait が 0 の場合、バックオフ モードは無視されます。

ロールバック

Rollout をロールバックします。

JSON 表現
{
  "destinationPhase": string
}
フィールド
destinationPhase

string

省略可。Rollout の開始フェーズ ID。指定しない場合、Rollout は安定フェーズで開始されます。

メソッド

create

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

delete

1 つの Automation リソースを削除します。

get

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

list

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

patch

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