You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airflow.apache.org by "Ash Berlin-Taylor (JIRA)" <ji...@apache.org> on 2019/05/30 12:47:03 UTC

[jira] [Updated] (AIRFLOW-3435) Example KubernetesOperator docs for Volume mount wrong

     [ https://issues.apache.org/jira/browse/AIRFLOW-3435?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Ash Berlin-Taylor updated AIRFLOW-3435:
---------------------------------------
    Summary: Example KubernetesOperator docs for Volume mount wrong  (was: Volume mount issue with kubernetes pod operator)

> Example KubernetesOperator docs for Volume mount wrong
> ------------------------------------------------------
>
>                 Key: AIRFLOW-3435
>                 URL: https://issues.apache.org/jira/browse/AIRFLOW-3435
>             Project: Apache Airflow
>          Issue Type: Bug
>          Components: documentation, operators
>    Affects Versions: 1.10.1
>         Environment: Airflow 1.10.1 on Docker, Kubernetes running on minikube v0.28.2, kubernetes client version: 1.12.3, kubernetes server version: 1.10.0, python version of airflow 3.6
>            Reporter: Sai Varun Reddy Daram
>            Assignee: Daniel Imberman
>            Priority: Major
>              Labels: kubernetes
>
> I have followed the standard example describe here [https://airflow.apache.org/kubernetes.html#kubernetes-operator,] and I'm getting this error.
> {{Traceback (most recent call last): File "/usr/local/lib/python3.6/site-packages/airflow/contrib/kubernetes/pod_launcher.py", line 55, in run_pod_async resp = self._client.create_namespaced_pod(body=req, namespace=pod.namespace) File "/usr/local/lib/python3.6/site-packages/kubernetes/client/apis/core_v1_api.py", line 6115, in create_namespaced_pod (data) = self.create_namespaced_pod_with_http_info(namespace, body, **kwargs) File "/usr/local/lib/python3.6/site-packages/kubernetes/client/apis/core_v1_api.py", line 6206, in create_namespaced_pod_with_http_info collection_formats=collection_formats) File "/usr/local/lib/python3.6/site-packages/kubernetes/client/api_client.py", line 321, in call_api _return_http_data_only, collection_formats, _preload_content, _request_timeout) File "/usr/local/lib/python3.6/site-packages/kubernetes/client/api_client.py", line 155, in __call_api _request_timeout=_request_timeout) File "/usr/local/lib/python3.6/site-packages/kubernetes/client/api_client.py", line 364, in request body=body) File "/usr/local/lib/python3.6/site-packages/kubernetes/client/rest.py", line 266, in POST body=body) File "/usr/local/lib/python3.6/site-packages/kubernetes/client/rest.py", line 222, in request raise ApiException(http_resp=r) kubernetes.client.rest.ApiException: (422) Reason: Unprocessable Entity HTTP response headers: HTTPHeaderDict(\{'Content-Type': 'application/json', 'Date': 'Mon, 03 Dec 2018 07:16:10 GMT', 'Content-Length': '393'}) HTTP response body: \{"kind":"Status","apiVersion":"v1","metadata":{},"status":"Failure","message":"Pod \"test-4f6c8ada\" is invalid: spec.containers[0].volumeMounts[1].name: Not found: \"test-volume\"","reason":"Invalid","details":\{"name":"test-4f6c8ada","kind":"Pod","causes":[{"reason":"FieldValueNotFound","message":"Not found: \"test-volume\"","field":"spec.containers[0].volumeMounts[1].name"}]},"code":422}}}
>  
>  
> {{The code is:}}
> {code:java}
> // code placeholder
> from airflow.contrib.kubernetes.volume import Volume
> from airflow.contrib.kubernetes.volume_mount import VolumeMount
> from airflow.contrib.operators.kubernetes_pod_operator import KubernetesPodOperator
> from airflow.contrib.kubernetes.secret import Secret
> from airflow import DAG
> from datetime import datetime, timedelta
> current_date = datetime.utcnow()
> default_args = {
> 'owner': 'root',
> 'depends_on_past': False,
> 'retries': 1,
> 'retry_delay': timedelta(minutes=1),
> }
> secret_file = Secret('volume', '/etc/sql_conn', 'airflow-secrets', 'sql_alchemy_conn')
> secret_env = Secret('env', 'SQL_CONN', 'airflow-secrets', 'sql_alchemy_conn')
> volume_mount = VolumeMount('test-volume',
> mount_path='/root/mount_file',
> sub_path=None,
> read_only=True)
> volume_config = {
> 'persistentVolumeClaim':
> {
> 'claimName': 'test-volume'
> }
> }
> volume = Volume(name='test-volume', configs=volume_config)
> with DAG(
> dag_id='MMM_DAG', default_args=default_args,
> start_date=current_date,
> concurrency=1,
> schedule_interval=None) as d:
> k = KubernetesPodOperator(namespace='default',
> image="ubuntu:16.04",
> cmds=["bash", "-cx"],
> arguments=["echo", "10"],
> in_cluster=True,
> labels={"foo": "bar"},
> secrets=[secret_file, secret_env],
> volume=[volume],
> volume_mounts=[volume_mount],
> name="test",
> task_id="task",
> is_delete_operator_pod=True,
> hostnetwork=False
> )
> {code}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)