Repository navigation
Conversation
Signed-off-by: Baylem <zelathis@gmail.com>
Signed-off-by: Baylem <zelathis@gmail.com>
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the
|
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>
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, thanks for this one. The performance readouts and tunnel metrics look solid. A couple of fixes before merge:
Optional: several commits here are copies of ones in #765, #763, #758 and #770 (lint bump, CRD regen, operator waits, metrics probe, event-stream e2e, NuclearOption bounds, isolation verdict). If you can drop the ones that already live in those PRs Thanks! |
Signed-off-by: Baylem <zelathis@gmail.com>
|
Addressed in cfe8c19:
On the optional duplicate-commit cleanup: I have retained the unmerged prerequisite changes so this PR builds independently and includes the reviewed corrections from #763, #765, and #768. Removing them now would either remove required behavior or rewrite the published branch. The shared changes will leave the effective diff as those PRs land; I have kept this update additive. Operator/tunnel production builds and affected regression-source compilation pass. Runtime tests and lint remain CI-only under the repository policy. |
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>
|
Merged upstream’s frpc dependency fix in a80d3c2; the production binary build confirms go-jose 4.1.6. Operator/tunnel source compilation and the required workflow checks passed. The multicluster failure occurred before the ORAS fixture started: its pod was in ImagePullBackOff for ghcr.io/oras-project/oras:v1.3.3. The logs omit the underlying registry error. The image manifest is available now and includes both runner architectures. The new push starts a full CI run to rebuild the expired image artifacts and retry fixture acquisition; test deadlines and assertions are unchanged. |
Signed-off-by: Baylem <zelathis@gmail.com>
Operators need to distinguish missing measurements, game degradation, resource pressure and relay failures. This adds cached numeric game-performance measurements and relay metrics, with a complete Prometheus configuration and a real policy-enforced scrape scenario in CI.
Modules can explicitly declare tick/frame rates or tick duration, units and an optional degradation threshold. One bounded source feeds both dashboard routes and Prometheus; scrapes never execute RCON. Unknown, invalid and stale readings have no value series, while genuine zero remains visible. Source RCON receives an aggregate response limit and an absolute exchange deadline so a streaming response cannot defeat the collector's resource bounds.
Tunnel metrics consume the same sanitized health evidence as readiness. The chart adds scrape-policy validation, tunnel discovery, pressure/game/relay alerts and a workload dashboard. The documented Prometheus example aligns monitor labels, discovery namespaces and ingress permissions; explicitly managed external policies remain supported. The CI fixture uses Prometheus Operator and Cilium, verifies actual agent/tunnel scraping, revokes/restores ingress and checks denial from an unapproved namespace. Promtool fixtures cover alert firing/recovery and duplicate operator readings.
No game module is automatically opted in. Playit's pinned client still reports unknown live connectivity, and infrastructure rules require kubelet/cAdvisor and kube-state-metrics collectors as documented.
Includes #768 relay health and its #765/#762 prerequisites, #763 network isolation, and #759 shared web build correction. The embedded Tailscale SDK follows upstream v1.104.2 with a Go 1.27.3 minimum. Management-placement, network-isolation and monitoring buckets are registered in change-based test selection. Monitoring bootstrap retries transient bundle-download failures within a fixed time budget and retains checksum verification.
Expected controller retries use explicit polling delays while genuine errors retain backoff. Mod deletion and its HTTP DELETE manifest update use the same opened directory handle, preventing symlink aliases or directory replacement from redirecting removal. Regression sources cover retry pacing, retained lifecycle fences, link-target preservation and atomic metadata cleanup.
Validation: All 107 CI checks passed on
5042ab115f9b1fe1bcd7e433064345f869257ab4(main CI run), including lint, builds, coverage gates, unit/controller tests and E2E suites. Go production/regression-source and web type compilation passed locally; required actionlint/offline zizmor and whitespace checks passed. Runtime tests ran in CI under the repository's compile-only local policy.The NuclearOption RCON client also applies its absolute command deadline before writing the request, preventing a peer that stops reading from holding the shared client indefinitely. Both blocked-write stages have regression coverage. Monitoring selector validation follows the operator NetworkPolicy gate, so standalone panel monitoring remains usable without a game scrape selector.
Closes #725.