How to install and configure Argo Workflows on GKE
What is Argo Workflows?
Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. Argo Workflows is implemented as a Kubernetes CRD (Custom Resource Definition).
- Define workflows where each step in the workflow is a container.
- Model multi-step workflows as a sequence of tasks or capture the dependencies between tasks using a directed acyclic graph (DAG).
- Easily run compute intensive jobs for machine learning or data processing in a fraction of the time using Argo Workflows on Kubernetes.
- Run CI/CD pipelines natively on Kubernetes without configuring complex software development products.
Source: https://argoproj.github.io/argo-workflows/
Now, we already know what Argo Workflows is, let’ s proceeed to the installation:
0- On GKE, you need access to create clusterroles on your kubernetes cluster, to grant this access, please execute the command below:
kubectl create clusterrolebinding YOURNAME-cluster-admin-binding --clusterrole=cluster-admin --user=YOUREMAIL@gmail.com
After that, you are able to proceed to the installation process.
1- Create the argo namespace where you would like to install:
kubectl create ns argo
2- Install Argo Workflows on desired namespace:
kubectl apply -f https://raw.githubusercontent.com/argoproj/argo-workflows/stable/manifests/quick-start-postgres.yaml -n argo
2.1 If you desire to isolate your Argo Workflows installation, you can use the namespaced installation. This kind of installation do not need clusterrole permissions to execute the controller:
kubectl apply -f https://raw.githubusercontent.com/argoproj/argo-workflows/master/manifests/namespace-install.yaml -n argo
3- Now you need to check if every thing is running:
kubectl get pods-n argoNAME READY STATUS RESTARTS AGE
argo-server-cb6b4fb8c-m2f6p 1/1 Running 0 90s
workflow-controller-57b997b9bc-rgk2f 1/1 Running 0 90s
4- To check the Argo Workflows UI you need to execute the command below:
kubectl port-forward svc/argo-server 2746:2746 -n argo
and access http://localhost:2746
That is it! Thank you so much for your time!
See you soon…