diff --git a/resource-managers/kubernetes/integration-tests/pom.xml b/resource-managers/kubernetes/integration-tests/pom.xml index 7a889c427b41..2940c2e003b5 100644 --- a/resource-managers/kubernetes/integration-tests/pom.xml +++ b/resource-managers/kubernetes/integration-tests/pom.xml @@ -121,6 +121,9 @@ --spark-tgz ${spark.kubernetes.test.sparkTgz} + + --test-exclude-tags + "${test.exclude.tags}" diff --git a/resource-managers/kubernetes/integration-tests/scripts/setup-integration-test-env.sh b/resource-managers/kubernetes/integration-tests/scripts/setup-integration-test-env.sh index 2e72ff8e55bf..beda56cf37c9 100755 --- a/resource-managers/kubernetes/integration-tests/scripts/setup-integration-test-env.sh +++ b/resource-managers/kubernetes/integration-tests/scripts/setup-integration-test-env.sh @@ -26,6 +26,7 @@ IMAGE_TAG="N/A" JAVA_IMAGE_TAG="8-jre-slim" SPARK_TGZ="N/A" MVN="$TEST_ROOT_DIR/build/mvn" +EXCLUDE_TAGS="" # Parse arguments while (( "$#" )); do @@ -58,6 +59,10 @@ while (( "$#" )); do SPARK_TGZ="$2" shift ;; + --test-exclude-tags) + EXCLUDE_TAGS="$2" + shift + ;; *) break ;; @@ -99,7 +104,10 @@ then LANGUAGE_BINDING_BUILD_ARGS="-p $DOCKER_FILE_BASE_PATH/bindings/python/Dockerfile" # Build SparkR image - LANGUAGE_BINDING_BUILD_ARGS="$LANGUAGE_BINDING_BUILD_ARGS -R $DOCKER_FILE_BASE_PATH/bindings/R/Dockerfile" + tags=(${EXCLUDE_TAGS//,/ }) + if [[ ! ${tags[@]} =~ "r" ]]; then + LANGUAGE_BINDING_BUILD_ARGS="$LANGUAGE_BINDING_BUILD_ARGS -R $DOCKER_FILE_BASE_PATH/bindings/R/Dockerfile" + fi # Unset SPARK_HOME to let the docker-image-tool script detect SPARK_HOME. Otherwise, it cannot # indicate the unpacked directory as its home. See SPARK-28550. diff --git a/resource-managers/kubernetes/integration-tests/src/test/scala/org/apache/spark/deploy/k8s/integrationtest/KubernetesSuite.scala b/resource-managers/kubernetes/integration-tests/src/test/scala/org/apache/spark/deploy/k8s/integrationtest/KubernetesSuite.scala index 4de7e70c1f40..65a2f1ff7969 100644 --- a/resource-managers/kubernetes/integration-tests/src/test/scala/org/apache/spark/deploy/k8s/integrationtest/KubernetesSuite.scala +++ b/resource-managers/kubernetes/integration-tests/src/test/scala/org/apache/spark/deploy/k8s/integrationtest/KubernetesSuite.scala @@ -476,6 +476,7 @@ class KubernetesSuite extends SparkFunSuite private[spark] object KubernetesSuite { val k8sTestTag = Tag("k8s") + val rTestTag = Tag("r") val MinikubeTag = Tag("minikube") val SPARK_PI_MAIN_CLASS: String = "org.apache.spark.examples.SparkPi" val SPARK_DFS_READ_WRITE_TEST = "org.apache.spark.examples.DFSReadWriteTest" diff --git a/resource-managers/kubernetes/integration-tests/src/test/scala/org/apache/spark/deploy/k8s/integrationtest/RTestsSuite.scala b/resource-managers/kubernetes/integration-tests/src/test/scala/org/apache/spark/deploy/k8s/integrationtest/RTestsSuite.scala index e81562a92322..b7c8886a15ae 100644 --- a/resource-managers/kubernetes/integration-tests/src/test/scala/org/apache/spark/deploy/k8s/integrationtest/RTestsSuite.scala +++ b/resource-managers/kubernetes/integration-tests/src/test/scala/org/apache/spark/deploy/k8s/integrationtest/RTestsSuite.scala @@ -19,9 +19,9 @@ package org.apache.spark.deploy.k8s.integrationtest private[spark] trait RTestsSuite { k8sSuite: KubernetesSuite => import RTestsSuite._ - import KubernetesSuite.k8sTestTag + import KubernetesSuite.{k8sTestTag, rTestTag} - test("Run SparkR on simple dataframe.R example", k8sTestTag) { + test("Run SparkR on simple dataframe.R example", k8sTestTag, rTestTag) { sparkAppConf.set("spark.kubernetes.container.image", rImage) runSparkApplicationAndVerifyCompletion( appResource = SPARK_R_DATAFRAME_TEST,