Skip to content

feat: Implement generic database connection#814

Merged
maltesander merged 24 commits intomainfrom
feat/generic-database-connection
Apr 29, 2026
Merged

feat: Implement generic database connection#814
maltesander merged 24 commits intomainfrom
feat/generic-database-connection

Conversation

@maltesander
Copy link
Copy Markdown
Member

@maltesander maltesander commented Apr 21, 2026

Description

Part of stackabletech/issues#238
Needs stackabletech/operator-rs#1200

  • BREAKING: renamed metadata_storage_database -> metadata_database (consolidation)
  • remove metadata storage database properties from product config properties yaml

Definition of Done Checklist

  • Not all of these items are applicable to all PRs, the author should update this template to only leave the boxes in that are relevant
  • Please make sure all these things are done and tick the boxes

Author

  • Changes are OpenShift compatible
  • CRD changes approved
  • CRD documentation for all fields, following the style guide.
  • Helm chart can be installed and deployed operator works
  • Integration tests passed (for non trivial changes)
  • Changes need to be "offline" compatible
  • Links to generated (nightly) docs added
  • Release note snippet added

Reviewer

Acceptance

  • Feature Tracker has been updated
  • Proper release label has been added
  • Links to generated (nightly) docs added
  • Release note snippet added
  • Add type/deprecation label & add to the deprecation schedule
  • Add type/experimental label & add to the experimental features tracker

@maltesander maltesander self-assigned this Apr 21, 2026
@maltesander maltesander added release-note Denotes a PR that will be considered when it comes time to generate release notes. release-note/action-required Denotes a PR that introduces potentially breaking changes that require user action. labels Apr 21, 2026
@maltesander maltesander moved this to Development: In Progress in Stackable Engineering Apr 21, 2026
@maltesander maltesander marked this pull request as ready for review April 21, 2026 14:03
@maltesander maltesander moved this from Development: In Progress to Development: Waiting for Review in Stackable Engineering Apr 21, 2026
@maltesander maltesander requested a review from sbernauer April 21, 2026 14:14
@sbernauer
Copy link
Copy Markdown
Member

I will have a look after stackabletech/superset-operator#722

Copy link
Copy Markdown
Member

@sbernauer sbernauer left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good, thanks!

Comment thread rust/operator-binary/src/crd/database.rs Outdated
Comment thread rust/operator-binary/src/crd/database.rs Outdated
Comment thread dev-cluster.yml
Comment thread CHANGELOG.md Outdated
Comment thread Cargo.toml Outdated
Comment thread tests/templates/kuttl/external-access/50_druid.yaml.j2 Outdated
Comment thread rust/operator-binary/src/crd/mod.rs Outdated
maltesander and others added 5 commits April 24, 2026 12:17
Co-authored-by: Sebastian Bernauer <sebastian.bernauer@stackable.de>
Co-authored-by: Sebastian Bernauer <sebastian.bernauer@stackable.de>
…se-connection' into feat/generic-database-connection
@maltesander maltesander requested a review from sbernauer April 24, 2026 10:26
@maltesander
Copy link
Copy Markdown
Member Author

Release notes

BREAKING: Consolidated the metadata storage database CRD config to use the generic database connector mechanism.

The metadataStorageDatabase was renamed to metadataDatabase. The structure changed from:

PostgreSQL / MySQL

metadataStorageDatabase:
  dbType: postgresql # or mysql
  connString: jdbc:postgresql://postgresql-druid/druid
  host: postgresql-druid
  port: 5432
  credentialsSecret: druid-db-credentials

to:

metadataDatabase:
  postgresql: # or mysql
    host: postgresql-druid
    database: druid
    credentialsSecretName: druid-db-credentials

Derby

From:

metadataStorageDatabase:
  dbType: derby
  connString: jdbc:derby://localhost:1527/var/druid/metadata.db;create=true
  host: localhost
  port: 1527

to:

metadataDatabase:
  derby: {}

Documentation

Not many changes, just example updates. E.g:

https://docs.stackable.tech/home/nightly/druid/getting_started/first_steps/#_druid

sbernauer
sbernauer previously approved these changes Apr 24, 2026
@maltesander maltesander dismissed sbernauer’s stale review April 24, 2026 14:13

The merge-base changed after approval.

@sbernauer sbernauer moved this from Development: Waiting for Review to Development: In Review in Stackable Engineering Apr 24, 2026
sbernauer
sbernauer previously approved these changes Apr 24, 2026
@maltesander maltesander dismissed sbernauer’s stale review April 24, 2026 14:23

The merge-base changed after approval.

sbernauer
sbernauer previously approved these changes Apr 28, 2026
Copy link
Copy Markdown
Member

@sbernauer sbernauer left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, but we should schedule a Jenkins run as soon as the images are build

@maltesander
Copy link
Copy Markdown
Member Author

Test: https://testing.stackable.tech/view/02%20Operator%20Tests%20(custom)/job/druid-operator-it-custom/80/

