[Fix] Add CUDA-enabled Spark image - #312
Merged
Merged
Conversation
### 📝 Description Adds the CUDA-enabled Spark image required when MLRun requests GPU resources for Spark drivers or executors. The image matches the existing CE Spark 3.5.6 stack while adding CUDA 12.8.1 and cuDNN 9.8. --- ### 🛠️ Changes Made - Added `docker/spark/Dockerfile.cuda` based on `nvidia/cuda:12.8.1-cudnn-devel-ubuntu22.04`. - Shared Python 3.11, connector JAR, and filesystem setup through `docker/spark/scripts/ce-customize.sh`. - Added CUDA build and validation targets to `docker/spark/Makefile`. - Added local checks for Spark, Scala, Java, Python, connector JARs, CUDA, cuDNN, and NVIDIA container metadata. - Documented image build, validation, and manual GCR publication in `docker/spark/README.md`. - Bumped the chart version from `0.12.0-rc.10` to `0.12.0-rc.11`. --- ### ✅ Checklist - [x] I have tested the changes in this PR - [x] I confirmed whether my changes require a change in documentation and if so, I created another PR in MLRun for the relevant documentation. - [ ] I confirmed whether my changes require a changes in QA tests, for example: credentials changes, resources naming change and if so, I updated the relevant Jira ticket for QA. - [x] I increased the Chart version in `charts/mlrun-ce/Chart.yaml`. - [ ] I confirmed that the installation works both on a local Docker Desktop environment and on a real cluster when using the required [prerequisites](https://docs.mlrun.org/en/stable/install-mlrun-ce/kubernetes-install.html#prerequisites). - [ ] If installation issues were found, I updated the relevant Jira ticket with the issue and steps to reproduce, or updated the prerequisites documentation if the issue is related to missing or outdated prerequisites. - [x] If needed, update https://github.com/mlrun/ce/blob/development/charts/mlrun-ce/README.md with the relevant installation instructions and version Matrix. - [x] If needed, update the following values files for multi namespace support: - [x] [Admin values](https://github.com/mlrun/ce/blob/development/charts/mlrun-ce/admin_installation_values.yaml) - [x] [User values Node Port](https://github.com/mlrun/ce/blob/development/charts/mlrun-ce/non_admin_installation_values.yaml) - [x] [User values ClusterIP](https://github.com/mlrun/ce/blob/development/charts/mlrun-ce/non_admin_cluster_ip_installation_values.yaml) --- ### 🧪 Testing - Built the `linux/amd64` CUDA image with `make -C docker/spark build-cuda`. - Ran `make -C docker/spark validate-cuda`. - Verified Spark 3.5.6, Scala 2.12, Java 17, Python 3.11, connector JARs, CUDA 12.8.1, cuDNN 9.8, the Spark entrypoint, and NVIDIA container metadata. - GPU device visibility and Spark driver/executor startup still require validation in an ORIS GPU environment. --- ### 🔗 References - Ticket link: ORIS-4194 - External links: [Apache Spark Docker images](https://github.com/apache/spark-docker), [NVIDIA CUDA container images](https://hub.docker.com/r/nvidia/cuda) - Design docs links (Optional): N/A --- ### 🚨 Breaking Changes? - [ ] Yes (explain below) - [x] No --- ### 🔍️ Additional Notes - The CUDA image is published manually because this repository has no provisioned GCR publishing credentials. - Adding the image to the Mlefi release manifest and validating the GPU Spark scenario are follow-up tasks.
assaf758
approved these changes
Aug 24, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
📝 Description
Adds the CUDA-enabled Spark image required when MLRun requests GPU resources for Spark drivers or executors.
The image matches the existing CE Spark 3.5.6 stack while adding CUDA 12.8.1 and cuDNN 9.8.
🛠️ Changes Made
docker/spark/Dockerfile.cudabased onnvidia/cuda:12.8.1-cudnn-devel-ubuntu22.04.docker/spark/scripts/ce-customize.sh.docker/spark/Makefile.docker/spark/README.md.0.12.0-rc.10to0.12.0-rc.11.✅ Checklist
charts/mlrun-ce/Chart.yaml.🧪 Testing
linux/amd64CUDA image withmake -C docker/spark build-cuda.make -C docker/spark validate-cuda.🔗 References
🚨 Breaking Changes?
🔍️ Additional Notes