df6a5967ea
- Remove "Coverage threshold: Vitest coverage threshold enforced in CI (#82)" — the shared CI workflow does not run coverage; this line was inaccurate. - Fix [1.0.0] compare link from v0.6.0...v1.0.0 to v0.7.2...v1.0.0 to accurately reflect the last tagged release. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
13 KiB
13 KiB
Changelog
All notable changes to the Headlamp Polaris Plugin will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Unreleased
1.0.0 - 2026-03-22
First stable release. The plugin API (routes, sidebar entries, settings schema, and app bar action) is now frozen — no breaking changes without a new major version.
Security
- Patched 8 of 9 npm audit vulnerabilities via
pnpm.overrides(#92)
Added
- Dual-approval CI check: PRs now require approval from both CTO and QA before merging (#98, #76)
- ExemptionManager test suite: Full coverage of annotation-based exemption flows, exemption creation, and inline feedback (#82)
- RBAC preflight check:
deploy-e2e-headlamp.shnow verifies runner RBAC before attempting E2E deploy (#80)
Fixed
- E2E infrastructure overhaul: Replaced Dockerfile.e2e with ConfigMap volume mount for plugin loading; tests now run in the
privilegedescalation-devnamespace (#73, #89, #94) - E2E token auth: Workflow uses GitHub App token auth and handles the
/tokenredirect correctly (#97) - E2E HTTP readiness:
deploy-e2e-headlamp.shwaits for HTTP reachability after rollout before running tests (#104) - E2E runner label: Updated to
runners-privilegedescalationfor self-hosted ARC runners (#71) - Direct devDependencies: Added
typescript,eslint,prettier, and@headlamp-k8s/eslint-configas explicit direct devDependencies to prevent phantom-dep failures in clean installs (#95, #102)
Changed
- pnpm version pinned:
packageManagerfield inpackage.jsonpins the pnpm version used in CI (#103) - GitHub Actions SHA pinning: Renovate
pinDigestsenabled to SHA-pin all GitHub Actions (#105) - ArtifactHub metadata polish: Improved
installinstructions andchangessection formatting (#82)
0.6.0 - 2026-03-04
Fixed
- ExemptionManager apiVersion bug:
appsandbatchresources now correctly use/apis/{group}/v1/instead of the broken/api/v1/path - Strict TypeScript: Replaced
resource: anyin InlineAuditSection with properKubeResourceinterface - PolarisDataContext test mock: Added missing
triggerRefreshto mock, preventing silentundefinedforrefreshin context - DashboardView test: Fixed
SimpleTablemock that usedArray<any>and didn't exercise column getters
Changed
- Dark mode / theming: Replaced all
var(--mui-palette-*)CSS variables withuseTheme()+theme.palette.*across all components (DashboardView, NamespacesListView, InlineAuditSection, ExemptionManager, PolarisSettings, AppBarScoreBadge) - Namespace drawer: Replaced custom
<style>block + positioned<div>with MUIDrawercomponent for proper accessibility (role="dialog",aria-modal, Escape key handling via MUI) - AppBarScoreBadge: Uses
theme.palette.success/warning/errorwith propercontrastTextinstead of hardcoded hex colors - ExemptionManager feedback: Replaced
alert()calls withStatusLabel-based inline feedback; removed deadgetExemptions()stub and unreachable remove-exemption UI - URL construction: Exported
getPolarisApiPathandisFullUrlfrompolaris.ts; PolarisSettings now reuses them instead of duplicating logic
Added
- Error boundaries: All registered components (routes, detail sections, app bar action) wrapped in
PolarisErrorBoundaryfor graceful error rendering - Tests for InlineAuditSection (7 tests): loading, unsupported kind, not found, score/summary, failing checks, link, exemption manager
- Tests for AppBarScoreBadge (6 tests): loading, no data, score colors, navigation, aria-label
- Tests for topIssues.ts (8 tests): empty, all pass, controller/pod/container results, counting, ignore filter, sorting, max 10
- Tests for checkMapping.ts (11 tests): name/description/category/severity lookups, unknown checks, CHECK_MAPPING structure validation
Removed
- NamespaceDetailView.tsx: Dead code with no registered route (replaced by drawer in NamespacesListView)
- NamespaceDetailView.test.tsx: Tests for removed component
- MockPolarisProvider in test-utils.tsx: Unused mock provider (tests use
vi.mockinstead) getSeverityColorexport in checkMapping.ts: Dead export not imported anywhere
0.3.5 - 2026-02-12
Fixed
- Fixed drawer background remaining white in dark mode by using correct CSS variable (
--mui-palette-background-default)
Documentation
- Added comprehensive Priority 2 documentation (ARCHITECTURE.md, DEPLOYMENT.md, SECURITY.md)
- Added CONTRIBUTING.md with development workflow, branching strategy, and code style guidelines
- Added complete CHANGELOG.md documenting all releases from v0.0.1 to current
0.3.4 - 2026-02-12
Fixed
- Removed all
@mui/materialand@mui/icons-materialimports causing plugin load failure - Fixed plugin settings page registration (changed name from 'polaris' to 'headlamp-polaris-plugin')
- Added dark mode support using MUI CSS variables for proper theme adaptation
- Resolved TypeScript compilation errors in plugin registration calls
Changed
- Replaced all MUI components with standard HTML elements and inline styles
- Updated
registerDetailsViewSectionandregisterAppBarActionto match Headlamp plugin API v0.13.0 - App bar badge, settings buttons, and UI elements now use theme-aware CSS variables
Infrastructure
- Added CI workflow for lint, type-check, build, and test
- Enhanced E2E testing documentation with comprehensive guides
- Added documentation-engineer subagent
0.3.3 - 2026-02-12
Fixed
- Corrected plugin settings registration name to match package.json
- Added displaySaveButton parameter to settings registration
0.3.2 - 2026-02-12
Fixed
- Removed all MUI dependencies to fix plugin loading in Headlamp v0.39.0+
- Plugin now loads correctly in sidebar and routes
0.3.1 - 2026-02-12
Fixed
- TypeScript compilation errors in
registerDetailsViewSectionandregisterAppBarActioncalls - Test failures in DashboardView (added missing SimpleTable mock)
0.3.0 - 2026-02-11
Added
- App bar badge displaying cluster Polaris score
- Inline audit sections in resource detail views (Deployment, StatefulSet, DaemonSet, Job, CronJob)
- Exemption management UI (view/add exemptions via annotations)
- Connection testing button in plugin settings
- Top issues dashboard with severity-based filtering
- Namespace drawer navigation with URL hash support
Changed
- Migrated namespace detail to right-side drawer panel
- Improved drawer keyboard navigation (Escape to close)
- Enhanced settings page with connection testing
Fixed
- Empty namespace crash handling
- Drawer navigation pattern for better UX
0.2.5 - 2025-12-XX
Fixed
- Improved theming and settings visibility
0.2.4 - 2025-12-XX
Changed
- Increased namespace detail panel width to 1000px for better readability
0.2.3 - 2025-12-XX
Added
- Full URL support for custom Polaris dashboards
- Support for external Polaris instances (not just service proxy)
0.2.2 - 2025-12-XX
Added
- Configurable Polaris dashboard URL setting
- Settings page for plugin configuration
- Refresh interval configuration
0.2.1 - 2025-12-XX
Infrastructure
- Migrated to GitHub as primary repository
- Fixed v0.2.0 checksum in ArtifactHub metadata
0.2.0 - 2025-12-XX
Added
- Namespace drawer navigation
- URL hash-based routing for namespaces
- Keyboard shortcuts (Escape to close drawer)
Infrastructure
- GitHub release automation
- Improved CI/CD workflow
0.1.7 - 2025-11-XX
Documentation
- Removed incorrect development installation instructions
0.1.6 - 2025-11-XX
Fixed
- Plugin settings display name changed to "Polaris"
Documentation
- Added tooltip to skipped count explaining limitation
- Documented skipped count limitation in README
0.1.5 - 2025-11-XX
Fixed
- Restored
:80port in service proxy URL for correct dashboard access
0.1.4 - 2025-11-XX
Added
- Playwright E2E smoke tests
- Test coverage for sidebar, overview, namespaces, and detail views
Fixed
- Empty namespace crash (graceful handling)
- Removed
:80port suffix from service proxy URL for RBAC compatibility
0.1.3 - 2025-11-XX
Fixed
- Service proxy URL format for consistent RBAC requirements
0.1.2 - 2025-11-XX
Added
- Namespace filtering and sorting
- Enhanced resource table in namespace detail view
0.1.1 - 2025-11-XX
Fixed
- Score calculation for resources with mixed results
- Percentage display formatting
0.1.0 - 2025-11-XX
Added
- Namespace detail view with resource-level audit results
- Drill-down navigation from namespace list
Changed
- Improved data fetching with error handling
- Better loading states
0.0.10 - 2025-11-XX
Fixed
- RBAC Documentation: Corrected to use
services/proxypermission instead of ConfigMap access
Documentation
- Updated README with accurate RBAC requirements
- Added minimal Role example
0.0.9 - 2025-11-XX
Added
- Refresh button for manual data reload
- Last updated timestamp display
0.0.8 - 2025-11-XX
Added
- Skipped checks display in check summary
- Improved check categorization (pass/warning/danger/skipped)
0.0.7 - 2025-11-XX
Changed
- Enhanced overview dashboard layout
- Better visual hierarchy for cluster score
0.0.6 - 2025-11-XX
Added
- Namespace list view with per-namespace scores
- Navigation between overview and namespace views
0.0.5 - 2025-11-XX
Fixed
- Data fetching error handling
- API proxy path configuration
0.0.4 - 2025-11-XX
Added
- Check distribution visualization
- Pass/Warning/Danger count display
0.0.3 - 2025-11-XX
Changed
- Improved cluster score calculation
- Better result aggregation logic
0.0.2 - 2025-11-XX
Added
- Cluster score display
- Basic check summary table
0.0.1 - 2025-10-XX
Added
- Initial release
- Basic Polaris plugin structure
- Sidebar entry "Polaris"
- Overview page with cluster info
- Data fetching from Polaris dashboard via Kubernetes service proxy
- TypeScript support with strict mode
- React components using Headlamp CommonComponents
Infrastructure
- GitHub repository setup
- ArtifactHub package registration
- Automated release workflow
- Basic CI/CD pipeline