apache-airflow-providers-cncf-kubernetes 10.5.0rc2__tar.gz → 10.6.0rc1__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.
Potentially problematic release.
This version of apache-airflow-providers-cncf-kubernetes might be problematic. Click here for more details.
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/PKG-INFO +13 -13
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/README.rst +8 -8
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/docs/changelog.rst +35 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/docs/index.rst +6 -6
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/docs/local_kubernetes_executor.rst +6 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/docs/operators.rst +1 -1
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/provider.yaml +4 -3
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/pyproject.toml +6 -10
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/src/airflow/providers/cncf/kubernetes/__init__.py +1 -1
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/src/airflow/providers/cncf/kubernetes/cli/kubernetes_command.py +19 -4
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/src/airflow/providers/cncf/kubernetes/executors/kubernetes_executor.py +3 -3
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/src/airflow/providers/cncf/kubernetes/executors/kubernetes_executor_types.py +5 -1
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/src/airflow/providers/cncf/kubernetes/executors/kubernetes_executor_utils.py +2 -10
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/src/airflow/providers/cncf/kubernetes/executors/local_kubernetes_executor.py +15 -9
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/src/airflow/providers/cncf/kubernetes/get_provider_info.py +1 -1
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/src/airflow/providers/cncf/kubernetes/kube_config.py +6 -3
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/src/airflow/providers/cncf/kubernetes/operators/pod.py +58 -10
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/src/airflow/providers/cncf/kubernetes/pod_generator.py +39 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/src/airflow/providers/cncf/kubernetes/template_rendering.py +6 -2
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/src/airflow/providers/cncf/kubernetes/triggers/pod.py +11 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/src/airflow/providers/cncf/kubernetes/utils/pod_manager.py +22 -2
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/tests/unit/cncf/kubernetes/decorators/test_kubernetes.py +3 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/tests/unit/cncf/kubernetes/decorators/test_kubernetes_cmd.py +8 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/tests/unit/cncf/kubernetes/decorators/test_kubernetes_commons.py +18 -1
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/tests/unit/cncf/kubernetes/executors/test_kubernetes_executor.py +21 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/tests/unit/cncf/kubernetes/executors/test_local_kubernetes_executor.py +5 -7
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/tests/unit/cncf/kubernetes/log_handlers/test_log_handlers.py +2 -2
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/tests/unit/cncf/kubernetes/operators/test_pod.py +85 -1
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/tests/unit/cncf/kubernetes/operators/test_spark_kubernetes.py +34 -14
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/tests/unit/cncf/kubernetes/test_template_rendering.py +24 -10
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/tests/unit/cncf/kubernetes/triggers/test_pod.py +1 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/tests/unit/cncf/kubernetes/utils/test_pod_manager.py +71 -11
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/docs/.latest-doc-only-change.txt +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/docs/cli-ref.rst +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/docs/commits.rst +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/docs/conf.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/docs/configurations-ref.rst +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/docs/connections/kubernetes.rst +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/docs/img/arch-diag-kubernetes.png +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/docs/img/arch-diag-kubernetes2.png +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/docs/img/k8s-failed-pod.png +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/docs/img/k8s-happy-path.png +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/docs/installing-providers-from-sources.rst +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/docs/integration-logos/Kubernetes.png +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/docs/integration-logos/Spark-On-Kubernetes.png +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/docs/kubernetes_executor.rst +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/docs/redirects.txt +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/docs/security.rst +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/src/airflow/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/src/airflow/providers/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/src/airflow/providers/cncf/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/src/airflow/providers/cncf/kubernetes/LICENSE +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/src/airflow/providers/cncf/kubernetes/backcompat/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/src/airflow/providers/cncf/kubernetes/backcompat/backwards_compat_converters.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/src/airflow/providers/cncf/kubernetes/callbacks.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/src/airflow/providers/cncf/kubernetes/cli/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/src/airflow/providers/cncf/kubernetes/decorators/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/src/airflow/providers/cncf/kubernetes/decorators/kubernetes.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/src/airflow/providers/cncf/kubernetes/decorators/kubernetes_cmd.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/src/airflow/providers/cncf/kubernetes/exceptions.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/src/airflow/providers/cncf/kubernetes/executors/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/src/airflow/providers/cncf/kubernetes/hooks/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/src/airflow/providers/cncf/kubernetes/hooks/kubernetes.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/src/airflow/providers/cncf/kubernetes/k8s_model.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/src/airflow/providers/cncf/kubernetes/kube_client.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/src/airflow/providers/cncf/kubernetes/kubernetes_executor_templates/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/src/airflow/providers/cncf/kubernetes/kubernetes_executor_templates/basic_template.yaml +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/src/airflow/providers/cncf/kubernetes/kubernetes_helper_functions.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/src/airflow/providers/cncf/kubernetes/operators/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/src/airflow/providers/cncf/kubernetes/operators/custom_object_launcher.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/src/airflow/providers/cncf/kubernetes/operators/job.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/src/airflow/providers/cncf/kubernetes/operators/kueue.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/src/airflow/providers/cncf/kubernetes/operators/resource.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/src/airflow/providers/cncf/kubernetes/operators/spark_kubernetes.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/src/airflow/providers/cncf/kubernetes/pod_template_file_examples/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/src/airflow/providers/cncf/kubernetes/pod_template_file_examples/dags_in_image_template.yaml +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/src/airflow/providers/cncf/kubernetes/pod_template_file_examples/dags_in_volume_template.yaml +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/src/airflow/providers/cncf/kubernetes/pod_template_file_examples/git_sync_template.yaml +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/src/airflow/providers/cncf/kubernetes/python_kubernetes_script.jinja2 +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/src/airflow/providers/cncf/kubernetes/python_kubernetes_script.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/src/airflow/providers/cncf/kubernetes/resource_convert/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/src/airflow/providers/cncf/kubernetes/resource_convert/configmap.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/src/airflow/providers/cncf/kubernetes/resource_convert/env_variable.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/src/airflow/providers/cncf/kubernetes/resource_convert/secret.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/src/airflow/providers/cncf/kubernetes/secret.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/src/airflow/providers/cncf/kubernetes/sensors/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/src/airflow/providers/cncf/kubernetes/sensors/spark_kubernetes.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/src/airflow/providers/cncf/kubernetes/triggers/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/src/airflow/providers/cncf/kubernetes/triggers/job.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/src/airflow/providers/cncf/kubernetes/utils/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/src/airflow/providers/cncf/kubernetes/utils/delete_from.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/src/airflow/providers/cncf/kubernetes/utils/k8s_resource_iterator.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/src/airflow/providers/cncf/kubernetes/utils/xcom_sidecar.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/src/airflow/providers/cncf/kubernetes/version_compat.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/tests/conftest.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/tests/system/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/tests/system/cncf/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/tests/system/cncf/kubernetes/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/tests/system/cncf/kubernetes/example_kubernetes.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/tests/system/cncf/kubernetes/example_kubernetes_async.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/tests/system/cncf/kubernetes/example_kubernetes_cmd_decorator.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/tests/system/cncf/kubernetes/example_kubernetes_decorator.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/tests/system/cncf/kubernetes/example_kubernetes_job.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/tests/system/cncf/kubernetes/example_kubernetes_kueue.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/tests/system/cncf/kubernetes/example_kubernetes_resource.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/tests/system/cncf/kubernetes/example_spark_kubernetes.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/tests/system/cncf/kubernetes/example_spark_kubernetes_spark_pi.yaml +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/tests/system/cncf/kubernetes/spark_job_template.yaml +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/tests/unit/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/tests/unit/cncf/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/tests/unit/cncf/kubernetes/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/tests/unit/cncf/kubernetes/backcompat/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/tests/unit/cncf/kubernetes/backcompat/test_backwards_compat_converters.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/tests/unit/cncf/kubernetes/cli/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/tests/unit/cncf/kubernetes/cli/test_kubernetes_command.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/tests/unit/cncf/kubernetes/conftest.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/tests/unit/cncf/kubernetes/data_files/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/tests/unit/cncf/kubernetes/data_files/executor/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/tests/unit/cncf/kubernetes/data_files/executor/basic_template.yaml +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/tests/unit/cncf/kubernetes/data_files/kube_config +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/tests/unit/cncf/kubernetes/data_files/pods/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/tests/unit/cncf/kubernetes/data_files/pods/generator_base.yaml +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/tests/unit/cncf/kubernetes/data_files/pods/generator_base_with_secrets.yaml +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/tests/unit/cncf/kubernetes/data_files/pods/template.yaml +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/tests/unit/cncf/kubernetes/data_files/spark/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/tests/unit/cncf/kubernetes/data_files/spark/application_template.yaml +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/tests/unit/cncf/kubernetes/data_files/spark/application_test.json +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/tests/unit/cncf/kubernetes/data_files/spark/application_test.yaml +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/tests/unit/cncf/kubernetes/data_files/spark/application_test_with_no_name_from_config.json +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/tests/unit/cncf/kubernetes/data_files/spark/application_test_with_no_name_from_config.yaml +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/tests/unit/cncf/kubernetes/decorators/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/tests/unit/cncf/kubernetes/executors/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/tests/unit/cncf/kubernetes/hooks/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/tests/unit/cncf/kubernetes/hooks/test_kubernetes.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/tests/unit/cncf/kubernetes/log_handlers/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/tests/unit/cncf/kubernetes/models/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/tests/unit/cncf/kubernetes/models/test_secret.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/tests/unit/cncf/kubernetes/operators/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/tests/unit/cncf/kubernetes/operators/test_custom_object_launcher.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/tests/unit/cncf/kubernetes/operators/test_job.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/tests/unit/cncf/kubernetes/operators/test_kueue.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/tests/unit/cncf/kubernetes/operators/test_resource.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/tests/unit/cncf/kubernetes/resource_convert/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/tests/unit/cncf/kubernetes/resource_convert/test_configmap.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/tests/unit/cncf/kubernetes/resource_convert/test_env_variable.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/tests/unit/cncf/kubernetes/resource_convert/test_secret.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/tests/unit/cncf/kubernetes/sensors/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/tests/unit/cncf/kubernetes/sensors/test_spark_kubernetes.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/tests/unit/cncf/kubernetes/test_callbacks.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/tests/unit/cncf/kubernetes/test_client.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/tests/unit/cncf/kubernetes/test_kubernetes_helper_functions.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/tests/unit/cncf/kubernetes/test_pod_generator.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/tests/unit/cncf/kubernetes/triggers/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/tests/unit/cncf/kubernetes/triggers/test_job.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/tests/unit/cncf/kubernetes/utils/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.5.0rc2 → apache_airflow_providers_cncf_kubernetes-10.6.0rc1}/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.6.0rc1
|
|
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,11 +24,11 @@ Requires-Dist: aiofiles>=23.2.0
|
|
|
24
24
|
Requires-Dist: apache-airflow>=2.10.0rc1
|
|
25
25
|
Requires-Dist: asgiref>=3.5.2
|
|
26
26
|
Requires-Dist: cryptography>=41.0.0
|
|
27
|
-
Requires-Dist: kubernetes>=
|
|
28
|
-
Requires-Dist: kubernetes_asyncio>=
|
|
27
|
+
Requires-Dist: kubernetes>=32.0.0,<33.0.0
|
|
28
|
+
Requires-Dist: kubernetes_asyncio>=32.0.0,<33.0.0
|
|
29
29
|
Project-URL: Bug Tracker, https://github.com/apache/airflow/issues
|
|
30
|
-
Project-URL: Changelog, https://airflow.staged.apache.org/docs/apache-airflow-providers-cncf-kubernetes/10.
|
|
31
|
-
Project-URL: Documentation, https://airflow.staged.apache.org/docs/apache-airflow-providers-cncf-kubernetes/10.
|
|
30
|
+
Project-URL: Changelog, https://airflow.staged.apache.org/docs/apache-airflow-providers-cncf-kubernetes/10.6.0/changelog.html
|
|
31
|
+
Project-URL: Documentation, https://airflow.staged.apache.org/docs/apache-airflow-providers-cncf-kubernetes/10.6.0
|
|
32
32
|
Project-URL: Mastodon, https://fosstodon.org/@airflow
|
|
33
33
|
Project-URL: Slack Chat, https://s.apache.org/airflow-slack
|
|
34
34
|
Project-URL: Source Code, https://github.com/apache/airflow
|
|
@@ -59,7 +59,7 @@ Project-URL: YouTube, https://www.youtube.com/channel/UCSXwxpWZQ7XZ1WL3wqevChA/
|
|
|
59
59
|
|
|
60
60
|
Package ``apache-airflow-providers-cncf-kubernetes``
|
|
61
61
|
|
|
62
|
-
Release: ``10.
|
|
62
|
+
Release: ``10.6.0``
|
|
63
63
|
|
|
64
64
|
|
|
65
65
|
`Kubernetes <https://kubernetes.io/>`__
|
|
@@ -72,7 +72,7 @@ This is a provider package for ``cncf.kubernetes`` provider. All classes for thi
|
|
|
72
72
|
are in ``airflow.providers.cncf.kubernetes`` python package.
|
|
73
73
|
|
|
74
74
|
You can find package information and changelog for the provider
|
|
75
|
-
in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-cncf-kubernetes/10.
|
|
75
|
+
in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-cncf-kubernetes/10.6.0/>`_.
|
|
76
76
|
|
|
77
77
|
Installation
|
|
78
78
|
------------
|
|
@@ -86,17 +86,17 @@ The package supports the following python versions: 3.9,3.10,3.11,3.12
|
|
|
86
86
|
Requirements
|
|
87
87
|
------------
|
|
88
88
|
|
|
89
|
-
======================
|
|
89
|
+
====================== ====================
|
|
90
90
|
PIP package Version required
|
|
91
|
-
======================
|
|
91
|
+
====================== ====================
|
|
92
92
|
``aiofiles`` ``>=23.2.0``
|
|
93
93
|
``apache-airflow`` ``>=2.10.0``
|
|
94
94
|
``asgiref`` ``>=3.5.2``
|
|
95
95
|
``cryptography`` ``>=41.0.0``
|
|
96
|
-
``kubernetes`` ``>=
|
|
97
|
-
``kubernetes_asyncio`` ``>=
|
|
98
|
-
======================
|
|
96
|
+
``kubernetes`` ``>=32.0.0,<33.0.0``
|
|
97
|
+
``kubernetes_asyncio`` ``>=32.0.0,<33.0.0``
|
|
98
|
+
====================== ====================
|
|
99
99
|
|
|
100
100
|
The changelog for the provider package can be found in the
|
|
101
|
-
`changelog <https://airflow.apache.org/docs/apache-airflow-providers-cncf-kubernetes/10.
|
|
101
|
+
`changelog <https://airflow.apache.org/docs/apache-airflow-providers-cncf-kubernetes/10.6.0/changelog.html>`_.
|
|
102
102
|
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
|
|
24
24
|
Package ``apache-airflow-providers-cncf-kubernetes``
|
|
25
25
|
|
|
26
|
-
Release: ``10.
|
|
26
|
+
Release: ``10.6.0``
|
|
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.6.0/>`_.
|
|
40
40
|
|
|
41
41
|
Installation
|
|
42
42
|
------------
|
|
@@ -50,16 +50,16 @@ The package supports the following python versions: 3.9,3.10,3.11,3.12
|
|
|
50
50
|
Requirements
|
|
51
51
|
------------
|
|
52
52
|
|
|
53
|
-
======================
|
|
53
|
+
====================== ====================
|
|
54
54
|
PIP package Version required
|
|
55
|
-
======================
|
|
55
|
+
====================== ====================
|
|
56
56
|
``aiofiles`` ``>=23.2.0``
|
|
57
57
|
``apache-airflow`` ``>=2.10.0``
|
|
58
58
|
``asgiref`` ``>=3.5.2``
|
|
59
59
|
``cryptography`` ``>=41.0.0``
|
|
60
|
-
``kubernetes`` ``>=
|
|
61
|
-
``kubernetes_asyncio`` ``>=
|
|
62
|
-
======================
|
|
60
|
+
``kubernetes`` ``>=32.0.0,<33.0.0``
|
|
61
|
+
``kubernetes_asyncio`` ``>=32.0.0,<33.0.0``
|
|
62
|
+
====================== ====================
|
|
63
63
|
|
|
64
64
|
The changelog for the provider package can be found in the
|
|
65
|
-
`changelog <https://airflow.apache.org/docs/apache-airflow-providers-cncf-kubernetes/10.
|
|
65
|
+
`changelog <https://airflow.apache.org/docs/apache-airflow-providers-cncf-kubernetes/10.6.0/changelog.html>`_.
|
|
@@ -28,6 +28,41 @@ Changelog
|
|
|
28
28
|
---------
|
|
29
29
|
|
|
30
30
|
|
|
31
|
+
10.6.0
|
|
32
|
+
......
|
|
33
|
+
|
|
34
|
+
Features
|
|
35
|
+
~~~~~~~~
|
|
36
|
+
|
|
37
|
+
* ``KubernetesPodOperator push xcom after failed pod (#51475)``
|
|
38
|
+
* ``[KubernetesPodOperator] Reads Kubernetes events and writes them into log (#50192)``
|
|
39
|
+
* ``Added detection of terminated pod during get_or_create_pod (#51158)``
|
|
40
|
+
|
|
41
|
+
Bug Fixes
|
|
42
|
+
~~~~~~~~~
|
|
43
|
+
|
|
44
|
+
* ``Add xcom sidecar terminated detection (#51144)``
|
|
45
|
+
* ``Fix 'EksPodOperator' in deferrable mode (#51255)``
|
|
46
|
+
* ``Fix a bug where Kube config "worker_pod_pending_fatal_container_state_reasons" is parsed wrongly (#50931)``
|
|
47
|
+
|
|
48
|
+
Misc
|
|
49
|
+
~~~~
|
|
50
|
+
|
|
51
|
+
* ``Relax Kubernetes client version support to <33.0.0 (#51195)``
|
|
52
|
+
* ``Adjust code path in executors to be compatible with airflow task run (#51009)``
|
|
53
|
+
* ``Port ''ti.run'' to Task SDK execution path (#50141)``
|
|
54
|
+
* ``Bump some provider dependencies for faster resolution (#51727)``
|
|
55
|
+
* ``Prevent legacy static hybrid executors to be running in Airflow 3 (#51733)``
|
|
56
|
+
|
|
57
|
+
Doc-only
|
|
58
|
+
~~~~~~~~
|
|
59
|
+
|
|
60
|
+
* ``Update the executor and provider doc to highlight the two statically coded hybrid executors are no longer supported in Airflow 3.0.0+ (#51715)``
|
|
61
|
+
* ``Update operators.rst - fix typo Kubernetes Pod Operator doc (#51574)``
|
|
62
|
+
|
|
63
|
+
.. Below changes are excluded from the changelog. Move them to
|
|
64
|
+
appropriate section above if needed. Do not delete the lines(!):
|
|
65
|
+
|
|
31
66
|
10.5.0
|
|
32
67
|
......
|
|
33
68
|
|
|
@@ -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.6.0
|
|
91
91
|
|
|
92
92
|
Provider package
|
|
93
93
|
----------------
|
|
@@ -107,13 +107,13 @@ Requirements
|
|
|
107
107
|
|
|
108
108
|
The minimum Apache Airflow version supported by this provider distribution is ``2.10.0``.
|
|
109
109
|
|
|
110
|
-
======================
|
|
110
|
+
====================== ====================
|
|
111
111
|
PIP package Version required
|
|
112
|
-
======================
|
|
112
|
+
====================== ====================
|
|
113
113
|
``aiofiles`` ``>=23.2.0``
|
|
114
114
|
``apache-airflow`` ``>=2.10.0``
|
|
115
115
|
``asgiref`` ``>=3.5.2``
|
|
116
116
|
``cryptography`` ``>=41.0.0``
|
|
117
|
-
``kubernetes`` ``>=
|
|
118
|
-
``kubernetes_asyncio`` ``>=
|
|
119
|
-
======================
|
|
117
|
+
``kubernetes`` ``>=32.0.0,<33.0.0``
|
|
118
|
+
``kubernetes_asyncio`` ``>=32.0.0,<33.0.0``
|
|
119
|
+
====================== ====================
|
|
@@ -28,6 +28,12 @@ LocalKubernetes Executor
|
|
|
28
28
|
or by installing Airflow with the ``cncf.kubernetes`` extras:
|
|
29
29
|
``pip install 'apache-airflow[cncf.kubernetes]'``.
|
|
30
30
|
|
|
31
|
+
.. note::
|
|
32
|
+
|
|
33
|
+
``LocalKubernetesExecutor`` is no longer supported starting from Airflow 3.0.0. You can use the
|
|
34
|
+
:ref:`Using Multiple Executors Concurrently <using-multiple-executors-concurrently>` feature instead,
|
|
35
|
+
which provides equivalent functionality in a more flexible manner.
|
|
36
|
+
|
|
31
37
|
The :class:`~airflow.providers.cncf.kubernetes.executors.local_kubernetes_executor.LocalKubernetesExecutor` allows users
|
|
32
38
|
to simultaneously run a ``LocalExecutor`` and a ``KubernetesExecutor``.
|
|
33
39
|
An executor is chosen to run a task based on the task's queue.
|
|
@@ -752,4 +752,4 @@ you to start a Kueue job in a Kubernetes cluster
|
|
|
752
752
|
For further information, look at:
|
|
753
753
|
|
|
754
754
|
* `Kubernetes Documentation <https://kubernetes.io/docs/home/>`__
|
|
755
|
-
* `
|
|
755
|
+
* `Run a Kubernetes job in Kueue <https://kueue.sigs.k8s.io/docs/tasks/run/jobs/>`__
|
|
@@ -22,12 +22,13 @@ description: |
|
|
|
22
22
|
`Kubernetes <https://kubernetes.io/>`__
|
|
23
23
|
|
|
24
24
|
state: ready
|
|
25
|
-
source-date-epoch:
|
|
25
|
+
source-date-epoch: 1749896254
|
|
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.6.0
|
|
31
32
|
- 10.5.0
|
|
32
33
|
- 10.4.3
|
|
33
34
|
- 10.4.2
|
|
@@ -241,8 +242,8 @@ config:
|
|
|
241
242
|
version_added: 8.1.0
|
|
242
243
|
type: string
|
|
243
244
|
example: ~
|
|
244
|
-
default:
|
|
245
|
-
InvalidImageName
|
|
245
|
+
default: "CreateContainerConfigError,ErrImagePull,CreateContainerError,ImageInspectError,\
|
|
246
|
+
InvalidImageName"
|
|
246
247
|
worker_pods_creation_batch_size:
|
|
247
248
|
description: |
|
|
248
249
|
Number of Kubernetes Worker Pod creation calls per scheduler loop.
|
|
@@ -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.6.0rc1"
|
|
29
29
|
description = "Provider package apache-airflow-providers-cncf-kubernetes for Apache Airflow"
|
|
30
30
|
readme = "README.rst"
|
|
31
31
|
authors = [
|
|
@@ -69,13 +69,9 @@ dependencies = [
|
|
|
69
69
|
# limiting minimum airflow version supported in cncf.kubernetes provider, due to the
|
|
70
70
|
# potential breaking changes in Airflow Core as well (kubernetes is added as extra, so Airflow
|
|
71
71
|
# core is not hard-limited via install-requirements, only by extra).
|
|
72
|
-
"kubernetes>=
|
|
73
|
-
#
|
|
74
|
-
|
|
75
|
-
# load kubernetes config file from dictionary in that release and is limited to the next MAJOR version
|
|
76
|
-
# (started from current 24.2.2 version) to prevent introducing some problems that could be due to some
|
|
77
|
-
# major changes in the package.
|
|
78
|
-
"kubernetes_asyncio>=29.0.0,<=31.0.0",
|
|
72
|
+
"kubernetes>=32.0.0,<33.0.0",
|
|
73
|
+
# the version is limited to the next MAJOR version and should by synced with the kubernetes version
|
|
74
|
+
"kubernetes_asyncio>=32.0.0,<33.0.0",
|
|
79
75
|
]
|
|
80
76
|
|
|
81
77
|
[dependency-groups]
|
|
@@ -112,8 +108,8 @@ apache-airflow-providers-common-sql = {workspace = true}
|
|
|
112
108
|
apache-airflow-providers-standard = {workspace = true}
|
|
113
109
|
|
|
114
110
|
[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.
|
|
111
|
+
"Documentation" = "https://airflow.staged.apache.org/docs/apache-airflow-providers-cncf-kubernetes/10.6.0"
|
|
112
|
+
"Changelog" = "https://airflow.staged.apache.org/docs/apache-airflow-providers-cncf-kubernetes/10.6.0/changelog.html"
|
|
117
113
|
"Bug Tracker" = "https://github.com/apache/airflow/issues"
|
|
118
114
|
"Source Code" = "https://github.com/apache/airflow"
|
|
119
115
|
"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.6.0"
|
|
33
33
|
|
|
34
34
|
if packaging.version.parse(packaging.version.parse(airflow_version).base_version) < packaging.version.parse(
|
|
35
35
|
"2.10.0"
|
|
@@ -26,16 +26,17 @@ from kubernetes import client
|
|
|
26
26
|
from kubernetes.client.api_client import ApiClient
|
|
27
27
|
from kubernetes.client.rest import ApiException
|
|
28
28
|
|
|
29
|
-
from airflow.models import DagRun, TaskInstance
|
|
29
|
+
from airflow.models import DagModel, DagRun, TaskInstance
|
|
30
30
|
from airflow.providers.cncf.kubernetes import pod_generator
|
|
31
31
|
from airflow.providers.cncf.kubernetes.executors.kubernetes_executor import KubeConfig
|
|
32
32
|
from airflow.providers.cncf.kubernetes.kube_client import get_kube_client
|
|
33
33
|
from airflow.providers.cncf.kubernetes.kubernetes_helper_functions import create_unique_id
|
|
34
|
-
from airflow.providers.cncf.kubernetes.pod_generator import PodGenerator
|
|
34
|
+
from airflow.providers.cncf.kubernetes.pod_generator import PodGenerator, generate_pod_command_args
|
|
35
35
|
from airflow.providers.cncf.kubernetes.version_compat import AIRFLOW_V_3_0_PLUS
|
|
36
36
|
from airflow.utils import cli as cli_utils, yaml
|
|
37
37
|
from airflow.utils.cli import get_dag
|
|
38
38
|
from airflow.utils.providers_configuration_loader import providers_configuration_loaded
|
|
39
|
+
from airflow.utils.types import DagRunType
|
|
39
40
|
|
|
40
41
|
|
|
41
42
|
@cli_utils.action_cli
|
|
@@ -48,14 +49,28 @@ def generate_pod_yaml(args):
|
|
|
48
49
|
else:
|
|
49
50
|
dag = get_dag(subdir=args.subdir, dag_id=args.dag_id)
|
|
50
51
|
yaml_output_path = args.output_path
|
|
52
|
+
|
|
53
|
+
dm = DagModel(dag_id=dag.dag_id)
|
|
54
|
+
|
|
51
55
|
if AIRFLOW_V_3_0_PLUS:
|
|
52
56
|
dr = DagRun(dag.dag_id, logical_date=logical_date)
|
|
57
|
+
dr.run_id = DagRun.generate_run_id(
|
|
58
|
+
run_type=DagRunType.MANUAL, logical_date=logical_date, run_after=logical_date
|
|
59
|
+
)
|
|
60
|
+
dm.bundle_name = args.bundle_name if args.bundle_name else "default"
|
|
61
|
+
dm.relative_fileloc = dag.relative_fileloc
|
|
53
62
|
else:
|
|
54
63
|
dr = DagRun(dag.dag_id, execution_date=logical_date)
|
|
64
|
+
dr.run_id = DagRun.generate_run_id(run_type=DagRunType.MANUAL, execution_date=logical_date)
|
|
65
|
+
|
|
55
66
|
kube_config = KubeConfig()
|
|
67
|
+
|
|
56
68
|
for task in dag.tasks:
|
|
57
|
-
ti = TaskInstance(task,
|
|
69
|
+
ti = TaskInstance(task, run_id=dr.run_id)
|
|
58
70
|
ti.dag_run = dr
|
|
71
|
+
ti.dag_model = dm
|
|
72
|
+
|
|
73
|
+
command_args = generate_pod_command_args(ti)
|
|
59
74
|
pod = PodGenerator.construct_pod(
|
|
60
75
|
dag_id=args.dag_id,
|
|
61
76
|
task_id=ti.task_id,
|
|
@@ -63,7 +78,7 @@ def generate_pod_yaml(args):
|
|
|
63
78
|
try_number=ti.try_number,
|
|
64
79
|
kube_image=kube_config.kube_image,
|
|
65
80
|
date=ti.logical_date if AIRFLOW_V_3_0_PLUS else ti.execution_date,
|
|
66
|
-
args=
|
|
81
|
+
args=command_args,
|
|
67
82
|
pod_override_object=PodGenerator.from_obj(ti.executor_config),
|
|
68
83
|
scheduler_job_id="worker-config",
|
|
69
84
|
namespace=kube_config.executor_namespace,
|
|
@@ -76,13 +76,13 @@ from airflow.utils.state import TaskInstanceState
|
|
|
76
76
|
|
|
77
77
|
if TYPE_CHECKING:
|
|
78
78
|
import argparse
|
|
79
|
+
from collections.abc import Sequence
|
|
79
80
|
|
|
80
81
|
from kubernetes import client
|
|
81
82
|
from kubernetes.client import models as k8s
|
|
82
83
|
from sqlalchemy.orm import Session
|
|
83
84
|
|
|
84
85
|
from airflow.executors import workloads
|
|
85
|
-
from airflow.executors.base_executor import CommandType
|
|
86
86
|
from airflow.models.taskinstance import TaskInstance
|
|
87
87
|
from airflow.models.taskinstancekey import TaskInstanceKey
|
|
88
88
|
from airflow.providers.cncf.kubernetes.executors.kubernetes_executor_types import (
|
|
@@ -254,7 +254,7 @@ class KubernetesExecutor(BaseExecutor):
|
|
|
254
254
|
def execute_async(
|
|
255
255
|
self,
|
|
256
256
|
key: TaskInstanceKey,
|
|
257
|
-
command:
|
|
257
|
+
command: Any,
|
|
258
258
|
queue: str | None = None,
|
|
259
259
|
executor_config: Any | None = None,
|
|
260
260
|
) -> None:
|
|
@@ -292,7 +292,7 @@ class KubernetesExecutor(BaseExecutor):
|
|
|
292
292
|
ti = workload.ti
|
|
293
293
|
self.queued_tasks[ti.key] = workload
|
|
294
294
|
|
|
295
|
-
def _process_workloads(self, workloads:
|
|
295
|
+
def _process_workloads(self, workloads: Sequence[workloads.All]) -> None:
|
|
296
296
|
from airflow.executors.workloads import ExecuteTask
|
|
297
297
|
|
|
298
298
|
# Airflow V3 version
|
|
@@ -20,10 +20,14 @@ from typing import TYPE_CHECKING, Any, Optional, Union
|
|
|
20
20
|
|
|
21
21
|
ADOPTED = "adopted"
|
|
22
22
|
if TYPE_CHECKING:
|
|
23
|
-
from
|
|
23
|
+
from collections.abc import Sequence
|
|
24
|
+
|
|
24
25
|
from airflow.models.taskinstance import TaskInstanceKey
|
|
25
26
|
from airflow.utils.state import TaskInstanceState
|
|
26
27
|
|
|
28
|
+
# TODO: Remove after Airflow 2 support is removed
|
|
29
|
+
CommandType = Sequence[str]
|
|
30
|
+
|
|
27
31
|
# TaskInstance key, command, configuration, pod_template_file
|
|
28
32
|
KubernetesJobType = tuple[TaskInstanceKey, CommandType, Any, Optional[str]]
|
|
29
33
|
|
|
@@ -41,7 +41,7 @@ from airflow.providers.cncf.kubernetes.kubernetes_helper_functions import (
|
|
|
41
41
|
annotations_to_key,
|
|
42
42
|
create_unique_id,
|
|
43
43
|
)
|
|
44
|
-
from airflow.providers.cncf.kubernetes.pod_generator import PodGenerator
|
|
44
|
+
from airflow.providers.cncf.kubernetes.pod_generator import PodGenerator, workload_to_command_args
|
|
45
45
|
from airflow.utils.log.logging_mixin import LoggingMixin
|
|
46
46
|
from airflow.utils.singleton import Singleton
|
|
47
47
|
from airflow.utils.state import TaskInstanceState
|
|
@@ -387,20 +387,12 @@ class AirflowKubernetesScheduler(LoggingMixin):
|
|
|
387
387
|
key, command, kube_executor_config, pod_template_file = next_job
|
|
388
388
|
|
|
389
389
|
dag_id, task_id, run_id, try_number, map_index = key
|
|
390
|
-
ser_input = ""
|
|
391
390
|
if len(command) == 1:
|
|
392
391
|
from airflow.executors.workloads import ExecuteTask
|
|
393
392
|
|
|
394
393
|
if isinstance(command[0], ExecuteTask):
|
|
395
394
|
workload = command[0]
|
|
396
|
-
|
|
397
|
-
command = [
|
|
398
|
-
"python",
|
|
399
|
-
"-m",
|
|
400
|
-
"airflow.sdk.execution_time.execute_workload",
|
|
401
|
-
"--json-string",
|
|
402
|
-
ser_input,
|
|
403
|
-
]
|
|
395
|
+
command = workload_to_command_args(workload)
|
|
404
396
|
else:
|
|
405
397
|
raise ValueError(
|
|
406
398
|
f"KubernetesExecutor doesn't know how to handle workload of type: {type(command[0])}"
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
from __future__ import annotations
|
|
19
19
|
|
|
20
20
|
from collections.abc import Sequence
|
|
21
|
-
from typing import TYPE_CHECKING
|
|
21
|
+
from typing import TYPE_CHECKING, Any
|
|
22
22
|
|
|
23
23
|
from deprecated import deprecated
|
|
24
24
|
|
|
@@ -26,18 +26,17 @@ from airflow.configuration import conf
|
|
|
26
26
|
from airflow.exceptions import AirflowProviderDeprecationWarning
|
|
27
27
|
from airflow.executors.base_executor import BaseExecutor
|
|
28
28
|
from airflow.providers.cncf.kubernetes.executors.kubernetes_executor import KubernetesExecutor
|
|
29
|
+
from airflow.providers.cncf.kubernetes.version_compat import AIRFLOW_V_3_0_PLUS
|
|
29
30
|
|
|
30
31
|
if TYPE_CHECKING:
|
|
31
32
|
from airflow.callbacks.base_callback_sink import BaseCallbackSink
|
|
32
33
|
from airflow.callbacks.callback_requests import CallbackRequest
|
|
33
|
-
from airflow.executors.base_executor import
|
|
34
|
-
CommandType,
|
|
35
|
-
EventBufferValueType,
|
|
36
|
-
QueuedTaskInstanceType,
|
|
37
|
-
)
|
|
34
|
+
from airflow.executors.base_executor import EventBufferValueType
|
|
38
35
|
from airflow.executors.local_executor import LocalExecutor
|
|
39
36
|
from airflow.models.taskinstance import SimpleTaskInstance, TaskInstance, TaskInstanceKey
|
|
40
37
|
|
|
38
|
+
CommandType = Sequence[str]
|
|
39
|
+
|
|
41
40
|
|
|
42
41
|
class LocalKubernetesExecutor(BaseExecutor):
|
|
43
42
|
"""
|
|
@@ -81,7 +80,7 @@ class LocalKubernetesExecutor(BaseExecutor):
|
|
|
81
80
|
"""Not implemented for hybrid executors."""
|
|
82
81
|
|
|
83
82
|
@property
|
|
84
|
-
def queued_tasks(self) -> dict[TaskInstanceKey,
|
|
83
|
+
def queued_tasks(self) -> dict[TaskInstanceKey, Any]:
|
|
85
84
|
"""Return queued tasks from local and kubernetes executor."""
|
|
86
85
|
queued_tasks = self.local_executor.queued_tasks.copy()
|
|
87
86
|
# TODO: fix this, there is misalignment between the types of queued_tasks so it is likely wrong
|
|
@@ -121,6 +120,13 @@ class LocalKubernetesExecutor(BaseExecutor):
|
|
|
121
120
|
|
|
122
121
|
def start(self) -> None:
|
|
123
122
|
"""Start local and kubernetes executor."""
|
|
123
|
+
if AIRFLOW_V_3_0_PLUS:
|
|
124
|
+
raise RuntimeError(
|
|
125
|
+
f"{self.__class__.__name__} does not support Airflow 3.0+. See "
|
|
126
|
+
"https://airflow.apache.org/docs/apache-airflow/stable/core-concepts/executor/index.html#using-multiple-executors-concurrently"
|
|
127
|
+
" how to use multiple executors concurrently."
|
|
128
|
+
)
|
|
129
|
+
|
|
124
130
|
self.log.info("Starting local and Kubernetes Executor")
|
|
125
131
|
self.local_executor.start()
|
|
126
132
|
self.kubernetes_executor.start()
|
|
@@ -145,7 +151,7 @@ class LocalKubernetesExecutor(BaseExecutor):
|
|
|
145
151
|
"""Queues command via local or kubernetes executor."""
|
|
146
152
|
executor = self._router(task_instance)
|
|
147
153
|
self.log.debug("Using executor: %s for %s", executor.__class__.__name__, task_instance.key)
|
|
148
|
-
executor.queue_command(task_instance, command, priority, queue)
|
|
154
|
+
executor.queue_command(task_instance, command, priority, queue) # type: ignore[union-attr]
|
|
149
155
|
|
|
150
156
|
def queue_task_instance(
|
|
151
157
|
self,
|
|
@@ -171,7 +177,7 @@ class LocalKubernetesExecutor(BaseExecutor):
|
|
|
171
177
|
if not hasattr(task_instance, "pickle_id"):
|
|
172
178
|
del kwargs["pickle_id"]
|
|
173
179
|
|
|
174
|
-
executor.queue_task_instance(
|
|
180
|
+
executor.queue_task_instance( # type: ignore[union-attr]
|
|
175
181
|
task_instance=task_instance,
|
|
176
182
|
mark_success=mark_success,
|
|
177
183
|
ignore_all_deps=ignore_all_deps,
|
|
@@ -169,7 +169,7 @@ def get_provider_info():
|
|
|
169
169
|
"version_added": "8.1.0",
|
|
170
170
|
"type": "string",
|
|
171
171
|
"example": None,
|
|
172
|
-
"default": "CreateContainerConfigError,ErrImagePull,CreateContainerError,ImageInspectError,
|
|
172
|
+
"default": "CreateContainerConfigError,ErrImagePull,CreateContainerError,ImageInspectError,InvalidImageName",
|
|
173
173
|
},
|
|
174
174
|
"worker_pods_creation_batch_size": {
|
|
175
175
|
"description": 'Number of Kubernetes Worker Pod creation calls per scheduler loop.\nNote that the current default of "1" will only launch a single pod\nper-heartbeat. It is HIGHLY recommended that users increase this\nnumber to match the tolerance of their kubernetes cluster for\nbetter performance.\n',
|
|
@@ -42,9 +42,12 @@ class KubeConfig:
|
|
|
42
42
|
)
|
|
43
43
|
self.worker_pod_pending_fatal_container_state_reasons = []
|
|
44
44
|
if conf.get(self.kubernetes_section, "worker_pod_pending_fatal_container_state_reasons", fallback=""):
|
|
45
|
-
self.worker_pod_pending_fatal_container_state_reasons =
|
|
46
|
-
|
|
47
|
-
|
|
45
|
+
self.worker_pod_pending_fatal_container_state_reasons = [
|
|
46
|
+
r.strip()
|
|
47
|
+
for r in conf.get(
|
|
48
|
+
self.kubernetes_section, "worker_pod_pending_fatal_container_state_reasons"
|
|
49
|
+
).split(",")
|
|
50
|
+
]
|
|
48
51
|
|
|
49
52
|
self.worker_pods_creation_batch_size = conf.getint(
|
|
50
53
|
self.kubernetes_section, "worker_pods_creation_batch_size"
|