apache-airflow-providers-cncf-kubernetes 10.11.0rc1__tar.gz → 10.12.2rc2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/NOTICE +1 -1
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/PKG-INFO +11 -9
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/README.rst +5 -4
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/docs/changelog.rst +103 -0
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/docs/cli-ref.rst +2 -2
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/docs/index.rst +6 -5
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/provider.yaml +8 -10
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/pyproject.toml +9 -5
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/src/airflow/providers/cncf/kubernetes/__init__.py +1 -1
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/src/airflow/providers/cncf/kubernetes/backcompat/backwards_compat_converters.py +1 -1
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/src/airflow/providers/cncf/kubernetes/callbacks.py +16 -2
- apache_airflow_providers_cncf_kubernetes-10.12.2rc2/src/airflow/providers/cncf/kubernetes/cli/definition.py +115 -0
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/src/airflow/providers/cncf/kubernetes/cli/kubernetes_command.py +3 -1
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/src/airflow/providers/cncf/kubernetes/decorators/kubernetes.py +8 -3
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/src/airflow/providers/cncf/kubernetes/decorators/kubernetes_cmd.py +6 -3
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/src/airflow/providers/cncf/kubernetes/exceptions.py +6 -0
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/src/airflow/providers/cncf/kubernetes/executors/kubernetes_executor.py +6 -85
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/src/airflow/providers/cncf/kubernetes/executors/kubernetes_executor_utils.py +8 -3
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/src/airflow/providers/cncf/kubernetes/executors/local_kubernetes_executor.py +6 -3
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/src/airflow/providers/cncf/kubernetes/get_provider_info.py +1 -6
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/src/airflow/providers/cncf/kubernetes/hooks/kubernetes.py +139 -22
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/src/airflow/providers/cncf/kubernetes/kube_config.py +2 -24
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/src/airflow/providers/cncf/kubernetes/kubernetes_helper_functions.py +7 -5
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/src/airflow/providers/cncf/kubernetes/operators/custom_object_launcher.py +1 -1
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/src/airflow/providers/cncf/kubernetes/operators/job.py +27 -20
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/src/airflow/providers/cncf/kubernetes/operators/kueue.py +1 -1
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/src/airflow/providers/cncf/kubernetes/operators/pod.py +148 -57
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/src/airflow/providers/cncf/kubernetes/operators/resource.py +1 -1
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/src/airflow/providers/cncf/kubernetes/operators/spark_kubernetes.py +20 -9
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/src/airflow/providers/cncf/kubernetes/resource_convert/env_variable.py +1 -1
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/src/airflow/providers/cncf/kubernetes/sensors/spark_kubernetes.py +2 -3
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/src/airflow/providers/cncf/kubernetes/template_rendering.py +1 -1
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/src/airflow/providers/cncf/kubernetes/triggers/pod.py +25 -12
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/src/airflow/providers/cncf/kubernetes/utils/pod_manager.py +120 -72
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/tests/unit/cncf/kubernetes/backcompat/test_backwards_compat_converters.py +1 -1
- apache_airflow_providers_cncf_kubernetes-10.12.2rc2/tests/unit/cncf/kubernetes/cli/test_definition.py +128 -0
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/tests/unit/cncf/kubernetes/decorators/test_kubernetes.py +47 -0
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/tests/unit/cncf/kubernetes/decorators/test_kubernetes_cmd.py +23 -0
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/tests/unit/cncf/kubernetes/decorators/test_kubernetes_commons.py +4 -6
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/tests/unit/cncf/kubernetes/executors/test_kubernetes_executor.py +13 -1
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/tests/unit/cncf/kubernetes/hooks/test_kubernetes.py +291 -2
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/tests/unit/cncf/kubernetes/log_handlers/test_log_handlers.py +7 -2
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/tests/unit/cncf/kubernetes/operators/test_custom_object_launcher.py +1 -1
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/tests/unit/cncf/kubernetes/operators/test_job.py +180 -51
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/tests/unit/cncf/kubernetes/operators/test_kueue.py +1 -1
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/tests/unit/cncf/kubernetes/operators/test_pod.py +187 -26
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/tests/unit/cncf/kubernetes/operators/test_spark_kubernetes.py +128 -40
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/tests/unit/cncf/kubernetes/sensors/test_spark_kubernetes.py +1 -1
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/tests/unit/cncf/kubernetes/test_template_rendering.py +1 -1
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/tests/unit/cncf/kubernetes/triggers/test_pod.py +66 -5
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/tests/unit/cncf/kubernetes/utils/test_pod_manager.py +535 -46
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/LICENSE +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/docs/.latest-doc-only-change.txt +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/docs/commits.rst +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/docs/conf.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/docs/configurations-ref.rst +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/docs/connections/kubernetes.rst +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/docs/img/arch-diag-kubernetes.png +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/docs/img/arch-diag-kubernetes2.png +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/docs/img/k8s-failed-pod.png +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/docs/img/k8s-happy-path.png +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/docs/installing-providers-from-sources.rst +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/docs/integration-logos/Kubernetes.png +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/docs/integration-logos/Spark-On-Kubernetes.png +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/docs/kubernetes_executor.rst +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/docs/local_kubernetes_executor.rst +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/docs/operators.rst +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/docs/redirects.txt +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/docs/security.rst +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/src/airflow/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/src/airflow/providers/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/src/airflow/providers/cncf/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/src/airflow/providers/cncf/kubernetes/backcompat/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/src/airflow/providers/cncf/kubernetes/cli/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/src/airflow/providers/cncf/kubernetes/decorators/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/src/airflow/providers/cncf/kubernetes/executors/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/src/airflow/providers/cncf/kubernetes/executors/kubernetes_executor_types.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/src/airflow/providers/cncf/kubernetes/hooks/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/src/airflow/providers/cncf/kubernetes/k8s_model.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/src/airflow/providers/cncf/kubernetes/kube_client.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/src/airflow/providers/cncf/kubernetes/kubernetes_executor_templates/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/src/airflow/providers/cncf/kubernetes/kubernetes_executor_templates/basic_template.yaml +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/src/airflow/providers/cncf/kubernetes/operators/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/src/airflow/providers/cncf/kubernetes/pod_generator.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/src/airflow/providers/cncf/kubernetes/pod_template_file_examples/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/src/airflow/providers/cncf/kubernetes/pod_template_file_examples/dags_in_image_template.yaml +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/src/airflow/providers/cncf/kubernetes/pod_template_file_examples/dags_in_volume_template.yaml +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/src/airflow/providers/cncf/kubernetes/pod_template_file_examples/git_sync_template.yaml +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/src/airflow/providers/cncf/kubernetes/python_kubernetes_script.jinja2 +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/src/airflow/providers/cncf/kubernetes/python_kubernetes_script.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/src/airflow/providers/cncf/kubernetes/resource_convert/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/src/airflow/providers/cncf/kubernetes/resource_convert/configmap.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/src/airflow/providers/cncf/kubernetes/resource_convert/secret.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/src/airflow/providers/cncf/kubernetes/secret.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/src/airflow/providers/cncf/kubernetes/sensors/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/src/airflow/providers/cncf/kubernetes/triggers/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/src/airflow/providers/cncf/kubernetes/triggers/job.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/src/airflow/providers/cncf/kubernetes/utils/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/src/airflow/providers/cncf/kubernetes/utils/container.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/src/airflow/providers/cncf/kubernetes/utils/delete_from.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/src/airflow/providers/cncf/kubernetes/utils/k8s_resource_iterator.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/src/airflow/providers/cncf/kubernetes/utils/xcom_sidecar.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/src/airflow/providers/cncf/kubernetes/version_compat.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/tests/conftest.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/tests/system/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/tests/system/cncf/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/tests/system/cncf/kubernetes/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/tests/system/cncf/kubernetes/example_kubernetes.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/tests/system/cncf/kubernetes/example_kubernetes_async.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/tests/system/cncf/kubernetes/example_kubernetes_cmd_decorator.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/tests/system/cncf/kubernetes/example_kubernetes_decorator.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/tests/system/cncf/kubernetes/example_kubernetes_job.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/tests/system/cncf/kubernetes/example_kubernetes_kueue.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/tests/system/cncf/kubernetes/example_kubernetes_resource.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/tests/system/cncf/kubernetes/example_spark_kubernetes.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/tests/system/cncf/kubernetes/example_spark_kubernetes_spark_pi.yaml +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/tests/system/cncf/kubernetes/spark_job_template.yaml +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/tests/unit/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/tests/unit/cncf/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/tests/unit/cncf/kubernetes/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/tests/unit/cncf/kubernetes/backcompat/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/tests/unit/cncf/kubernetes/cli/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/tests/unit/cncf/kubernetes/cli/test_kubernetes_command.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/tests/unit/cncf/kubernetes/conftest.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/tests/unit/cncf/kubernetes/data_files/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/tests/unit/cncf/kubernetes/data_files/executor/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/tests/unit/cncf/kubernetes/data_files/executor/basic_template.yaml +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/tests/unit/cncf/kubernetes/data_files/kube_config +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/tests/unit/cncf/kubernetes/data_files/pods/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/tests/unit/cncf/kubernetes/data_files/pods/generator_base.yaml +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/tests/unit/cncf/kubernetes/data_files/pods/generator_base_with_secrets.yaml +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/tests/unit/cncf/kubernetes/data_files/pods/template.yaml +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/tests/unit/cncf/kubernetes/data_files/spark/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/tests/unit/cncf/kubernetes/data_files/spark/application_template.yaml +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/tests/unit/cncf/kubernetes/data_files/spark/application_test.json +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/tests/unit/cncf/kubernetes/data_files/spark/application_test.yaml +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/tests/unit/cncf/kubernetes/data_files/spark/application_test_with_no_name_from_config.json +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/tests/unit/cncf/kubernetes/data_files/spark/application_test_with_no_name_from_config.yaml +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/tests/unit/cncf/kubernetes/decorators/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/tests/unit/cncf/kubernetes/executors/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/tests/unit/cncf/kubernetes/executors/test_local_kubernetes_executor.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/tests/unit/cncf/kubernetes/hooks/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/tests/unit/cncf/kubernetes/log_handlers/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/tests/unit/cncf/kubernetes/models/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/tests/unit/cncf/kubernetes/models/test_secret.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/tests/unit/cncf/kubernetes/operators/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/tests/unit/cncf/kubernetes/operators/test_resource.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/tests/unit/cncf/kubernetes/resource_convert/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/tests/unit/cncf/kubernetes/resource_convert/test_configmap.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/tests/unit/cncf/kubernetes/resource_convert/test_env_variable.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/tests/unit/cncf/kubernetes/resource_convert/test_secret.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/tests/unit/cncf/kubernetes/sensors/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/tests/unit/cncf/kubernetes/test_callbacks.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/tests/unit/cncf/kubernetes/test_client.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/tests/unit/cncf/kubernetes/test_kubernetes_helper_functions.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/tests/unit/cncf/kubernetes/test_pod_generator.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/tests/unit/cncf/kubernetes/triggers/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/tests/unit/cncf/kubernetes/triggers/test_job.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/tests/unit/cncf/kubernetes/utils/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/tests/unit/cncf/kubernetes/utils/test_container.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.11.0rc1 → apache_airflow_providers_cncf_kubernetes-10.12.2rc2}/tests/unit/cncf/kubernetes/utils/test_k8s_resource_iterator.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: apache-airflow-providers-cncf-kubernetes
|
|
3
|
-
Version: 10.
|
|
3
|
+
Version: 10.12.2rc2
|
|
4
4
|
Summary: Provider package apache-airflow-providers-cncf-kubernetes for Apache Airflow
|
|
5
5
|
Keywords: airflow-provider,cncf.kubernetes,airflow,integration
|
|
6
6
|
Author-email: Apache Software Foundation <dev@airflow.apache.org>
|
|
@@ -24,14 +24,15 @@ License-File: LICENSE
|
|
|
24
24
|
License-File: NOTICE
|
|
25
25
|
Requires-Dist: aiofiles>=23.2.0
|
|
26
26
|
Requires-Dist: apache-airflow>=2.11.0rc1
|
|
27
|
-
Requires-Dist: apache-airflow-providers-common-compat>=1.
|
|
27
|
+
Requires-Dist: apache-airflow-providers-common-compat>=1.10.1rc1
|
|
28
28
|
Requires-Dist: asgiref>=3.5.2
|
|
29
29
|
Requires-Dist: cryptography>=41.0.0,<46.0.0
|
|
30
|
-
Requires-Dist: kubernetes>=
|
|
30
|
+
Requires-Dist: kubernetes>=35.0.0,<36.0.0
|
|
31
|
+
Requires-Dist: urllib3>=2.1.0,!=2.6.0
|
|
31
32
|
Requires-Dist: kubernetes_asyncio>=32.0.0,<35.0.0
|
|
32
33
|
Project-URL: Bug Tracker, https://github.com/apache/airflow/issues
|
|
33
|
-
Project-URL: Changelog, https://airflow.staged.apache.org/docs/apache-airflow-providers-cncf-kubernetes/10.
|
|
34
|
-
Project-URL: Documentation, https://airflow.staged.apache.org/docs/apache-airflow-providers-cncf-kubernetes/10.
|
|
34
|
+
Project-URL: Changelog, https://airflow.staged.apache.org/docs/apache-airflow-providers-cncf-kubernetes/10.12.2/changelog.html
|
|
35
|
+
Project-URL: Documentation, https://airflow.staged.apache.org/docs/apache-airflow-providers-cncf-kubernetes/10.12.2
|
|
35
36
|
Project-URL: Mastodon, https://fosstodon.org/@airflow
|
|
36
37
|
Project-URL: Slack Chat, https://s.apache.org/airflow-slack
|
|
37
38
|
Project-URL: Source Code, https://github.com/apache/airflow
|
|
@@ -62,7 +63,7 @@ Project-URL: YouTube, https://www.youtube.com/channel/UCSXwxpWZQ7XZ1WL3wqevChA/
|
|
|
62
63
|
|
|
63
64
|
Package ``apache-airflow-providers-cncf-kubernetes``
|
|
64
65
|
|
|
65
|
-
Release: ``10.
|
|
66
|
+
Release: ``10.12.2``
|
|
66
67
|
|
|
67
68
|
|
|
68
69
|
`Kubernetes <https://kubernetes.io/>`__
|
|
@@ -75,7 +76,7 @@ This is a provider package for ``cncf.kubernetes`` provider. All classes for thi
|
|
|
75
76
|
are in ``airflow.providers.cncf.kubernetes`` python package.
|
|
76
77
|
|
|
77
78
|
You can find package information and changelog for the provider
|
|
78
|
-
in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-cncf-kubernetes/10.
|
|
79
|
+
in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-cncf-kubernetes/10.12.2/>`_.
|
|
79
80
|
|
|
80
81
|
Installation
|
|
81
82
|
------------
|
|
@@ -94,10 +95,11 @@ PIP package Version required
|
|
|
94
95
|
========================================== ====================
|
|
95
96
|
``aiofiles`` ``>=23.2.0``
|
|
96
97
|
``apache-airflow`` ``>=2.11.0``
|
|
97
|
-
``apache-airflow-providers-common-compat`` ``>=1.
|
|
98
|
+
``apache-airflow-providers-common-compat`` ``>=1.10.1``
|
|
98
99
|
``asgiref`` ``>=3.5.2``
|
|
99
100
|
``cryptography`` ``>=41.0.0,<46.0.0``
|
|
100
101
|
``kubernetes`` ``>=32.0.0,<35.0.0``
|
|
102
|
+
``urllib3`` ``>=2.1.0,!=2.6.0``
|
|
101
103
|
``kubernetes_asyncio`` ``>=32.0.0,<35.0.0``
|
|
102
104
|
========================================== ====================
|
|
103
105
|
|
|
@@ -121,5 +123,5 @@ Dependent package
|
|
|
121
123
|
================================================================================================================== =================
|
|
122
124
|
|
|
123
125
|
The changelog for the provider package can be found in the
|
|
124
|
-
`changelog <https://airflow.apache.org/docs/apache-airflow-providers-cncf-kubernetes/10.
|
|
126
|
+
`changelog <https://airflow.apache.org/docs/apache-airflow-providers-cncf-kubernetes/10.12.2/changelog.html>`_.
|
|
125
127
|
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
|
|
24
24
|
Package ``apache-airflow-providers-cncf-kubernetes``
|
|
25
25
|
|
|
26
|
-
Release: ``10.
|
|
26
|
+
Release: ``10.12.2``
|
|
27
27
|
|
|
28
28
|
|
|
29
29
|
`Kubernetes <https://kubernetes.io/>`__
|
|
@@ -36,7 +36,7 @@ This is a provider package for ``cncf.kubernetes`` provider. All classes for thi
|
|
|
36
36
|
are in ``airflow.providers.cncf.kubernetes`` python package.
|
|
37
37
|
|
|
38
38
|
You can find package information and changelog for the provider
|
|
39
|
-
in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-cncf-kubernetes/10.
|
|
39
|
+
in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-cncf-kubernetes/10.12.2/>`_.
|
|
40
40
|
|
|
41
41
|
Installation
|
|
42
42
|
------------
|
|
@@ -55,10 +55,11 @@ PIP package Version required
|
|
|
55
55
|
========================================== ====================
|
|
56
56
|
``aiofiles`` ``>=23.2.0``
|
|
57
57
|
``apache-airflow`` ``>=2.11.0``
|
|
58
|
-
``apache-airflow-providers-common-compat`` ``>=1.
|
|
58
|
+
``apache-airflow-providers-common-compat`` ``>=1.10.1``
|
|
59
59
|
``asgiref`` ``>=3.5.2``
|
|
60
60
|
``cryptography`` ``>=41.0.0,<46.0.0``
|
|
61
61
|
``kubernetes`` ``>=32.0.0,<35.0.0``
|
|
62
|
+
``urllib3`` ``>=2.1.0,!=2.6.0``
|
|
62
63
|
``kubernetes_asyncio`` ``>=32.0.0,<35.0.0``
|
|
63
64
|
========================================== ====================
|
|
64
65
|
|
|
@@ -82,4 +83,4 @@ Dependent package
|
|
|
82
83
|
================================================================================================================== =================
|
|
83
84
|
|
|
84
85
|
The changelog for the provider package can be found in the
|
|
85
|
-
`changelog <https://airflow.apache.org/docs/apache-airflow-providers-cncf-kubernetes/10.
|
|
86
|
+
`changelog <https://airflow.apache.org/docs/apache-airflow-providers-cncf-kubernetes/10.12.2/changelog.html>`_.
|
|
@@ -27,6 +27,105 @@
|
|
|
27
27
|
Changelog
|
|
28
28
|
---------
|
|
29
29
|
|
|
30
|
+
.. warning::
|
|
31
|
+
``KubernetesJobOperator`` no longer supports setting ``parallelism = 0`` with ``wait_until_job_complete=True``.
|
|
32
|
+
Previously this would create a job that would never complete and always fail the task.
|
|
33
|
+
Executing a task with ``parallelism = 0`` and ``wait_until_job_complete=True`` will now raise a validation error.
|
|
34
|
+
|
|
35
|
+
10.12.2
|
|
36
|
+
.......
|
|
37
|
+
|
|
38
|
+
Bug Fixes
|
|
39
|
+
~~~~~~~~~
|
|
40
|
+
|
|
41
|
+
* ``Handle backwards-compatibility for older Google provider (#60730)``
|
|
42
|
+
* ``Kubernetes Pod Operator: Skip async defferal when pod already complete (#58684)``
|
|
43
|
+
|
|
44
|
+
.. Below changes are excluded from the changelog. Move them to
|
|
45
|
+
appropriate section above if needed. Do not delete the lines(!):
|
|
46
|
+
|
|
47
|
+
10.12.1
|
|
48
|
+
.......
|
|
49
|
+
|
|
50
|
+
Bug Fixes
|
|
51
|
+
~~~~~~~~~
|
|
52
|
+
|
|
53
|
+
* ``KubernetesPodOperator: Fix hanging API calls (#60254)``
|
|
54
|
+
* ``KubernetesPodOperator check xcom sidecar running before trying to read xcom (#60319)``
|
|
55
|
+
* ``Prevent transient error in case when Pod start_time parameter is None (#59097)``
|
|
56
|
+
* ``Add support for creating jobs with parallelism=0 to KubernetesJobOperator (#60372)``
|
|
57
|
+
* ``Fix duplicate pod creation in KubernetesJobOperator (#53368)``
|
|
58
|
+
* ``Kubernetes Pod Operator callbacks repeating log line (#59372)``
|
|
59
|
+
* ``Fix job_name normalization in KubernetesJobOperator (#60231)``
|
|
60
|
+
|
|
61
|
+
Misc
|
|
62
|
+
~~~~
|
|
63
|
+
|
|
64
|
+
* ``Replace deprecated import for utcnow() to the new one (#60317)``
|
|
65
|
+
* ``Fix mypy error in provider (#60395)``
|
|
66
|
+
* ``New year means updated Copyright notices (#60344)``
|
|
67
|
+
* ``Making kubernetes executor ResourceVersion a self contained singleton (#60324)``
|
|
68
|
+
* ``Re-apply PriorityWeightStrategy SDK work (#60112)``
|
|
69
|
+
* ``Introduce a "cli" section in provider metadata (#59805)``
|
|
70
|
+
|
|
71
|
+
Doc-only
|
|
72
|
+
~~~~~~~~
|
|
73
|
+
|
|
74
|
+
* ``Improve changelog descriptions in PR #59947 (latest versions only) (#60036)``
|
|
75
|
+
|
|
76
|
+
.. Below changes are excluded from the changelog. Move them to
|
|
77
|
+
appropriate section above if needed. Do not delete the lines(!):
|
|
78
|
+
* ``revert: remove k8s namespace and worker image deprecations (#60273)``
|
|
79
|
+
* ``Remove TaskInstance and TaskLogReader unused methods (#59922)``
|
|
80
|
+
|
|
81
|
+
10.12.0
|
|
82
|
+
.......
|
|
83
|
+
|
|
84
|
+
Features
|
|
85
|
+
~~~~~~~~
|
|
86
|
+
|
|
87
|
+
* ``Add 'delete_active_pod' cleanup option and corresponding unit tests (#59160)``
|
|
88
|
+
|
|
89
|
+
Bug Fixes
|
|
90
|
+
~~~~~~~~~
|
|
91
|
+
|
|
92
|
+
* ``Fix '@task.kubernetes_cmd' TaskGroup.expand mappings by templating TaskFlow args (#59292)``
|
|
93
|
+
* ``Fix 'KubernetesPodOperator' deferrable mode with env-defined connection (#41706) (#58841)``
|
|
94
|
+
* ``Fix deferred mode KubernetesPodOperator: fast-fail pod start errors (ErrImagePull/ImagePullBackOff) (#59010)``
|
|
95
|
+
* ``Fix XCom directory creation logic in Kubernetes decorator (#56545) (#59347)``
|
|
96
|
+
|
|
97
|
+
Misc
|
|
98
|
+
~~~~
|
|
99
|
+
|
|
100
|
+
* ``TaskInstance unused method cleanup (#59835)``
|
|
101
|
+
* ``Remove top-level SDK reference in Core (#59817)``
|
|
102
|
+
* ``Add and fix SIM107 and B012 Ruff rule (#59770)``
|
|
103
|
+
* ``Refactor/sqla2 providers(celery, kubernetes, databricks, mysql) to remove SQLA query usage (#59537)``
|
|
104
|
+
* ``Optimize Kubernetes API usage for watching events (#59080)``
|
|
105
|
+
|
|
106
|
+
.. Below changes are excluded from the changelog. Move them to
|
|
107
|
+
appropriate section above if needed. Do not delete the lines(!):
|
|
108
|
+
* ``Revert "Remove PriorityWeightStrategy reference in SDK" (#59828)``
|
|
109
|
+
* ``Remove PriorityWeightStrategy reference in SDK (#59780)``
|
|
110
|
+
|
|
111
|
+
10.11.1
|
|
112
|
+
.......
|
|
113
|
+
|
|
114
|
+
Bug Fixes
|
|
115
|
+
~~~~~~~~~
|
|
116
|
+
|
|
117
|
+
* ``Fix finally return handling (#58998)``
|
|
118
|
+
|
|
119
|
+
Misc
|
|
120
|
+
~~~~
|
|
121
|
+
|
|
122
|
+
* ``Convert the exclusion on urllib3 to != for 2.6.0 (#59203)``
|
|
123
|
+
* ``Add backcompat for exceptions in providers (#58727)``
|
|
124
|
+
* ``Limit urllib3 to < 2.6.0 to handle kubernetes client breaking with it (#59108)``
|
|
125
|
+
* ``Move the traces and metrics code under a common observability package (#56187)``
|
|
126
|
+
|
|
127
|
+
.. Below changes are excluded from the changelog. Move them to
|
|
128
|
+
appropriate section above if needed. Do not delete the lines(!):
|
|
30
129
|
|
|
31
130
|
10.11.0
|
|
32
131
|
.......
|
|
@@ -44,18 +143,22 @@ Bug Fixes
|
|
|
44
143
|
* ``KubernetesPodOperator pushes XCom on successful execution. (#58488)``
|
|
45
144
|
* ``KubernetesPodOperator PodManager retries during create pod on too many requests error (#58033)``
|
|
46
145
|
* ``Add JSON serialization for kubeconfig in AsyncKubernetesHook (#57169)``
|
|
146
|
+
* ``Make the launcher a cached_property and minor change to improve how pod name is retrieved (#58646)``
|
|
147
|
+
* ``Add retry handling for Kubernetes API client operations in KubernetesPodOperator (#58778)``
|
|
47
148
|
|
|
48
149
|
Misc
|
|
49
150
|
~~~~
|
|
50
151
|
|
|
51
152
|
* ``Move out some exceptions to TaskSDK (#54505)``
|
|
52
153
|
* ``Bump minimum Airflow version in providers to Airflow 2.11.0 (#58612)``
|
|
154
|
+
* ``Fix lower bound dependency to common-compat provider (#58833)``
|
|
53
155
|
|
|
54
156
|
.. Below changes are excluded from the changelog. Move them to
|
|
55
157
|
appropriate section above if needed. Do not delete the lines(!):
|
|
56
158
|
* ``Updates to release process of providers (#58316)``
|
|
57
159
|
* ``Send executor integration info in workload (#57800)``
|
|
58
160
|
* ``Fixes #57515 - Fix test_async_write_logs_should_execute_successfully test (#58276)``
|
|
161
|
+
* ``Prepare release for 2025-11-27 wave of providers (#58697)``
|
|
59
162
|
|
|
60
163
|
10.10.0
|
|
61
164
|
.......
|
|
@@ -24,6 +24,6 @@ Kubernetes Executor Commands
|
|
|
24
24
|
the core Airflow documentation for the list of CLI commands and parameters available.
|
|
25
25
|
|
|
26
26
|
.. argparse::
|
|
27
|
-
:module: airflow.providers.cncf.kubernetes.
|
|
28
|
-
:func:
|
|
27
|
+
:module: airflow.providers.cncf.kubernetes.cli.definition
|
|
28
|
+
:func: get_parser
|
|
29
29
|
:prog: airflow
|
|
@@ -87,7 +87,7 @@ apache-airflow-providers-cncf-kubernetes package
|
|
|
87
87
|
`Kubernetes <https://kubernetes.io/>`__
|
|
88
88
|
|
|
89
89
|
|
|
90
|
-
Release: 10.
|
|
90
|
+
Release: 10.12.2
|
|
91
91
|
|
|
92
92
|
Provider package
|
|
93
93
|
----------------
|
|
@@ -112,10 +112,11 @@ PIP package Version required
|
|
|
112
112
|
========================================== ====================
|
|
113
113
|
``aiofiles`` ``>=23.2.0``
|
|
114
114
|
``apache-airflow`` ``>=2.11.0``
|
|
115
|
-
``apache-airflow-providers-common-compat`` ``>=1.
|
|
115
|
+
``apache-airflow-providers-common-compat`` ``>=1.10.1``
|
|
116
116
|
``asgiref`` ``>=3.5.2``
|
|
117
117
|
``cryptography`` ``>=41.0.0,<46.0.0``
|
|
118
|
-
``kubernetes`` ``>=
|
|
118
|
+
``kubernetes`` ``>=35.0.0,<36.0.0``
|
|
119
|
+
``urllib3`` ``>=2.1.0,!=2.6.0``
|
|
119
120
|
``kubernetes_asyncio`` ``>=32.0.0,<35.0.0``
|
|
120
121
|
========================================== ====================
|
|
121
122
|
|
|
@@ -144,5 +145,5 @@ Downloading official packages
|
|
|
144
145
|
You can download officially released packages and verify their checksums and signatures from the
|
|
145
146
|
`Official Apache Download site <https://downloads.apache.org/airflow/providers/>`_
|
|
146
147
|
|
|
147
|
-
* `The apache-airflow-providers-cncf-kubernetes 10.
|
|
148
|
-
* `The apache-airflow-providers-cncf-kubernetes 10.
|
|
148
|
+
* `The apache-airflow-providers-cncf-kubernetes 10.12.2 sdist package <https://downloads.apache.org/airflow/providers/apache_airflow_providers_cncf_kubernetes-10.12.2.tar.gz>`_ (`asc <https://downloads.apache.org/airflow/providers/apache_airflow_providers_cncf_kubernetes-10.12.2.tar.gz.asc>`__, `sha512 <https://downloads.apache.org/airflow/providers/apache_airflow_providers_cncf_kubernetes-10.12.2.tar.gz.sha512>`__)
|
|
149
|
+
* `The apache-airflow-providers-cncf-kubernetes 10.12.2 wheel package <https://downloads.apache.org/airflow/providers/apache_airflow_providers_cncf_kubernetes-10.12.2-py3-none-any.whl>`_ (`asc <https://downloads.apache.org/airflow/providers/apache_airflow_providers_cncf_kubernetes-10.12.2-py3-none-any.whl.asc>`__, `sha512 <https://downloads.apache.org/airflow/providers/apache_airflow_providers_cncf_kubernetes-10.12.2-py3-none-any.whl.sha512>`__)
|
|
@@ -22,12 +22,16 @@ description: |
|
|
|
22
22
|
`Kubernetes <https://kubernetes.io/>`__
|
|
23
23
|
|
|
24
24
|
state: ready
|
|
25
|
-
source-date-epoch:
|
|
25
|
+
source-date-epoch: 1768685603
|
|
26
26
|
# Note that those versions are maintained by release manager - do not update them manually
|
|
27
27
|
# with the exception of case where other provider in sources has >= new provider version.
|
|
28
28
|
# In such case adding >= NEW_VERSION and bumping to NEW_VERSION in a provider have
|
|
29
29
|
# to be done in the same PR
|
|
30
30
|
versions:
|
|
31
|
+
- 10.12.2
|
|
32
|
+
- 10.12.1
|
|
33
|
+
- 10.12.0
|
|
34
|
+
- 10.11.1
|
|
31
35
|
- 10.11.0
|
|
32
36
|
- 10.10.0
|
|
33
37
|
- 10.9.0
|
|
@@ -212,9 +216,6 @@ config:
|
|
|
212
216
|
type: string
|
|
213
217
|
example: ~
|
|
214
218
|
default: ""
|
|
215
|
-
deprecated: true
|
|
216
|
-
deprecation_reason: |
|
|
217
|
-
This configuration is deprecated. Use `pod_template_file` to specify container image instead.
|
|
218
219
|
worker_container_tag:
|
|
219
220
|
description: |
|
|
220
221
|
The tag of the Kubernetes Image for the Worker to Run
|
|
@@ -222,9 +223,6 @@ config:
|
|
|
222
223
|
type: string
|
|
223
224
|
example: ~
|
|
224
225
|
default: ""
|
|
225
|
-
deprecated: true
|
|
226
|
-
deprecation_reason: |
|
|
227
|
-
This configuration is deprecated. Use `pod_template_file` to specify the image tag instead.
|
|
228
226
|
namespace:
|
|
229
227
|
description: |
|
|
230
228
|
The Kubernetes namespace where airflow workers should be created. Defaults to ``default``
|
|
@@ -232,9 +230,6 @@ config:
|
|
|
232
230
|
type: string
|
|
233
231
|
example: ~
|
|
234
232
|
default: "default"
|
|
235
|
-
deprecated: true
|
|
236
|
-
deprecation_reason: |
|
|
237
|
-
This configuration is deprecated. Use `pod_template_file` to specify namespace instead.
|
|
238
233
|
delete_worker_pods:
|
|
239
234
|
description: |
|
|
240
235
|
If True, all worker pods will be deleted upon termination
|
|
@@ -396,3 +391,6 @@ config:
|
|
|
396
391
|
|
|
397
392
|
executors:
|
|
398
393
|
- airflow.providers.cncf.kubernetes.executors.kubernetes_executor.KubernetesExecutor
|
|
394
|
+
|
|
395
|
+
cli:
|
|
396
|
+
- airflow.providers.cncf.kubernetes.cli.definition.get_kubernetes_cli_commands
|
|
@@ -25,7 +25,7 @@ build-backend = "flit_core.buildapi"
|
|
|
25
25
|
|
|
26
26
|
[project]
|
|
27
27
|
name = "apache-airflow-providers-cncf-kubernetes"
|
|
28
|
-
version = "10.
|
|
28
|
+
version = "10.12.2rc2"
|
|
29
29
|
description = "Provider package apache-airflow-providers-cncf-kubernetes for Apache Airflow"
|
|
30
30
|
readme = "README.rst"
|
|
31
31
|
license = "Apache-2.0"
|
|
@@ -60,7 +60,7 @@ requires-python = ">=3.10"
|
|
|
60
60
|
dependencies = [
|
|
61
61
|
"aiofiles>=23.2.0",
|
|
62
62
|
"apache-airflow>=2.11.0rc1",
|
|
63
|
-
"apache-airflow-providers-common-compat>=1.
|
|
63
|
+
"apache-airflow-providers-common-compat>=1.10.1rc1",
|
|
64
64
|
"asgiref>=3.5.2",
|
|
65
65
|
# TODO(potiuk): We should bump cryptography to >=46.0.0 when sqlalchemy>=2.0 is required
|
|
66
66
|
"cryptography>=41.0.0,<46.0.0",
|
|
@@ -72,7 +72,11 @@ dependencies = [
|
|
|
72
72
|
# limiting minimum airflow version supported in cncf.kubernetes provider, due to the
|
|
73
73
|
# potential breaking changes in Airflow Core as well (kubernetes is added as extra, so Airflow
|
|
74
74
|
# core is not hard-limited via install-requirements, only by extra).
|
|
75
|
-
"kubernetes>=
|
|
75
|
+
"kubernetes>=35.0.0,<36.0.0",
|
|
76
|
+
# Urllib 2.6.0 breaks kubernetes client because kubernetes client uses deprecated in 2.0.0 and
|
|
77
|
+
# removed in 2.6.0 `getheaders()` call (instead of `headers` property.
|
|
78
|
+
# Tracked in https://github.com/kubernetes-client/python/issues/2477
|
|
79
|
+
"urllib3>=2.1.0,!=2.6.0",
|
|
76
80
|
# the version is limited to the next MAJOR version and should by synced with the kubernetes version
|
|
77
81
|
"kubernetes_asyncio>=32.0.0,<35.0.0",
|
|
78
82
|
]
|
|
@@ -112,8 +116,8 @@ apache-airflow-providers-common-sql = {workspace = true}
|
|
|
112
116
|
apache-airflow-providers-standard = {workspace = true}
|
|
113
117
|
|
|
114
118
|
[project.urls]
|
|
115
|
-
"Documentation" = "https://airflow.staged.apache.org/docs/apache-airflow-providers-cncf-kubernetes/10.
|
|
116
|
-
"Changelog" = "https://airflow.staged.apache.org/docs/apache-airflow-providers-cncf-kubernetes/10.
|
|
119
|
+
"Documentation" = "https://airflow.staged.apache.org/docs/apache-airflow-providers-cncf-kubernetes/10.12.2"
|
|
120
|
+
"Changelog" = "https://airflow.staged.apache.org/docs/apache-airflow-providers-cncf-kubernetes/10.12.2/changelog.html"
|
|
117
121
|
"Bug Tracker" = "https://github.com/apache/airflow/issues"
|
|
118
122
|
"Source Code" = "https://github.com/apache/airflow"
|
|
119
123
|
"Slack Chat" = "https://s.apache.org/airflow-slack"
|
|
@@ -29,7 +29,7 @@ from airflow import __version__ as airflow_version
|
|
|
29
29
|
|
|
30
30
|
__all__ = ["__version__"]
|
|
31
31
|
|
|
32
|
-
__version__ = "10.
|
|
32
|
+
__version__ = "10.12.2"
|
|
33
33
|
|
|
34
34
|
if packaging.version.parse(packaging.version.parse(airflow_version).base_version) < packaging.version.parse(
|
|
35
35
|
"2.11.0"
|
|
@@ -20,7 +20,7 @@ from __future__ import annotations
|
|
|
20
20
|
|
|
21
21
|
from kubernetes.client import ApiClient, models as k8s
|
|
22
22
|
|
|
23
|
-
from airflow.
|
|
23
|
+
from airflow.providers.common.compat.sdk import AirflowException
|
|
24
24
|
|
|
25
25
|
|
|
26
26
|
def _convert_kube_model_object(obj, new_class):
|
|
@@ -23,8 +23,10 @@ import kubernetes.client as k8s
|
|
|
23
23
|
import kubernetes_asyncio.client as async_k8s
|
|
24
24
|
|
|
25
25
|
if TYPE_CHECKING:
|
|
26
|
+
from pendulum import DateTime
|
|
27
|
+
|
|
26
28
|
from airflow.providers.cncf.kubernetes.operators.pod import KubernetesPodOperator
|
|
27
|
-
from airflow.
|
|
29
|
+
from airflow.sdk import Context
|
|
28
30
|
|
|
29
31
|
client_type: TypeAlias = k8s.CoreV1Api | async_k8s.CoreV1Api
|
|
30
32
|
|
|
@@ -189,12 +191,24 @@ class KubernetesPodOperatorCallback:
|
|
|
189
191
|
pass
|
|
190
192
|
|
|
191
193
|
@staticmethod
|
|
192
|
-
def progress_callback(
|
|
194
|
+
def progress_callback(
|
|
195
|
+
*,
|
|
196
|
+
line: str,
|
|
197
|
+
client: client_type,
|
|
198
|
+
mode: str,
|
|
199
|
+
container_name: str,
|
|
200
|
+
timestamp: DateTime | None,
|
|
201
|
+
pod: k8s.V1Pod,
|
|
202
|
+
**kwargs,
|
|
203
|
+
) -> None:
|
|
193
204
|
"""
|
|
194
205
|
Invoke this callback to process pod container logs.
|
|
195
206
|
|
|
196
207
|
:param line: the read line of log.
|
|
197
208
|
:param client: the Kubernetes client that can be used in the callback.
|
|
198
209
|
:param mode: the current execution mode, it's one of (`sync`, `async`).
|
|
210
|
+
:param container_name: the name of the container from which the log line was read.
|
|
211
|
+
:param timestamp: the timestamp of the log line.
|
|
212
|
+
:param pod: the pod from which the log line was read.
|
|
199
213
|
"""
|
|
200
214
|
pass
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
# Licensed to the Apache Software Foundation (ASF) under one
|
|
2
|
+
# or more contributor license agreements. See the NOTICE file
|
|
3
|
+
# distributed with this work for additional information
|
|
4
|
+
# regarding copyright ownership. The ASF licenses this file
|
|
5
|
+
# to you under the Apache License, Version 2.0 (the
|
|
6
|
+
# "License"); you may not use this file except in compliance
|
|
7
|
+
# with the License. You may obtain a copy of the License at
|
|
8
|
+
#
|
|
9
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
#
|
|
11
|
+
# Unless required by applicable law or agreed to in writing,
|
|
12
|
+
# software distributed under the License is distributed on an
|
|
13
|
+
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
14
|
+
# KIND, either express or implied. See the License for the
|
|
15
|
+
# specific language governing permissions and limitations
|
|
16
|
+
# under the License.
|
|
17
|
+
from __future__ import annotations
|
|
18
|
+
|
|
19
|
+
from typing import TYPE_CHECKING
|
|
20
|
+
|
|
21
|
+
from airflow.cli.cli_config import (
|
|
22
|
+
ARG_DAG_ID,
|
|
23
|
+
ARG_OUTPUT_PATH,
|
|
24
|
+
ARG_VERBOSE,
|
|
25
|
+
ActionCommand,
|
|
26
|
+
Arg,
|
|
27
|
+
GroupCommand,
|
|
28
|
+
lazy_load_command,
|
|
29
|
+
positive_int,
|
|
30
|
+
)
|
|
31
|
+
from airflow.configuration import conf
|
|
32
|
+
from airflow.providers.cncf.kubernetes.version_compat import AIRFLOW_V_3_0_PLUS
|
|
33
|
+
|
|
34
|
+
if TYPE_CHECKING:
|
|
35
|
+
import argparse
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
try:
|
|
39
|
+
from airflow.cli.cli_config import ARG_LOGICAL_DATE
|
|
40
|
+
except ImportError: # 2.x compatibility.
|
|
41
|
+
from airflow.cli.cli_config import ( # type: ignore[attr-defined, no-redef]
|
|
42
|
+
ARG_EXECUTION_DATE as ARG_LOGICAL_DATE,
|
|
43
|
+
)
|
|
44
|
+
|
|
45
|
+
if AIRFLOW_V_3_0_PLUS:
|
|
46
|
+
from airflow.cli.cli_config import ARG_BUNDLE_NAME
|
|
47
|
+
|
|
48
|
+
ARG_COMPAT = ARG_BUNDLE_NAME
|
|
49
|
+
else:
|
|
50
|
+
from airflow.cli.cli_config import ARG_SUBDIR # type: ignore[attr-defined]
|
|
51
|
+
|
|
52
|
+
ARG_COMPAT = ARG_SUBDIR
|
|
53
|
+
|
|
54
|
+
# CLI Args
|
|
55
|
+
ARG_NAMESPACE = Arg(
|
|
56
|
+
("--namespace",),
|
|
57
|
+
default=conf.get("kubernetes_executor", "namespace"),
|
|
58
|
+
help="Kubernetes Namespace. Default value is `[kubernetes] namespace` in configuration.",
|
|
59
|
+
)
|
|
60
|
+
|
|
61
|
+
ARG_MIN_PENDING_MINUTES = Arg(
|
|
62
|
+
("--min-pending-minutes",),
|
|
63
|
+
default=30,
|
|
64
|
+
type=positive_int(allow_zero=False),
|
|
65
|
+
help=(
|
|
66
|
+
"Pending pods created before the time interval are to be cleaned up, "
|
|
67
|
+
"measured in minutes. Default value is 30(m). The minimum value is 5(m)."
|
|
68
|
+
),
|
|
69
|
+
)
|
|
70
|
+
|
|
71
|
+
# CLI Commands
|
|
72
|
+
KUBERNETES_COMMANDS = (
|
|
73
|
+
ActionCommand(
|
|
74
|
+
name="cleanup-pods",
|
|
75
|
+
help=(
|
|
76
|
+
"Clean up Kubernetes pods "
|
|
77
|
+
"(created by KubernetesExecutor/KubernetesPodOperator) "
|
|
78
|
+
"in evicted/failed/succeeded/pending states"
|
|
79
|
+
),
|
|
80
|
+
func=lazy_load_command("airflow.providers.cncf.kubernetes.cli.kubernetes_command.cleanup_pods"),
|
|
81
|
+
args=(ARG_NAMESPACE, ARG_MIN_PENDING_MINUTES, ARG_VERBOSE),
|
|
82
|
+
),
|
|
83
|
+
ActionCommand(
|
|
84
|
+
name="generate-dag-yaml",
|
|
85
|
+
help="Generate YAML files for all tasks in DAG. Useful for debugging tasks without "
|
|
86
|
+
"launching into a cluster",
|
|
87
|
+
func=lazy_load_command("airflow.providers.cncf.kubernetes.cli.kubernetes_command.generate_pod_yaml"),
|
|
88
|
+
args=(ARG_DAG_ID, ARG_LOGICAL_DATE, ARG_COMPAT, ARG_OUTPUT_PATH, ARG_VERBOSE),
|
|
89
|
+
),
|
|
90
|
+
)
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
def get_kubernetes_cli_commands() -> list[GroupCommand]:
|
|
94
|
+
return [
|
|
95
|
+
GroupCommand(
|
|
96
|
+
name="kubernetes",
|
|
97
|
+
help="Tools to help run the KubernetesExecutor",
|
|
98
|
+
subcommands=KUBERNETES_COMMANDS,
|
|
99
|
+
)
|
|
100
|
+
]
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
def get_parser() -> argparse.ArgumentParser:
|
|
104
|
+
"""
|
|
105
|
+
Generate documentation; used by Sphinx.
|
|
106
|
+
|
|
107
|
+
:meta private:
|
|
108
|
+
"""
|
|
109
|
+
from airflow.cli.cli_parser import AirflowHelpFormatter, DefaultHelpParser, _add_command
|
|
110
|
+
|
|
111
|
+
parser = DefaultHelpParser(prog="airflow", formatter_class=AirflowHelpFormatter)
|
|
112
|
+
subparsers = parser.add_subparsers(dest="subcommand", metavar="GROUP_OR_COMMAND")
|
|
113
|
+
for group_command in get_kubernetes_cli_commands():
|
|
114
|
+
_add_command(subparsers, group_command)
|
|
115
|
+
return parser
|
|
@@ -37,6 +37,8 @@ from airflow.utils import cli as cli_utils, yaml
|
|
|
37
37
|
from airflow.utils.providers_configuration_loader import providers_configuration_loaded
|
|
38
38
|
from airflow.utils.types import DagRunType
|
|
39
39
|
|
|
40
|
+
from tests_common.test_utils.taskinstance import create_task_instance
|
|
41
|
+
|
|
40
42
|
if AIRFLOW_V_3_1_PLUS:
|
|
41
43
|
from airflow.utils.cli import get_bagged_dag
|
|
42
44
|
else:
|
|
@@ -73,7 +75,7 @@ def generate_pod_yaml(args):
|
|
|
73
75
|
if AIRFLOW_V_3_0_PLUS:
|
|
74
76
|
from uuid6 import uuid7
|
|
75
77
|
|
|
76
|
-
ti =
|
|
78
|
+
ti = create_task_instance(task, run_id=dr.run_id, dag_version_id=uuid7())
|
|
77
79
|
else:
|
|
78
80
|
ti = TaskInstance(task, run_id=dr.run_id)
|
|
79
81
|
ti.dag_run = dr
|
|
@@ -38,7 +38,7 @@ from airflow.providers.common.compat.sdk import (
|
|
|
38
38
|
)
|
|
39
39
|
|
|
40
40
|
if TYPE_CHECKING:
|
|
41
|
-
from airflow.
|
|
41
|
+
from airflow.sdk import Context
|
|
42
42
|
|
|
43
43
|
_PYTHON_SCRIPT_ENV = "__PYTHON_SCRIPT"
|
|
44
44
|
_PYTHON_INPUT_ENV = "__PYTHON_INPUT"
|
|
@@ -87,7 +87,13 @@ class _KubernetesDecoratedOperator(DecoratedOperator, KubernetesPodOperator):
|
|
|
87
87
|
def _generate_cmds(self) -> list[str]:
|
|
88
88
|
script_filename = "/tmp/script.py"
|
|
89
89
|
input_filename = "/tmp/script.in"
|
|
90
|
-
|
|
90
|
+
|
|
91
|
+
if getattr(self, "do_xcom_push", False):
|
|
92
|
+
output_filename = "/airflow/xcom/return.json"
|
|
93
|
+
make_xcom_dir_cmd = "mkdir -p /airflow/xcom"
|
|
94
|
+
else:
|
|
95
|
+
output_filename = "/dev/null"
|
|
96
|
+
make_xcom_dir_cmd = ":" # shell no-op
|
|
91
97
|
|
|
92
98
|
write_local_script_file_cmd = (
|
|
93
99
|
f"{_generate_decoded_command(quote(_PYTHON_SCRIPT_ENV), quote(script_filename))}"
|
|
@@ -95,7 +101,6 @@ class _KubernetesDecoratedOperator(DecoratedOperator, KubernetesPodOperator):
|
|
|
95
101
|
write_local_input_file_cmd = (
|
|
96
102
|
f"{_generate_decoded_command(quote(_PYTHON_INPUT_ENV), quote(input_filename))}"
|
|
97
103
|
)
|
|
98
|
-
make_xcom_dir_cmd = "mkdir -p /airflow/xcom"
|
|
99
104
|
exec_python_cmd = f"python {script_filename} {input_filename} {output_filename}"
|
|
100
105
|
return [
|
|
101
106
|
"bash",
|
|
@@ -30,13 +30,14 @@ from airflow.providers.common.compat.sdk import (
|
|
|
30
30
|
from airflow.utils.operator_helpers import determine_kwargs
|
|
31
31
|
|
|
32
32
|
if TYPE_CHECKING:
|
|
33
|
-
from airflow.
|
|
33
|
+
from airflow.sdk import Context
|
|
34
34
|
|
|
35
35
|
|
|
36
36
|
class _KubernetesCmdDecoratedOperator(DecoratedOperator, KubernetesPodOperator):
|
|
37
37
|
custom_operator_name = "@task.kubernetes_cmd"
|
|
38
38
|
|
|
39
|
-
template_fields: Sequence[str] = KubernetesPodOperator.template_fields
|
|
39
|
+
template_fields: Sequence[str] = tuple({"op_args", "op_kwargs", *KubernetesPodOperator.template_fields})
|
|
40
|
+
|
|
40
41
|
overwrite_rtif_after_execution: bool = True
|
|
41
42
|
|
|
42
43
|
def __init__(self, *, python_callable: Callable, args_only: bool = False, **kwargs) -> None:
|
|
@@ -69,6 +70,8 @@ class _KubernetesCmdDecoratedOperator(DecoratedOperator, KubernetesPodOperator):
|
|
|
69
70
|
)
|
|
70
71
|
|
|
71
72
|
def execute(self, context: Context):
|
|
73
|
+
self.render_template_fields(context)
|
|
74
|
+
|
|
72
75
|
generated = self._generate_cmds(context)
|
|
73
76
|
if self.args_only:
|
|
74
77
|
self.cmds = []
|
|
@@ -76,7 +79,7 @@ class _KubernetesCmdDecoratedOperator(DecoratedOperator, KubernetesPodOperator):
|
|
|
76
79
|
else:
|
|
77
80
|
self.cmds = generated
|
|
78
81
|
self.arguments = []
|
|
79
|
-
|
|
82
|
+
self.render_template_fields(context)
|
|
80
83
|
return super().execute(context)
|
|
81
84
|
|
|
82
85
|
def _generate_cmds(self, context: Context) -> list[str]:
|
|
@@ -18,6 +18,12 @@ from __future__ import annotations
|
|
|
18
18
|
|
|
19
19
|
from airflow.exceptions import AirflowException
|
|
20
20
|
|
|
21
|
+
# Todo: we cannot have a backcompat import for AirflowException yet
|
|
22
|
+
# because PodMutationHookException is redefined in airflow.exception
|
|
23
|
+
# Remove this and either import AirflowException from common.sdk or
|
|
24
|
+
# import it from airflow.sdk.exceptions when PodMutationHookException
|
|
25
|
+
# is removed from airflow.exceptions
|
|
26
|
+
|
|
21
27
|
|
|
22
28
|
class PodMutationHookException(AirflowException):
|
|
23
29
|
"""Raised when exception happens during Pod Mutation Hook execution."""
|