Skip to content

feat(netbird): structured database config with Initium init containers#2

Merged
mikkeldamsgaard merged 1 commit intomainfrom
issue-1-structured-db-config
Feb 25, 2026
Merged

feat(netbird): structured database config with Initium init containers#2
mikkeldamsgaard merged 1 commit intomainfrom
issue-1-structured-db-config

Conversation

@mikkeldamsgaard
Copy link
Contributor

Summary

Replace raw DSN configuration with structured database.* values and add Initium init containers for database readiness checking and automatic database creation.

Changes

Breaking

  • Replaced server.secrets.storeDsn with structured database.type, database.host, database.port, database.user, database.name, database.passwordSecret, and database.sslMode
  • Removed server.config.store.engine — use database.type instead (sqlite, postgresql, mysql)

Added

  • Structured database configuration with per-engine defaults (port 5432/postgresql, 3306/mysql)
  • db-wait init container — Initium wait-for TCP probe with 120s timeout
  • db-seed init container — Initium seed with create_if_missing: true
  • Seed spec rendered as seed.yaml in server ConfigMap for non-sqlite engines
  • DB_PASSWORD env var injection into config-init for DSN rendering
  • Initium image v1.0.0 (duration string timeout format)
  • CHANGELOG.md
  • Example seed configurations under examples/seed/ (PostgreSQL + MySQL)
  • Updated README with structured database docs, examples, and full values reference
  • 10 new unit tests (120 total)

Verified

Replace raw DSN configuration with structured database.* values and
add Initium init containers for database readiness and creation.
Changes:
- Replace server.secrets.storeDsn with structured database.type,
  database.host, database.port, database.user, database.name,
  database.passwordSecret, and database.sslMode
- Construct DSN internally from structured values (postgresql, mysql)
- Add db-wait init container using Initium wait-for (TCP probe, 120s timeout)
- Add db-seed init container using Initium seed (create_if_missing: true)
- Render seed spec as seed.yaml in server ConfigMap for non-sqlite engines
- Inject DB_PASSWORD via secretKeyRef into config-init for DSN rendering
- Upgrade Initium image to v1.0.0 (duration string timeout format)
- Add CHANGELOG.md
- Add example seed configurations under examples/seed/
- Update README with structured database docs, PostgreSQL/MySQL examples,
  and full values reference
- Add 10 new unit tests (120 total) covering init container ordering,
  env var injection, and database-specific rendering
- E2E tests verified with SQLite, PostgreSQL, and MySQL backends
Closes #1
@mikkeldamsgaard mikkeldamsgaard force-pushed the issue-1-structured-db-config branch from c362667 to b7bd8fc Compare February 25, 2026 08:29
@mikkeldamsgaard mikkeldamsgaard merged commit 494c3ea into main Feb 25, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Improve Database Config and Integrate Initium for DB Initialization

1 participant