You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airflow.apache.org by GitBox <gi...@apache.org> on 2020/03/25 19:41:56 UTC

[GitHub] [airflow] potiuk commented on a change in pull request #7875: add spark_kubernetes system test

potiuk commented on a change in pull request #7875: add spark_kubernetes system test
URL: https://github.com/apache/airflow/pull/7875#discussion_r398121943
 
 

 ##########
 File path: tests/providers/cncf/kubernetes/operators/test_spark_kubernetes_system.py
 ##########
 @@ -0,0 +1,72 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+import os
+import subprocess
+
+import pytest
+
+from airflow.models import Connection
+from airflow.utils import db
+from tests.test_utils import AIRFLOW_MAIN_FOLDER
+from tests.test_utils.system_tests_class import SystemTest
+
+KUBERNETES_DAG_FOLDER = os.path.join(
+    AIRFLOW_MAIN_FOLDER, "airflow", "providers", "cncf", "kubernetes", "example_dags"
+)
+
+
+def _spark_operator_util(action):
+    spark_operator_manifest_base_path = \
+        'https://raw.githubusercontent.com/' \
+        'GoogleCloudPlatform/spark-on-k8s-operator/v1beta2-1.1.1-2.4.5/manifest/'
+
+    spark_operator_manifests = [
+        "crds/sparkoperator.k8s.io_sparkapplications.yaml",
+        "crds/sparkoperator.k8s.io_scheduledsparkapplications.yaml",
+        "spark-operator-rbac.yaml",
+        "spark-operator.yaml",
+        "spark-rbac.yaml"
+    ]
+    for manifest in spark_operator_manifests:
+        if action == "apply":
+            command = ['kubectl', 'apply', '-f',
+                       spark_operator_manifest_base_path + manifest]
+        elif action == "delete":
+            command = ['kubectl', 'delete', '--ignore-not-found', '-f',
+                       spark_operator_manifest_base_path + manifest]
+        subprocess.run(command, check=True)
+
+
+@pytest.mark.system("cncf.kubernetes")
 
 Review comment:
   This is a system test. So all ok.
   
   In this case we can treat them as system tests because we are using end-2-end example_dag. Accidentally (and luckily) we already have the kubernets cluster up and running in CI so we do not have to communicate anywhere outside, but those are still "system" tests. I planned to do very similar system tests for postgres/mysql using the databases that we already have.
   
   Additionally you can add @pytest.mark.runtime("kubernetes") which means that the tests can be only run when you have kubernetes kind cluster created. It's ok to have multiple markers on the tests..

----------------------------------------------------------------
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.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services