-
Notifications
You must be signed in to change notification settings - Fork 5
static client mode e2e test #88
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
static client mode e2e test #88
Conversation
3e29491 to
e21a03c
Compare
src/main/scala/org/apache/spark/scheduler/cluster/armada/ArmadaClusterManagerBackend.scala
Show resolved
Hide resolved
src/test/scala/org/apache/spark/deploy/armada/e2e/TestOrchestrator.scala
Show resolved
Hide resolved
src/main/scala/org/apache/spark/scheduler/cluster/armada/ArmadaClusterManagerBackend.scala
Show resolved
Hide resolved
src/test/scala/org/apache/spark/deploy/armada/e2e/TestOrchestrator.scala
Outdated
Show resolved
Hide resolved
src/test/scala/org/apache/spark/deploy/armada/e2e/TestOrchestrator.scala
Outdated
Show resolved
Hide resolved
src/test/scala/org/apache/spark/deploy/armada/e2e/TestOrchestrator.scala
Outdated
Show resolved
Hide resolved
src/test/scala/org/apache/spark/deploy/armada/e2e/ArmadaSparkE2E.scala
Outdated
Show resolved
Hide resolved
...cala/org/apache/spark/scheduler/cluster/armada/ArmadaDynamicAllocationIntegrationSuite.scala
Show resolved
Hide resolved
Signed-off-by: Sudipto Baral <[email protected]>
Signed-off-by: Sudipto Baral <[email protected]>
Executors were removed from pendingExecutors in onExecutorRunning() before they registered with Spark, causing the allocator's gap calculation to see pending=0 and submit duplicates. Keep executors in pendingExecutors until they register.getPendingExecutorCount() removes registered executors during the count check, ensuring accurate gap calculation and preventing duplicate submissions. Signed-off-by: Sudipto Baral <[email protected]>
Signed-off-by: Sudipto Baral <[email protected]>
Signed-off-by: Sudipto Baral <[email protected]>
Signed-off-by: Sudipto Baral <[email protected]>
Signed-off-by: Sudipto Baral <[email protected]>
Signed-off-by: Sudipto Baral <[email protected]>
Signed-off-by: Sudipto Baral <[email protected]>
Signed-off-by: Sudipto Baral <[email protected]>
Signed-off-by: Sudipto Baral <[email protected]>
Signed-off-by: Sudipto Baral <[email protected]>
Signed-off-by: Sudipto Baral <[email protected]>
Signed-off-by: Sudipto Baral <[email protected]>
Signed-off-by: Sudipto Baral <[email protected]>
Signed-off-by: Sudipto Baral <[email protected]>
Signed-off-by: Sudipto Baral <[email protected]>
Signed-off-by: Sudipto Baral <[email protected]>
3eda9d6 to
0db8465
Compare
…daproject#90 Signed-off-by: Sudipto Baral <[email protected]>
|
Still not quite what I'm looking for. Take a look at this code for a "more complete" baseSparkPiTest(), (which is meant to be used with all spark pi tests.): and this is my version of baseSparkPiGangTest(): With those methods defined, the deployMode specific gang tests become very simple: All the boilerplate is in the moreCompleteBaseSparkPiTest(). The baseSparkPiGangTest() contains just the interesting parts of the test that are common to both. The deployMode specific tests just contain the parts that apply to that deployMode. Doesn't that seem clearer? FYI I have run my version of the gang tests and they seem to work as expected: |
Signed-off-by: Sudipto Baral <[email protected]>
Signed-off-by: Sudipto Baral <[email protected]>
Signed-off-by: Sudipto Baral <[email protected]>
|
@GeorgeJahad updated now. While consolidating under a common base method, there was at least one test which was doing something different, I refactored them slightly to make use of the common base methods. |
| test("Basic SparkPi job with gang scheduling", E2ETest) { | ||
| E2ETestBuilder("basic-spark-pi-gang") | ||
| // ======================================================================== | ||
| // Base helper method |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
does this comment need to be moved?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
yes lets move it before the base method
Signed-off-by: Sudipto Baral <[email protected]>
Signed-off-by: Sudipto Baral <[email protected]>
Signed-off-by: Sudipto Baral <[email protected]>
Signed-off-by: Sudipto Baral <[email protected]>
| set("armada.queue", "ARMADA_QUEUE") | ||
| private def baseIngressCLITest(executorCount: Int): E2ETestBuilder = { | ||
| baseSparkPiTest("spark-pi-ingress", "cluster", Map("test-type" -> "ingress")) | ||
| .withDriverIngress(ingressAnnotations) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Everything looks good. The last question I have is that the ingressAnnotations for the cli test now include the "kubernetes.io/ingress.class", but didn't before: https://github.com/armadaproject/armada-spark/blob/master/src/test/scala/org/apache/spark/deploy/armada/e2e/ArmadaSparkE2E.scala#L232-L235
Why the change?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I added it to make it similar, I far as I understood, it doesn't affect the intention of the test. Let me know if you know of any specific reason that might affect the test.
GeorgeJahad
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
lgtm, thanks @sudiptob2 !
closes G-Research/spark#153