안녕하세요. 이 글은 workflowtemplate에 대해 설명합니다.
영상: https://youtu.be/F4Eg4hKgmVc
1. 개요
workflow를 템플릿으로 정의하는 것을 workflow template입니다. workflow에서 템플릿을 정의하여 불러쓰는 것처럼, argoworkflow를 템플릿으로 불러서 쓰고 싶을 때 사용합니다.
2. 어떤 곳에 사용될까?
사용자 관점에서는, 공통으로 사용하는 부분을 묶어서 관리하거나 workflow 동작 일부를 공유할 때 사용합니다.개발관점에서 쉽게 비유하면 workflow를 함수로 정의해서 다른 workflow에서 호출해서 사용한다고 생각하시면 됩니다.
운영관점에서는 WorkflowTemplate을 IAC처럼 사용할 수 있습니다. 운영하다 보면 workflow를 관리할 필요가 있는데, worfklowTemplate을 활용하자 사용자가 이용할 workflow를 코드로 관리할 수 있습니다.
3. 예제
아래 그림 예제는 argoworkflow 공식문서(https://argoproj.github.io/argo-workflows/workflow-templates/#working-with-parameters)에서 가져왔습니다. 예제는 WorkflowTemplate CRD로 정의한 템플릿을 Workflow CRD에서 호출해서 사용합니다.
apiVersion: argoproj.io/v1alpha1
kind: WorkflowTemplate
metadata:
name: hello-world-template-global-arg
namespace: argo
spec:
serviceAccountName: argo
templates:
- name: hello-world
container:
image: docker/whalesay
command: [cowsay]
args: ["{{workflow.parameters.global-parameter}}"]
---
apiVersion: argoproj.io/v1alpha1
kind: Workflow
metadata:
generateName: hello-world-wf-global-arg-
namespace: argo
spec:
serviceAccountName: argo
entrypoint: whalesay
arguments:
parameters:
- name: global-parameter
value: hello
templates:
- name: whalesay
steps:
- - name: hello-world
templateRef:
name: hello-world-template-global-arg
template: hello-world
kubectl create로 WorkflowTempalte과 Workflow를 생성합니다.
kubectl create -f workflow.yaml
argo workflow UI의 왼쪽 메뉴 두번째에서 생성한 WorkflowTemplate목록을 볼 수 있습니다. 현재는 1개 생성했으므로, 1개만 보입니다.
첫 번째 메뉴로 이동하면 실행성공한 workflow가 보입니다.
workflow상세 조회창에서 Manifest 버튼을 클릭하면, workflow가 어떤 WorkflowTemplate을 사용했는지 확인할 수 있습니다.
'전공영역 공부 기록' 카테고리의 다른 글
redis실행 중에 설정 변경 (0) | 2022.08.23 |
---|---|
docker를 대체하는시스템 구축 시 만나는 상황 (0) | 2022.07.24 |
운영체제별 컨테이너(엔진) 실행 원리 (0) | 2022.07.14 |
m1 맥북 쿠버네티스 설치 (0) | 2022.07.13 |
쉘스크립트 문자열 리턴 (0) | 2022.07.11 |