Removes tracks/cka/bank_sim_a.py and bank_sim_b.py (34 tasks, ids 201-217 and 301-317). The previous commit holds their last versions, with every fix from the audit applied and both sets verified end to end - restore with `git show HEAD~1:tracks/cka/bank_sim_a.py` if one is ever wanted back. The baseline keeps repairing what those sets could leave on a cluster that ran them (the maintenance taint, cordons, Q317's controller flag, Q314's static pod) - only its comments changed. `breaks` keys that existed solely to keep pool tasks apart from set A/B tasks are gone. History keeps its raw entries; weak-spots is regenerated without the retired tasks. A mistyped drill argument now gets a usage message instead of a traceback. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
24 lines
1.0 KiB
Python
24 lines
1.0 KiB
Python
"""Shared helpers for CKA task banks."""
|
|
|
|
NS = r"""
|
|
mkns() {
|
|
$K create ns "$1" --dry-run=client -o yaml | $K apply -f - >/dev/null
|
|
# Wait for the namespace's `default` ServiceAccount before returning. The controller creates it
|
|
# asynchronously, and a Pod applied in the gap is rejected outright:
|
|
# error looking up service account <ns>/default: serviceaccount "default" not found
|
|
# Setups that create a namespace and immediately apply Pods lose that race under load,
|
|
# which fails the seed and costs the candidate a whole task. It belongs here, not in each task.
|
|
for _ in $(seq 1 30); do $K -n "$1" get sa default >/dev/null 2>&1 && return 0; sleep 1; done
|
|
}
|
|
"""
|
|
|
|
def C(name, pts, script):
|
|
return {"name": name, "pts": pts, "script": script}
|
|
|
|
def ns_pick(r, base):
|
|
"""Namespace name with a random suffix so the same task never lands on the same namespace twice."""
|
|
return f"{base}-{r.choice(['alpha', 'bravo', 'delta', 'echo', 'kilo', 'nova', 'omega', 'zulu'])}"
|
|
|
|
def name_pick(r, base):
|
|
return f"{base}-{r.randint(10, 99)}"
|