Compare commits

...

6 Commits

Author SHA1 Message Date
github-actions[bot] cd5a8c40ee chore: release v0.2.18 2026-02-13 21:00:55 +00:00
Chris Farhood 1ec8340a0f fix: restore SectionBox wrapper in SettingsPage to fix React context
The plugin settings page requires SectionBox from CommonComponents
to properly initialize the React context. Without it, React.useState
is undefined causing runtime errors.

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>
2026-02-13 15:59:25 -05:00
github-actions[bot] 2f746486db chore: release v0.2.17 2026-02-13 18:01:14 +00:00
Chris Farhood 55b10c5ab2 fix: use jq instead of node for package name extraction
jq is available in GitHub Actions without needing Node.js setup first.

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>
2026-02-13 12:59:54 -05:00
Chris Farhood a7761e992b fix: make release workflow use dynamic package name from package.json
Changed hardcoded 'headlamp-sealed-secrets' references to dynamically
read package name, allowing package.json name to be 'sealed-secrets'.

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>
2026-02-13 12:59:10 -05:00
Chris Farhood 679922e711 fix: change package name from headlamp-sealed-secrets to sealed-secrets
This matches the polaris plugin naming convention where the package
name is just 'polaris', causing Headlamp to display 'sealed-secrets'
in the plugin settings list instead of 'headlamp-sealed-secrets'.

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>
2026-02-13 12:56:44 -05:00
4 changed files with 30 additions and 20 deletions
+18 -10
View File
@@ -24,6 +24,14 @@ jobs:
- name: Checkout
uses: actions/checkout@v4
- name: Get package name
id: package_name
working-directory: ./headlamp-sealed-secrets
run: |
PKG_NAME=$(jq -r '.name' package.json)
echo "name=${PKG_NAME}" >> $GITHUB_OUTPUT
echo "Package name: ${PKG_NAME}"
- name: Configure git
run: |
git config user.name "github-actions[bot]"
@@ -38,7 +46,7 @@ jobs:
- name: Update artifacthub-pkg.yml version
run: |
VERSION="${{ inputs.version }}"
RELEASE_URL="https://github.com/${{ github.repository }}/releases/download/v${VERSION}/headlamp-sealed-secrets-${VERSION}.tar.gz"
RELEASE_URL="https://github.com/${{ github.repository }}/releases/download/v${VERSION}/${{ steps.package_name.outputs.name }}-${VERSION}.tar.gz"
sed -i "s|^version:.*|version: ${VERSION}|" artifacthub-pkg.yml
sed -i "s|^appVersion:.*|appVersion: ${VERSION}|" artifacthub-pkg.yml
@@ -74,7 +82,7 @@ jobs:
- name: Move tarball to root
working-directory: ./headlamp-sealed-secrets
run: |
TARBALL="headlamp-sealed-secrets-${{ inputs.version }}.tar.gz"
TARBALL="${{ steps.package_name.outputs.name }}-${{ inputs.version }}.tar.gz"
if [ ! -f "${TARBALL}" ]; then
echo "::error::Expected tarball ${TARBALL} not found"
ls -la *.tar.gz
@@ -85,7 +93,7 @@ jobs:
- name: Validate tarball name
run: |
EXPECTED="headlamp-sealed-secrets-${{ inputs.version }}.tar.gz"
EXPECTED="${{ steps.package_name.outputs.name }}-${{ inputs.version }}.tar.gz"
ACTUAL=$(ls *.tar.gz)
if [ "$EXPECTED" != "$ACTUAL" ]; then
echo "::error::Tarball name mismatch! Expected: $EXPECTED, Got: $ACTUAL"
@@ -96,19 +104,19 @@ jobs:
- name: Compute checksum
id: compute_checksum
run: |
TARBALL="headlamp-sealed-secrets-${{ inputs.version }}.tar.gz"
TARBALL="${{ steps.package_name.outputs.name }}-${{ inputs.version }}.tar.gz"
CHECKSUM=$(sha256sum "$TARBALL" | awk '{print $1}')
echo "checksum=${CHECKSUM}" >> $GITHUB_OUTPUT
echo "Checksum: sha256:${CHECKSUM}"
- name: Verify tarball contents
run: |
TARBALL="headlamp-sealed-secrets-${{ inputs.version }}.tar.gz"
TARBALL="${{ steps.package_name.outputs.name }}-${{ inputs.version }}.tar.gz"
echo "Tarball contents:"
tar -tzf "${TARBALL}" | head -20
# Verify main.js exists (structure is headlamp-sealed-secrets/main.js)
if ! tar -tzf "${TARBALL}" | grep -q "headlamp-sealed-secrets/main.js"; then
# Verify main.js exists (structure is <package-name>/main.js)
if ! tar -tzf "${TARBALL}" | grep -q "${{ steps.package_name.outputs.name }}/main.js"; then
echo "::error::main.js not found in tarball"
exit 1
fi
@@ -134,7 +142,7 @@ jobs:
uses: softprops/action-gh-release@v2
with:
tag_name: "v${{ inputs.version }}"
files: headlamp-sealed-secrets-${{ inputs.version }}.tar.gz
files: ${{ steps.package_name.outputs.name }}-${{ inputs.version }}.tar.gz
fail_on_unmatched_files: true
draft: false
prerelease: false
@@ -147,9 +155,9 @@ jobs:
echo "Release Summary:"
echo "=================="
echo "Version: v${{ inputs.version }}"
echo "Tarball: headlamp-sealed-secrets-${{ inputs.version }}.tar.gz"
echo "Tarball: ${{ steps.package_name.outputs.name }}-${{ inputs.version }}.tar.gz"
echo "Checksum: sha256:${{ steps.compute_checksum.outputs.checksum }}"
echo "Archive URL: https://github.com/${{ github.repository }}/releases/download/v${{ inputs.version }}/headlamp-sealed-secrets-${{ inputs.version }}.tar.gz"
echo "Archive URL: https://github.com/${{ github.repository }}/releases/download/v${{ inputs.version }}/${{ steps.package_name.outputs.name }}-${{ inputs.version }}.tar.gz"
echo ""
echo "✓ Version bumped to ${{ inputs.version }}"
echo "✓ Metadata updated with checksum"
+5 -5
View File
@@ -1,13 +1,13 @@
# Artifact Hub package metadata file
# https://github.com/artifacthub/hub/blob/master/docs/metadata/artifacthub-pkg.yml
version: 0.2.16
name: headlamp-sealed-secrets
version: 0.2.18
name: sealed-secrets
displayName: Sealed Secrets
createdAt: "2026-02-12T00:00:00Z"
description: A comprehensive Headlamp plugin for managing Bitnami Sealed Secrets with client-side encryption and RBAC-aware UI
license: Apache-2.0
homeURL: https://github.com/privilegedescalation/headlamp-sealed-secrets-plugin
appVersion: 0.2.16
appVersion: 0.2.18
containersImages:
- name: sealed-secrets-controller
image: docker.io/bitnami/sealed-secrets-controller:v0.24.0
@@ -19,8 +19,8 @@ keywords:
- encryption
- security
annotations:
headlamp/plugin/archive-url: "https://github.com/privilegedescalation/headlamp-sealed-secrets-plugin/releases/download/v0.2.16/headlamp-sealed-secrets-0.2.16.tar.gz"
headlamp/plugin/archive-checksum: sha256:a71c98341e07a9bb946a75ee3a3d139b9dcb6c905464950685fc6779b229e5cf
headlamp/plugin/archive-url: "https://github.com/privilegedescalation/headlamp-sealed-secrets-plugin/releases/download/v0.2.18/sealed-secrets-0.2.18.tar.gz"
headlamp/plugin/archive-checksum: sha256:b110bd4a2ac333ab17881c9f097f0b796edffa48ad9d95be6fda15236a503475
headlamp/plugin/version-compat: ">=0.13.0"
headlamp/plugin/distro-compat: "desktop,in-cluster,web,docker-desktop"
links:
+2 -3
View File
@@ -1,7 +1,6 @@
{
"name": "headlamp-sealed-secrets",
"displayName": "Sealed Secrets",
"version": "0.2.16",
"name": "sealed-secrets",
"version": "0.2.18",
"description": "Headlamp plugin for Bitnami Sealed Secrets - manage encrypted Kubernetes secrets",
"files": [
"dist",
@@ -4,6 +4,7 @@
* Configuration page for the Sealed Secrets plugin
*/
import { SectionBox } from '@kinvolk/headlamp-plugin/lib/CommonComponents';
import { Box, Button, Divider, TextField, Typography } from '@mui/material';
import { useSnackbar } from 'notistack';
import React from 'react';
@@ -34,7 +35,8 @@ export function SettingsPage() {
};
return (
<Box p={3}>
<SectionBox title="Sealed Secrets Plugin Settings">
<Box p={3}>
<Typography variant="body1" paragraph id="settings-description">
Configure the connection to your Sealed Secrets controller. These settings are stored in
your browser's local storage.
@@ -151,6 +153,7 @@ export function SettingsPage() {
<dd style={{ display: 'inline', margin: 0 }}>8080</dd>
</Typography>
</Box>
</Box>
</Box>
</SectionBox>
);
}