Skip to content

Running Locally

Requirements

We recommend using K3D to set up the local Kubernetes cluster since this will allow you to test RBAC set-up and is fast. You can set-up K3D to be part of your default kube config as follows:

k3d cluster start --wait

Alternatively, you can use Minikube to set up the local Kubernetes cluster. Once a local Kubernetes cluster has started via minikube start, your kube config will use Minikube's context automatically.

Developing locally

Warning

The git repo must be checked out into: $(GOPATH)/src/github.com/argoproj/argo-workflows

Add the following to your /etc/hosts:

127.0.0.1 dex
127.0.0.1 minio
127.0.0.1 postgres
127.0.0.1 mysql

To run the controller and argo-server API locally, with MinIO inside the "argo" namespace of your cluster:

make start API=true

To start the UI, use UI=true:

make start API=true UI=true

To test the workflow archive, use PROFILE=mysql:

make start API=true UI=true PROFILE=mysql

To test SSO integration, use PROFILE=sso:

make start API=true UI=true PROFILE=sso

You’ll now have:

  • Argo UI on http://localhost:8080
  • Argo Server API on https://localhost:2746
  • MinIO on http://localhost:9000 (use admin/password)
  • Postgres on http://localhost:5432, run make postgres-cli to access.
  • MySQL on http://localhost:3306, run make mysql-cli to access.

Before submitting/running workflows, build the executor images with this command:

make argoexec-image

Committing

Before you commit code and raise a PR, always run:

make pre-commit -B

Please adhere to the following when creating your commits:

Example:

git commit --signoff -m 'fix: Fixed broken thing. Fixes #1234'

Troubleshooting:

  • When running make pre-commit -B, if you encounter errors like make: *** [pkg/apiclient/clusterworkflowtemplate/cluster-workflow-template.swagger.json] Error 1, ensure that you have checked out your code into $(GOPATH)/src/github.com/argoproj/argo-workflows.
  • If you encounter "out of heap" issues when building UI through Docker, please validate resources allocated to Docker. Compilation may fail if allocated RAM is less than 4Gi.