Argo

Argo is an open-source workflow engine built for Kubernetes with integrated functionalities of Continuous Integration (CI) and Continuous Delivery (CD). The source code can be accessed openly at https://github.com/argoproj.

Installing Argo

Using argo install command

# Download Argo.
curl -sSL -o argo https://github.com/argoproj/argo/releases/download/v2.1.0/argo-linux-amd64
chmod +x argo
sudo mv argo /usr/local/bin/argo

# Deploy to Kubernetes
kubectl create namespace argo
argo install -n argo
ACCESS_KEY=AKIAIOSFODNN7EXAMPLE
ACCESS_SECRET_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY

helm install --namespace argo --name argo-artifacts --set accessKey=$ACCESS_KEY,secretKey=$ACCESS_SECRET_KEY,service.type=LoadBalancer stable/minio

Next, create a bucket named argo-bucket (You can use kubectl port-forward service/argo-artifacts-minio :9000 to reach the Minio UI for operation):

# download mc client
sudo wget https://dl.minio.io/client/mc/release/linux-amd64/mc -O /usr/local/bin/mc
sudo chmod +x /usr/local/bin/mc

# create argo-bucket
EXTERNAL_IP=$(kubectl -n argo get service argo-artifacts-minio -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
mc config host add argo-artifacts-minio-local http://$EXTERNAL_IP:9000 $ACCESS_KEY $ACCESS_SECRET_KEY --api=s3v4
mc mb argo-artifacts-minio-local/argo-bucket

Then, modify the Argo workflow controller to use Minio:

Installing Using Helm

Please note: The current Helm Charts use an outdated version of Minio and the deployment might fail.

Accessing the Argo UI

Working with workflows

Firstly, give the default ServiceAccount cluster administration permission

Example 1: The simplest workflow

Example 2: Workflow with multiple containers

After the workflows are created, their status and logs can be queried, and they can be deleted when no longer needed:

For more information on the format of workflow YAML files, see the official documentation.

最后更新于