@maltesander
Copy link
Copy Markdown
Member Author

Some failures (seem flaky), works locally:

--- PASS: kuttl (1554.29s)
    --- PASS: kuttl/harness (0.00s)
        --- PASS: kuttl/harness/oidc_druid-34.0.0_zookeeper-latest-3.9.4_s3-use-tls-false_openshift-false_oidc-use-tls-false (171.51s)
        --- PASS: kuttl/harness/ldap_druid-30.0.1_zookeeper-latest-3.9.4_opa-1.12.3_hadoop-latest-3.4.2_ldap-use-tls-false_ldap-no-bind-credentials-false_openshift-false (180.04s)
        --- PASS: kuttl/harness/oidc_druid-30.0.1_zookeeper-latest-3.9.4_s3-use-tls-true_openshift-false_oidc-use-tls-true (152.67s)
        --- PASS: kuttl/harness/ldap_druid-35.0.1_zookeeper-latest-3.9.4_opa-1.12.3_hadoop-latest-3.4.2_ldap-use-tls-true_ldap-no-bind-credentials-false_openshift-false (196.38s)
        --- PASS: kuttl/harness/oidc_druid-30.0.1_zookeeper-latest-3.9.4_s3-use-tls-true_openshift-false_oidc-use-tls-false (150.06s)
        --- PASS: kuttl/harness/oidc_druid-30.0.1_zookeeper-latest-3.9.4_s3-use-tls-false_openshift-false_oidc-use-tls-true (157.70s)
        --- PASS: kuttl/harness/oidc_druid-30.0.1_zookeeper-latest-3.9.4_s3-use-tls-false_openshift-false_oidc-use-tls-false (160.32s)
        --- PASS: kuttl/harness/oidc_druid-35.0.1_zookeeper-latest-3.9.4_s3-use-tls-false_openshift-false_oidc-use-tls-true (146.22s)
        --- PASS: kuttl/harness/ldap_druid-34.0.0_zookeeper-latest-3.9.4_opa-1.12.3_hadoop-latest-3.4.2_ldap-use-tls-true_ldap-no-bind-credentials-false_openshift-false (150.77s)
        --- PASS: kuttl/harness/overrides_druid-latest-35.0.1_zookeeper-latest-3.9.4_hadoop-latest-3.4.2_openshift-false (159.94s)
        --- PASS: kuttl/harness/ldap_druid-35.0.1_zookeeper-latest-3.9.4_opa-1.12.3_hadoop-latest-3.4.2_ldap-use-tls-false_ldap-no-bind-credentials-false_openshift-false (146.74s)
        --- PASS: kuttl/harness/oidc_druid-35.0.1_zookeeper-latest-3.9.4_s3-use-tls-true_openshift-false_oidc-use-tls-true (148.38s)
        --- PASS: kuttl/harness/ldap_druid-34.0.0_zookeeper-latest-3.9.4_opa-1.12.3_hadoop-latest-3.4.2_ldap-use-tls-false_ldap-no-bind-credentials-false_openshift-false (148.85s)
        --- PASS: kuttl/harness/oidc_druid-35.0.1_zookeeper-latest-3.9.4_s3-use-tls-true_openshift-false_oidc-use-tls-false (153.26s)
        --- PASS: kuttl/harness/ldap_druid-30.0.1_zookeeper-latest-3.9.4_opa-1.12.3_hadoop-latest-3.4.2_ldap-use-tls-true_ldap-no-bind-credentials-false_openshift-false (159.37s)
        --- PASS: kuttl/harness/oidc_druid-35.0.1_zookeeper-latest-3.9.4_s3-use-tls-false_openshift-false_oidc-use-tls-false (144.36s)
        --- PASS: kuttl/harness/oidc_druid-34.0.0_zookeeper-latest-3.9.4_s3-use-tls-true_openshift-false_oidc-use-tls-false (145.53s)
        --- PASS: kuttl/harness/oidc_druid-34.0.0_zookeeper-latest-3.9.4_s3-use-tls-true_openshift-false_oidc-use-tls-true (148.59s)
        --- PASS: kuttl/harness/oidc_druid-34.0.0_zookeeper-latest-3.9.4_s3-use-tls-false_openshift-false_oidc-use-tls-true (159.95s)
PASS

@maltesander maltesander added this pull request to the merge queue Apr 29, 2026
Merged via the queue into main with commit 2925987 Apr 29, 2026
12 checks passed
@maltesander maltesander deleted the feat/generic-database-connection branch April 29, 2026 07:00
@maltesander maltesander moved this from Development: In Review to Development: Done in Stackable Engineering Apr 29, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

release-note/action-required Denotes a PR that introduces potentially breaking changes that require user action. release-note Denotes a PR that will be considered when it comes time to generate release notes.

Projects

Status: Development: Done

Development

Successfully merging this pull request may close these issues.

2 participants