Repository navigation
fix(operator): schedule service wakers and tunnels on approved workers - #910
ValgulNecron merged 15 commits into
Conversation
Signed-off-by: Baylem <zelathis@gmail.com>
|
Warning Review limit reachedYou've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Next included review available in 27 minutes. View limit details
Pre-merge checks:
|
Signed-off-by: Baylem <zelathis@gmail.com>
Signed-off-by: Baylem <zelathis@gmail.com>
CI Report - 694264drun 43112890031 - attempt 1 0 failed - 33 passed - 0 skipped - 119m13s elapsed Test selection: full (selection-rule change) - per-suite table Coverage
Changed
Slowest jobs
e2e buckets run
|
Signed-off-by: Baylem <zelathis@gmail.com>
Signed-off-by: Baylem <zelathis@gmail.com>
Signed-off-by: Baylem <zelathis@gmail.com>
Signed-off-by: Baylem <zelathis@gmail.com>
Signed-off-by: Baylem <zelathis@gmail.com>
Signed-off-by: Baylem <zelathis@gmail.com>
Signed-off-by: Baylem <zelathis@gmail.com>
Signed-off-by: Baylem <zelathis@gmail.com>
Signed-off-by: Baylem <zelathis@gmail.com>
|
Hey, could you please add changelog entry? |
Signed-off-by: Baylem <zelathis@gmail.com>
|
Added the requested unreleased changelog entry. CI passed on fc5b25dd. The diff through a01b9503 changes only the changelog entry and its index link. I canceled the repeat CI run because this update changes only Markdown. The subsequent integration at |
Signed-off-by: Baylem <zelathis@gmail.com>
Signed-off-by: Baylem <zelathis@gmail.com>
The merge-base changed after approval.
Closes #876. Parent tracker #867. This PR targeted
feat/875-game-worker-policyand depended on #903. After #917 merged, ValgulNecron merged both placement PRs in stack 931.Service-backed wakers and the FRP, Tailscale and playit relays use an administrator-approved auxiliary worker pool. Hostport wakers keep the game's placement and recorded endpoint node. Removing the override reconciles the generated workloads to their inherited placement.
The management-placement CI drill uses tainted game and management workers and a tainted control plane. It drains the relay, checks the scheduler's Unschedulable condition, restores the relay, and performs real wake handoffs through ClusterIP, NodePort, MetalLB ingress and Hostport using populated local-path and CSI claims. Provider health endpoints use an isolated test image. The reference CSI driver and its provisioner are pinned to upstream commits and confined to the CI cluster. Current PR checks
Live topology qualification
The 193.32-second drill at
e6df3b81scheduled all three relay providers on the management worker, evicted the relay and observed its unschedulable replacement, then preserved each populated local-path and CSI world through all four wake exposures. The local-path PVC retained UID621e5ad3-be56-4095-a6f8-bc64fd78b8cdand the CSI PVC retained UID2e630082-0996-4b91-85c2-e9ad88255ccf. A separate inherited tenant memory fixture failed in the same job. Executed jobThe extended drill passed in 202.15 seconds on d3c5672. Draining the single data worker evicted both games. Both replacement Pods remained Unschedulable while the management relay stayed ready on the other worker. After uncordon, both games recovered their original world markers and PVC/PV UIDs, five seconds after the drain began. The local-path PVC retained UID 3d071d39-9ba9-4461-854d-9d20b2d60426 and the CSI PVC retained UID 64bce869-94f9-4ed8-92d9-b1e5357ff0db. All eight wake handoffs also passed across the two storage types and four exposures. A separate, inherited workload-policy fixture failed before making its Kubernetes request. The signed child integration at cea0609 includes the parent correction. Executed data-worker drain · Current PR checks
Shared CI and worker-policy integration
The signed integration at
d958210acontains #903’s kernel-backed tenant memory check and #917’s shared browser bootstrap. Its management-placement lane exercises both the inherited worker policy and the local-path/CSI data-worker drain with eight wake handoffs. Initial CI runCombined data-worker drain and tenant isolation on d958210
On
d958210a, the 202.92-second Kind drill completed all eight wake handoffs and drained the only data worker. Both games’ replacements remained unschedulable while the management relay stayed ready. After the worker was uncordoned, each game recovered its original world marker five seconds from the start of the drain. The local-path claim and volume retained UIDs9b88d02e-83ce-4502-8dda-6cbccf7b0a5eand0b741f5e-37d0-4164-aca6-5decd9f8f7e6. The CSI claim and volume retained UIDs5e1e1e5d-7e36-4e05-bf78-26cf93f25d5aandbc5d3e4a-1e0c-4e4d-938e-ae53e062ad0e.The inherited worker-policy drill also passed in 107.85 seconds. The tenant container was
OOMKilledat 32 MiB, with Podmax/oom/oom_killcounters increasing from 0/0/0 to 22/1/2. The neighboring Minecraft Pod retained its identity with zero restarts. Its baseline, concurrent and post-OOM p95/p99 tick durations were 0.3/1.5 ms, 0.2/3.6 ms and 0.1/0.3 ms. Restic completed backup and repository read verification in 20.90 seconds. Combined worker and drain jobThe reviewed integration
694264dfpassed all eight wake handoffs and the populated data-worker drain in 213.83 seconds. The local-path game recovered its original world marker and PVC/PV four seconds after drain began. The CSI game recovered its own marker and PVC/PV in five seconds. The local-path PVC/PV UIDs were8c31cd04-9353-45e2-9e32-fbe46dde8291/cda65141-99e2-4473-80ee-bd404a218da5. The CSI PVC/PV UIDs were91503a8c-dc69-4a77-b80c-c43ba8df249f/54699f0c-bd88-4519-aa6c-c79f43d0e347.The concurrent worker-policy drill passed in 102.01 seconds. Kubernetes reported
Error/137at the 32 MiB container limit. The identified Pod'smax/oom/oom_killcounters rose from 0/0/0 to 21/1/2. Neighbor Minecraft p95/p99 tick time was 0.2/0.6 ms before pressure, 0.2/2.1 ms during pressure and 0.2/0.2 ms after the OOM. Restic backed up the game and read-verified the repository in 19.06 seconds. Exact-head placement drill · Full hosted workflow.