You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airflow.apache.org by bo...@apache.org on 2018/05/10 08:33:38 UTC

incubator-airflow git commit: [AIRFLOW-2358][AIRFLOW-201804] Make the Kubernetes example optional

Repository: incubator-airflow
Updated Branches:
  refs/heads/master 8ed30b1f0 -> f7c33afea


[AIRFLOW-2358][AIRFLOW-201804] Make the Kubernetes example optional

If you havent installed Kubernetes the initdb
operation will fail

Closes #3315 from Fokko/AIRFLOW-2358


Project: http://git-wip-us.apache.org/repos/asf/incubator-airflow/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-airflow/commit/f7c33afe
Tree: http://git-wip-us.apache.org/repos/asf/incubator-airflow/tree/f7c33afe
Diff: http://git-wip-us.apache.org/repos/asf/incubator-airflow/diff/f7c33afe

Branch: refs/heads/master
Commit: f7c33afea65a65017a2470dc1444f99900ddf6e3
Parents: 8ed30b1
Author: Fokko Driesprong <fo...@godatadriven.com>
Authored: Thu May 10 10:33:32 2018 +0200
Committer: Bolke de Bruin <bo...@xs4all.nl>
Committed: Thu May 10 10:33:32 2018 +0200

----------------------------------------------------------------------
 .../example_dags/example_kubernetes_operator.py | 33 +++++++++++++-------
 1 file changed, 21 insertions(+), 12 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-airflow/blob/f7c33afe/airflow/example_dags/example_kubernetes_operator.py
----------------------------------------------------------------------
diff --git a/airflow/example_dags/example_kubernetes_operator.py b/airflow/example_dags/example_kubernetes_operator.py
index 9b86321..a7013ec 100644
--- a/airflow/example_dags/example_kubernetes_operator.py
+++ b/airflow/example_dags/example_kubernetes_operator.py
@@ -16,9 +16,18 @@
 # under the License.
 
 import airflow
-from airflow.contrib.operators.kubernetes_pod_operator import KubernetesPodOperator
+import logging
 from airflow.models import DAG
 
+try:
+    # Kubernetes is optional, so not available in vanilla Airflow
+    # pip install airflow[gcp]
+    from airflow.contrib.operators.kubernetes_pod_operator import KubernetesPodOperator
+except ImportError:
+    # Just import the BaseOperator as the KubernetesPodOperator
+    logging.warn("Could not import KubernetesPodOperator")
+    from airflow.models import BaseOperator as KubernetesPodOperator
+
 args = {
     'owner': 'airflow',
     'start_date': airflow.utils.dates.days_ago(2)
@@ -29,14 +38,14 @@ dag = DAG(
     default_args=args,
     schedule_interval=None)
 
-k = KubernetesPodOperator(namespace='default',
-                          image="ubuntu:16.04",
-                          cmds=["bash", "-cx"],
-                          arguments=["echo", "10"],
-                          labels={"foo": "bar"},
-                          name="airflow-test-pod",
-                          in_cluster=False,
-                          task_id="task",
-                          get_logs=True,
-                          dag=dag
-                          )
+k = KubernetesPodOperator(
+    namespace='default',
+    image="ubuntu:16.04",
+    cmds=["bash", "-cx"],
+    arguments=["echo", "10"],
+    labels={"foo": "bar"},
+    name="airflow-test-pod",
+    in_cluster=False,
+    task_id="task",
+    get_logs=True,
+    dag=dag)