Skip to main content
In this guide, you’ll deploy the Bitnami Sealed Secrets controller using Flux CD and learn how to seal Kubernetes Secrets for safe Git storage. Follow the steps below to get started.

Prerequisites

  • A running Kubernetes cluster and configured kubectl context
  • Flux v2 installed (Flux CLI Install)
  • A Git repository (e.g., bb-app-source-git) with an infrastructure branch

1. Switch to the infrastructure branch

Always ensure your working directory is clean before switching branches.
Expected output:

2. Define the Helm repository

Create a HelmRepository manifest under the bitnami-sealed-secrets directory to let Flux pull the Sealed Secrets charts.
Commit and push:

3. Create a Flux Kustomization

In your Flux cluster repo (for example, block-buster/flux-clusters/dev-cluster), scaffold a Kustomization that points to the Sealed Secrets path.
Commit and reconcile:

4. Verify the Sealed Secrets controller

The controller is deployed in the kube-system namespace. Run:
You should see: A TLS Secret (kubernetes.io/tls) containing the controller’s key pair is also created in kube-system.

5. Install the kubeseal CLI

Download and install the latest kubeseal binary:
Validate installation:
Expected:

6. Fetch the Sealed Secrets public certificate

You need the controller’s public key to seal secrets locally:
This outputs sealed-secrets.pub, which you will use to encrypt your Kubernetes Secrets.

7. Seal and commit Kubernetes Secrets

  1. Create a plain Secret manifest (secret.yaml).
  2. Run:
  3. Review, commit, and push sealed-secret.yaml to your Git repo. Flux will apply it automatically.

Watch Video