Skip to content

feat(deploy): manage operator secrets in the OpenBao web UI - #14

Merged
BryanLawless merged 2 commits into
devfrom
feat/openbao-ui
Nov 4, 2026
Merged

BryanLawless merged 2 commits into
devfrom
feat/openbao-ui

Conversation

@BryanLawless

@BryanLawless BryanLawless commented Nov 4, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Operator secrets are now managed in OpenBao's web UI instead of gitignored env files pushed by a script.

  • moon run deploy:openbao forwards OpenBao to localhost:18200, logs in through Kubernetes auth as a new snapflow-operator role and prints a one-hour token to sign in with. OpenBao stays cluster-internal; the UI is never routed through Traefik.
  • The snapflow-operator policy (written by the configure job) can create, edit, roll back and delete only the operator secrets: snapflow/api, alerts, backups, cloudflare-dns and edges/*. It cannot read the keyrings and platform credentials the job generates, write any other path, or change OpenBao itself. The old shell used the far broader snapflow-configure role.
  • Closing the session (Ctrl-C) annotates every ExternalSecret with force-sync, so edits reach the cluster at once instead of at the hourly refresh, as the push did.
  • ui = true in the OpenBao server config.
  • Removed: deploy:secrets, push-secrets.sh, openbao-shell.sh and lib/openbao-session.sh.

The /deploy/secrets/production/ gitignore entry stays until the operator has moved its existing local values into OpenBao and deleted the folder, so those files can never be committed by accident.

Testing

  • Against a throwaway OpenBao 2.7.1 (the pinned image) with the policy generated exactly as configure.sh writes it, an operator token could create, update, read, roll back and delete snapflow/api and snapflow/edges/home, and list snapflow/ and snapflow/edges/; it was denied reading or writing snapflow/api/encryption-keyring and snapflow/platform/redis, writing other paths, writing policies and listing mounts.
  • deploy/scripts/validate.sh passes for every stage; shellcheck is clean on the new and changed scripts.

Replace the gitignored env files and their push script with OpenBao's web
UI. moon run deploy:openbao forwards OpenBao to localhost, logs in through
Kubernetes auth as a new snapflow-operator role and prints a one-hour token.
That role can create, edit, roll back and delete only the operator secrets
(api, alerts, backups, cloudflare-dns and edges/*); it cannot read the
keyrings and platform credentials the configure job generates or change
OpenBao itself. Closing the session asks External Secrets to sync at once.

The deploy:secrets task, push-secrets.sh, the OpenBao shell and its session
library are removed.
@coderabbitai

coderabbitai Bot commented Nov 4, 2026 •

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 4f706887-c95a-41ac-a88d-f2d983d8b90e

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • Trigger review
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

Share

@github-actions github-actions Bot added the documentation Improvements or additions to documentation label Nov 4, 2026
@BryanLawless
BryanLawless merged commit 265ec32 into dev Nov 4, 2026
13 checks passed
@BryanLawless
BryanLawless deleted the feat/openbao-ui branch November 4, 2026 20:28
BryanLawless added a commit that referenced this pull request Nov 5, 2026
Pull requests are now squash-merged directly into main; dev, its workflow, sync-dev and the dev ruleset are retired. Pushes to main run CI, publish the changed images and run release-please, and Flux image automation pins digests on main.

Also brings in the changes merged into dev since the last promotion:
- feat(deploy): manage operator secrets in the OpenBao web UI (#14)
- feat(deploy): add dynamic DNS, a host firewall and read-only database access (#15)
- chore: remove the docs folder (#16)
- chore: remove dead code, configuration and unused runtime options (#17)
- fix(api): restore the executable bit on the GeoIP download script (#19)
- ci: rebuild the api image when the GeoIP download script changes (#20)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant