geyanggang opened a new pull request, #13266:
URL: https://github.com/apache/gravitino/pull/13266

   ### What changes were proposed in this pull request?
   
   Add in-tree Docker build definitions for the three engine connectors under
   `dev/docker/`:
   
   - `dev/docker/trino-connectors/`
   - `dev/docker/flink-connectors/`
   - `dev/docker/spark-connectors/`
   
   Each directory contains:
   
   - `Dockerfile` — Red Hat UBI 10 minimal base, required certification labels
     (`name`, `vendor`, `version`, `release`, `summary`, `description`,
     `maintainer`), `/licenses` with `LICENSE` and `NOTICE`, runs as non-root
     (UID 1000, GID 0), OpenShift arbitrary-UID compatible.
   - `*-connectors-dependency.sh` — builds the connector artifacts. The set of
     version modules is discovered from the Gradle project rather than
     hard-coded, so the same script tracks whatever versions the branch 
supports:
     - Trino: each `trino-connector-<band>` module via `assembleTrinoConnector`.
     - Flink: each `flink-runtime-<ver>` module (Scala 2.12).
     - Spark: each `spark-runtime-<major>` module, deriving Scala variants
       (2.12 always; 2.13 for Spark 3.4+; Spark 4.0 pinned to 2.13, detected
       from its build script).
   - `copy-connector.sh` — entrypoint. Resolves the requested version from the
     directories baked into the image at runtime and copies the jars into a
     mounted `/target` volume; prints available versions when `/target` is not
     mounted.
   - `README.md` — install and configuration guide.
   
   The Trino image ships the full plugin layout (connector jar plus its runtime
   dependency jars, `LICENSE`, `NOTICE`, `README`) and no database JDBC drivers;
   those come from Trino's own `mysql` / `postgresql` plugins. Flink and Spark
   images ship the shaded runtime jars.
   
   ### Why are the changes needed?
   
   There is no first-party connector container image in the repository for
   installing the connectors into Trino, Flink or Spark on Kubernetes. These
   images give operators a ready-to-use init container per engine, with contents
   that stay purely Apache-2.0 and a version matrix that follows the branch
   automatically.
   
   Fix: #13265 
   
   ### Does this PR introduce _any_ user-facing change?
   
   Yes. It adds new connector container images 
(`apache/gravitino-trino-connector`,
   `apache/gravitino-flink-connector`, `apache/gravitino-spark-connector`) and
   their build tooling. No API or property changes.
   
   ### How was this patch tested?
   
   - Built the Flink connector image end to end: the dependency script 
discovered
     and built all Flink runtime modules (1.18/1.19/1.20), the image built on 
UBI 10,
     and the entrypoint copied the correct jar for the requested `FLINK_VERSION`
     into a mounted `/target`.
   - Verified the produced jars contain only open source connector code (no
     proprietary JDBC adapters) and that `/licenses` contains only `LICENSE` and
     `NOTICE`.
   - Verified the required image labels and non-root user (UID 1000) are 
present.
   - Confirmed the Trino and Spark dependency scripts discover the correct 
Gradle
     modules and construct valid task lists (including the Spark Scala-variant
     derivation for 3.5 / 4.0), and validated all shell scripts with `bash -n`.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to