mirror of
https://github.com/logos-storage/bittorrent-benchmarks.git
synced 2026-02-23 22:23:14 +00:00
feat: add working parametererized Argo workflow for deluge benchmarks
This commit is contained in:
parent
f5a59e061f
commit
b4b625ad34
@ -1,5 +1,12 @@
|
||||
# This sets up a service account with the required permissions for running the Codex workflows. For now,
|
||||
# this needs to be manually applied to the cluster running Argo Workflows.
|
||||
|
||||
# The codex-benchmarks needs to exist, as otherwise we can't create the RoleBinding in the proper namespace.
|
||||
apiVersion: v1
|
||||
kind: Namespace
|
||||
metadata:
|
||||
name: codex-benchmarks
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
@ -7,30 +14,33 @@ metadata:
|
||||
namespace: argo
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: Role
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
name: codex-workflows-runner
|
||||
namespace: argo
|
||||
rules:
|
||||
- apiGroups: [ "" ]
|
||||
resources: [ "namespaces", "persistentvolumeclaims", "pods", "services" ]
|
||||
resources: [ "namespaces", "persistentvolumeclaims", "pods", "services", "secrets" ]
|
||||
verbs: [ "*" ]
|
||||
|
||||
- apiGroups: [ "apps" ]
|
||||
resources: [ "deployments", "statefulsets" ]
|
||||
verbs: [ "*" ]
|
||||
|
||||
- apiGroups: [ "batch" ]
|
||||
resources: [ "jobs" ]
|
||||
verbs: [ "*" ]
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: RoleBinding
|
||||
metadata:
|
||||
name: codex-workflows-runner
|
||||
namespace: argo
|
||||
namespace: codex-benchmarks
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: codex-benchmarks-workflows
|
||||
namespace: argo
|
||||
roleRef:
|
||||
kind: Role
|
||||
kind: ClusterRole
|
||||
name: codex-workflows-runner
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
---
|
||||
|
||||
@ -5,39 +5,68 @@ metadata:
|
||||
spec:
|
||||
serviceAccountName: codex-benchmarks-workflows
|
||||
entrypoint: deluge-benchmark-workflow
|
||||
onExit: cleanup
|
||||
arguments:
|
||||
parameters:
|
||||
- name: repetitions
|
||||
value: 10
|
||||
- name: fileSize
|
||||
value: "100MB"
|
||||
- name: networkSize
|
||||
value: 10
|
||||
- name: seeders
|
||||
value: 4
|
||||
- name: seederSets
|
||||
value: 4
|
||||
- name: maxExperimentDuration
|
||||
value: "72h"
|
||||
|
||||
templates:
|
||||
- name: deluge-benchmark-workflow
|
||||
steps:
|
||||
- - name: deploy-experiment
|
||||
template: deploy-experiment
|
||||
|
||||
- - name: wait-for-testrunner
|
||||
template: wait-for-testrunner
|
||||
- - name: wait-for-test-start
|
||||
template: wait-for-test-start
|
||||
|
||||
- - name: wait-for-completion
|
||||
template: wait-for-completion
|
||||
- - name: wait-for-test-completion
|
||||
template: wait-for-test-completion
|
||||
|
||||
- name: deploy-experiment
|
||||
script:
|
||||
image: codexstorage/bittorrent-benchmarks-workflows:latest
|
||||
command: ["/bin/bash"]
|
||||
source: |
|
||||
helm install e1 k8s/charts/deluge --namespace codex-benchmarks
|
||||
helm install e1 ./k8s/charts/deluge --namespace codex-benchmarks\
|
||||
--set experiment.repetitions={{workflow.parameters.repetitions}}\
|
||||
--set experiment.fileSize={{workflow.parameters.fileSize}}\
|
||||
--set experiment.networkSize={{workflow.parameters.networkSize}}\
|
||||
--set experiment.seeders={{workflow.parameters.seeders}}\
|
||||
--set experiment.seederSets={{workflow.parameters.seederSets}}
|
||||
|
||||
- name: wait-for-testrunner
|
||||
- name: wait-for-test-start
|
||||
script:
|
||||
image: codexstorage/bittorrent-benchmarks-workflows:latest
|
||||
command: ["/bin/bash"]
|
||||
source: |
|
||||
kubectl wait --for=condition=Ready --selector=app=testrunner pod -n codex-benchmarks --timeout=300s
|
||||
kubectl wait -n codex-benchmarks\
|
||||
--for=condition=Ready\
|
||||
--selector=app=deluge-codex-benchmarks-testrunner\
|
||||
--timeout=300s\
|
||||
pod
|
||||
|
||||
- name: wait-for-completion
|
||||
- name: wait-for-test-completion
|
||||
script:
|
||||
image: codexstorage/bittorrent-benchmarks-workflows:latest
|
||||
command: ["/bin/bash"]
|
||||
source: |
|
||||
set -e
|
||||
./ docker/bin/kubectl-wait-job --selector=app=testrunner -n codex-benchmarks
|
||||
|
||||
./docker/bin/kubectl-wait-job\
|
||||
--selector=app=deluge-codex-benchmarks-testrunner\
|
||||
--timeout={{workflow.parameters.maxExperimentDuration}}\
|
||||
-n codex-benchmarks
|
||||
|
||||
- name: cleanup
|
||||
script:
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user