Sai Varun Reddy Daram created AIRFLOW-3435:
----------------------------------------------
Summary: Volume mount issue with kubernetes pod operator
Key: AIRFLOW-3435
URL: https://issues.apache.org/jira/browse/AIRFLOW-3435
Project: Apache Airflow
Issue Type: Bug
Components: kubernetes, 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
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)