我在KubernetesPodOperator中使用Airflow2.0 2.0,希望运行一个命令,该命令使用操作符运行的映像中的文件作为参数。这就是我所用的:
KubernetesPodOperator(
namespace=commons.kubernetes_namespace,
labels=commons.labels,
image=f"myregistry.io/myimage:{config['IMAGE_TAG']}",
arguments=[
"python",
"run_module.py ",
"-i",
f'args/{config["INPUT_DIR"]}/{task_id}.json'
],
name=dag_name + task_id,
task_id=task_id,
secrets=[secret_volume]
)但这给了我一个错误:
raise TemplateNotFound(template)
jinja2.exceptions.TemplateNotFound: args/airflow2test/processing-pipeline.json图像不使用任何宏。
有人有线索吗?我做错什么了?
发布于 2021-10-03 18:19:20
这是以按下在apache-airflow-providers-cncf-kubernetes的版本2.0.0中发布的bug开始的。更改的目的是允许对.json文件进行模板化。有一个关于它所造成的问题的GitHub问题。该错误最终由按下解决,该版本在提供程序的2.0.2版本中发布。
解决方案:
apache-airflow-providers-cncf-kubernetes (当前为2.0.2)KubernetesPodOperator解决这个问题有两种方法,一种是改变template_fields,另一种是改变template_ext
第一个选项:正如raphaelauv在问题上发布的那样,不允许呈现arguments字段:
class MyKubernetesPodOperator(KubernetesPodOperator):
template_fields = tuple(x for x in KubernetesPodOperator.template_fields if x != "arguments")2st选项:如果您不喜欢呈现.json文件:
class MyKubernetesPodOperator(KubernetesPodOperator):
template_ext = ('.yaml', '.yml',)https://stackoverflow.com/questions/69427381
复制相似问题