This repository has been archived on 2026-06-16. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
headlamp-sealed-secrets-plugin/headlamp-sealed-secrets-plugin/0.2.4
Chris Farhood b44f118196 fix: update owner references from cpfarhood to privilegedescalation
- Updated artifacthub-repo.yml owner and email
- Updated all artifacthub-pkg.yml files (current and historical versions)
- Updated package.json author
- Updated README.md badge URLs
- Updated all version-specific metadata files

Part of organization migration from cpfarhood to privilegedescalation.
2026-02-12 11:55:25 -05:00
..

Headlamp Sealed Secrets Plugin

A Headlamp plugin for managing Bitnami Sealed Secrets in Kubernetes clusters.

Features

  • Client-Side Encryption: Encrypt secrets in your browser using the controller's public key
  • Resource Management: List, view, create, and manage SealedSecrets
  • Key Management: View sealing key pairs and download public certificates
  • RBAC Integration: UI adapts to user permissions
  • Decryption Support: View decrypted values (requires appropriate RBAC permissions)

Installation

Prerequisites

  1. Headlamp v0.13.0 or later
  2. Sealed Secrets controller installed on your cluster:
    kubectl apply -f https://github.com/bitnami-labs/sealed-secrets/releases/download/v0.24.0/controller.yaml
    

Install Plugin

The plugin can be installed directly from Artifact Hub through Headlamp's plugin manager, or manually:

# Download and extract
curl -LO https://github.com/privilegedescalation/headlamp-sealed-secrets-plugin/releases/download/v0.2.4/headlamp-sealed-secrets-0.2.4.tar.gz
tar -xzf headlamp-sealed-secrets-0.2.4.tar.gz

# Copy to plugins directory
# macOS
cp -r headlamp-sealed-secrets ~/Library/Application\ Support/Headlamp/plugins/

# Linux
cp -r headlamp-sealed-secrets ~/.config/Headlamp/plugins/

# Restart Headlamp

Usage

Creating a SealedSecret

  1. Navigate to Sealed Secrets in the sidebar
  2. Click Create Sealed Secret
  3. Fill in name, namespace, scope, and key-value pairs
  4. Click Create

The plugin encrypts values client-side and applies the SealedSecret to the cluster. The controller creates the corresponding Kubernetes Secret.

Viewing and Managing

  • List View: Browse all SealedSecrets with filtering
  • Detail View: Inspect encrypted data and status
  • Decrypt: View plaintext values (requires RBAC permissions)
  • Re-encrypt: Rotate with current active key

Managing Keys

Navigate to Sealed Secrets > Sealing Keys to:

  • View all sealing key pairs
  • Check certificate validity
  • Download public certificates for CLI use

Architecture

The plugin implements the same encryption algorithm as kubeseal:

  1. Fetches the controller's public certificate via Kubernetes API
  2. Encrypts values using RSA-OAEP + AES-256-GCM
  3. Creates SealedSecret resources
  4. Controller decrypts and creates Secrets

All encryption happens in the browser. Plaintext values never leave your machine.

Technical Details

  • Language: TypeScript with strict mode
  • Crypto Library: node-forge (RSA-OAEP + AES-256-GCM)
  • Bundle Size: 358.18 kB (98.04 kB gzipped)
  • Test Coverage: 92%
  • License: Apache-2.0

Troubleshooting

Controller not found

# Install controller
kubectl apply -f https://github.com/bitnami-labs/sealed-secrets/releases/download/v0.24.0/controller.yaml

# Verify running
kubectl get pods -n kube-system -l name=sealed-secrets-controller

Failed to fetch certificate

  • Check controller settings (name, namespace, port)
  • Verify controller is running and accessible

Decrypt fails

  • Ensure SealedSecret status shows "Synced"
  • Verify RBAC permissions: kubectl auth can-i get secrets -n <namespace>

Contributing

Contributions welcome! See GitHub repository for details.

License

Apache License 2.0 - See LICENSE for details.