Replace Static "Not Installed" Message with Installation Diagnostics Panel - #58
Replace Static "Not Installed" Message with Installation Diagnostics Panel#58atharrva01 wants to merge 4 commits into
Conversation
|
hi @ashu8912 this PR replaces the static “Inspektor Gadget is not installed” message with an installation diagnostics panel that performs checks (namespace, DaemonSet, pod health, node coverage) and surfaces actionable troubleshooting information directly in the Headlamp UI. |
There was a problem hiding this comment.
Pull request overview
This PR replaces the generic “Inspektor Gadget is not installed” screen with an installation diagnostics panel that surfaces specific cluster/deployment health checks (namespace, DaemonSet, pods, node coverage) to help users understand what’s actually wrong.
Changes:
- Replaced the static “not installed” message with a new
InstallationStatusdiagnostics UI. - Added Kubernetes checks for namespace existence, DaemonSet readiness, pod health, and node coverage.
- Added “Copy Diagnostics” and “Re-run Checks” actions to help share troubleshooting context.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 6 comments.
| File | Description |
|---|---|
| src/common/NotFound/index.tsx | Swaps the old static not-installed message for the new diagnostics component. |
| src/common/InstallationStatus/index.tsx | Implements the diagnostics panel UI and wiring to K8s useList data sources. |
| src/common/InstallationStatus/checks.ts | Implements the underlying diagnostic checks and formatting logic. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
hey @ashu8912 looking at the co-pilot's review, I have fixed the DaemonSet selection ( Skipped prop-hoisting for now, this only renders when IG isn't installed so not a hot path, happy to do it as a follow-up. |
There was a problem hiding this comment.
Pull request overview
This PR replaces the generic “Inspektor Gadget is not installed” message with an Installation Diagnostics panel that surfaces likely deployment/health issues (namespace/DaemonSet/pods/node coverage) directly in the UI, reducing the need to switch to kubectl.
Changes:
- Replaced the
IGNotFoundstatic message with the newInstallationStatusdiagnostics view. - Added a new diagnostics UI (overall banner + expandable per-check results + copy-to-clipboard + retry).
- Implemented installation/health check functions for namespace, DaemonSet readiness, pod health, and node coverage.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 4 comments.
| File | Description |
|---|---|
| src/common/NotFound/index.tsx | Switches “not installed” fallback to render InstallationStatus. |
| src/common/InstallationStatus/index.tsx | Adds the diagnostics panel UI, check rendering, copy diagnostics, and retry action. |
| src/common/InstallationStatus/checks.ts | Adds the underlying diagnostics checks and formatting utilities. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
hi @ashu8912 , @illume! addressed the remaining copilot suggestions from the second review:
|
b5e2776 to
1ff8cec
Compare
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 6 out of 6 changed files in this pull request and generated 6 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 6 out of 6 changed files in this pull request and generated 4 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
@illume , i've addressed the co-pilot's suggestion.... |
Summary
Right now, if any pod check fails, we just show "Inspektor Gadget is not installed" with a docs link. This is unhelpful because pods could be crashing, stuck in
CrashLoopBackOff, or partially deployed, but the UI just says "not installed." Users have to jump tokubectlto figure out what's actually wrong.What I Changed
Added a basic diagnostics panel that checks:
gadget)Each check shows pass/warn/fail with details you can expand. Way more useful than a static error message.
Why This Helps
Instead of guessing, users can now see if IG is actually missing vs just misconfigured or failing to start.
Testing
Built locally, ran
tsc --noEmitandnpm run lint. All good.