[Spark] Support spark-operator on multi-namespace deployments#258
Open
alxtkr77 wants to merge 1 commit intomlrun:developmentfrom
Open
[Spark] Support spark-operator on multi-namespace deployments#258alxtkr77 wants to merge 1 commit intomlrun:developmentfrom
alxtkr77 wants to merge 1 commit intomlrun:developmentfrom
Conversation
bd25f15 to
59ac983
Compare
There was a problem hiding this comment.
Pull request overview
This PR implements multi-namespace deployment support for spark-operator, enabling a split architecture where an admin namespace hosts shared cluster resources (CRDs, ClusterRole, webhook) while user namespaces run their own controller pods with namespace-scoped access via RoleBindings.
Changes:
- Decouples spark ConfigMap rendering from spark-operator subchart enablement via new
spark.enabledconfiguration - Adds CE-level RBAC template for user namespaces that creates RoleBinding to shared ClusterRole plus leader election permissions
- Implements comprehensive Kind-based multi-namespace testing with admin + 2 user namespace validation including RBAC and functional SparkApplication checks
Reviewed changes
Copilot reviewed 9 out of 9 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| tests/kind-test.sh | Adds multi-ns test mode with admin/user chart installation functions, webhook mutation verification helper, and comprehensive RBAC/functionality validation across 3 namespaces |
| charts/mlrun-ce/values.yaml | Introduces spark.enabled config to control CE-level spark resources independently from spark-operator subchart |
| charts/mlrun-ce/templates/spark-operator/spark-controller-rbac.yaml | New template that creates RoleBinding to shared ClusterRole and leader election RBAC when controller.rbac.create is false (user namespace mode) |
| charts/mlrun-ce/templates/config/mlrun-spark-config.yaml | Updates condition from spark-operator.enabled to spark.enabled for proper multi-ns ConfigMap rendering |
| charts/mlrun-ce/non_admin_installation_values.yaml | Configures spark-operator for user namespace: controller replicas=1, rbac.create=false, webhook disabled |
| charts/mlrun-ce/non_admin_cluster_ip_installation_values.yaml | Same user namespace spark-operator config as non_admin file but with ClusterIP services |
| charts/mlrun-ce/admin_installation_values.yaml | Configures spark-operator for admin namespace: controller replicas=0, webhook enabled, ClusterRole creation |
| charts/mlrun-ce/Chart.yaml | Bumps version from 0.11.0-rc9 to 0.11.0-rc10 |
| Makefile | Adds check-version-bump target with proper rc version handling and integrates it into helm-lint workflow |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
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.
Summary
spark-controller-rbac.yamlCE template that creates RoleBinding → ClusterRole + leader election RBAC in user namespacesTest plan
make helm-lintpasses (including newcheck-version-bumptarget)helm templaterenders correctly for single-NS, admin, and non-admin modestests/kind-test.sh full— single-NS regression with spark webhook mutation checkstests/kind-test.sh multi-ns— admin/user split with RBAC and functional SparkApplication checks🤖 Generated with Claude Code