Skip to content

feat(kubernetes): keep investigation history fast and available across upgrades - #398

Merged
hoalongnatsu merged 1 commit into
mainfrom
feat/kubernetes-harness
Nov 3, 2026
Merged

hoalongnatsu merged 1 commit into
mainfrom
feat/kubernetes-harness

Conversation

@hoalongnatsu

Copy link
Copy Markdown
Member

What does this PR do?

Makes saved Kubernetes history usable immediately after an upgrade and keeps it
fast at any size.

  • Ready when Versus starts: saved history is prepared before history pages
    are served, with progress in the startup log. Very large histories continue in
    the background without blocking startup.
  • A clear status while preparing: clusters still being prepared answer a
    retryable history_upgrading status, so the UI can say "try again shortly"
    instead of showing a timeout.
  • Consistently fast pages: Timeline, Changes, Crashes and historical Issues
    always read indexed history, keeping responses well inside the 2-second
    history budget.
  • Accurate diagnostics: storage failures are logged as storage problems,
    separate from data-format problems, so operators look in the right place.
  • Safe parallel startup: several replicas can start against the same
    database during an upgrade without stalling each other.
  • Simpler configuration: the kubernetes.evidence.read_models setting (and
    KUBERNETES_EVIDENCE_READ_MODELS, Helm kubernetes.evidence.readModels) is
    retired. The Postgres storage guide now explains why each history setting
    exists and how it affects the database.

Why?

Operators expect investigation history to work as soon as Versus is back after
an upgrade. Long-running clusters accumulate large histories, and those
histories must stay quick to browse and honest about their state, not
time out while being prepared.

Type of change

  • Bug fix (non-breaking)
  • New feature (non-breaking)
  • Breaking change (config / API / default behavior)
  • Documentation only
  • Refactor (no functional change)
  • CI / build / chore

Checklist

  • go test ./... passes locally
  • go vet ./... is clean
  • Added or updated tests for the change
  • Updated user-facing docs under src/ if behavior changes
  • Updated ROADMAP.md if this closes a roadmap item
  • No secrets, tokens, or webhook URLs introduced in source / YAML
  • No new third-party dependencies (or justified in the description)

@hoalongnatsu
hoalongnatsu merged commit 185332f into main Nov 3, 2026
9 of 10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant