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
This PR introduces first-class Ingress support for SparkConnect by extending the CRD, controller logic, and Helm chart.
This enables users to expose Spark Connect Server externally (HTTP/TCP ingress) in a consistent, configurable way using:
spec: server: ingress: enable: true annotations: tls: ingressClassName: path: host:This aligns SparkConnect with the existing SparkApplication ingress support and improves usability for client applications that need stable external endpoints.
Key Changes:
Added new optional field:
spec.server.ingresswith subfields:
Regenerated:
Added new createOrUpdateIngress() reconciliation step.
Added mutateIngress() helper for:
Added conditions/state updates when ingress becomes ready.
Updated:
values.yamltemplates/controller/rbac.yaml(added ingress permissions)SparkConnectvalues block (default disabled)Ingress can now be enabled via Helm:
controller: sparkconnect: ingress: enable: true host: "connect.example.com" path: "/" ingressClassName: "nginx"Added required permissions:
networking.k8s.io/v1ingressesingresses/statusBinaryAssetsDirectory: bin/k8s/1.32.0-linux-amd64Testing
Local Testing
All unit tests pass.
Ingress creation test
Applied:
apiVersion: sparkoperator.k8s.io/v1alpha1 kind: SparkConnect metadata: name: demo spec: server: ingress: enable: true host: demo.connect.localVerified:
Why This Matters
This completes a missing capability for Spark Connect in Kubernetes:
Issue #2715
Checklist
make generate)