Argo

Argo #

More information about Argo can be found at Argo quick start.

Custom Pod Behavior #

The Argo Workflow is a custom resource for creating Pods, not using Job. So we need to change the behavior of the Pod to make it work.

wget https://raw.githubusercontent.com/kubernetes-sigs/kwok/release-0.3/stages/pod-fast.yaml
sed 's/Job/Workflow/g' pod-fast.yaml > workflow-fast.yaml

Set up Cluster #

kwokctl create cluster --runtime kind -c workflow-fast.yaml

Create Node #

kubectl apply -f https://kwok.sigs.k8s.io/examples/node.yaml

Deploy Argo #

kubectl create namespace argo
kubectl apply -n argo -f https://github.com/argoproj/argo-workflows/releases/download/v3.4.8/install.yaml

Migrate Controllers to Real Node #

kubectl patch deploy argo-server -n argo --type=json -p='[{"op":"add","path":"/spec/template/spec/nodeName","value":"kwok-kwok-control-plane"}]'
kubectl patch deploy workflow-controller -n argo --type=json -p='[{"op":"add","path":"/spec/template/spec/nodeName","value":"kwok-kwok-control-plane"}]'

Test Workflow #

argo submit -n argo --watch https://raw.githubusercontent.com/argoproj/argo-workflows/master/examples/hello-world.yaml