Skip to content

Add kubedb provisioning client package (all KubeDB databases)#36

Open
tamalsaha wants to merge 1 commit into
masterfrom
add-kubedb-shared-module
Open

Add kubedb provisioning client package (all KubeDB databases)#36
tamalsaha wants to merge 1 commit into
masterfrom
add-kubedb-shared-module

Conversation

@tamalsaha

@tamalsaha tamalsaha commented Jul 15, 2026

Copy link
Copy Markdown
Member

Adds a kubedb package to the existing go.bytebuilders.dev/client module: a thin, dependency-free (stdlib-only) client for the KubeDB Platform API Server's Helm editor-mode provisioning flow. It is imported as go.bytebuilders.dev/client/kubedb by the bmchelix and servicenow provisioning adapters.

What it provides

  • Editor-mode provisioningoptions/model (generate model), editor apply/delete, proxy GET for CR status + connection secret, and available-types.
  • Typed errorsAPIError with NotFound() detection; configurable User-Agent; hardened HTTP transport (dial/TLS/idle timeouts).
  • Engine registry for every database KubeDB supports — all 30 engines. Coordinates (kind, resource plural, default ports, auth shape) are sourced from kubedb.dev/apimachinery (apis/kubedb): GA kinds under kubedb.com/v1, the rest under kubedb.com/v1alpha2. Only Qdrant and Weaviate use API-key auth; the rest (including Memcached and Milvus) use username/password.
  • Unit tests — client behavior (status parse, headers, NotFound, base64 secret decode, APIError status, editor apply body) and registry completeness/coordinates.

Packaging

This is a package within the existing go.bytebuilders.dev/client module, not a separate module. Consumers require the module and import the package; with module-graph pruning they pull only the stdlib-only kubedb package (the client library's k8s/nats/jwt deps are pruned out). The two adapters pin it via a local replace and vendor only this package.

Files carry the repo's Apache 2.0 license header.

Branch is a single clean, signed commit on top of master, touching only kubedb/* (5 files).

Consumers

The provisioning adapters that import this package (go.bytebuilders.dev/client/kubedb), each a small stateless Go HTTP service:

Both pin this module via a local replace and vendor only the kubedb package. The integration design is documented in the prompt-library docs (bmc-helix-integration.md, servicenow-integration.md, and the matching implementation plans).

kodiak-appscode[bot]
kodiak-appscode Bot previously approved these changes Jul 15, 2026
kodiak-appscode[bot]
kodiak-appscode Bot previously approved these changes Jul 15, 2026
kodiak-appscode[bot]
kodiak-appscode Bot previously approved these changes Jul 15, 2026
@tamalsaha tamalsaha changed the title Add shared kubedb provisioning client module Add kubedb provisioning client package (all KubeDB databases) Jul 15, 2026
@tamalsaha
tamalsaha force-pushed the add-kubedb-shared-module branch from 9a6ba75 to 1a9ea2f Compare July 15, 2026 20:24
Add a dependency-free (stdlib-only) kubedb package to the
go.bytebuilders.dev/client module: a client for the KubeDB Platform API
Server's Helm editor-mode provisioning flow, imported as
go.bytebuilders.dev/client/kubedb by the bmchelix and servicenow adapters.

- Editor-mode provisioning: options/model, editor apply/delete, proxy GET
  (CR status + connection secret), available-types
- Typed APIError with NotFound detection; configurable User-Agent
- Engine registry for every database KubeDB supports (30 engines), with
  coordinates from kubedb.dev/apimachinery: GA kinds under kubedb.com/v1,
  the rest under kubedb.com/v1alpha2. Only Qdrant and Weaviate use API-key
  auth; the rest (incl. Memcached and Milvus) use username/password.
- Unit tests for client behavior and the engine registry

Signed-off-by: Tamal Saha <tamal@appscode.com>
@tamalsaha
tamalsaha force-pushed the add-kubedb-shared-module branch from 1a9ea2f to 90b8124 Compare July 15, 2026 20:29
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.

1 participant