Repository navigation
Fix cluster-free demo hangs on unavailable Kubernetes APIs - #97
Merged
Merged
Conversation
Mark the cluster-free launcher explicitly and return fallback telemetry without blocking the FastAPI event loop on stale Kubernetes endpoints.\n\nCloses #96
Stop the command-center spinner after five seconds and surface actionable success or failure status instead of logging failures only to the console.\n\nRefs #96
Pin the Vite API proxy to the IPv4 address used by Uvicorn so Node cannot resolve localhost to an unbound IPv6 loopback.\n\nRefs #96
Let make demo-local bootstrap missing dependencies, launch both services, inject one controlled batch, and keep the console running. Remove hidden dashboard auto-injections so the command is the single source of demo data.\n\nRefs #96
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #96
Root cause
The console polls
/cluster-overviewimmediately after startup. Although that FastAPI route is async, it performs synchronous Kubernetes configuration and API calls. A stale or unreachable kubeconfig can therefore block the event loop, causing/healthand/simulate-threatsto time out as well./infra-observabilityhad the same behavior. The command-center simulation request also had no client timeout, leaving its loading state active indefinitely whenever the backend stopped responding.What changed
ARGUS_LOCAL_DEMO=trueandIN_CLUSTER=falsesettings frommake demo-localmode: local_demothrough/healthfor troubleshootingUser impact
make demo-localno longer becomes unresponsive because an unrelated kubeconfig points at a missing cluster. Threat generation remains entirely local and should return immediately. If the backend becomes unavailable for another reason, the UI now stops spinning and tells the operator to restart the demo. Cluster-backed launches retain the existing Kubernetes discovery behavior.Verification
git diff --checkpassed