Skip to content

Latest commit

 

History

History
80 lines (54 loc) · 4.16 KB

QUARKUS-2483.md

File metadata and controls

80 lines (54 loc) · 4.16 KB

QUARKUS-2483 - Kubernetes service binding support for Reactive SQL clients

Jira: https://issues.redhat.com/browse/QUARKUS-2483

PR: quarkusio/quarkus#25657

In Quarkus 2.10 was added Kubernetes service binding support for 5 Reactive SQL Clients extensions.

Clients with the Production support:

  • Reactive PostgreSQL client
  • Reactive MySQL client

Clients with the Technology Preview features support:

  • Reactive MS SQL client

Clients with Quarkus community support:

  • Reactive DB2 client
  • Reactive Oracle client

At the moment of writing, Quarkus lists only 3 operators that support the service auto-binding:

MySQL operator is a community operator and has not been vetted or verified by Red Hat and its stability is unknown. Service binding for the Reactive SQL Clients is provided by one service factory common for all the extensions, so support for each client is mostly done by providing ServiceBindingConverter - additional code in each extension is minimal.

Current test coverage for Service Binding in the Quarkus Test Suite consist of CrunchyData Postgres test for quarkus-jdbc-postgresql extension. Considering Quarkus Kubernetes Service Binding is still a preview, absence of suitable operators and extensions level of support, we should only add analogous test for quarkus-reactive-pg-client extension.

Scope of the testing

Tests should verify automatic datasource binding:

  • Quarkus application can connect and work with PostgreSQL database without configuring credentials, connection string etc.

Impact on testsuites and testing automation:

New module called service-binding/postgresql-crunchy-reactive is going to be created in the Quarkus Test suite to verify that Quarkus kubernetes-service-binding is able to inject application projection service binding from a PostgreSQL cluster created by Crunchy Postgres operator. Only OpenShift tests are required, one for JVM mode and one for native mode. Init SQL script will insert an entity to database, test will call resource endpoint and retrieve the entity from database. Should binding fail, the application won't be available or won't be able to retrieve the data.

Impact on resources:

  • No additional requirements for resources in lab
  • Required additional time for the test execution should be below 10 minutes
  • No measurable additional requirements for a Native image scenario

Getting familiar with the feature

Following actions were taken to ensure familiarity:

  • Ensure documentation provides clear explanation on configuration options
  • Ensure good user experience and simplicity of use

Advanced topics for test development

None.

Future considerations

  • Service Binding without database operators for the rest of the Reactive SQL clients
  • Service Binding for MySQL using community operator

Contacts

References