apache-airflow-providers-cncf-kubernetes 10.10.0__tar.gz → 10.11.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.
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/PKG-INFO +9 -9
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/README.rst +4 -4
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/docs/changelog.rst +33 -8
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/docs/index.rst +5 -5
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/provider.yaml +2 -1
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/pyproject.toml +5 -5
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/src/airflow/providers/cncf/kubernetes/__init__.py +3 -3
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/src/airflow/providers/cncf/kubernetes/exceptions.py +1 -3
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/src/airflow/providers/cncf/kubernetes/hooks/kubernetes.py +22 -9
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/src/airflow/providers/cncf/kubernetes/kubernetes_helper_functions.py +61 -16
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/src/airflow/providers/cncf/kubernetes/operators/job.py +9 -3
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/src/airflow/providers/cncf/kubernetes/operators/pod.py +4 -6
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/src/airflow/providers/cncf/kubernetes/operators/resource.py +2 -8
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/src/airflow/providers/cncf/kubernetes/utils/pod_manager.py +14 -38
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/src/airflow/providers/cncf/kubernetes/version_compat.py +5 -1
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/tests/unit/cncf/kubernetes/conftest.py +22 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/tests/unit/cncf/kubernetes/decorators/test_kubernetes_cmd.py +1 -1
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/tests/unit/cncf/kubernetes/executors/test_kubernetes_executor.py +9 -4
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/tests/unit/cncf/kubernetes/hooks/test_kubernetes.py +4 -3
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/tests/unit/cncf/kubernetes/operators/test_job.py +1 -1
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/tests/unit/cncf/kubernetes/operators/test_pod.py +22 -14
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/tests/unit/cncf/kubernetes/operators/test_resource.py +3 -2
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/tests/unit/cncf/kubernetes/test_kubernetes_helper_functions.py +60 -1
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/tests/unit/cncf/kubernetes/triggers/test_pod.py +5 -1
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/tests/unit/cncf/kubernetes/utils/test_pod_manager.py +11 -34
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/LICENSE +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/NOTICE +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/docs/.latest-doc-only-change.txt +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/docs/cli-ref.rst +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/docs/commits.rst +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/docs/conf.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/docs/configurations-ref.rst +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/docs/connections/kubernetes.rst +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/docs/img/arch-diag-kubernetes.png +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/docs/img/arch-diag-kubernetes2.png +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/docs/img/k8s-failed-pod.png +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/docs/img/k8s-happy-path.png +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/docs/installing-providers-from-sources.rst +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/docs/integration-logos/Kubernetes.png +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/docs/integration-logos/Spark-On-Kubernetes.png +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/docs/kubernetes_executor.rst +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/docs/local_kubernetes_executor.rst +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/docs/operators.rst +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/docs/redirects.txt +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/docs/security.rst +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/src/airflow/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/src/airflow/providers/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/src/airflow/providers/cncf/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/src/airflow/providers/cncf/kubernetes/backcompat/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/src/airflow/providers/cncf/kubernetes/backcompat/backwards_compat_converters.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/src/airflow/providers/cncf/kubernetes/callbacks.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/src/airflow/providers/cncf/kubernetes/cli/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/src/airflow/providers/cncf/kubernetes/cli/kubernetes_command.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/src/airflow/providers/cncf/kubernetes/decorators/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/src/airflow/providers/cncf/kubernetes/decorators/kubernetes.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/src/airflow/providers/cncf/kubernetes/decorators/kubernetes_cmd.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/src/airflow/providers/cncf/kubernetes/executors/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/src/airflow/providers/cncf/kubernetes/executors/kubernetes_executor.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/src/airflow/providers/cncf/kubernetes/executors/kubernetes_executor_types.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/src/airflow/providers/cncf/kubernetes/executors/kubernetes_executor_utils.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/src/airflow/providers/cncf/kubernetes/executors/local_kubernetes_executor.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/src/airflow/providers/cncf/kubernetes/get_provider_info.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/src/airflow/providers/cncf/kubernetes/hooks/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/src/airflow/providers/cncf/kubernetes/k8s_model.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/src/airflow/providers/cncf/kubernetes/kube_client.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/src/airflow/providers/cncf/kubernetes/kube_config.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/src/airflow/providers/cncf/kubernetes/kubernetes_executor_templates/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/src/airflow/providers/cncf/kubernetes/kubernetes_executor_templates/basic_template.yaml +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/src/airflow/providers/cncf/kubernetes/operators/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/src/airflow/providers/cncf/kubernetes/operators/custom_object_launcher.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/src/airflow/providers/cncf/kubernetes/operators/kueue.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/src/airflow/providers/cncf/kubernetes/operators/spark_kubernetes.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/src/airflow/providers/cncf/kubernetes/pod_generator.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/src/airflow/providers/cncf/kubernetes/pod_template_file_examples/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/src/airflow/providers/cncf/kubernetes/pod_template_file_examples/dags_in_image_template.yaml +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/src/airflow/providers/cncf/kubernetes/pod_template_file_examples/dags_in_volume_template.yaml +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/src/airflow/providers/cncf/kubernetes/pod_template_file_examples/git_sync_template.yaml +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/src/airflow/providers/cncf/kubernetes/python_kubernetes_script.jinja2 +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/src/airflow/providers/cncf/kubernetes/python_kubernetes_script.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/src/airflow/providers/cncf/kubernetes/resource_convert/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/src/airflow/providers/cncf/kubernetes/resource_convert/configmap.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/src/airflow/providers/cncf/kubernetes/resource_convert/env_variable.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/src/airflow/providers/cncf/kubernetes/resource_convert/secret.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/src/airflow/providers/cncf/kubernetes/secret.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/src/airflow/providers/cncf/kubernetes/sensors/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/src/airflow/providers/cncf/kubernetes/sensors/spark_kubernetes.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/src/airflow/providers/cncf/kubernetes/template_rendering.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/src/airflow/providers/cncf/kubernetes/triggers/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/src/airflow/providers/cncf/kubernetes/triggers/job.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/src/airflow/providers/cncf/kubernetes/triggers/pod.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/src/airflow/providers/cncf/kubernetes/utils/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/src/airflow/providers/cncf/kubernetes/utils/container.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/src/airflow/providers/cncf/kubernetes/utils/delete_from.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/src/airflow/providers/cncf/kubernetes/utils/k8s_resource_iterator.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/src/airflow/providers/cncf/kubernetes/utils/xcom_sidecar.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/tests/conftest.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/tests/system/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/tests/system/cncf/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/tests/system/cncf/kubernetes/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/tests/system/cncf/kubernetes/example_kubernetes.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/tests/system/cncf/kubernetes/example_kubernetes_async.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/tests/system/cncf/kubernetes/example_kubernetes_cmd_decorator.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/tests/system/cncf/kubernetes/example_kubernetes_decorator.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/tests/system/cncf/kubernetes/example_kubernetes_job.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/tests/system/cncf/kubernetes/example_kubernetes_kueue.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/tests/system/cncf/kubernetes/example_kubernetes_resource.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/tests/system/cncf/kubernetes/example_spark_kubernetes.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/tests/system/cncf/kubernetes/example_spark_kubernetes_spark_pi.yaml +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/tests/system/cncf/kubernetes/spark_job_template.yaml +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/tests/unit/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/tests/unit/cncf/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/tests/unit/cncf/kubernetes/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/tests/unit/cncf/kubernetes/backcompat/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/tests/unit/cncf/kubernetes/backcompat/test_backwards_compat_converters.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/tests/unit/cncf/kubernetes/cli/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/tests/unit/cncf/kubernetes/cli/test_kubernetes_command.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/tests/unit/cncf/kubernetes/data_files/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/tests/unit/cncf/kubernetes/data_files/executor/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/tests/unit/cncf/kubernetes/data_files/executor/basic_template.yaml +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/tests/unit/cncf/kubernetes/data_files/kube_config +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/tests/unit/cncf/kubernetes/data_files/pods/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/tests/unit/cncf/kubernetes/data_files/pods/generator_base.yaml +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/tests/unit/cncf/kubernetes/data_files/pods/generator_base_with_secrets.yaml +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/tests/unit/cncf/kubernetes/data_files/pods/template.yaml +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/tests/unit/cncf/kubernetes/data_files/spark/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/tests/unit/cncf/kubernetes/data_files/spark/application_template.yaml +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/tests/unit/cncf/kubernetes/data_files/spark/application_test.json +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/tests/unit/cncf/kubernetes/data_files/spark/application_test.yaml +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/tests/unit/cncf/kubernetes/data_files/spark/application_test_with_no_name_from_config.json +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/tests/unit/cncf/kubernetes/data_files/spark/application_test_with_no_name_from_config.yaml +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/tests/unit/cncf/kubernetes/decorators/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/tests/unit/cncf/kubernetes/decorators/test_kubernetes.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/tests/unit/cncf/kubernetes/decorators/test_kubernetes_commons.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/tests/unit/cncf/kubernetes/executors/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/tests/unit/cncf/kubernetes/executors/test_local_kubernetes_executor.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/tests/unit/cncf/kubernetes/hooks/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/tests/unit/cncf/kubernetes/log_handlers/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/tests/unit/cncf/kubernetes/log_handlers/test_log_handlers.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/tests/unit/cncf/kubernetes/models/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/tests/unit/cncf/kubernetes/models/test_secret.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/tests/unit/cncf/kubernetes/operators/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/tests/unit/cncf/kubernetes/operators/test_custom_object_launcher.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/tests/unit/cncf/kubernetes/operators/test_kueue.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/tests/unit/cncf/kubernetes/operators/test_spark_kubernetes.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/tests/unit/cncf/kubernetes/resource_convert/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/tests/unit/cncf/kubernetes/resource_convert/test_configmap.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/tests/unit/cncf/kubernetes/resource_convert/test_env_variable.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/tests/unit/cncf/kubernetes/resource_convert/test_secret.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/tests/unit/cncf/kubernetes/sensors/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/tests/unit/cncf/kubernetes/sensors/test_spark_kubernetes.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/tests/unit/cncf/kubernetes/test_callbacks.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/tests/unit/cncf/kubernetes/test_client.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/tests/unit/cncf/kubernetes/test_pod_generator.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/tests/unit/cncf/kubernetes/test_template_rendering.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/tests/unit/cncf/kubernetes/triggers/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/tests/unit/cncf/kubernetes/triggers/test_job.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/tests/unit/cncf/kubernetes/utils/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/tests/unit/cncf/kubernetes/utils/test_container.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.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.11.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>
|
|
@@ -23,15 +23,15 @@ Classifier: Topic :: System :: Monitoring
|
|
|
23
23
|
License-File: LICENSE
|
|
24
24
|
License-File: NOTICE
|
|
25
25
|
Requires-Dist: aiofiles>=23.2.0
|
|
26
|
-
Requires-Dist: apache-airflow>=2.
|
|
27
|
-
Requires-Dist: apache-airflow-providers-common-compat>=1.8.
|
|
26
|
+
Requires-Dist: apache-airflow>=2.11.0rc1
|
|
27
|
+
Requires-Dist: apache-airflow-providers-common-compat>=1.8.0rc1
|
|
28
28
|
Requires-Dist: asgiref>=3.5.2
|
|
29
29
|
Requires-Dist: cryptography>=41.0.0,<46.0.0
|
|
30
30
|
Requires-Dist: kubernetes>=32.0.0,<35.0.0
|
|
31
31
|
Requires-Dist: kubernetes_asyncio>=32.0.0,<35.0.0
|
|
32
32
|
Project-URL: Bug Tracker, https://github.com/apache/airflow/issues
|
|
33
|
-
Project-URL: Changelog, https://airflow.apache.org/docs/apache-airflow-providers-cncf-kubernetes/10.
|
|
34
|
-
Project-URL: Documentation, https://airflow.apache.org/docs/apache-airflow-providers-cncf-kubernetes/10.
|
|
33
|
+
Project-URL: Changelog, https://airflow.staged.apache.org/docs/apache-airflow-providers-cncf-kubernetes/10.11.0/changelog.html
|
|
34
|
+
Project-URL: Documentation, https://airflow.staged.apache.org/docs/apache-airflow-providers-cncf-kubernetes/10.11.0
|
|
35
35
|
Project-URL: Mastodon, https://fosstodon.org/@airflow
|
|
36
36
|
Project-URL: Slack Chat, https://s.apache.org/airflow-slack
|
|
37
37
|
Project-URL: Source Code, https://github.com/apache/airflow
|
|
@@ -62,7 +62,7 @@ Project-URL: YouTube, https://www.youtube.com/channel/UCSXwxpWZQ7XZ1WL3wqevChA/
|
|
|
62
62
|
|
|
63
63
|
Package ``apache-airflow-providers-cncf-kubernetes``
|
|
64
64
|
|
|
65
|
-
Release: ``10.
|
|
65
|
+
Release: ``10.11.0``
|
|
66
66
|
|
|
67
67
|
|
|
68
68
|
`Kubernetes <https://kubernetes.io/>`__
|
|
@@ -75,7 +75,7 @@ This is a provider package for ``cncf.kubernetes`` provider. All classes for thi
|
|
|
75
75
|
are in ``airflow.providers.cncf.kubernetes`` python package.
|
|
76
76
|
|
|
77
77
|
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.
|
|
78
|
+
in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-cncf-kubernetes/10.11.0/>`_.
|
|
79
79
|
|
|
80
80
|
Installation
|
|
81
81
|
------------
|
|
@@ -93,7 +93,7 @@ Requirements
|
|
|
93
93
|
PIP package Version required
|
|
94
94
|
========================================== ====================
|
|
95
95
|
``aiofiles`` ``>=23.2.0``
|
|
96
|
-
``apache-airflow`` ``>=2.
|
|
96
|
+
``apache-airflow`` ``>=2.11.0``
|
|
97
97
|
``apache-airflow-providers-common-compat`` ``>=1.8.0``
|
|
98
98
|
``asgiref`` ``>=3.5.2``
|
|
99
99
|
``cryptography`` ``>=41.0.0,<46.0.0``
|
|
@@ -121,5 +121,5 @@ Dependent package
|
|
|
121
121
|
================================================================================================================== =================
|
|
122
122
|
|
|
123
123
|
The changelog for the provider package can be found in the
|
|
124
|
-
`changelog <https://airflow.apache.org/docs/apache-airflow-providers-cncf-kubernetes/10.
|
|
124
|
+
`changelog <https://airflow.apache.org/docs/apache-airflow-providers-cncf-kubernetes/10.11.0/changelog.html>`_.
|
|
125
125
|
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
|
|
24
24
|
Package ``apache-airflow-providers-cncf-kubernetes``
|
|
25
25
|
|
|
26
|
-
Release: ``10.
|
|
26
|
+
Release: ``10.11.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.11.0/>`_.
|
|
40
40
|
|
|
41
41
|
Installation
|
|
42
42
|
------------
|
|
@@ -54,7 +54,7 @@ Requirements
|
|
|
54
54
|
PIP package Version required
|
|
55
55
|
========================================== ====================
|
|
56
56
|
``aiofiles`` ``>=23.2.0``
|
|
57
|
-
``apache-airflow`` ``>=2.
|
|
57
|
+
``apache-airflow`` ``>=2.11.0``
|
|
58
58
|
``apache-airflow-providers-common-compat`` ``>=1.8.0``
|
|
59
59
|
``asgiref`` ``>=3.5.2``
|
|
60
60
|
``cryptography`` ``>=41.0.0,<46.0.0``
|
|
@@ -82,4 +82,4 @@ Dependent package
|
|
|
82
82
|
================================================================================================================== =================
|
|
83
83
|
|
|
84
84
|
The changelog for the provider package can be found in the
|
|
85
|
-
`changelog <https://airflow.apache.org/docs/apache-airflow-providers-cncf-kubernetes/10.
|
|
85
|
+
`changelog <https://airflow.apache.org/docs/apache-airflow-providers-cncf-kubernetes/10.11.0/changelog.html>`_.
|
|
@@ -28,6 +28,35 @@ Changelog
|
|
|
28
28
|
---------
|
|
29
29
|
|
|
30
30
|
|
|
31
|
+
10.11.0
|
|
32
|
+
.......
|
|
33
|
+
|
|
34
|
+
.. note::
|
|
35
|
+
This release of provider is only available for Airflow 2.11+ as explained in the
|
|
36
|
+
Apache Airflow providers support policy <https://github.com/apache/airflow/blob/main/PROVIDERS.rst#minimum-supported-version-of-airflow-for-community-managed-providers>_.
|
|
37
|
+
|
|
38
|
+
Bug Fixes
|
|
39
|
+
~~~~~~~~~
|
|
40
|
+
|
|
41
|
+
* ``Fix Account for job- prefix when truncating job names (#58391)``
|
|
42
|
+
* ``KubernetesPodOperator: Rework of Kubernetes API retry behavior (#58397)``
|
|
43
|
+
* ``Fix KuberetesPodTriggerer use correct parameter name to read pod logs. (#58489)``
|
|
44
|
+
* ``KubernetesPodOperator pushes XCom on successful execution. (#58488)``
|
|
45
|
+
* ``KubernetesPodOperator PodManager retries during create pod on too many requests error (#58033)``
|
|
46
|
+
* ``Add JSON serialization for kubeconfig in AsyncKubernetesHook (#57169)``
|
|
47
|
+
|
|
48
|
+
Misc
|
|
49
|
+
~~~~
|
|
50
|
+
|
|
51
|
+
* ``Move out some exceptions to TaskSDK (#54505)``
|
|
52
|
+
* ``Bump minimum Airflow version in providers to Airflow 2.11.0 (#58612)``
|
|
53
|
+
|
|
54
|
+
.. Below changes are excluded from the changelog. Move them to
|
|
55
|
+
appropriate section above if needed. Do not delete the lines(!):
|
|
56
|
+
* ``Updates to release process of providers (#58316)``
|
|
57
|
+
* ``Send executor integration info in workload (#57800)``
|
|
58
|
+
* ``Fixes #57515 - Fix test_async_write_logs_should_execute_successfully test (#58276)``
|
|
59
|
+
|
|
31
60
|
10.10.0
|
|
32
61
|
.......
|
|
33
62
|
|
|
@@ -175,8 +204,6 @@ Doc-only
|
|
|
175
204
|
* ``Switch pre-commit to prek (#54258)``
|
|
176
205
|
* ``make bundle_name not nullable (#47592)``
|
|
177
206
|
* ``Bump pytest-asyncio to 1.1.0 (#54123)``
|
|
178
|
-
|
|
179
|
-
.. Review and move the new changes to one of the sections above:
|
|
180
207
|
* ``Fix Airflow 2 reference in README/index of providers (#55240)``
|
|
181
208
|
|
|
182
209
|
10.7.0
|
|
@@ -505,8 +532,6 @@ Misc
|
|
|
505
532
|
|
|
506
533
|
.. Below changes are excluded from the changelog. Move them to
|
|
507
534
|
appropriate section above if needed. Do not delete the lines(!):
|
|
508
|
-
|
|
509
|
-
.. Review and move the new changes to one of the sections above:
|
|
510
535
|
* ``fix: Get the pid of xcom command dynamically (#45053)``
|
|
511
536
|
|
|
512
537
|
10.0.1
|
|
@@ -909,7 +934,8 @@ Misc
|
|
|
909
934
|
* ``Add GKEStartKueueInsideClusterOperator (#37072)``
|
|
910
935
|
* ``Convert Kubernetes ApiException status code to string to ensure it's correctly checked (#37405)``
|
|
911
936
|
|
|
912
|
-
..
|
|
937
|
+
.. Below changes are excluded from the changelog. Move them to
|
|
938
|
+
appropriate section above if needed. Do not delete the lines(!):
|
|
913
939
|
* ``Add d401 support to kubernetes provider (#37301)``
|
|
914
940
|
* ``Revert "KPO Maintain backward compatibility for execute_complete and trigger run method (#37363)" (#37446)``
|
|
915
941
|
* ``KPO Maintain backward compatibility for execute_complete and trigger run method (#37363)``
|
|
@@ -1416,7 +1442,8 @@ Features
|
|
|
1416
1442
|
|
|
1417
1443
|
* ``Allow to set limits for XCOM container (#28125)``
|
|
1418
1444
|
|
|
1419
|
-
..
|
|
1445
|
+
.. Below changes are excluded from the changelog. Move them to
|
|
1446
|
+
appropriate section above if needed. Do not delete the lines(!):
|
|
1420
1447
|
* ``Add mechanism to suspend providers (#30422)``
|
|
1421
1448
|
|
|
1422
1449
|
5.3.0
|
|
@@ -1517,8 +1544,6 @@ Misc
|
|
|
1517
1544
|
* ``Updated docs for RC3 wave of providers (#27937)``
|
|
1518
1545
|
* ``Prepare for follow-up relase for November providers (#27774)``
|
|
1519
1546
|
|
|
1520
|
-
.. Review and move the new changes to one of the sections above:
|
|
1521
|
-
|
|
1522
1547
|
5.0.0
|
|
1523
1548
|
.....
|
|
1524
1549
|
|
|
@@ -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.11.0
|
|
91
91
|
|
|
92
92
|
Provider package
|
|
93
93
|
----------------
|
|
@@ -105,13 +105,13 @@ For the minimum Airflow version supported, see ``Requirements`` below.
|
|
|
105
105
|
Requirements
|
|
106
106
|
------------
|
|
107
107
|
|
|
108
|
-
The minimum Apache Airflow version supported by this provider distribution is ``2.
|
|
108
|
+
The minimum Apache Airflow version supported by this provider distribution is ``2.11.0``.
|
|
109
109
|
|
|
110
110
|
========================================== ====================
|
|
111
111
|
PIP package Version required
|
|
112
112
|
========================================== ====================
|
|
113
113
|
``aiofiles`` ``>=23.2.0``
|
|
114
|
-
``apache-airflow`` ``>=2.
|
|
114
|
+
``apache-airflow`` ``>=2.11.0``
|
|
115
115
|
``apache-airflow-providers-common-compat`` ``>=1.8.0``
|
|
116
116
|
``asgiref`` ``>=3.5.2``
|
|
117
117
|
``cryptography`` ``>=41.0.0,<46.0.0``
|
|
@@ -144,5 +144,5 @@ Downloading official packages
|
|
|
144
144
|
You can download officially released packages and verify their checksums and signatures from the
|
|
145
145
|
`Official Apache Download site <https://downloads.apache.org/airflow/providers/>`_
|
|
146
146
|
|
|
147
|
-
* `The apache-airflow-providers-cncf-kubernetes 10.
|
|
148
|
-
* `The apache-airflow-providers-cncf-kubernetes 10.
|
|
147
|
+
* `The apache-airflow-providers-cncf-kubernetes 10.11.0 sdist package <https://downloads.apache.org/airflow/providers/apache_airflow_providers_cncf_kubernetes-10.11.0.tar.gz>`_ (`asc <https://downloads.apache.org/airflow/providers/apache_airflow_providers_cncf_kubernetes-10.11.0.tar.gz.asc>`__, `sha512 <https://downloads.apache.org/airflow/providers/apache_airflow_providers_cncf_kubernetes-10.11.0.tar.gz.sha512>`__)
|
|
148
|
+
* `The apache-airflow-providers-cncf-kubernetes 10.11.0 wheel package <https://downloads.apache.org/airflow/providers/apache_airflow_providers_cncf_kubernetes-10.11.0-py3-none-any.whl>`_ (`asc <https://downloads.apache.org/airflow/providers/apache_airflow_providers_cncf_kubernetes-10.11.0-py3-none-any.whl.asc>`__, `sha512 <https://downloads.apache.org/airflow/providers/apache_airflow_providers_cncf_kubernetes-10.11.0-py3-none-any.whl.sha512>`__)
|
|
@@ -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: 1764109853
|
|
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.11.0
|
|
31
32
|
- 10.10.0
|
|
32
33
|
- 10.9.0
|
|
33
34
|
- 10.8.2
|
|
@@ -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.11.0rc1"
|
|
29
29
|
description = "Provider package apache-airflow-providers-cncf-kubernetes for Apache Airflow"
|
|
30
30
|
readme = "README.rst"
|
|
31
31
|
license = "Apache-2.0"
|
|
@@ -59,8 +59,8 @@ requires-python = ">=3.10"
|
|
|
59
59
|
# After you modify the dependencies, and rebuild your Breeze CI image with ``breeze ci-image build``
|
|
60
60
|
dependencies = [
|
|
61
61
|
"aiofiles>=23.2.0",
|
|
62
|
-
"apache-airflow>=2.
|
|
63
|
-
"apache-airflow-providers-common-compat>=1.8.
|
|
62
|
+
"apache-airflow>=2.11.0rc1",
|
|
63
|
+
"apache-airflow-providers-common-compat>=1.8.0rc1",
|
|
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",
|
|
@@ -112,8 +112,8 @@ apache-airflow-providers-common-sql = {workspace = true}
|
|
|
112
112
|
apache-airflow-providers-standard = {workspace = true}
|
|
113
113
|
|
|
114
114
|
[project.urls]
|
|
115
|
-
"Documentation" = "https://airflow.apache.org/docs/apache-airflow-providers-cncf-kubernetes/10.
|
|
116
|
-
"Changelog" = "https://airflow.apache.org/docs/apache-airflow-providers-cncf-kubernetes/10.
|
|
115
|
+
"Documentation" = "https://airflow.staged.apache.org/docs/apache-airflow-providers-cncf-kubernetes/10.11.0"
|
|
116
|
+
"Changelog" = "https://airflow.staged.apache.org/docs/apache-airflow-providers-cncf-kubernetes/10.11.0/changelog.html"
|
|
117
117
|
"Bug Tracker" = "https://github.com/apache/airflow/issues"
|
|
118
118
|
"Source Code" = "https://github.com/apache/airflow"
|
|
119
119
|
"Slack Chat" = "https://s.apache.org/airflow-slack"
|
|
@@ -29,11 +29,11 @@ from airflow import __version__ as airflow_version
|
|
|
29
29
|
|
|
30
30
|
__all__ = ["__version__"]
|
|
31
31
|
|
|
32
|
-
__version__ = "10.
|
|
32
|
+
__version__ = "10.11.0"
|
|
33
33
|
|
|
34
34
|
if packaging.version.parse(packaging.version.parse(airflow_version).base_version) < packaging.version.parse(
|
|
35
|
-
"2.
|
|
35
|
+
"2.11.0"
|
|
36
36
|
):
|
|
37
37
|
raise RuntimeError(
|
|
38
|
-
f"The package `apache-airflow-providers-cncf-kubernetes:{__version__}` needs Apache Airflow 2.
|
|
38
|
+
f"The package `apache-airflow-providers-cncf-kubernetes:{__version__}` needs Apache Airflow 2.11.0+"
|
|
39
39
|
)
|
|
@@ -27,7 +27,6 @@ from typing import TYPE_CHECKING, Any, Protocol
|
|
|
27
27
|
|
|
28
28
|
import aiofiles
|
|
29
29
|
import requests
|
|
30
|
-
import tenacity
|
|
31
30
|
from asgiref.sync import sync_to_async
|
|
32
31
|
from kubernetes import client, config, utils, watch
|
|
33
32
|
from kubernetes.client.models import V1Deployment
|
|
@@ -39,7 +38,7 @@ from airflow.exceptions import AirflowException, AirflowNotFoundException
|
|
|
39
38
|
from airflow.models import Connection
|
|
40
39
|
from airflow.providers.cncf.kubernetes.exceptions import KubernetesApiError, KubernetesApiPermissionError
|
|
41
40
|
from airflow.providers.cncf.kubernetes.kube_client import _disable_verify_ssl, _enable_tcp_keepalive
|
|
42
|
-
from airflow.providers.cncf.kubernetes.kubernetes_helper_functions import
|
|
41
|
+
from airflow.providers.cncf.kubernetes.kubernetes_helper_functions import generic_api_retry
|
|
43
42
|
from airflow.providers.cncf.kubernetes.utils.container import (
|
|
44
43
|
container_is_completed,
|
|
45
44
|
container_is_running,
|
|
@@ -390,6 +389,7 @@ class KubernetesHook(BaseHook, PodOperatorHookProtocol):
|
|
|
390
389
|
self.log.debug("Response: %s", response)
|
|
391
390
|
return response
|
|
392
391
|
|
|
392
|
+
@generic_api_retry
|
|
393
393
|
def get_custom_object(
|
|
394
394
|
self, group: str, version: str, plural: str, name: str, namespace: str | None = None
|
|
395
395
|
):
|
|
@@ -412,6 +412,7 @@ class KubernetesHook(BaseHook, PodOperatorHookProtocol):
|
|
|
412
412
|
)
|
|
413
413
|
return response
|
|
414
414
|
|
|
415
|
+
@generic_api_retry
|
|
415
416
|
def delete_custom_object(
|
|
416
417
|
self, group: str, version: str, plural: str, name: str, namespace: str | None = None, **kwargs
|
|
417
418
|
):
|
|
@@ -540,12 +541,7 @@ class KubernetesHook(BaseHook, PodOperatorHookProtocol):
|
|
|
540
541
|
name=name, namespace=namespace, pretty=True, **kwargs
|
|
541
542
|
)
|
|
542
543
|
|
|
543
|
-
@
|
|
544
|
-
stop=tenacity.stop_after_attempt(3),
|
|
545
|
-
wait=tenacity.wait_random_exponential(),
|
|
546
|
-
reraise=True,
|
|
547
|
-
retry=tenacity.retry_if_exception(should_retry_creation),
|
|
548
|
-
)
|
|
544
|
+
@generic_api_retry
|
|
549
545
|
def create_job(
|
|
550
546
|
self,
|
|
551
547
|
job: V1Job,
|
|
@@ -572,6 +568,7 @@ class KubernetesHook(BaseHook, PodOperatorHookProtocol):
|
|
|
572
568
|
raise e
|
|
573
569
|
return resp
|
|
574
570
|
|
|
571
|
+
@generic_api_retry
|
|
575
572
|
def get_job(self, job_name: str, namespace: str) -> V1Job:
|
|
576
573
|
"""
|
|
577
574
|
Get Job of specified name and namespace.
|
|
@@ -582,6 +579,7 @@ class KubernetesHook(BaseHook, PodOperatorHookProtocol):
|
|
|
582
579
|
"""
|
|
583
580
|
return self.batch_v1_client.read_namespaced_job(name=job_name, namespace=namespace, pretty=True)
|
|
584
581
|
|
|
582
|
+
@generic_api_retry
|
|
585
583
|
def get_job_status(self, job_name: str, namespace: str) -> V1Job:
|
|
586
584
|
"""
|
|
587
585
|
Get job with status of specified name and namespace.
|
|
@@ -611,6 +609,7 @@ class KubernetesHook(BaseHook, PodOperatorHookProtocol):
|
|
|
611
609
|
self.log.info("The job '%s' is incomplete. Sleeping for %i sec.", job_name, job_poll_interval)
|
|
612
610
|
sleep(job_poll_interval)
|
|
613
611
|
|
|
612
|
+
@generic_api_retry
|
|
614
613
|
def list_jobs_all_namespaces(self) -> V1JobList:
|
|
615
614
|
"""
|
|
616
615
|
Get list of Jobs from all namespaces.
|
|
@@ -619,6 +618,7 @@ class KubernetesHook(BaseHook, PodOperatorHookProtocol):
|
|
|
619
618
|
"""
|
|
620
619
|
return self.batch_v1_client.list_job_for_all_namespaces(pretty=True)
|
|
621
620
|
|
|
621
|
+
@generic_api_retry
|
|
622
622
|
def list_jobs_from_namespace(self, namespace: str) -> V1JobList:
|
|
623
623
|
"""
|
|
624
624
|
Get list of Jobs from dedicated namespace.
|
|
@@ -674,6 +674,7 @@ class KubernetesHook(BaseHook, PodOperatorHookProtocol):
|
|
|
674
674
|
return bool(next((c for c in conditions if c.type == "Complete" and c.status), None))
|
|
675
675
|
return False
|
|
676
676
|
|
|
677
|
+
@generic_api_retry
|
|
677
678
|
def patch_namespaced_job(self, job_name: str, namespace: str, body: object) -> V1Job:
|
|
678
679
|
"""
|
|
679
680
|
Update the specified Job.
|
|
@@ -831,6 +832,13 @@ class AsyncKubernetesHook(KubernetesHook):
|
|
|
831
832
|
"Reading kubernetes configuration file from connection "
|
|
832
833
|
"object and writing temporary config file with its content",
|
|
833
834
|
)
|
|
835
|
+
if isinstance(kubeconfig, dict):
|
|
836
|
+
self.log.debug(
|
|
837
|
+
LOADING_KUBE_CONFIG_FILE_RESOURCE.format(
|
|
838
|
+
"connection kube_config dictionary (serializing)"
|
|
839
|
+
)
|
|
840
|
+
)
|
|
841
|
+
kubeconfig = json.dumps(kubeconfig)
|
|
834
842
|
await temp_config.write(kubeconfig.encode())
|
|
835
843
|
await temp_config.flush()
|
|
836
844
|
self._is_in_cluster = False
|
|
@@ -872,6 +880,7 @@ class AsyncKubernetesHook(KubernetesHook):
|
|
|
872
880
|
if kube_client is not None:
|
|
873
881
|
await kube_client.close()
|
|
874
882
|
|
|
883
|
+
@generic_api_retry
|
|
875
884
|
async def get_pod(self, name: str, namespace: str) -> V1Pod:
|
|
876
885
|
"""
|
|
877
886
|
Get pod's object.
|
|
@@ -892,6 +901,7 @@ class AsyncKubernetesHook(KubernetesHook):
|
|
|
892
901
|
raise KubernetesApiPermissionError("Permission denied (403) from Kubernetes API.") from e
|
|
893
902
|
raise KubernetesApiError from e
|
|
894
903
|
|
|
904
|
+
@generic_api_retry
|
|
895
905
|
async def delete_pod(self, name: str, namespace: str):
|
|
896
906
|
"""
|
|
897
907
|
Delete pod's object.
|
|
@@ -910,6 +920,7 @@ class AsyncKubernetesHook(KubernetesHook):
|
|
|
910
920
|
if str(e.status) != "404":
|
|
911
921
|
raise
|
|
912
922
|
|
|
923
|
+
@generic_api_retry
|
|
913
924
|
async def read_logs(
|
|
914
925
|
self, name: str, namespace: str, container_name: str | None = None, since_seconds: int | None = None
|
|
915
926
|
) -> list[str]:
|
|
@@ -932,7 +943,7 @@ class AsyncKubernetesHook(KubernetesHook):
|
|
|
932
943
|
logs = await v1_api.read_namespaced_pod_log(
|
|
933
944
|
name=name,
|
|
934
945
|
namespace=namespace,
|
|
935
|
-
|
|
946
|
+
container=container_name,
|
|
936
947
|
follow=False,
|
|
937
948
|
timestamps=True,
|
|
938
949
|
since_seconds=since_seconds,
|
|
@@ -942,6 +953,7 @@ class AsyncKubernetesHook(KubernetesHook):
|
|
|
942
953
|
except HTTPError as e:
|
|
943
954
|
raise KubernetesApiError from e
|
|
944
955
|
|
|
956
|
+
@generic_api_retry
|
|
945
957
|
async def get_pod_events(self, name: str, namespace: str) -> CoreV1EventList:
|
|
946
958
|
"""Get pod's events."""
|
|
947
959
|
async with self.get_conn() as connection:
|
|
@@ -957,6 +969,7 @@ class AsyncKubernetesHook(KubernetesHook):
|
|
|
957
969
|
raise KubernetesApiPermissionError("Permission denied (403) from Kubernetes API.") from e
|
|
958
970
|
raise KubernetesApiError from e
|
|
959
971
|
|
|
972
|
+
@generic_api_retry
|
|
960
973
|
async def get_job_status(self, name: str, namespace: str) -> V1Job:
|
|
961
974
|
"""
|
|
962
975
|
Get job's status object.
|
|
@@ -23,10 +23,14 @@ from functools import cache
|
|
|
23
23
|
from typing import TYPE_CHECKING
|
|
24
24
|
|
|
25
25
|
import pendulum
|
|
26
|
-
|
|
26
|
+
import tenacity
|
|
27
|
+
from kubernetes.client.rest import ApiException as SyncApiException
|
|
28
|
+
from kubernetes_asyncio.client.exceptions import ApiException as AsyncApiException
|
|
27
29
|
from slugify import slugify
|
|
30
|
+
from urllib3.exceptions import HTTPError
|
|
28
31
|
|
|
29
32
|
from airflow.configuration import conf
|
|
33
|
+
from airflow.exceptions import AirflowException
|
|
30
34
|
from airflow.providers.cncf.kubernetes.backcompat import get_logical_date_key
|
|
31
35
|
|
|
32
36
|
if TYPE_CHECKING:
|
|
@@ -39,6 +43,62 @@ alphanum_lower = string.ascii_lowercase + string.digits
|
|
|
39
43
|
POD_NAME_MAX_LENGTH = 63 # Matches Linux kernel's HOST_NAME_MAX default value minus 1.
|
|
40
44
|
|
|
41
45
|
|
|
46
|
+
class PodLaunchFailedException(AirflowException):
|
|
47
|
+
"""When pod launching fails in KubernetesPodOperator."""
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
class KubernetesApiException(AirflowException):
|
|
51
|
+
"""When communication with kubernetes API fails."""
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
API_RETRIES = conf.getint("workers", "api_retries", fallback=5)
|
|
55
|
+
API_RETRY_WAIT_MIN = conf.getfloat("workers", "api_retry_wait_min", fallback=1)
|
|
56
|
+
API_RETRY_WAIT_MAX = conf.getfloat("workers", "api_retry_wait_max", fallback=15)
|
|
57
|
+
|
|
58
|
+
_default_wait = tenacity.wait_exponential(min=API_RETRY_WAIT_MIN, max=API_RETRY_WAIT_MAX)
|
|
59
|
+
|
|
60
|
+
TRANSIENT_STATUS_CODES = {409, 429, 500, 502, 503, 504}
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
def _should_retry_api(exc: BaseException) -> bool:
|
|
64
|
+
"""Retry on selected ApiException status codes, plus plain HTTP/timeout errors."""
|
|
65
|
+
if isinstance(exc, (SyncApiException, AsyncApiException)):
|
|
66
|
+
return exc.status in TRANSIENT_STATUS_CODES
|
|
67
|
+
return isinstance(exc, (HTTPError, KubernetesApiException))
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
class WaitRetryAfterOrExponential(tenacity.wait.wait_base):
|
|
71
|
+
"""Wait strategy that honors Retry-After header on 429, else falls back to exponential backoff."""
|
|
72
|
+
|
|
73
|
+
def __call__(self, retry_state):
|
|
74
|
+
exc = retry_state.outcome.exception() if retry_state.outcome else None
|
|
75
|
+
if isinstance(exc, (SyncApiException, AsyncApiException)) and exc.status == 429:
|
|
76
|
+
retry_after = (exc.headers or {}).get("Retry-After")
|
|
77
|
+
if retry_after:
|
|
78
|
+
try:
|
|
79
|
+
return float(int(retry_after))
|
|
80
|
+
except ValueError:
|
|
81
|
+
pass
|
|
82
|
+
# Inline exponential fallback
|
|
83
|
+
return _default_wait(retry_state)
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
def generic_api_retry(func):
|
|
87
|
+
"""
|
|
88
|
+
Retry to Kubernetes API calls.
|
|
89
|
+
|
|
90
|
+
- Retries only transient ApiException status codes.
|
|
91
|
+
- Honors Retry-After on 429.
|
|
92
|
+
"""
|
|
93
|
+
return tenacity.retry(
|
|
94
|
+
stop=tenacity.stop_after_attempt(API_RETRIES),
|
|
95
|
+
wait=WaitRetryAfterOrExponential(),
|
|
96
|
+
retry=tenacity.retry_if_exception(_should_retry_api),
|
|
97
|
+
reraise=True,
|
|
98
|
+
before_sleep=tenacity.before_sleep_log(log, logging.WARNING),
|
|
99
|
+
)(func)
|
|
100
|
+
|
|
101
|
+
|
|
42
102
|
def rand_str(num):
|
|
43
103
|
"""
|
|
44
104
|
Generate random lowercase alphanumeric string of length num.
|
|
@@ -148,18 +208,3 @@ def annotations_for_logging_task_metadata(annotation_set):
|
|
|
148
208
|
else:
|
|
149
209
|
annotations_for_logging = "<omitted>"
|
|
150
210
|
return annotations_for_logging
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
def should_retry_creation(exception: BaseException) -> bool:
|
|
154
|
-
"""
|
|
155
|
-
Check if an Exception indicates a transient error and warrants retrying.
|
|
156
|
-
|
|
157
|
-
This function is needed for preventing 'No agent available' error. The error appears time to time
|
|
158
|
-
when users try to create a Resource or Job. This issue is inside kubernetes and in the current moment
|
|
159
|
-
has no solution. Like a temporary solution we decided to retry Job or Resource creation request each
|
|
160
|
-
time when this error appears.
|
|
161
|
-
More about this issue here: https://github.com/cert-manager/cert-manager/issues/6457
|
|
162
|
-
"""
|
|
163
|
-
if isinstance(exception, ApiException):
|
|
164
|
-
return str(exception.status) == "500"
|
|
165
|
-
return False
|
|
@@ -35,6 +35,7 @@ from airflow.configuration import conf
|
|
|
35
35
|
from airflow.exceptions import AirflowException, AirflowProviderDeprecationWarning
|
|
36
36
|
from airflow.providers.cncf.kubernetes.hooks.kubernetes import KubernetesHook
|
|
37
37
|
from airflow.providers.cncf.kubernetes.kubernetes_helper_functions import (
|
|
38
|
+
POD_NAME_MAX_LENGTH,
|
|
38
39
|
add_unique_suffix,
|
|
39
40
|
create_unique_id,
|
|
40
41
|
)
|
|
@@ -56,6 +57,8 @@ if TYPE_CHECKING:
|
|
|
56
57
|
|
|
57
58
|
log = logging.getLogger(__name__)
|
|
58
59
|
|
|
60
|
+
JOB_NAME_PREFIX = "job-"
|
|
61
|
+
|
|
59
62
|
|
|
60
63
|
class KubernetesJobOperator(KubernetesPodOperator):
|
|
61
64
|
"""
|
|
@@ -378,15 +381,18 @@ class KubernetesJobOperator(KubernetesPodOperator):
|
|
|
378
381
|
|
|
379
382
|
job = self.reconcile_jobs(job_template, job)
|
|
380
383
|
|
|
384
|
+
# Account for job name prefix when generating/truncating the name
|
|
385
|
+
max_base_length = POD_NAME_MAX_LENGTH - len(JOB_NAME_PREFIX)
|
|
386
|
+
|
|
381
387
|
if not job.metadata.name:
|
|
382
388
|
job.metadata.name = create_unique_id(
|
|
383
|
-
task_id=self.task_id, unique=self.random_name_suffix, max_length=
|
|
389
|
+
task_id=self.task_id, unique=self.random_name_suffix, max_length=max_base_length
|
|
384
390
|
)
|
|
385
391
|
elif self.random_name_suffix:
|
|
386
392
|
# user has supplied job name, we're just adding suffix
|
|
387
|
-
job.metadata.name = add_unique_suffix(name=job.metadata.name)
|
|
393
|
+
job.metadata.name = add_unique_suffix(name=job.metadata.name, max_len=max_base_length)
|
|
388
394
|
|
|
389
|
-
job.metadata.name = f"
|
|
395
|
+
job.metadata.name = f"{JOB_NAME_PREFIX}{job.metadata.name}"
|
|
390
396
|
|
|
391
397
|
if not job.metadata.namespace:
|
|
392
398
|
hook_namespace = self.hook.get_namespace()
|
|
@@ -41,11 +41,6 @@ from kubernetes.stream import stream
|
|
|
41
41
|
from urllib3.exceptions import HTTPError
|
|
42
42
|
|
|
43
43
|
from airflow.configuration import conf
|
|
44
|
-
from airflow.exceptions import (
|
|
45
|
-
AirflowException,
|
|
46
|
-
AirflowSkipException,
|
|
47
|
-
TaskDeferred,
|
|
48
|
-
)
|
|
49
44
|
from airflow.providers.cncf.kubernetes import pod_generator
|
|
50
45
|
from airflow.providers.cncf.kubernetes.backcompat.backwards_compat_converters import (
|
|
51
46
|
convert_affinity,
|
|
@@ -82,12 +77,13 @@ from airflow.providers.cncf.kubernetes.utils.pod_manager import (
|
|
|
82
77
|
PodPhase,
|
|
83
78
|
)
|
|
84
79
|
from airflow.providers.cncf.kubernetes.version_compat import AIRFLOW_V_3_1_PLUS
|
|
85
|
-
from airflow.providers.common.compat.sdk import XCOM_RETURN_KEY
|
|
80
|
+
from airflow.providers.common.compat.sdk import XCOM_RETURN_KEY, AirflowSkipException, TaskDeferred
|
|
86
81
|
|
|
87
82
|
if AIRFLOW_V_3_1_PLUS:
|
|
88
83
|
from airflow.sdk import BaseOperator
|
|
89
84
|
else:
|
|
90
85
|
from airflow.models import BaseOperator
|
|
86
|
+
from airflow.exceptions import AirflowException
|
|
91
87
|
from airflow.settings import pod_mutation_hook
|
|
92
88
|
from airflow.utils import yaml
|
|
93
89
|
from airflow.utils.helpers import prune_dict, validate_key
|
|
@@ -935,6 +931,8 @@ class KubernetesPodOperator(BaseOperator):
|
|
|
935
931
|
raise
|
|
936
932
|
finally:
|
|
937
933
|
self._clean(event=event, context=context, result=xcom_sidecar_output)
|
|
934
|
+
if self.do_xcom_push:
|
|
935
|
+
return xcom_sidecar_output
|
|
938
936
|
|
|
939
937
|
def _clean(self, event: dict[str, Any], result: dict | None, context: Context) -> None:
|
|
940
938
|
if self.pod is None:
|
|
@@ -23,13 +23,12 @@ from collections.abc import Sequence
|
|
|
23
23
|
from functools import cached_property
|
|
24
24
|
from typing import TYPE_CHECKING
|
|
25
25
|
|
|
26
|
-
import tenacity
|
|
27
26
|
import yaml
|
|
28
27
|
from kubernetes.utils import create_from_yaml
|
|
29
28
|
|
|
30
29
|
from airflow.exceptions import AirflowException
|
|
31
30
|
from airflow.providers.cncf.kubernetes.hooks.kubernetes import KubernetesHook
|
|
32
|
-
from airflow.providers.cncf.kubernetes.kubernetes_helper_functions import
|
|
31
|
+
from airflow.providers.cncf.kubernetes.kubernetes_helper_functions import generic_api_retry
|
|
33
32
|
from airflow.providers.cncf.kubernetes.utils.delete_from import delete_from_yaml
|
|
34
33
|
from airflow.providers.cncf.kubernetes.utils.k8s_resource_iterator import k8s_resource_iterator
|
|
35
34
|
from airflow.providers.cncf.kubernetes.version_compat import AIRFLOW_V_3_1_PLUS
|
|
@@ -132,12 +131,7 @@ class KubernetesCreateResourceOperator(KubernetesResourceBaseOperator):
|
|
|
132
131
|
else:
|
|
133
132
|
self.custom_object_client.create_cluster_custom_object(group, version, plural, body)
|
|
134
133
|
|
|
135
|
-
@
|
|
136
|
-
stop=tenacity.stop_after_attempt(3),
|
|
137
|
-
wait=tenacity.wait_random_exponential(),
|
|
138
|
-
reraise=True,
|
|
139
|
-
retry=tenacity.retry_if_exception(should_retry_creation),
|
|
140
|
-
)
|
|
134
|
+
@generic_api_retry
|
|
141
135
|
def _create_objects(self, objects):
|
|
142
136
|
self.log.info("Starting resource creation")
|
|
143
137
|
if not self.custom_resource_definition:
|