создал изображение, содержащее /airflow/xcom/return.json
с chmod + x на всех вложенных каталогах. Поскольку в журнале не удается найти файл или каталог (пробовал chmod + x)
strtpodbefore = KubernetesPodOperator(namespace='rguonew',
image="mydockerimage",
name="fail",
image_pull_policy="Always",
task_id="failing-task",
get_logs= True,
xcom_push=True,
dag=dag
)'
Вот журнал
[2019-03-18 20:32:07,007] {logging_mixin.py:95} INFO - [2019-03-18
20:32:07,007] {pod_launcher.py:166} INFO - Running command... cat
/airflow/xcom/return.json
[2019-03-18 20:32:07,007] {logging_mixin.py:95} INFO -
[2019-03-18 20:32:07,026] {logging_mixin.py:95} INFO - [2019-03-18
20:32:07,026] {pod_launcher.py:173} INFO - cat: can't open
'/airflow/xcom/return.json': No such file or directory
[2019-03-18 20:32:07,026] {logging_mixin.py:95} INFO -
[2019-03-18 20:32:07,026] {logging_mixin.py:95} INFO - [2019-03-18
20:32:07,026] {pod_launcher.py:166} INFO - Running command... kill -s
SIGINT 1
[2019-03-18 20:32:07,026] {logging_mixin.py:95} INFO -
[2019-03-18 20:32:07,067] {models.py:1788} ERROR - Pod Launching
failed: Failed to extract xcom from pod: fail-e18e3dac
Так пробовал таким образом, он работает, но это означает, что он назначает xcom json извне, но не из образа
return_value = '{"foo": "bar"\n, "buzz": 2}'
strtpodbefore = KubernetesPodOperator(namespace='rguonew',
image="python:3.6.6-stretch",
cmds=["bash", "-cx"],
name="fail",
task_id="failing-task",
arguments=['echo \'{}\' >
/airflow/xcom/return.json'.format(return_value)],
get_logs= True,
xcom_push=True,
dag=dag
)
, поэтому я попробовал окончательное решение с дополнительным аргументомно все равно не работает, первая команда не получает такой каталог return
strtpodbefore = KubernetesPodOperator(namespace='rguonew',
image="myimages",
name="fail",
image_pull_policy="Always",
cmds=["bash", "-cx"],
arguments=['echo \'{}\' >
/airflow/xcom/return.json'.format(return_value)],
task_id="failing-task",
get_logs= True,
xcom_push=True,
dag=dag
)