Original source: https://input.scs.community/scs-operator-hackathon-warmup#
Yaook SCS Operator Hackathon - Warm-Up¶
There is a bug in the Tempest job image - Tempest jobs will not start. Let's see how we can deal with that.
Running a modified Tempest operator¶
We modify the existing operator and hook it into the Yaook cluster.
Connection overview:
🧑💻 your laptop ↦ 🔧 "helper" jumphost VM ↦ ☁️ k8s cluster ↦ 🐺 Yaook namespace & pods
Preparing your workstation & cluster¶
If you don't have your own Yaook instance to work with from your own machine, Dataport kindly prepared a number of jumphost VMs with attached K8s clusters running a minimal "Quickstart" Yaook.
Log in via SSH as helper, password Secret2026!. Please add your names to the table to avoid collisions. You can use tmux to collaborate!
| domain | group |
|---|---|
| hackaton-helper-001.dsecurecloud.de | group 1 - Tomek, Valentin, Armin, Max, Max |
| hackaton-helper-002.dsecurecloud.de | Tempest Group |
| hackaton-helper-003.dsecurecloud.de | group 3 - Fabian, Matthias H., Max, David |
| hackaton-helper-004.dsecurecloud.de | group 4 - Till, Robert, Stefan, Felix |
Clone the Yaook operator repo and enter the directory:
git clone --branch operator-template https://gitlab.com/yaook/operator.git && cd operator
Install the upstream Tempest operator chart to your cluster:
helm upgrade --install -n yaook --version 1.2.1 tempest-operator yaook.cloud/tempest-operator
Downgrade the image used for Tempest jobs¶
The images operators use in the manifests they manage are defined in yaook/assets/pinned_version.yml.
The last working image version for all Tempest versions was 1.0.139.
Starting a devpod¶
In tools you'll find generate_devpod.sh.
It generates a combined manifest to run a pod with the necessary roles to execute an operator on it.
Create and apply it for tempest:
./generate-devpod.sh tempest && kubectl apply -n yaook -f devpod-tempest.yaml
Have a look via k9s (:namespace, select yaook, press l on devpod-tempest-0) and watch it start up.
Stopping the upstream operator¶
Scale down the Tempest operator Deployment via k9s, or by running
kubectl -n yaook scale --replicas=0 deployment/tempest-operator
Getting your code into the devpod¶
Run a port forwarding towards the devpod in the background:
kubectl port-forward svc/devpod-tempest -n yaook 2222:22 &
Upload your code (from within ~/operator) to it:
rsync -e 'ssh -p 2222 -i ~/.ssh/id_devpod' -zraHEAXSP --exclude .git --exclude .direnv --exclude .mypy_cache --delete --exclude _build ./ root@localhost:/data/src/
Attach to the devpod¶
Either use k9s to get a shell there, or use ssh:
ssh -p 2222 -i ~/.ssh/id_devpod root@localhost
Install requirements and operator¶
Go to /data/src/.
We need an HTTP proxy within the Dataport clusters:
https_proxy="http://10.65.117.35:3128" pip install -e .
Run the operator¶
Finally!
python3 -m yaook.op -vvv tempest run
Verify that it's working¶
Start a TempestJob (from the jumphost VM):
kubectl apply -n yaook -f https://gitlab.com/yaook/operator/-/raw/devel/docs/user/explanations/examples/tempest_with_loadlist.yaml
You should see it starting and can follow it's logs with k9s. But don't wait for it to finish, it won't pass all checks anyhow.
Fallback - modifying the Tempest operator deployment¶
Patch the operator deployment: