49 lines
1.9 KiB
Markdown
Raw Normal View History

This folder contains the required Kubernetes and Argo Workflow resources required to run experiments in Kubernetes
both in local (e.g. Minikube, Kind) and remote clusters.
## Prerequisites
### Argo Workflows
Whatever cluster you choose must be running [Argo Workflows](https://argo-workflows.readthedocs.io/).
**Local clusters.** For local clusters, you can follow the instructions in
the [Argo Workflows Quickstart Guide](https://argo-workflows.readthedocs.io/en/latest/quick-start/) to get Argo
Workflows running.
For remote clusters, it's best to consult the Argo
Workflows [Operator Manual](https://argo-workflows.readthedocs.io/en/latest/installation/).
**Argo CLI Tool.** You will also need to install the
[Argo CLI tool](https://argo-workflows.readthedocs.io/en/latest/walk-through/argo-cli/) to submit workflows.
**Permissions.** Codex workflows assume that they are running in a namespace called `codex-benchmarks`. We
have a sample manifest which creates the namespace as well as the proper service account with RBAC
permissions [here](./argo-workflows/codex-workflows-rbac.yaml). For local clusters, you can apply this manifest
as it is. For remote clusters, you might need to customize it to your needs.
### Logs
Experiments require logs to be stored for later parsing during analysis. For local clusters, this can be achieved
by running [Vector](https://vector.dev/) and outputting pods logs to a persistent volume. The manifests for setting the
persistent volume, as well as vector,
can be found [here](./local).
### Submitting Workflows
Once everything is set up, workflows can be submitted with:
```bash
argo submit -n argo ./deluge-benchmark-workflow.yaml
```
for local clusters, you should add:
```bash
argo submit -n argo ./deluge-benchmark-workflow.yaml --insecure-skip-verify
```
To observe progress, you can use the Argo Wokflows UI which can be accessed by port-forwarding the Argo Workflows
server.