46d59b48b5
Updated all GitHub URLs from cpfarhood to privilegedescalation organization: - Repository URLs in package.json and Artifact Hub metadata - Documentation links and references - Git remote updated No functional changes - this is purely an organizational migration. Co-Authored-By: Claude <noreply@anthropic.com> Co-Authored-By: Happy <yesreply@happy.engineering>
241 lines
6.2 KiB
Markdown
241 lines
6.2 KiB
Markdown
# Headlamp Plugin Manager Installation Guide
|
|
|
|
This guide covers installing the Sealed Secrets plugin into Headlamp.
|
|
|
|
## Prerequisites
|
|
|
|
1. **Headlamp Desktop App** (v0.13.0 or later) installed
|
|
2. **Sealed Secrets Controller** installed in your Kubernetes cluster:
|
|
```bash
|
|
kubectl apply -f https://github.com/bitnami-labs/sealed-secrets/releases/download/v0.24.0/controller.yaml
|
|
```
|
|
|
|
## Installation Methods
|
|
|
|
### Method 1: Local Installation (Development/Testing)
|
|
|
|
This method is ideal for local testing or development.
|
|
|
|
1. **Build the plugin**:
|
|
```bash
|
|
cd headlamp-sealed-secrets
|
|
npm install
|
|
npm run build
|
|
```
|
|
|
|
2. **Copy to Headlamp plugins directory**:
|
|
|
|
**macOS**:
|
|
```bash
|
|
mkdir -p ~/Library/Application\ Support/Headlamp/plugins/headlamp-sealed-secrets
|
|
cp -r dist/* ~/Library/Application\ Support/Headlamp/plugins/headlamp-sealed-secrets/
|
|
cp package.json ~/Library/Application\ Support/Headlamp/plugins/headlamp-sealed-secrets/
|
|
```
|
|
|
|
**Linux**:
|
|
```bash
|
|
mkdir -p ~/.config/Headlamp/plugins/headlamp-sealed-secrets
|
|
cp -r dist/* ~/.config/Headlamp/plugins/headlamp-sealed-secrets/
|
|
cp package.json ~/.config/Headlamp/plugins/headlamp-sealed-secrets/
|
|
```
|
|
|
|
**Windows**:
|
|
```powershell
|
|
mkdir $env:APPDATA\Headlamp\plugins\headlamp-sealed-secrets
|
|
Copy-Item -Recurse dist\* $env:APPDATA\Headlamp\plugins\headlamp-sealed-secrets\
|
|
Copy-Item package.json $env:APPDATA\Headlamp\plugins\headlamp-sealed-secrets\
|
|
```
|
|
|
|
3. **Restart Headlamp** - The plugin will be loaded automatically.
|
|
|
|
### Method 2: Install from NPM (Recommended for Users)
|
|
|
|
Once the plugin is published to NPM:
|
|
|
|
```bash
|
|
npm install -g headlamp-sealed-secrets
|
|
```
|
|
|
|
Then follow the same directory copy steps as Method 1.
|
|
|
|
### Method 3: Headlamp Server with Plugin Support
|
|
|
|
If you're running Headlamp in server mode with plugin support:
|
|
|
|
1. **Set plugin directory** when starting Headlamp:
|
|
```bash
|
|
headlamp-server -plugins-dir=/path/to/plugins
|
|
```
|
|
|
|
2. **Copy plugin to the plugins directory**:
|
|
```bash
|
|
cp -r dist /path/to/plugins/headlamp-sealed-secrets
|
|
```
|
|
|
|
### Method 4: Kubernetes Deployment with Plugins
|
|
|
|
For Kubernetes deployments of Headlamp:
|
|
|
|
1. **Create a ConfigMap** with the plugin:
|
|
```bash
|
|
kubectl create configmap headlamp-sealed-secrets-plugin \
|
|
--from-file=main.js=dist/main.js \
|
|
--from-file=package.json=package.json \
|
|
-n headlamp
|
|
```
|
|
|
|
2. **Mount the ConfigMap** in your Headlamp deployment:
|
|
```yaml
|
|
apiVersion: apps/v1
|
|
kind: Deployment
|
|
metadata:
|
|
name: headlamp
|
|
namespace: headlamp
|
|
spec:
|
|
template:
|
|
spec:
|
|
containers:
|
|
- name: headlamp
|
|
image: ghcr.io/headlamp-k8s/headlamp:latest
|
|
volumeMounts:
|
|
- name: plugins
|
|
mountPath: /headlamp/plugins/headlamp-sealed-secrets
|
|
volumes:
|
|
- name: plugins
|
|
configMap:
|
|
name: headlamp-sealed-secrets-plugin
|
|
```
|
|
|
|
## Verifying Installation
|
|
|
|
1. **Open Headlamp** and connect to your Kubernetes cluster
|
|
2. **Check the sidebar** - You should see a new "Sealed Secrets" menu item
|
|
3. **Navigate to Sealed Secrets** to verify the plugin loaded correctly
|
|
|
|
### Expected Features
|
|
|
|
After successful installation, you'll have access to:
|
|
|
|
- **SealedSecrets List** - View all sealed secrets across namespaces
|
|
- **Create Sealed Secret** - Encrypt and create new sealed secrets
|
|
- **Sealing Keys** - View and download public sealing certificates
|
|
- **Controller Health** - Monitor sealed-secrets controller status
|
|
- **Settings** - Configure plugin behavior
|
|
|
|
## Troubleshooting
|
|
|
|
### Plugin Not Showing Up
|
|
|
|
1. **Check plugin directory location**:
|
|
- macOS: `~/Library/Application Support/Headlamp/plugins/`
|
|
- Linux: `~/.config/Headlamp/plugins/`
|
|
- Windows: `%APPDATA%\Headlamp\plugins\`
|
|
|
|
2. **Verify file structure**:
|
|
```
|
|
headlamp-sealed-secrets/
|
|
├── main.js # Built plugin code (required)
|
|
└── package.json # Plugin metadata (required)
|
|
```
|
|
|
|
3. **Check Headlamp version**:
|
|
```bash
|
|
headlamp --version # Should be v0.13.0 or later
|
|
```
|
|
|
|
4. **Check console for errors**:
|
|
- Open Headlamp Developer Tools: View → Toggle Developer Tools
|
|
- Look for plugin loading errors in the Console tab
|
|
|
|
### Controller Not Found
|
|
|
|
If you see "Sealed Secrets controller not found":
|
|
|
|
1. **Verify controller is running**:
|
|
```bash
|
|
kubectl get pods -n kube-system -l name=sealed-secrets-controller
|
|
```
|
|
|
|
2. **Check controller service**:
|
|
```bash
|
|
kubectl get svc -n kube-system sealed-secrets-controller
|
|
```
|
|
|
|
3. **Install the controller** if missing:
|
|
```bash
|
|
kubectl apply -f https://github.com/bitnami-labs/sealed-secrets/releases/download/v0.24.0/controller.yaml
|
|
```
|
|
|
|
### Permission Errors
|
|
|
|
If you see permission-related errors:
|
|
|
|
1. **Check RBAC permissions** - Ensure your user has permissions to:
|
|
- List/Get/Create `SealedSecret` resources
|
|
- Get `Service` resources (to fetch certificates)
|
|
- List `Namespace` resources
|
|
|
|
2. **Verify CRD installation**:
|
|
```bash
|
|
kubectl get crd sealedsecrets.bitnami.com
|
|
```
|
|
|
|
## Uninstallation
|
|
|
|
To remove the plugin:
|
|
|
|
**macOS**:
|
|
```bash
|
|
rm -rf ~/Library/Application\ Support/Headlamp/plugins/headlamp-sealed-secrets
|
|
```
|
|
|
|
**Linux**:
|
|
```bash
|
|
rm -rf ~/.config/Headlamp/plugins/headlamp-sealed-secrets
|
|
```
|
|
|
|
**Windows**:
|
|
```powershell
|
|
Remove-Item -Recurse $env:APPDATA\Headlamp\plugins\headlamp-sealed-secrets
|
|
```
|
|
|
|
Then restart Headlamp.
|
|
|
|
## Development Mode
|
|
|
|
For plugin development with hot reload:
|
|
|
|
```bash
|
|
cd headlamp-sealed-secrets
|
|
npm install
|
|
npm start
|
|
```
|
|
|
|
This starts the development server with hot reload. Any changes to the source code will automatically rebuild and reload the plugin in Headlamp.
|
|
|
|
## Plugin Updates
|
|
|
|
To update the plugin:
|
|
|
|
1. **Pull latest changes**:
|
|
```bash
|
|
git pull origin main
|
|
cd headlamp-sealed-secrets
|
|
```
|
|
|
|
2. **Rebuild and reinstall**:
|
|
```bash
|
|
npm install
|
|
npm run build
|
|
# Then copy to plugins directory (see Method 1 above)
|
|
```
|
|
|
|
3. **Restart Headlamp** to load the updated plugin.
|
|
|
|
## Support
|
|
|
|
- **Issues**: https://github.com/privilegedescalation/headlamp-sealed-secrets-plugin/issues
|
|
- **Documentation**: See [README.md](headlamp-sealed-secrets/README.md)
|
|
- **Headlamp Docs**: https://headlamp.dev/docs/latest/
|
|
- **Sealed Secrets**: https://github.com/bitnami-labs/sealed-secrets
|