diff --git a/RELEASE_0.2.5_STATUS.md b/RELEASE_0.2.5_STATUS.md new file mode 100644 index 0000000..ecd15c1 --- /dev/null +++ b/RELEASE_0.2.5_STATUS.md @@ -0,0 +1,172 @@ +# Release v0.2.5 Status + +**Release Date:** 2026-02-12 +**Status:** ✅ COMPLETE + +## Release Summary + +The v0.2.5 release has been successfully completed with the new CI/CD workflow system. + +### Release Details +- **Version:** v0.2.5 +- **Tarball:** headlamp-sealed-secrets-0.2.5.tar.gz +- **Checksum:** `sha256:80bf0617547cf183af5bb3286f85be7437c2d124c86490dd06d561acf62db873` +- **GitHub Release:** https://github.com/privilegedescalation/headlamp-sealed-secrets-plugin/releases/tag/v0.2.5 +- **Archive URL:** https://github.com/privilegedescalation/headlamp-sealed-secrets-plugin/releases/download/v0.2.5/headlamp-sealed-secrets-0.2.5.tar.gz + +### Workflow Execution + +#### 1. Prepare Release (Manual) +- **Trigger:** Manual workflow_dispatch +- **Input:** version = 0.2.5 +- **Actions:** + - Updated `package.json` version to 0.2.5 + - Updated `artifacthub-pkg.yml` with version and archive URL + - Set placeholder checksum + - Committed version bump to main + - Created and pushed tag v0.2.5 + +#### 2. Build and Release (Automatic) +- **Trigger:** Tag push (v0.2.5) +- **Duration:** 1m 8s +- **Actions:** + - Checked out code + - Installed dependencies + - Type-checked with TypeScript + - Linted code + - Built plugin + - Packaged tarball + - Validated tarball contents + - Computed checksum + - Created GitHub release with tarball + +#### 3. Update Metadata (Automatic) +- **Trigger:** Completion of build-and-release job +- **Duration:** 7s +- **Actions:** + - Checked out main branch + - Updated checksum in `artifacthub-pkg.yml` + - Committed and pushed to main + +### Issues Encountered and Fixed + +#### Issue 1: Runner Label Format +- **Problem:** Workflow stuck in "queued" state +- **Root Cause:** Runner labels in array format `[self-hosted, local-ubuntu-latest]` +- **Fix:** Changed to simple string `local-ubuntu-latest` (matching headlamp-polaris-plugin) +- **Commit:** fdfa7e8 + +#### Issue 2: Permissions +- **Problem:** Permission denied when pushing to main +- **Root Cause:** Missing `contents: write` permission +- **Fix:** Added `permissions: contents: write` to prepare-release.yaml +- **Commit:** 9bfcb23 + +#### Issue 3: Tarball Glob +- **Problem:** Move tarball step failed with "cannot stat" error +- **Root Cause:** `ls *.tar.gz` returned multiple old tarballs with newlines +- **Fix:** Explicitly specify tarball filename using version variable +- **Commit:** 2d6fc15 + +#### Issue 4: Tarball Validation Path +- **Problem:** Validation failed looking for wrong path +- **Root Cause:** Expected `package/main.js` but structure is `headlamp-sealed-secrets/main.js` +- **Fix:** Updated grep pattern to match actual tarball structure +- **Commit:** 44c9876 + +### Commits for v0.2.5 + +``` +de67b4d ci: update checksum for v0.2.5 +44c9876 fix: correct tarball structure validation path +2d6fc15 fix: explicitly specify tarball name instead of glob +3876cb5 chore: bump version to 0.2.5 +9bfcb23 fix: add contents write permission to prepare-release +fdfa7e8 fix: use simple runner label format (not array) +``` + +### Workflow Improvements Implemented + +1. **Three-Workflow Architecture** (based on headlamp-polaris-plugin) + - `ci.yaml` - Basic lint and test + - `prepare-release.yaml` - Manual version bump and tag creation + - `release.yaml` - Two-job automated release and metadata update + +2. **Automatic Checksum Management** + - Placeholder checksum set during prepare-release + - Real checksum computed during release + - Metadata automatically updated on main branch + +3. **Deterministic Builds** + - Explicit version-based tarball naming + - Tarball structure validation + - Build artifact verification + +4. **Self-Hosted Runner Support** + - All workflows use `local-ubuntu-latest` runner + - Tested and validated with test-runner workflow + +### Next Steps + +1. **Artifact Hub Sync** (Automatic - 5-10 minutes) + - Artifact Hub will detect the new metadata + - Plugin will become available at: https://artifacthub.io/packages/headlamp/privilegedescalation/sealed-secrets + +2. **Testing** (Manual) + - Test plugin installation via Artifact Hub URL in Kubernetes cluster + - Remove manual plugin installation from Headlamp pod + - Verify plugin loads correctly and sidebar appears + +### Verification Checklist + +- [x] GitHub Release created +- [x] Tarball attached to release +- [x] Checksum computed and verified +- [x] Metadata updated on main branch +- [x] All workflows completed successfully +- [x] Artifact Hub sync (automatic - completed) +- [x] Plugin installation tested +- [x] Plugin loaded by Headlamp backend + +## Installation Verification + +**Installation Date:** 2026-02-12 20:37:42 UTC + +The sealed-secrets plugin was successfully installed from Artifact Hub: + +``` +6 of 6 (sealed-secrets): info: Installing plugin sealed-secrets +6 of 6 (sealed-secrets): info: Fetching Plugin Metadata +6 of 6 (sealed-secrets): info: Plugin Metadata Fetched +6 of 6 (sealed-secrets): info: Downloading Plugin +6 of 6 (sealed-secrets): info: Plugin Downloaded +6 of 6 (sealed-secrets): info: Extracting Plugin +6 of 6 (sealed-secrets): info: Plugin Extracted +Moved directory from /tmp/headlamp-plugin-temp-LfjoLA/headlamp-sealed-secrets to /headlamp/plugins/headlamp-sealed-secrets +6 of 6 (sealed-secrets): success: Plugin Installed +6 of 6 (sealed-secrets): info: Plugin installed successfully +``` + +**Plugin Files:** +- Location: `/headlamp/plugins/headlamp-sealed-secrets/` +- Files: `main.js` (358KB), `package.json` +- Version: 0.2.5 + +**Headlamp Backend Logs:** +```json +{"level":"info","plugin":"headlamp-sealed-secrets","path":"plugins/headlamp-sealed-secrets","source":"/headlamp/backend/pkg/plugins/plugins.go","line":202,"time":"2026-02-12T20:37:42Z","message":"Treating catalog-installed plugin in development directory as user plugin"} +``` + +**Note:** The installation summary showed "1 plugins failed to install" but this was due to the polaris plugin having a checksum mismatch (same non-deterministic build issue). The sealed-secrets plugin installed successfully and is loaded by Headlamp. + +## Conclusion + +✅ **SUCCESS:** The v0.2.5 release is fully functional! + +- New CI/CD workflow system working correctly +- Artifact Hub sync completed successfully +- Plugin installed from Artifact Hub URL +- Plugin loaded by Headlamp backend +- Checksum validation passed + +The end-to-end release and distribution pipeline is proven to work. Users can now install the sealed-secrets plugin directly from Artifact Hub. diff --git a/headlamp-sealed-secrets/.eslintcache b/headlamp-sealed-secrets/.eslintcache index 789deae..773d550 100644 --- a/headlamp-sealed-secrets/.eslintcache +++ b/headlamp-sealed-secrets/.eslintcache @@ -1 +1 @@ -[{"/Users/cpfarhood/Documents/Repositories/headlamp-sealed-secrets-plugin/headlamp-sealed-secrets/src/components/DecryptDialog.tsx":"1","/Users/cpfarhood/Documents/Repositories/headlamp-sealed-secrets-plugin/headlamp-sealed-secrets/src/components/EncryptDialog.tsx":"2","/Users/cpfarhood/Documents/Repositories/headlamp-sealed-secrets-plugin/headlamp-sealed-secrets/src/components/SealedSecretDetail.tsx":"3","/Users/cpfarhood/Documents/Repositories/headlamp-sealed-secrets-plugin/headlamp-sealed-secrets/src/components/SealedSecretList.tsx":"4","/Users/cpfarhood/Documents/Repositories/headlamp-sealed-secrets-plugin/headlamp-sealed-secrets/src/components/SealingKeysView.tsx":"5","/Users/cpfarhood/Documents/Repositories/headlamp-sealed-secrets-plugin/headlamp-sealed-secrets/src/components/SecretDetailsSection.tsx":"6","/Users/cpfarhood/Documents/Repositories/headlamp-sealed-secrets-plugin/headlamp-sealed-secrets/src/components/SettingsPage.tsx":"7","/Users/cpfarhood/Documents/Repositories/headlamp-sealed-secrets-plugin/headlamp-sealed-secrets/src/headlamp-plugin.d.ts":"8","/Users/cpfarhood/Documents/Repositories/headlamp-sealed-secrets-plugin/headlamp-sealed-secrets/src/index.tsx":"9","/Users/cpfarhood/Documents/Repositories/headlamp-sealed-secrets-plugin/headlamp-sealed-secrets/src/lib/SealedSecretCRD.ts":"10","/Users/cpfarhood/Documents/Repositories/headlamp-sealed-secrets-plugin/headlamp-sealed-secrets/src/lib/controller.ts":"11","/Users/cpfarhood/Documents/Repositories/headlamp-sealed-secrets-plugin/headlamp-sealed-secrets/src/lib/crypto.ts":"12","/Users/cpfarhood/Documents/Repositories/headlamp-sealed-secrets-plugin/headlamp-sealed-secrets/src/types.ts":"13","/Users/cpfarhood/Documents/Repositories/headlamp-sealed-secrets-plugin/headlamp-sealed-secrets/src/lib/retry.ts":"14","/Users/cpfarhood/Documents/Repositories/headlamp-sealed-secrets-plugin/headlamp-sealed-secrets/src/lib/validators.ts":"15","/Users/cpfarhood/Documents/Repositories/headlamp-sealed-secrets-plugin/headlamp-sealed-secrets/src/components/ControllerStatus.tsx":"16","/Users/cpfarhood/Documents/Repositories/headlamp-sealed-secrets-plugin/headlamp-sealed-secrets/src/hooks/usePermissions.ts":"17","/Users/cpfarhood/Documents/Repositories/headlamp-sealed-secrets-plugin/headlamp-sealed-secrets/src/lib/rbac.ts":"18","/Users/cpfarhood/Documents/Repositories/headlamp-sealed-secrets-plugin/headlamp-sealed-secrets/src/components/VersionWarning.tsx":"19","/Users/cpfarhood/Documents/Repositories/headlamp-sealed-secrets-plugin/headlamp-sealed-secrets/src/hooks/useControllerHealth.ts":"20","/Users/cpfarhood/Documents/Repositories/headlamp-sealed-secrets-plugin/headlamp-sealed-secrets/src/hooks/useSealedSecretEncryption.ts":"21","/Users/cpfarhood/Documents/Repositories/headlamp-sealed-secrets-plugin/headlamp-sealed-secrets/src/components/ErrorBoundary.tsx":"22","/Users/cpfarhood/Documents/Repositories/headlamp-sealed-secrets-plugin/headlamp-sealed-secrets/src/components/LoadingSkeletons.tsx":"23","/Users/cpfarhood/Documents/Repositories/headlamp-sealed-secrets-plugin/headlamp-sealed-secrets/src/lib/retry.test.ts":"24","/Users/cpfarhood/Documents/Repositories/headlamp-sealed-secrets-plugin/headlamp-sealed-secrets/src/lib/validators.test.ts":"25","/Users/cpfarhood/Documents/Repositories/headlamp-sealed-secrets-plugin/headlamp-sealed-secrets/src/test-setup.ts":"26","/Users/cpfarhood/Documents/Repositories/headlamp-sealed-secrets-plugin/headlamp-sealed-secrets/src/types.test.ts":"27"},{"size":5581,"mtime":1770930844758,"results":"28","hashOfConfig":"29"},{"size":9255,"mtime":1770930844758,"results":"30","hashOfConfig":"29"},{"size":9471,"mtime":1770930844758,"results":"31","hashOfConfig":"29"},{"size":4410,"mtime":1770930844759,"results":"32","hashOfConfig":"29"},{"size":6763,"mtime":1770930844759,"results":"33","hashOfConfig":"29"},{"size":2032,"mtime":1770930844759,"results":"34","hashOfConfig":"29"},{"size":5447,"mtime":1770930844759,"results":"35","hashOfConfig":"29"},{"size":654,"mtime":1770930844760,"results":"36","hashOfConfig":"29"},{"size":3101,"mtime":1770930844760,"results":"37","hashOfConfig":"29"},{"size":5551,"mtime":1770937845891,"results":"38","hashOfConfig":"29"},{"size":6452,"mtime":1770930844761,"results":"39","hashOfConfig":"29"},{"size":7209,"mtime":1770930844761,"results":"40","hashOfConfig":"29"},{"size":6736,"mtime":1770937845893,"results":"41","hashOfConfig":"29"},{"size":5606,"mtime":1770930844761,"results":"42","hashOfConfig":"29"},{"size":6584,"mtime":1770930844762,"results":"43","hashOfConfig":"29"},{"size":2503,"mtime":1770930844757,"results":"44","hashOfConfig":"29"},{"size":3720,"mtime":1770930844760,"results":"45","hashOfConfig":"29"},{"size":5047,"mtime":1770930844761,"results":"46","hashOfConfig":"29"},{"size":3542,"mtime":1770930844759,"results":"47","hashOfConfig":"29"},{"size":2080,"mtime":1770930844760,"results":"48","hashOfConfig":"29"},{"size":6710,"mtime":1770930844760,"results":"49","hashOfConfig":"29"},{"size":5486,"mtime":1770930844758,"results":"50","hashOfConfig":"29"},{"size":3236,"mtime":1770930844758,"results":"51","hashOfConfig":"29"},{"size":7517,"mtime":1770930844761,"results":"52","hashOfConfig":"29"},{"size":8512,"mtime":1770930844761,"results":"53","hashOfConfig":"29"},{"size":407,"mtime":1770930844762,"results":"54","hashOfConfig":"29"},{"size":8487,"mtime":1770930844762,"results":"55","hashOfConfig":"29"},{"filePath":"56","messages":"57","suppressedMessages":"58","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"sz0q8e",{"filePath":"59","messages":"60","suppressedMessages":"61","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"62","messages":"63","suppressedMessages":"64","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"65","messages":"66","suppressedMessages":"67","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"68","messages":"69","suppressedMessages":"70","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"71","messages":"72","suppressedMessages":"73","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"74","messages":"75","suppressedMessages":"76","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"77","messages":"78","suppressedMessages":"79","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"80","messages":"81","suppressedMessages":"82","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"83","messages":"84","suppressedMessages":"85","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"86","messages":"87","suppressedMessages":"88","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"89","messages":"90","suppressedMessages":"91","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"92","messages":"93","suppressedMessages":"94","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"95","messages":"96","suppressedMessages":"97","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"98","messages":"99","suppressedMessages":"100","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"101","messages":"102","suppressedMessages":"103","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"104","messages":"105","suppressedMessages":"106","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"107","messages":"108","suppressedMessages":"109","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"110","messages":"111","suppressedMessages":"112","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"113","messages":"114","suppressedMessages":"115","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"116","messages":"117","suppressedMessages":"118","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"119","messages":"120","suppressedMessages":"121","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"122","messages":"123","suppressedMessages":"124","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"125","messages":"126","suppressedMessages":"127","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"128","messages":"129","suppressedMessages":"130","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"131","messages":"132","suppressedMessages":"133","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"134","messages":"135","suppressedMessages":"136","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"/Users/cpfarhood/Documents/Repositories/headlamp-sealed-secrets-plugin/headlamp-sealed-secrets/src/components/DecryptDialog.tsx",[],[],"/Users/cpfarhood/Documents/Repositories/headlamp-sealed-secrets-plugin/headlamp-sealed-secrets/src/components/EncryptDialog.tsx",[],[],"/Users/cpfarhood/Documents/Repositories/headlamp-sealed-secrets-plugin/headlamp-sealed-secrets/src/components/SealedSecretDetail.tsx",[],[],"/Users/cpfarhood/Documents/Repositories/headlamp-sealed-secrets-plugin/headlamp-sealed-secrets/src/components/SealedSecretList.tsx",[],[],"/Users/cpfarhood/Documents/Repositories/headlamp-sealed-secrets-plugin/headlamp-sealed-secrets/src/components/SealingKeysView.tsx",[],[],"/Users/cpfarhood/Documents/Repositories/headlamp-sealed-secrets-plugin/headlamp-sealed-secrets/src/components/SecretDetailsSection.tsx",[],[],"/Users/cpfarhood/Documents/Repositories/headlamp-sealed-secrets-plugin/headlamp-sealed-secrets/src/components/SettingsPage.tsx",[],[],"/Users/cpfarhood/Documents/Repositories/headlamp-sealed-secrets-plugin/headlamp-sealed-secrets/src/headlamp-plugin.d.ts",[],[],"/Users/cpfarhood/Documents/Repositories/headlamp-sealed-secrets-plugin/headlamp-sealed-secrets/src/index.tsx",[],[],"/Users/cpfarhood/Documents/Repositories/headlamp-sealed-secrets-plugin/headlamp-sealed-secrets/src/lib/SealedSecretCRD.ts",[],[],"/Users/cpfarhood/Documents/Repositories/headlamp-sealed-secrets-plugin/headlamp-sealed-secrets/src/lib/controller.ts",[],[],"/Users/cpfarhood/Documents/Repositories/headlamp-sealed-secrets-plugin/headlamp-sealed-secrets/src/lib/crypto.ts",[],[],"/Users/cpfarhood/Documents/Repositories/headlamp-sealed-secrets-plugin/headlamp-sealed-secrets/src/types.ts",[],[],"/Users/cpfarhood/Documents/Repositories/headlamp-sealed-secrets-plugin/headlamp-sealed-secrets/src/lib/retry.ts",[],[],"/Users/cpfarhood/Documents/Repositories/headlamp-sealed-secrets-plugin/headlamp-sealed-secrets/src/lib/validators.ts",[],[],"/Users/cpfarhood/Documents/Repositories/headlamp-sealed-secrets-plugin/headlamp-sealed-secrets/src/components/ControllerStatus.tsx",[],[],"/Users/cpfarhood/Documents/Repositories/headlamp-sealed-secrets-plugin/headlamp-sealed-secrets/src/hooks/usePermissions.ts",[],[],"/Users/cpfarhood/Documents/Repositories/headlamp-sealed-secrets-plugin/headlamp-sealed-secrets/src/lib/rbac.ts",[],[],"/Users/cpfarhood/Documents/Repositories/headlamp-sealed-secrets-plugin/headlamp-sealed-secrets/src/components/VersionWarning.tsx",[],[],"/Users/cpfarhood/Documents/Repositories/headlamp-sealed-secrets-plugin/headlamp-sealed-secrets/src/hooks/useControllerHealth.ts",[],[],"/Users/cpfarhood/Documents/Repositories/headlamp-sealed-secrets-plugin/headlamp-sealed-secrets/src/hooks/useSealedSecretEncryption.ts",[],[],"/Users/cpfarhood/Documents/Repositories/headlamp-sealed-secrets-plugin/headlamp-sealed-secrets/src/components/ErrorBoundary.tsx",[],[],"/Users/cpfarhood/Documents/Repositories/headlamp-sealed-secrets-plugin/headlamp-sealed-secrets/src/components/LoadingSkeletons.tsx",[],[],"/Users/cpfarhood/Documents/Repositories/headlamp-sealed-secrets-plugin/headlamp-sealed-secrets/src/lib/retry.test.ts",[],[],"/Users/cpfarhood/Documents/Repositories/headlamp-sealed-secrets-plugin/headlamp-sealed-secrets/src/lib/validators.test.ts",[],[],"/Users/cpfarhood/Documents/Repositories/headlamp-sealed-secrets-plugin/headlamp-sealed-secrets/src/test-setup.ts",[],[],"/Users/cpfarhood/Documents/Repositories/headlamp-sealed-secrets-plugin/headlamp-sealed-secrets/src/types.test.ts",[],[]] \ No newline at end of file +[{"/Users/cpfarhood/Documents/Repositories/headlamp-sealed-secrets-plugin/headlamp-sealed-secrets/src/components/DecryptDialog.tsx":"1","/Users/cpfarhood/Documents/Repositories/headlamp-sealed-secrets-plugin/headlamp-sealed-secrets/src/components/EncryptDialog.tsx":"2","/Users/cpfarhood/Documents/Repositories/headlamp-sealed-secrets-plugin/headlamp-sealed-secrets/src/components/SealedSecretDetail.tsx":"3","/Users/cpfarhood/Documents/Repositories/headlamp-sealed-secrets-plugin/headlamp-sealed-secrets/src/components/SealedSecretList.tsx":"4","/Users/cpfarhood/Documents/Repositories/headlamp-sealed-secrets-plugin/headlamp-sealed-secrets/src/components/SealingKeysView.tsx":"5","/Users/cpfarhood/Documents/Repositories/headlamp-sealed-secrets-plugin/headlamp-sealed-secrets/src/components/SecretDetailsSection.tsx":"6","/Users/cpfarhood/Documents/Repositories/headlamp-sealed-secrets-plugin/headlamp-sealed-secrets/src/components/SettingsPage.tsx":"7","/Users/cpfarhood/Documents/Repositories/headlamp-sealed-secrets-plugin/headlamp-sealed-secrets/src/headlamp-plugin.d.ts":"8","/Users/cpfarhood/Documents/Repositories/headlamp-sealed-secrets-plugin/headlamp-sealed-secrets/src/index.tsx":"9","/Users/cpfarhood/Documents/Repositories/headlamp-sealed-secrets-plugin/headlamp-sealed-secrets/src/lib/SealedSecretCRD.ts":"10","/Users/cpfarhood/Documents/Repositories/headlamp-sealed-secrets-plugin/headlamp-sealed-secrets/src/lib/controller.ts":"11","/Users/cpfarhood/Documents/Repositories/headlamp-sealed-secrets-plugin/headlamp-sealed-secrets/src/lib/crypto.ts":"12","/Users/cpfarhood/Documents/Repositories/headlamp-sealed-secrets-plugin/headlamp-sealed-secrets/src/types.ts":"13","/Users/cpfarhood/Documents/Repositories/headlamp-sealed-secrets-plugin/headlamp-sealed-secrets/src/lib/retry.ts":"14","/Users/cpfarhood/Documents/Repositories/headlamp-sealed-secrets-plugin/headlamp-sealed-secrets/src/lib/validators.ts":"15","/Users/cpfarhood/Documents/Repositories/headlamp-sealed-secrets-plugin/headlamp-sealed-secrets/src/components/ControllerStatus.tsx":"16","/Users/cpfarhood/Documents/Repositories/headlamp-sealed-secrets-plugin/headlamp-sealed-secrets/src/hooks/usePermissions.ts":"17","/Users/cpfarhood/Documents/Repositories/headlamp-sealed-secrets-plugin/headlamp-sealed-secrets/src/lib/rbac.ts":"18","/Users/cpfarhood/Documents/Repositories/headlamp-sealed-secrets-plugin/headlamp-sealed-secrets/src/components/VersionWarning.tsx":"19","/Users/cpfarhood/Documents/Repositories/headlamp-sealed-secrets-plugin/headlamp-sealed-secrets/src/hooks/useControllerHealth.ts":"20","/Users/cpfarhood/Documents/Repositories/headlamp-sealed-secrets-plugin/headlamp-sealed-secrets/src/hooks/useSealedSecretEncryption.ts":"21","/Users/cpfarhood/Documents/Repositories/headlamp-sealed-secrets-plugin/headlamp-sealed-secrets/src/components/ErrorBoundary.tsx":"22","/Users/cpfarhood/Documents/Repositories/headlamp-sealed-secrets-plugin/headlamp-sealed-secrets/src/components/LoadingSkeletons.tsx":"23","/Users/cpfarhood/Documents/Repositories/headlamp-sealed-secrets-plugin/headlamp-sealed-secrets/src/lib/retry.test.ts":"24","/Users/cpfarhood/Documents/Repositories/headlamp-sealed-secrets-plugin/headlamp-sealed-secrets/src/lib/validators.test.ts":"25","/Users/cpfarhood/Documents/Repositories/headlamp-sealed-secrets-plugin/headlamp-sealed-secrets/src/test-setup.ts":"26","/Users/cpfarhood/Documents/Repositories/headlamp-sealed-secrets-plugin/headlamp-sealed-secrets/src/types.test.ts":"27"},{"size":5581,"mtime":1770930844758,"results":"28","hashOfConfig":"29"},{"size":9255,"mtime":1770930844758,"results":"30","hashOfConfig":"29"},{"size":9471,"mtime":1770930844758,"results":"31","hashOfConfig":"29"},{"size":4410,"mtime":1770930844759,"results":"32","hashOfConfig":"29"},{"size":6763,"mtime":1770930844759,"results":"33","hashOfConfig":"29"},{"size":2032,"mtime":1770930844759,"results":"34","hashOfConfig":"29"},{"size":5447,"mtime":1770930844759,"results":"35","hashOfConfig":"29"},{"size":654,"mtime":1770930844760,"results":"36","hashOfConfig":"29"},{"size":3101,"mtime":1770930844760,"results":"37","hashOfConfig":"29"},{"size":5550,"mtime":1770937988374,"results":"38","hashOfConfig":"29"},{"size":6452,"mtime":1770930844761,"results":"39","hashOfConfig":"29"},{"size":7209,"mtime":1770930844761,"results":"40","hashOfConfig":"29"},{"size":6736,"mtime":1770937845893,"results":"41","hashOfConfig":"29"},{"size":5606,"mtime":1770930844761,"results":"42","hashOfConfig":"29"},{"size":6584,"mtime":1770930844762,"results":"43","hashOfConfig":"29"},{"size":2503,"mtime":1770930844757,"results":"44","hashOfConfig":"29"},{"size":3720,"mtime":1770930844760,"results":"45","hashOfConfig":"29"},{"size":5047,"mtime":1770930844761,"results":"46","hashOfConfig":"29"},{"size":3542,"mtime":1770930844759,"results":"47","hashOfConfig":"29"},{"size":2080,"mtime":1770930844760,"results":"48","hashOfConfig":"29"},{"size":6710,"mtime":1770930844760,"results":"49","hashOfConfig":"29"},{"size":5486,"mtime":1770930844758,"results":"50","hashOfConfig":"29"},{"size":3236,"mtime":1770930844758,"results":"51","hashOfConfig":"29"},{"size":7517,"mtime":1770930844761,"results":"52","hashOfConfig":"29"},{"size":8512,"mtime":1770930844761,"results":"53","hashOfConfig":"29"},{"size":407,"mtime":1770930844762,"results":"54","hashOfConfig":"29"},{"size":8487,"mtime":1770930844762,"results":"55","hashOfConfig":"29"},{"filePath":"56","messages":"57","suppressedMessages":"58","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"sz0q8e",{"filePath":"59","messages":"60","suppressedMessages":"61","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"62","messages":"63","suppressedMessages":"64","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"65","messages":"66","suppressedMessages":"67","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"68","messages":"69","suppressedMessages":"70","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"71","messages":"72","suppressedMessages":"73","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"74","messages":"75","suppressedMessages":"76","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"77","messages":"78","suppressedMessages":"79","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"80","messages":"81","suppressedMessages":"82","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"83","messages":"84","suppressedMessages":"85","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"86","messages":"87","suppressedMessages":"88","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"89","messages":"90","suppressedMessages":"91","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"92","messages":"93","suppressedMessages":"94","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"95","messages":"96","suppressedMessages":"97","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"98","messages":"99","suppressedMessages":"100","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"101","messages":"102","suppressedMessages":"103","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"104","messages":"105","suppressedMessages":"106","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"107","messages":"108","suppressedMessages":"109","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"110","messages":"111","suppressedMessages":"112","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"113","messages":"114","suppressedMessages":"115","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"116","messages":"117","suppressedMessages":"118","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"119","messages":"120","suppressedMessages":"121","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"122","messages":"123","suppressedMessages":"124","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"125","messages":"126","suppressedMessages":"127","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"128","messages":"129","suppressedMessages":"130","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"131","messages":"132","suppressedMessages":"133","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"134","messages":"135","suppressedMessages":"136","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"/Users/cpfarhood/Documents/Repositories/headlamp-sealed-secrets-plugin/headlamp-sealed-secrets/src/components/DecryptDialog.tsx",[],[],"/Users/cpfarhood/Documents/Repositories/headlamp-sealed-secrets-plugin/headlamp-sealed-secrets/src/components/EncryptDialog.tsx",[],[],"/Users/cpfarhood/Documents/Repositories/headlamp-sealed-secrets-plugin/headlamp-sealed-secrets/src/components/SealedSecretDetail.tsx",[],[],"/Users/cpfarhood/Documents/Repositories/headlamp-sealed-secrets-plugin/headlamp-sealed-secrets/src/components/SealedSecretList.tsx",[],[],"/Users/cpfarhood/Documents/Repositories/headlamp-sealed-secrets-plugin/headlamp-sealed-secrets/src/components/SealingKeysView.tsx",[],[],"/Users/cpfarhood/Documents/Repositories/headlamp-sealed-secrets-plugin/headlamp-sealed-secrets/src/components/SecretDetailsSection.tsx",[],[],"/Users/cpfarhood/Documents/Repositories/headlamp-sealed-secrets-plugin/headlamp-sealed-secrets/src/components/SettingsPage.tsx",[],[],"/Users/cpfarhood/Documents/Repositories/headlamp-sealed-secrets-plugin/headlamp-sealed-secrets/src/headlamp-plugin.d.ts",[],[],"/Users/cpfarhood/Documents/Repositories/headlamp-sealed-secrets-plugin/headlamp-sealed-secrets/src/index.tsx",[],[],"/Users/cpfarhood/Documents/Repositories/headlamp-sealed-secrets-plugin/headlamp-sealed-secrets/src/lib/SealedSecretCRD.ts",[],[],"/Users/cpfarhood/Documents/Repositories/headlamp-sealed-secrets-plugin/headlamp-sealed-secrets/src/lib/controller.ts",[],[],"/Users/cpfarhood/Documents/Repositories/headlamp-sealed-secrets-plugin/headlamp-sealed-secrets/src/lib/crypto.ts",[],[],"/Users/cpfarhood/Documents/Repositories/headlamp-sealed-secrets-plugin/headlamp-sealed-secrets/src/types.ts",[],[],"/Users/cpfarhood/Documents/Repositories/headlamp-sealed-secrets-plugin/headlamp-sealed-secrets/src/lib/retry.ts",[],[],"/Users/cpfarhood/Documents/Repositories/headlamp-sealed-secrets-plugin/headlamp-sealed-secrets/src/lib/validators.ts",[],[],"/Users/cpfarhood/Documents/Repositories/headlamp-sealed-secrets-plugin/headlamp-sealed-secrets/src/components/ControllerStatus.tsx",[],[],"/Users/cpfarhood/Documents/Repositories/headlamp-sealed-secrets-plugin/headlamp-sealed-secrets/src/hooks/usePermissions.ts",[],[],"/Users/cpfarhood/Documents/Repositories/headlamp-sealed-secrets-plugin/headlamp-sealed-secrets/src/lib/rbac.ts",[],[],"/Users/cpfarhood/Documents/Repositories/headlamp-sealed-secrets-plugin/headlamp-sealed-secrets/src/components/VersionWarning.tsx",[],[],"/Users/cpfarhood/Documents/Repositories/headlamp-sealed-secrets-plugin/headlamp-sealed-secrets/src/hooks/useControllerHealth.ts",[],[],"/Users/cpfarhood/Documents/Repositories/headlamp-sealed-secrets-plugin/headlamp-sealed-secrets/src/hooks/useSealedSecretEncryption.ts",[],[],"/Users/cpfarhood/Documents/Repositories/headlamp-sealed-secrets-plugin/headlamp-sealed-secrets/src/components/ErrorBoundary.tsx",[],[],"/Users/cpfarhood/Documents/Repositories/headlamp-sealed-secrets-plugin/headlamp-sealed-secrets/src/components/LoadingSkeletons.tsx",[],[],"/Users/cpfarhood/Documents/Repositories/headlamp-sealed-secrets-plugin/headlamp-sealed-secrets/src/lib/retry.test.ts",[],[],"/Users/cpfarhood/Documents/Repositories/headlamp-sealed-secrets-plugin/headlamp-sealed-secrets/src/lib/validators.test.ts",[],[],"/Users/cpfarhood/Documents/Repositories/headlamp-sealed-secrets-plugin/headlamp-sealed-secrets/src/test-setup.ts",[],[],"/Users/cpfarhood/Documents/Repositories/headlamp-sealed-secrets-plugin/headlamp-sealed-secrets/src/types.test.ts",[],[]] \ No newline at end of file diff --git a/headlamp-sealed-secrets/headlamp-sealed-secrets-0.2.7.tar.gz b/headlamp-sealed-secrets/headlamp-sealed-secrets-0.2.7.tar.gz new file mode 100644 index 0000000..91c386c Binary files /dev/null and b/headlamp-sealed-secrets/headlamp-sealed-secrets-0.2.7.tar.gz differ diff --git a/headlamp-sealed-secrets/package.json b/headlamp-sealed-secrets/package.json index 625dd18..4c83c30 100644 --- a/headlamp-sealed-secrets/package.json +++ b/headlamp-sealed-secrets/package.json @@ -1,6 +1,6 @@ { "name": "headlamp-sealed-secrets", - "version": "0.2.7", + "version": "0.2.8", "description": "Headlamp plugin for Bitnami Sealed Secrets - manage encrypted Kubernetes secrets", "files": [ "dist",