Skip to main content

Manage Kubernetes secrets
without touching kubectl.

Krypton is a lightweight UI and API backed directly by native Secret objects. SSO proves who you are, annotations decide what you may see, and every change is versioned — with Velero, GitOps, and RBAC still in charge underneath.

Secrets dashboard

Browse namespaces, create and edit secrets with masked values until you reveal them.

database-credentials
••••••••••
v3 · 2 keys
feature-flags
postgres://…
v1 · 5 keys

One-click rollbacks

Every write snapshots first into <name>-vN. Restores are reversible by construction.

v3 · current● live
v2 · alice · 09:30restore →
v1 · bob · Tuerestore →

Hybrid authorization

Per-secret annotations override one namespace fallback. Admins always pass.

allowed-groups: dev-team
allowed-users: alice@company.com
no rules → open to all authenticated

OIDC SSO

Keycloak, Entra ID, Okta, Google, GitHub. Users never need cluster credentials.

Continue with Keycloak
Entra IDOktaGoogleGitHub

Consumer restarts

Env-var consumers need a rollout after edits. Volume mounts sync on their own.

deploy/api-serverrestarted ✓
sts/cachevolume · auto-sync

REST API

Drive everything from scripts: CRUD, versions, restores, restarts, auth, config.

GET /api/namespaces200
PUT …/demo-secret200
PUT …stale resourceVersion409

Use the UI, the API, or both. One platform over native Secrets.

Plays nicely with your identity provider — and your platform

Sign in withKeycloakEntra IDOktaGoogleGitHub
Keeps workingkubectlVeleroArgo CDRBACAudit logs

Dashboard

Stay productive without leaving the browser

Namespaces on the left, secrets in the middle, history one click away. Values stay masked until you reveal them — and the audit log only ever records key names.

krypton.example.com/secrets/krypton-test/database-credentials

Namespaces

krypton-test
frontend-ns
production

alice@company.com

dev-team · can edit

database-credentials

v3
EditHistoryRestart apps
DATABASE_URL••••••••••Reveal
DB_PASSWORD••••••••••Reveal
allowed-groups: dev-team1 MiB guard · 412 Betcd encrypted ✓

Automation

Drive Krypton from scripts

Plain REST over JSON with session-cookie auth. Values cross the API as plain strings — base64 stays inside Kubernetes.

  • ✓CRUD plus versions, restores, and consumer restarts
  • ✓resourceVersion writes: 409 instead of silent clobbers
  • ✓Every restore snapshots first — rollbacks stay reversible
Read the API reference →
bash
# Headless authz checks (no browser)
ALICE=$(node sandbox/scripts/mint-jwt.mjs \
  --email alice@company.com --groups dev-team)

curl --cookie "krypton_session=$ALICE" \
  localhost:3000/api/namespaces/krypton-test/secrets

# Optimistic-concurrency update (409 on drift)
curl --cookie "krypton_session=$ALICE" -X PUT \
  -H 'Content-Type: application/json' \
  -d '{"data":{"API_KEY":"<rotated>"},"resourceVersion":"'$RV'"}' \
  localhost:3000/api/namespaces/krypton-test/secrets/demo-secret

# Reversible restore — snapshots current state first
curl --cookie "krypton_session=$ALICE" -X POST \
  -d '{"version":1}' \
  localhost:3000/api/namespaces/krypton-test/secrets/demo-secret/restore

Deployment

Ship it your way

Stateless by design — all state lives in Kubernetes Secrets, so more than one replica is always safe.

Sandbox

kind + Dex + seeded fixtures. Real SSO on localhost in one command.

$ make up
Open the sandbox guide →

Raw manifests

Namespace Role by default, ClusterRole when you need the full dashboard.

$ kubectl apply -f app/k8s/
Deploy to Kubernetes →

Helm + OCI

Umbrella chart or direct OCI install. Chart version tracks the app release.

$ helm install krypton oci://ghcr.io/egose/charts/krypton
Deploy with Helm →

Open source

Open source from day one

Apache-2.0 licensed. No database to operate, no proprietary control plane — Kubernetes is the source of truth and the code stays boring on purpose.

0
databases to operate
1
ConfigMap for access rules
N
native Secrets, versioned

Stop pasting secrets into chat.

Give developers self-service secrets with SSO login, group-based access, and versioned history — while platform keeps RBAC, audit, and GitOps exactly as they are.