REST Resource: projects.locations.deliveryPipelines.automations

리소스: Automation

Cloud Deploy API의 Automation 리소스입니다.

Automation를 사용하면 Targets 간 Release 승격, Rollout 복구, Rollout 배포 전략 진행을 포함하여 배포 파이프라인의 수동 기반 작업을 자동화할 수 있습니다. Automation 목적은 지속적 배포 프로세스에서 수동 개입을 줄이는 것입니다.

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가 아닌 사용자만 이러한 속성을 설정하고 사용할 수 있습니다. 주석은 다음 제약조건을 충족해야 합니다.

  • 주석은 키-값 쌍입니다.
  • 유효한 주석 키에는 슬래시(/)로 구분된 세그먼트 2개(프리픽스(선택사항) 및 이름)가 있습니다.
  • 필수 항목인 이름 세그먼트는 63자(영문 기준) 이하여야 하고 영숫자 문자([a-z0-9A-Z])로 시작하고 끝나야 하며 그 사이에는 대시(-), 밑줄(_), 마침표(.), 영숫자를 사용할 수 있습니다.
  • 프리픽스는 선택사항입니다. 지정된 경우 프리픽스는 DNS 하위 도메인이어야 합니다. DNS 하위 도메인은 마침표(.)로 구분되고 뒤에 슬래시(/)가 있는 총 253자(영문 기준) 이하인 일련의 DNS 라벨입니다.

자세한 내용은 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 리소스와 연결된 Automation 규칙 목록입니다. 규칙이 최소 1개 이상 있고 배포 파이프라인당 250개로 제한되어야 합니다. 참고: 여기서 규칙 순서는 실행 순서와 다릅니다.

AutomationResourceSelector

AutomationResourceSelector에는 Automation을 적용할 리소스를 선택하기 위한 정보가 포함되어 있습니다.

JSON 표현
{
  "targets": [
    {
      object (TargetAttribute)
    }
  ]
}
필드
targets[]

object (TargetAttribute)

대상에 대한 속성을 포함합니다.

TargetAttribute

Targets를 선택하기 위한 기준을 포함합니다.

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. Automation 규칙 구성입니다. rule는 다음 중 하나여야 합니다.
promoteReleaseRule

object (PromoteReleaseRule)

선택사항입니다. PromoteReleaseRule은 출시 버전을 자동으로 현재 대상에서 지정된 대상으로 승격합니다.

advanceRolloutRule

object (AdvanceRolloutRule)

선택사항입니다. AdvanceRolloutRule은 성공적인 Rollout을 자동으로 진행합니다.

repairRolloutRule

object (RepairRolloutRule)

선택사항입니다. RepairRolloutRule은 실패한 출시를 자동으로 복구합니다.

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)

선택사항입니다. 다음 대상으로 승격될 때까지 출시 버전을 일시중지해야 하는 기간입니다.

소수점 아래가 최대 9자리까지이고 's'로 끝나는 초 단위 기간입니다. 예를 들면 "3.5s"입니다.

destinationTargetId

string

선택사항입니다. 이 Release가 배포하는 파이프라인의 단계 ID입니다. 지정하지 않으면 기본값은 승격 흐름의 다음 단계로 설정됩니다. 이 필드 값은 다음 중 하나일 수 있습니다.

  • 대상 이름의 마지막 세그먼트입니다. ID만 있으면 대상이 파이프라인에 정의된 승격 시퀀스의 단계 중 하나인지 확인할 수 있습니다.
  • '@next'는 승격 시퀀스의 다음 대상입니다.
condition

object (AutomationRuleCondition)

출력 전용입니다. Automation 규칙 상태에 대한 정보입니다.

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)

선택사항입니다. 출시가 완료된 후 대기하는 시간입니다.

소수점 아래가 최대 9자리까지이고 's'로 끝나는 초 단위 기간입니다. 예를 들면 "3.5s"입니다.

condition

object (AutomationRuleCondition)

출력 전용입니다. Automation 규칙 상태에 대한 정보입니다.

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)

출력 전용입니다. 'Automation' 규칙 상태에 대한 정보입니다.

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입니다.

소수점 아래가 최대 9자리까지이고 's'로 끝나는 초 단위 기간입니다. 예를 들면 "3.5s"입니다.

backoffMode

enum (BackoffMode)

선택사항입니다. 대기 시간이 증가하는 패턴입니다. 기본값은 선형입니다. wait가 0이면 백오프 모드가 무시됩니다.

롤백

Rollout을 롤백합니다.

JSON 표현
{
  "destinationPhase": string
}
필드
destinationPhase

string

선택사항입니다. Rollout의 시작 단계 ID입니다. 지정하지 않으면 Rollout이 안정화 단계에서 시작합니다.

방법

create

특정 프로젝트와 위치에 새 Automation을 만듭니다.

delete

단일 Automation 리소스를 삭제합니다.

get

단일 Automation의 세부정보를 가져옵니다.

list

특정 프로젝트와 위치의 Automation을 나열합니다.

patch

단일 Automation 리소스 매개변수를 업데이트합니다.