Material-UI icons were not provided as globals by Headlamp, causing
'undefined is not an object (evaluating Ct.createSvgIcon)' errors.
Headlamp provides @iconify/react as a global, so all icon imports have
been replaced with Iconify equivalents:
- ErrorOutline → mdi:alert-circle-outline
- ContentCopy → mdi:content-copy
- Visibility → mdi:eye
- VisibilityOff → mdi:eye-off
- CheckCircle → mdi:check-circle
- Error → mdi:alert-circle
- Warning → mdi:alert
- Add → mdi:plus
- Delete → mdi:delete
Changes:
- Replaced all @mui/icons-material imports with @iconify/react Icon component
- Updated 4 component files (ErrorBoundary, DecryptDialog, EncryptDialog, ControllerStatus)
- Bumped version to 0.2.3
- Bundle size reduced: 358.18 kB (98.04 kB gzipped)
- Checksum: SHA256:03787323abc9430a63433838253b2dd8296d237000acdfe4ce2507678b63125f
This should fix the plugin loading issue and make the sidebar entry appear.
Generated with [Claude Code](https://claude.ai/code)
via [Happy](https://happy.engineering)
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>
The plugin was built with @kinvolk/headlamp-plugin@^0.13.1, but the Headlamp server
is running with SDK version 0.13.0-alpha.11. This version mismatch caused React
context to be undefined, resulting in 'TypeError: undefined is not an object
(evaluating O2.createContext)' in the browser console.
Changes:
- Downgraded @kinvolk/headlamp-plugin from ^0.13.1 to ^0.13.0
- Removed 'main' field from package.json (carried over from v0.2.1)
- Bumped version to 0.2.2
- Created Artifact Hub metadata for 0.2.2
- Updated checksum: SHA256:3dd94e4da82a729c09eb73dcb548f89da00425169f21ff38bfb202caa442c95a
Fixes browser console error preventing plugin from loading.
Generated with [Claude Code](https://claude.ai/code)
via [Happy](https://happy.engineering)
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>
Features:
- Complete SealedSecret CRD integration with Headlamp
- Client-side encryption using controller's public key
- Support for all three scoping modes (strict, namespace-wide, cluster-wide)
- List and detail views for SealedSecrets
- Encryption dialog for creating new SealedSecrets
- Decryption support with RBAC awareness
- Sealing keys management
- Settings page for controller configuration
- Integration with Secret detail view
Technical:
- Full TypeScript with strict mode
- ~1,345 lines of code
- Build size: 339.42 kB (93.21 kB gzipped)
- Compatible with Headlamp v0.13.0+
- Apache 2.0 license
Security:
- All encryption performed client-side
- RSA-OAEP + AES-256-GCM (kubeseal-compatible)
- Auto-hide decrypted values after 30 seconds
Closes: Initial implementation