roryqi commented on PR #13700:
URL: https://github.com/apache/gravitino/pull/13700#issuecomment-6187058021

   Thanks for the work. I checked the Spark deploy-mode behavior and the 
Kubernetes compatibility boundary, and I think two points should be clarified 
before this executor is registered and shipped.
   
   1. **Please reject client mode instead of silently running it in cluster 
mode.**
   
      `SparkApplicationUtils` removes `spark.submit.deployMode` unconditionally 
and does not set `spec.deploymentMode`, so the operator uses its default 
`ClusterMode`. Consequently, a template that explicitly requests 
`spark.submit.deployMode=client` is silently executed in cluster mode. Apache 
Spark Kubernetes Operator 0.9.0 does not support client mode and explicitly 
fails a `ClientMode` SparkApplication, so I think the executor should accept an 
unset/`cluster` value but fail submission with a clear 
`IllegalArgumentException` for `client`. The executor documentation should also 
state that only Spark cluster deploy mode is supported.
   
      Operator behavior: 
https://github.com/apache/spark-kubernetes-operator/blob/0.9.0/spark-operator/src/main/java/org/apache/spark/k8s/operator/reconciler/reconcilesteps/AppValidateStep.java#L53-L60
   
   2. **Please document the job-cluster compatibility matrix separately from 
the Gravitino deployment requirements.**
   
      Operator 0.9.0 officially lists Kubernetes 1.34, 1.35, and 1.36, and 
Spark 3.5/4.0/4.1 (plus testing with a 4.2 preview). This is narrower than the 
Gravitino Helm chart's Kubernetes 1.29+ prerequisite. Users need to know that 
the Gravitino host cluster and the Spark job cluster can have different 
requirements; otherwise a same-cluster installation on Kubernetes 1.29-1.33 
looks supported when the selected operator version does not officially support 
it. Kubernetes 1.37 is also outside the published 0.9.0 matrix.
   
      The bundled Fabric8 client is 7.2.0, whose release added Kubernetes 1.33 
model support. Since this implementation uses stable Pod APIs and a generic CRD 
client, I do not see a definite protocol incompatibility with Kubernetes 
1.34-1.36, but the mock-server tests and the OrbStack test without a stated 
Kubernetes version do not establish that compatibility. Please publish the 
Operator/Kubernetes/Spark version matrix and run at least one real-cluster 
smoke test on a supported Kubernetes version before shipping.
   
      Operator 0.9.0 matrix: 
https://github.com/apache/spark-kubernetes-operator/releases/tag/0.9.0
   
      Fabric8 7.2.0 release: 
https://github.com/fabric8io/kubernetes-client/releases/tag/v7.2.0
   


-- 
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