This is an automated email from the ASF dual-hosted git repository.

avantgardnerio pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/datafusion-ballista.git


The following commit(s) were added to refs/heads/main by this push:
     new 1b10233a5 chore(docker): ca-certificates + h2o binary in benchmarks 
image (#2251)
1b10233a5 is described below

commit 1b10233a5111ef44919af15253199cf6c49b8a9f
Author: Brent Gardner <[email protected]>
AuthorDate: Fri Aug 7 13:47:25 2026 -0600

    chore(docker): ca-certificates + h2o binary in benchmarks image (#2251)
    
    * include h2o
    
    * chore(docker): ca-certificates + h2o binary in benchmarks image
    
    Additive changes needed for S3-backed benchmark runs and image parity
    with the h2o binary that shipped in #2230.
    
    - ballista-scheduler + ballista-executor: install `ca-certificates`.
      Without them, TLS handshakes for S3 (via object_store) and STS
      (AssumeRoleWithWebIdentity for IRSA-authenticated S3 reads) fail
      with `InvalidCertificate(UnknownIssuer)`.
    - ballista-benchmarks: same ca-certificates rationale, plus
      `COPY target/release/h2o /root/h2o` so the image bundles both tpch
      and h2o binaries. The h2o binary was added in #2230 but never wired
      into the Dockerfile.
    - .dockerignore: whitelist `target/release{,-nonlto}/h2o` so the
      benchmarks build context sees the h2o binary alongside tpch/etc.
      Whitelist is where the other binaries already live; without it,
      docker build errors on the new COPY line.
    
    Andy's TPC-H bench workflow is unaffected — every change is additive.
    
    Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
    
    ---------
    
    Co-authored-by: Claude Opus 4.7 (1M context) <[email protected]>
---
 .dockerignore                             | 2 ++
 dev/docker/ballista-benchmarks.Dockerfile | 9 +++++++++
 dev/docker/ballista-executor.Dockerfile   | 7 +++++++
 dev/docker/ballista-scheduler.Dockerfile  | 8 ++++++++
 4 files changed, 26 insertions(+)

diff --git a/.dockerignore b/.dockerignore
index f7fbbe56b..dfc8b5356 100644
--- a/.dockerignore
+++ b/.dockerignore
@@ -13,7 +13,9 @@ CHANGELOG.md
 !target/release/ballista-executor
 !target/release/ballista-cli
 !target/release/tpch
+!target/release/h2o
 !target/release-nonlto/ballista-scheduler
 !target/release-nonlto/ballista-executor
 !target/release-nonlto/ballista-cli
 !target/release-nonlto/tpch
+!target/release-nonlto/h2o
diff --git a/dev/docker/ballista-benchmarks.Dockerfile 
b/dev/docker/ballista-benchmarks.Dockerfile
index da7da429e..dd55ad8a8 100644
--- a/dev/docker/ballista-benchmarks.Dockerfile
+++ b/dev/docker/ballista-benchmarks.Dockerfile
@@ -21,6 +21,14 @@ LABEL 
org.opencontainers.image.source="https://github.com/apache/datafusion-ball
 LABEL org.opencontainers.image.description="Apache DataFusion Ballista 
Distributed SQL Query Engine"
 LABEL org.opencontainers.image.licenses="Apache-2.0"
 
+# ca-certificates so DataFusion's object_store S3 client can verify TLS
+# certs. Ubuntu's minimal image doesn't populate /etc/ssl/certs, and
+# reads from s3:// paths fail with InvalidCertificate(UnknownIssuer)
+# otherwise.
+RUN apt-get update && \
+    apt-get install -y --no-install-recommends ca-certificates && \
+    rm -rf /var/lib/apt/lists/*
+
 ARG RELEASE_FLAG=release
 
 ENV RELEASE_FLAG=${RELEASE_FLAG}
@@ -30,6 +38,7 @@ ENV RUST_BACKTRACE=full
 COPY target/${RELEASE_FLAG}/ballista-scheduler /root/ballista-scheduler
 COPY target/${RELEASE_FLAG}/ballista-executor /root/ballista-executor
 COPY target/${RELEASE_FLAG}/tpch /root/tpch
+COPY target/${RELEASE_FLAG}/h2o /root/h2o
 
 COPY benchmarks/run.sh /root/run.sh
 COPY benchmarks/queries/ /root/benchmarks/queries
diff --git a/dev/docker/ballista-executor.Dockerfile 
b/dev/docker/ballista-executor.Dockerfile
index 091a887c8..d64333131 100644
--- a/dev/docker/ballista-executor.Dockerfile
+++ b/dev/docker/ballista-executor.Dockerfile
@@ -23,6 +23,13 @@ LABEL org.opencontainers.image.licenses="Apache-2.0"
 
 ARG RELEASE_FLAG=release
 
+# ca-certificates so DataFusion's object_store S3 client can verify TLS
+# certs at query time (executors do the parquet reads). Reads from
+# s3:// fail with InvalidCertificate(UnknownIssuer) otherwise.
+RUN apt-get update && \
+    apt-get install -y --no-install-recommends ca-certificates && \
+    rm -rf /var/lib/apt/lists/*
+
 ENV RELEASE_FLAG=${RELEASE_FLAG}
 ENV RUST_LOG=info
 ENV RUST_BACKTRACE=full
diff --git a/dev/docker/ballista-scheduler.Dockerfile 
b/dev/docker/ballista-scheduler.Dockerfile
index 169a76637..b3eadebbe 100644
--- a/dev/docker/ballista-scheduler.Dockerfile
+++ b/dev/docker/ballista-scheduler.Dockerfile
@@ -23,6 +23,14 @@ LABEL org.opencontainers.image.licenses="Apache-2.0"
 
 ARG RELEASE_FLAG=release
 
+# ca-certificates so the scheduler can complete TLS handshakes at
+# plan-time. Applies to any outbound HTTPS: e.g. STS
+# AssumeRoleWithWebIdentity for IRSA-authenticated S3 reads during
+# schema inference, or fetching from HTTPS-hosted config sources.
+RUN apt-get update && \
+    apt-get install -y --no-install-recommends ca-certificates && \
+    rm -rf /var/lib/apt/lists/*
+
 ENV RELEASE_FLAG=${RELEASE_FLAG}
 ENV RUST_LOG=info
 ENV RUST_BACKTRACE=full


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to