HCP Waypoint 에이전트 구성 문법 참조
HCP Waypoint 에이전트 구성 문법 참조
이 주제는 HCP Waypoint 에이전트 구성 문법에 대한 참조 정보를 제공해요.
출처: 문서
본문
소개
HCP Waypoint 에이전트를 사용하면 프라이빗 환경 안에서 액션을 실행할 수 있어요. 자세한 내용은 에이전트 생성 및 관리 문서를 참고해 주세요.
구성 모델
다음 목록은 HCP Waypoint 에이전트 구성의 필드 계층 구조, 언어별 데이터 타입, 요구사항을 개략적으로 보여 줘요.
- group: map
전체 구성
group "<group name>" {
action "<action name>" {
run {
command = <command to execute>
}
}
action "<action name>" {
http {
url = <URL to send the request to>
}
}
action "<action name>" {
operation {
status {
message = <log message>
values = { <key>: <value> }
status = "running|complete|error"
}
}
operation {
run {
command = <command to execute>
}
}
operation {
http {
url = <URL to send the request to>
}
}
}
}
명세
이 섹션은 HCP Waypoint 에이전트 구성 문법에 대한 자세한 내용을 제공해요.
group
group 블록은 여러 action 블록을 포함할 수 있어요.
| 필드 | 설명 | 타입 | 필수 |
|---|---|---|---|
action |
action 블록은 HCP Waypoint가 실행할 수 있는 액션을 정의해요. 여러 action 블록을 정의할 수 있어요. |
map | 필수 |
action
action 블록은 다음 중 하나만 포함해야 해요: 단일 run 블록, 단일 http 블록, 또는 하나 이상의 operation 블록.
| 필드 | 설명 | 타입 | 필수 |
|---|---|---|---|
run |
run 블록은 액션이 실행하는 명령 또는 스크립트를 정의해요. | map | |
http |
http 블록은 HTTP GET 요청을 보내는 액션을 정의해요. | map | |
operation |
operation 블록은 단일 run 또는 http 블록을 정의해요. | map |
run
run 블록은 액션이 실행하는 명령 또는 스크립트를 정의해요.
| 필드 | 설명 | 타입 | 필수 |
|---|---|---|---|
command |
실행할 명령으로, 명령 또는 스크립트일 수 있어요. | string 또는 문자열 배열 | 필수 |
docker |
docker 블록을 포함하면 에이전트는 Docker 컨테이너 안에서 명령을 실행해요. | map |
command 필드는 문자열 또는 문자열 배열일 수 있어요. 문자열 배열로 지정하면 에이전트는 command 필드를 단일 명령으로 실행해요. 다음 예시는 echo hello world 명령을 실행하는 액션을 정의해요:
command = ["echo", "hello", "world"]
docker
선택적 docker 블록을 정의하면 에이전트는 run 블록의 명령을 docker 컨테이너 안에서 실행해요.
| 필드 | 설명 | 타입 | 필수 |
|---|---|---|---|
image |
컨테이너 이미지 | string | 필수 |
http
http 블록은 액션이 보내는 HTTP GET 요청을 정의해요.
| 필드 | 설명 | 타입 | 필수 |
|---|---|---|---|
url |
액션이 HTTP GET 요청을 보내는 URL | string | 필수 |
operation
operation 블록은 단일 run 또는 http 블록만 포함할 수 있어요.
| 필드 | 설명 | 타입 | 필수 |
|---|---|---|---|
run |
run 블록은 액션이 실행하는 명령 또는 스크립트를 정의해요. | map | |
http |
http 블록은 HTTP GET 요청을 보내는 액션을 정의해요. | map | |
status |
status 블록은 로그 정보를 HCP Waypoint로 보내요. | map |
status
status 블록은 로그 정보를 HCP Waypoint로 보내요. HCP Waypoint는 이 정보를 기록하고 액션의 실행 출력 요약에 표시해요.
| 필드 | 설명 | 타입 | 필수 |
|---|---|---|---|
message |
로그 메시지 | string | 필수 |
values |
로그 메시지와 함께 포함할 값의 키-값 맵 | map | |
status |
액션의 상태를 설정하며, running, complete, error 중 하나여야 해요. |
string | 필수 |
예시
다음은 my-agent-group이라는 에이전트 그룹의 예시 구성 파일이며, 두 개의 액션을 정의해요:
promote-to-staging액션은promote.sh라는 로컬 스크립트를 실행해요.rollback액션은url파라미터에 정의된 주소로 HTTP GET 요청을 보내요.
group "my-agent-group" {
action "promote-to-staging" {
run {
command = "./promote.sh"
}
}
action "rollback" {
http {
url = "http://127.0.0.1/deployment/rollback"
}
}
action "rollback-k8s-status" {
operation {
status {
message = "Beginning rollback"
values = { "target-rev": inputs.revision }
status = "running"
}
}
operation {
run = ["kubectl", "rollout", "undo", "deployment/web",
"--to-revision=#{inputs.revision}"]
}
operation {
status {
message = "Rollback completed"
status = run.exit_code == 0 ? "complete" : "error"
}
}
}
}