HCP Waypoint 에이전트 구성 문법 참조

HCP Waypoint 에이전트 구성 문법 참조

이 주제는 HCP Waypoint 에이전트 구성 문법에 대한 참조 정보를 제공해요.

출처: 문서

본문

소개

HCP Waypoint 에이전트를 사용하면 프라이빗 환경 안에서 액션을 실행할 수 있어요. 자세한 내용은 에이전트 생성 및 관리 문서를 참고해 주세요.

구성 모델

다음 목록은 HCP Waypoint 에이전트 구성의 필드 계층 구조, 언어별 데이터 타입, 요구사항을 개략적으로 보여 줘요.

전체 구성

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이라는 에이전트 그룹의 예시 구성 파일이며, 두 개의 액션을 정의해요:

  1. promote-to-staging 액션은 promote.sh라는 로컬 스크립트를 실행해요.
  2. 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"
      }
    }
  }
}

더 알아보기