Use a Kubernetes volume to store results if executed as Kubernetes job
We allow to run benchmarks using Kubernetes jobs. When doing so, all results are currently stored inside the corresponding job's container. This makes it impossible to access the results later. Moreover, also the exp_counter file is stored inside the container and, thus, is not shared among multiple jobs. Effectively, this means the counter is always reset between benchmark executions. As a solution, we want to use a volume which persists throughout the entire period of multiple executions.
This issue requires the following:
- Add an instruction how to create the corresponding volume. Ideally, this is something like
kubectl apply -f ...
for a file which specifies the volume. This file can later also be used by a Helm chart for automatically creating the volume (see #76 (closed)) - Mount the volume in the Theodolite job. The mount path should match the one where results are stored (see #103 (closed))
Some notes:
- I think a Static Persistent Volume is what we need here.
- Ultimately, a network file system such as NFS would be the way to go. However, as NFS might not be installed in all execution environments, we need a simple alternative. Something such as a local might be such an alternative, but that would (probably?) require that the job is always scheduled on the same node.