https://github.com/ricoberger/sealed-secrets-web
A web interface for Sealed Secrets by Bitnami.
https://github.com/ricoberger/sealed-secrets-web
devops-workflow gitops helm helm-chart kubernetes kubernetes-secrets sealed-secrets web-interface
Last synced: 5 days ago
JSON representation
A web interface for Sealed Secrets by Bitnami.
- Host: GitHub
- URL: https://github.com/ricoberger/sealed-secrets-web
- Owner: ricoberger
- License: mit
- Archived: true
- Created: 2019-07-09T16:55:07.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2021-08-27T16:36:35.000Z (over 4 years ago)
- Last Synced: 2025-05-07T18:46:05.553Z (9 months ago)
- Topics: devops-workflow, gitops, helm, helm-chart, kubernetes, kubernetes-secrets, sealed-secrets, web-interface
- Language: JavaScript
- Homepage:
- Size: 4.14 MB
- Stars: 26
- Watchers: 2
- Forks: 5
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
> **Attention:** [@bakito](https://github.com/bakito) maintains an improved version of **Sealed Secrets Web** in the following repository: [bakito/sealed-secrets-web](https://github.com/bakito/sealed-secrets-web).
>
> The new Docker image can be found at [ghcr.io/bakito/sealed-secrets-web](ghcr.io/bakito/sealed-secrets-web) or [quay.io/bakito/sealed-secrets-web](quay.io/bakito/sealed-secrets-web). The new Helm chart is available at [https://bakito.github.io/helm-charts/](https://bakito.github.io/helm-charts/).
>
> A big thank you to [@bakito](https://github.com/bakito) for taking over the ownership of this project.
A web interface for [Sealed Secrets](https://github.com/bitnami-labs/sealed-secrets) by Bitnami.
**Sealed Secrets Web** is a web interface for [Sealed Secrets](https://github.com/bitnami-labs/sealed-secrets) by Bitnami. The web interface let you encode, decode the keys in the `data` field of a secret, load existing Sealed Secrets and create Sealed Secrets. Under the hood it uses the [kubeseal](https://github.com/bitnami-labs/sealed-secrets/tree/master/cmd/kubeseal) command-line tool to encrypt your secrets. The web interface should be installed to your Kubernetes cluster, so your developers do not need access to your cluster via kubectl.
- **Encode:** Base64 encodes each key in the `data` field in a secret.
- **Decode:** Base64 decodes each key in the `data` field in a secret.
- **Secrets:** Returns a list of all Sealed Secrets in all namespaces. With a click on the Sealed Secret the decrypted Kubernetes secret is loaded.
- **Seal:** Encrypt a Kubernetes secret and creates the Sealed Secret.
## Installation
**sealed-secrets-web** can be installed via our Helm chart:
```sh
helm repo add ricoberger https://ricoberger.github.io/helm-charts
helm up
helm upgrade --install sealed-secrets-web ricoberger/sealed-secrets-web
```
To modify the settings for Sealed Secrets you can modify the arguments for the Docker image with the `--set` flag. For example you can set a different `controller-name` during the installation with the following command:
```sh
helm upgrade --install sealed-secrets-web ricoberger/sealed-secrets-web --set image.args={"--kubeseal-arguments=--controller-name=sealed-secrets"}
```
## Development
For development we are using a local Kubernetes cluster using kind. When the cluster is created we install **Sealed Secrets** using Helm:
```sh
./kind.sh
helm repo add sealed-secrets https://bitnami-labs.github.io/sealed-secrets
helm install sealed-secrets sealed-secrets/sealed-secrets --namespace kube-system
# Test the installation:
echo -n bar | kubectl create secret generic mysecret --dry-run=client --from-file=foo=/dev/stdin -o json >mysecret.json
kubeseal mysealedsecret.json --controller-name sealed-secrets
kubectl create -f mysealedsecret.json
kubectl get secret mysecret
```
Then we can build the Docker image and push it to the local registry:
```sh
make build-linux-amd64
docker build -f cmd/sealedsecretsweb/Dockerfile -t localhost:5000/sealed-secrets-web:dev .
docker push localhost:5000/sealed-secrets-web:dev
```
Finally we can install **Sealed Secrets Web** using the provided Helm chart:
```sh
kubectl create namespace sealed-secrets-web
helm upgrade --install sealed-secrets-web ricoberger/sealed-secrets-web --namespace sealed-secrets-web --set image.args={"--kubeseal-arguments=--controller-name=sealed-secrets"} --set image.repository=localhost:5000/sealed-secrets-web --set image.tag=dev --set image.pullPolicy=Always
# Access the Web UI:
kubectl port-forward svc/sealed-secrets-web 8080:80
```