Skip to content

Latest commit

 

History

History
99 lines (68 loc) · 2.42 KB

local-dev.md

File metadata and controls

99 lines (68 loc) · 2.42 KB

Installing Argo locally on Mac

Install Docker Desktop and enable Kubernetes in the settings.

Then basically follow this page:

Summary of the quick-start:

⚠️ the quick-start-postgres.yaml example is intended to help you get started quickly. They contain hard-coded passwords that are publicly available. Not to be used as such in real deployments.

Run:

kubectl create ns argo
kubectl apply -n argo -f https://raw.githubusercontent.com/argoproj/argo-workflows/master/manifests/quick-start-postgres.yaml

Monitor progress with:

kubectl get pods --all-namespaces

To see the argo dashboard run:

kubectl -n argo port-forward deployment/argo-server 2746:2746

and go to https://localhost:2746

To remove everything:

kubectl delete -n argo -f https://raw.githubusercontent.com/argoproj/argo-workflows/master/manifests/quick-start-postgres.yaml

Submit a simple workflow

Example (run from project root folder):

argo submit -n argo --watch ./workflow_examples/dummy_workflow.yaml

Check workflow results at https://localhost:2746 .

Other example:

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

Build and run argo-wrapper locally

Run following command from project root:

python3 -m venv ./localenv \
    && . ./localenv/bin/activate \
    && pip install --upgrade pip poetry \
    && poetry install --no-interaction

and then run the following to start the service:

export PYTHONUNBUFFERED=1
export PYTHONIOENCODING=UTF-8
export ARGO_WRAPPER_CONFIG_FILE=$PWD/test/config_for_local_testing.ini
./localenv/bin/gunicorn src.argowrapper.asgi:app -b 0.0.0.0:8000 -k uvicorn.workers.UvicornWorker

Dummy token and testing the endpoints locally

ℹ️ The dummy token was generated by going to https://jwt.io/ and using this as payload:

{
  "context": {"user": {"name": "dummyuser"}}
}

Using the dummy token to test endpoints locally

Export this token to a local var:

export DUMMY_TOKEN=<token value from step above>

Now you are ready to try out one of the endpoints:

curl -H "Content-Type: application/json" -H "Authorization: bearer $DUMMY_TOKEN" http://localhost:8000/workflows | python3 -m json.tool

Other endpoints: