Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove Oracle JDBC driver out of the box #29491

Closed
abstractj opened this issue May 13, 2024 · 4 comments · Fixed by #29895
Closed

Remove Oracle JDBC driver out of the box #29491

abstractj opened this issue May 13, 2024 · 4 comments · Fixed by #29895
Assignees
Labels
area/dist/quarkus area/docs kind/feature Categorizes a PR related to a new feature priority/blocker Highest Priority. Has a deadline and it blocks other tasks release/25.0.0 team/cloud-native
Milestone

Comments

@abstractj
Copy link
Contributor

Description

As Keycloak seeks to complete the incubating onboarding items, it must align with the CNCF license policy, which mandates board approval for non-Apache 2.0 dependencies.

To resolve potential license compliance issues, modify future Keycloak community releases to exclude the Oracle driver, requiring it to be installed separately by users. This practice helps address licensing concerns. Note that this change is not applicable to past releases.

Acceptance Criteria

  1. Confirm that excluding the Oracle driver from future releases addresses specific licensing violations.
  2. Update installation guides to include instructions for users on how to install the Oracle driver manually.
  3. Adjust the build process to exclude the Oracle driver from all future community releases.
  4. Communicate this change to the community, highlighting the reasons related to licensing compliance.
@abstractj
Copy link
Contributor Author

abstractj commented May 13, 2024

@keycloak/core-clients @keycloak/core-iam could you please triage and add to your team's backlog?

cc @keycloak/maintainers

@abstractj abstractj changed the title Remove Oracle JDBC driver out of the box in community Remove Oracle JDBC driver out of the box May 13, 2024
@ahus1
Copy link
Contributor

ahus1 commented May 14, 2024

This might be an @keycloak/cloud-native issue as it relates to Quarkus and has already been implemented for downstream. The instructions on how to install the Oracle driver if it hasn't been included in the dist already exist for downstream:

=== Installing the Oracle Database driver
To install the Oracle Database driver for {project_name}:
. Download the `ojdbc11` and `orai18n` JAR files from one of the following sources:
.. *Zipped JDBC driver and Companion Jars* version ${properties["oracle-jdbc.version"]} from the https://www.oracle.com/database/technologies/appdev/jdbc-downloads.html[Oracle driver download page].
.. Maven Central via `link:++https://repo1.maven.org/maven2/com/oracle/database/jdbc/ojdbc11/${properties["oracle-jdbc.version"]}/ojdbc11-${properties["oracle-jdbc.version"]}.jar++[ojdbc11]` and `link:++https://repo1.maven.org/maven2/com/oracle/database/nls/orai18n/${properties["oracle-jdbc.version"]}/orai18n-${properties["oracle-jdbc.version"]}.jar++[orai18n]`.
.. Installation media recommended by the database vendor for the specific database in use.
. When running the unzipped distribution: Place the `ojdbc11` and `orai18n` JAR files in {project_name}'s `providers` folder
. When running containers: Build a custom {project_name} image and add the JARs in the `providers` folder. When building a custom image for the Operator, those images need to be optimized images with all build-time options of {project_name} set.
+
A minimal Dockerfile to build an image which can be used with the {project_name} Operator and includes Oracle Database JDBC drivers downloaded from Maven Central looks like the following:
+
[source,dockerfile,subs="attributes+"]
----
FROM quay.io/keycloak/keycloak:{containerlabel}
ADD --chown=keycloak:keycloak https://repo1.maven.org/maven2/com/oracle/database/jdbc/ojdbc11/${properties["oracle-jdbc.version"]}/ojdbc11-${properties["oracle-jdbc.version"]}.jar /opt/keycloak/providers/ojdbc11.jar
ADD --chown=keycloak:keycloak https://repo1.maven.org/maven2/com/oracle/database/nls/orai18n/${properties["oracle-jdbc.version"]}/orai18n-${properties["oracle-jdbc.version"]}.jar /opt/keycloak/providers/orai18n.jar
# Setting the build parameter for the database:
ENV KC_DB=oracle
# Add all other build parameters needed, for example enable health and metrics:
ENV KC_HEALTH_ENABLED=true
ENV KC_METRICS_ENABLED=true
# To be able to use the image with the {project_name} Operator, it needs to be optimized, which requires {project_name}'s build step:
RUN /opt/keycloak/bin/kc.sh build
----
+
See the <@links.server id="containers" /> {section} for details on how to build optimized images.
Then continue configuring the database as described in the next section.

@vmuzikar
Copy link
Contributor

Yes, this would be done by the Cloud Native team. We'll look into it.

@vmuzikar vmuzikar added this to the 25.0.0 milestone May 22, 2024
@vmuzikar vmuzikar added priority/blocker Highest Priority. Has a deadline and it blocks other tasks and removed priority/important Must be worked on very soon status/triage labels May 22, 2024
@vmuzikar
Copy link
Contributor

Based on an offline discussion with @abstractj, changed the milestone and priority.

vmuzikar added a commit to Pepo48/keycloak that referenced this issue May 31, 2024
Closes: keycloak#29491

Co-authored-by: Václav Muzikář <vaclav@muzikari.cz>
Co-authored-by: Martin Bartoš <mabartos@redhat.com>
Signed-off-by: Peter Zaoral <pzaoral@redhat.com>
vmuzikar added a commit to Pepo48/keycloak that referenced this issue May 31, 2024
Closes: keycloak#29491

Co-authored-by: Václav Muzikář <vaclav@muzikari.cz>
Co-authored-by: Martin Bartoš <mabartos@redhat.com>
Signed-off-by: Peter Zaoral <pzaoral@redhat.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/dist/quarkus area/docs kind/feature Categorizes a PR related to a new feature priority/blocker Highest Priority. Has a deadline and it blocks other tasks release/25.0.0 team/cloud-native
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants