apache-airflow-providers-cncf-kubernetes 10.6.0__tar.gz → 10.6.1rc1__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.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/PKG-INFO +9 -10
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/README.rst +4 -4
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/docs/changelog.rst +29 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/docs/index.rst +1 -1
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/provider.yaml +2 -1
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/pyproject.toml +5 -6
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/src/airflow/providers/cncf/kubernetes/__init__.py +1 -1
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/src/airflow/providers/cncf/kubernetes/callbacks.py +2 -2
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/src/airflow/providers/cncf/kubernetes/decorators/kubernetes.py +7 -13
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/src/airflow/providers/cncf/kubernetes/decorators/kubernetes_cmd.py +8 -13
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/src/airflow/providers/cncf/kubernetes/executors/kubernetes_executor_types.py +4 -4
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/src/airflow/providers/cncf/kubernetes/executors/local_kubernetes_executor.py +18 -10
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/src/airflow/providers/cncf/kubernetes/hooks/kubernetes.py +6 -2
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/src/airflow/providers/cncf/kubernetes/kube_client.py +11 -2
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/src/airflow/providers/cncf/kubernetes/operators/job.py +1 -1
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/src/airflow/providers/cncf/kubernetes/operators/kueue.py +1 -1
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/src/airflow/providers/cncf/kubernetes/operators/pod.py +11 -9
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/src/airflow/providers/cncf/kubernetes/operators/resource.py +1 -1
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/src/airflow/providers/cncf/kubernetes/operators/spark_kubernetes.py +15 -10
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/src/airflow/providers/cncf/kubernetes/sensors/spark_kubernetes.py +1 -1
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/src/airflow/providers/cncf/kubernetes/utils/k8s_resource_iterator.py +1 -2
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/src/airflow/providers/cncf/kubernetes/utils/pod_manager.py +1 -2
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/src/airflow/providers/cncf/kubernetes/version_compat.py +27 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/tests/unit/cncf/kubernetes/cli/test_kubernetes_command.py +1 -1
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/tests/unit/cncf/kubernetes/decorators/test_kubernetes.py +1 -1
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/tests/unit/cncf/kubernetes/decorators/test_kubernetes_cmd.py +2 -1
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/tests/unit/cncf/kubernetes/decorators/test_kubernetes_commons.py +2 -2
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/tests/unit/cncf/kubernetes/executors/test_kubernetes_executor.py +1 -10
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/tests/unit/cncf/kubernetes/hooks/test_kubernetes.py +33 -28
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/tests/unit/cncf/kubernetes/operators/test_spark_kubernetes.py +47 -10
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/tests/unit/cncf/kubernetes/sensors/test_spark_kubernetes.py +7 -4
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/tests/unit/cncf/kubernetes/test_template_rendering.py +1 -1
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/docs/.latest-doc-only-change.txt +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/docs/cli-ref.rst +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/docs/commits.rst +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/docs/conf.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/docs/configurations-ref.rst +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/docs/connections/kubernetes.rst +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/docs/img/arch-diag-kubernetes.png +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/docs/img/arch-diag-kubernetes2.png +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/docs/img/k8s-failed-pod.png +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/docs/img/k8s-happy-path.png +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/docs/installing-providers-from-sources.rst +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/docs/integration-logos/Kubernetes.png +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/docs/integration-logos/Spark-On-Kubernetes.png +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/docs/kubernetes_executor.rst +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/docs/local_kubernetes_executor.rst +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/docs/operators.rst +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/docs/redirects.txt +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/docs/security.rst +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/src/airflow/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/src/airflow/providers/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/src/airflow/providers/cncf/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/src/airflow/providers/cncf/kubernetes/LICENSE +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/src/airflow/providers/cncf/kubernetes/backcompat/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/src/airflow/providers/cncf/kubernetes/backcompat/backwards_compat_converters.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/src/airflow/providers/cncf/kubernetes/cli/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/src/airflow/providers/cncf/kubernetes/cli/kubernetes_command.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/src/airflow/providers/cncf/kubernetes/decorators/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/src/airflow/providers/cncf/kubernetes/exceptions.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/src/airflow/providers/cncf/kubernetes/executors/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/src/airflow/providers/cncf/kubernetes/executors/kubernetes_executor.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/src/airflow/providers/cncf/kubernetes/executors/kubernetes_executor_utils.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/src/airflow/providers/cncf/kubernetes/get_provider_info.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/src/airflow/providers/cncf/kubernetes/hooks/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/src/airflow/providers/cncf/kubernetes/k8s_model.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/src/airflow/providers/cncf/kubernetes/kube_config.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/src/airflow/providers/cncf/kubernetes/kubernetes_executor_templates/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/src/airflow/providers/cncf/kubernetes/kubernetes_executor_templates/basic_template.yaml +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/src/airflow/providers/cncf/kubernetes/kubernetes_helper_functions.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/src/airflow/providers/cncf/kubernetes/operators/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/src/airflow/providers/cncf/kubernetes/operators/custom_object_launcher.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/src/airflow/providers/cncf/kubernetes/pod_generator.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/src/airflow/providers/cncf/kubernetes/pod_template_file_examples/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/src/airflow/providers/cncf/kubernetes/pod_template_file_examples/dags_in_image_template.yaml +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/src/airflow/providers/cncf/kubernetes/pod_template_file_examples/dags_in_volume_template.yaml +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/src/airflow/providers/cncf/kubernetes/pod_template_file_examples/git_sync_template.yaml +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/src/airflow/providers/cncf/kubernetes/python_kubernetes_script.jinja2 +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/src/airflow/providers/cncf/kubernetes/python_kubernetes_script.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/src/airflow/providers/cncf/kubernetes/resource_convert/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/src/airflow/providers/cncf/kubernetes/resource_convert/configmap.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/src/airflow/providers/cncf/kubernetes/resource_convert/env_variable.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/src/airflow/providers/cncf/kubernetes/resource_convert/secret.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/src/airflow/providers/cncf/kubernetes/secret.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/src/airflow/providers/cncf/kubernetes/sensors/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/src/airflow/providers/cncf/kubernetes/template_rendering.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/src/airflow/providers/cncf/kubernetes/triggers/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/src/airflow/providers/cncf/kubernetes/triggers/job.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/src/airflow/providers/cncf/kubernetes/triggers/pod.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/src/airflow/providers/cncf/kubernetes/utils/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/src/airflow/providers/cncf/kubernetes/utils/delete_from.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/src/airflow/providers/cncf/kubernetes/utils/xcom_sidecar.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/tests/conftest.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/tests/system/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/tests/system/cncf/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/tests/system/cncf/kubernetes/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/tests/system/cncf/kubernetes/example_kubernetes.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/tests/system/cncf/kubernetes/example_kubernetes_async.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/tests/system/cncf/kubernetes/example_kubernetes_cmd_decorator.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/tests/system/cncf/kubernetes/example_kubernetes_decorator.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/tests/system/cncf/kubernetes/example_kubernetes_job.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/tests/system/cncf/kubernetes/example_kubernetes_kueue.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/tests/system/cncf/kubernetes/example_kubernetes_resource.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/tests/system/cncf/kubernetes/example_spark_kubernetes.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/tests/system/cncf/kubernetes/example_spark_kubernetes_spark_pi.yaml +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/tests/system/cncf/kubernetes/spark_job_template.yaml +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/tests/unit/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/tests/unit/cncf/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/tests/unit/cncf/kubernetes/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/tests/unit/cncf/kubernetes/backcompat/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/tests/unit/cncf/kubernetes/backcompat/test_backwards_compat_converters.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/tests/unit/cncf/kubernetes/cli/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/tests/unit/cncf/kubernetes/conftest.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/tests/unit/cncf/kubernetes/data_files/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/tests/unit/cncf/kubernetes/data_files/executor/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/tests/unit/cncf/kubernetes/data_files/executor/basic_template.yaml +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/tests/unit/cncf/kubernetes/data_files/kube_config +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/tests/unit/cncf/kubernetes/data_files/pods/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/tests/unit/cncf/kubernetes/data_files/pods/generator_base.yaml +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/tests/unit/cncf/kubernetes/data_files/pods/generator_base_with_secrets.yaml +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/tests/unit/cncf/kubernetes/data_files/pods/template.yaml +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/tests/unit/cncf/kubernetes/data_files/spark/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/tests/unit/cncf/kubernetes/data_files/spark/application_template.yaml +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/tests/unit/cncf/kubernetes/data_files/spark/application_test.json +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/tests/unit/cncf/kubernetes/data_files/spark/application_test.yaml +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/tests/unit/cncf/kubernetes/data_files/spark/application_test_with_no_name_from_config.json +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/tests/unit/cncf/kubernetes/data_files/spark/application_test_with_no_name_from_config.yaml +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/tests/unit/cncf/kubernetes/decorators/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/tests/unit/cncf/kubernetes/executors/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/tests/unit/cncf/kubernetes/executors/test_local_kubernetes_executor.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/tests/unit/cncf/kubernetes/hooks/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/tests/unit/cncf/kubernetes/log_handlers/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/tests/unit/cncf/kubernetes/log_handlers/test_log_handlers.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/tests/unit/cncf/kubernetes/models/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/tests/unit/cncf/kubernetes/models/test_secret.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/tests/unit/cncf/kubernetes/operators/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/tests/unit/cncf/kubernetes/operators/test_custom_object_launcher.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/tests/unit/cncf/kubernetes/operators/test_job.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/tests/unit/cncf/kubernetes/operators/test_kueue.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/tests/unit/cncf/kubernetes/operators/test_pod.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/tests/unit/cncf/kubernetes/operators/test_resource.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/tests/unit/cncf/kubernetes/resource_convert/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/tests/unit/cncf/kubernetes/resource_convert/test_configmap.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/tests/unit/cncf/kubernetes/resource_convert/test_env_variable.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/tests/unit/cncf/kubernetes/resource_convert/test_secret.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/tests/unit/cncf/kubernetes/sensors/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/tests/unit/cncf/kubernetes/test_callbacks.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/tests/unit/cncf/kubernetes/test_client.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/tests/unit/cncf/kubernetes/test_kubernetes_helper_functions.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/tests/unit/cncf/kubernetes/test_pod_generator.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/tests/unit/cncf/kubernetes/triggers/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/tests/unit/cncf/kubernetes/triggers/test_job.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/tests/unit/cncf/kubernetes/triggers/test_pod.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/tests/unit/cncf/kubernetes/utils/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/tests/unit/cncf/kubernetes/utils/test_k8s_resource_iterator.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.6.0 → apache_airflow_providers_cncf_kubernetes-10.6.1rc1}/tests/unit/cncf/kubernetes/utils/test_pod_manager.py +0 -0
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: apache-airflow-providers-cncf-kubernetes
|
|
3
|
-
Version: 10.6.
|
|
3
|
+
Version: 10.6.1rc1
|
|
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>
|
|
7
7
|
Maintainer-email: Apache Software Foundation <dev@airflow.apache.org>
|
|
8
|
-
Requires-Python: ~=3.
|
|
8
|
+
Requires-Python: ~=3.10
|
|
9
9
|
Description-Content-Type: text/x-rst
|
|
10
10
|
Classifier: Development Status :: 5 - Production/Stable
|
|
11
11
|
Classifier: Environment :: Console
|
|
@@ -15,20 +15,19 @@ Classifier: Intended Audience :: System Administrators
|
|
|
15
15
|
Classifier: Framework :: Apache Airflow
|
|
16
16
|
Classifier: Framework :: Apache Airflow :: Provider
|
|
17
17
|
Classifier: License :: OSI Approved :: Apache Software License
|
|
18
|
-
Classifier: Programming Language :: Python :: 3.9
|
|
19
18
|
Classifier: Programming Language :: Python :: 3.10
|
|
20
19
|
Classifier: Programming Language :: Python :: 3.11
|
|
21
20
|
Classifier: Programming Language :: Python :: 3.12
|
|
22
21
|
Classifier: Topic :: System :: Monitoring
|
|
23
22
|
Requires-Dist: aiofiles>=23.2.0
|
|
24
|
-
Requires-Dist: apache-airflow>=2.10.
|
|
23
|
+
Requires-Dist: apache-airflow>=2.10.0rc1
|
|
25
24
|
Requires-Dist: asgiref>=3.5.2
|
|
26
25
|
Requires-Dist: cryptography>=41.0.0
|
|
27
26
|
Requires-Dist: kubernetes>=32.0.0,<33.0.0
|
|
28
27
|
Requires-Dist: kubernetes_asyncio>=32.0.0,<33.0.0
|
|
29
28
|
Project-URL: Bug Tracker, https://github.com/apache/airflow/issues
|
|
30
|
-
Project-URL: Changelog, https://airflow.apache.org/docs/apache-airflow-providers-cncf-kubernetes/10.6.
|
|
31
|
-
Project-URL: Documentation, https://airflow.apache.org/docs/apache-airflow-providers-cncf-kubernetes/10.6.
|
|
29
|
+
Project-URL: Changelog, https://airflow.staged.apache.org/docs/apache-airflow-providers-cncf-kubernetes/10.6.1/changelog.html
|
|
30
|
+
Project-URL: Documentation, https://airflow.staged.apache.org/docs/apache-airflow-providers-cncf-kubernetes/10.6.1
|
|
32
31
|
Project-URL: Mastodon, https://fosstodon.org/@airflow
|
|
33
32
|
Project-URL: Slack Chat, https://s.apache.org/airflow-slack
|
|
34
33
|
Project-URL: Source Code, https://github.com/apache/airflow
|
|
@@ -59,7 +58,7 @@ Project-URL: YouTube, https://www.youtube.com/channel/UCSXwxpWZQ7XZ1WL3wqevChA/
|
|
|
59
58
|
|
|
60
59
|
Package ``apache-airflow-providers-cncf-kubernetes``
|
|
61
60
|
|
|
62
|
-
Release: ``10.6.
|
|
61
|
+
Release: ``10.6.1``
|
|
63
62
|
|
|
64
63
|
|
|
65
64
|
`Kubernetes <https://kubernetes.io/>`__
|
|
@@ -72,7 +71,7 @@ This is a provider package for ``cncf.kubernetes`` provider. All classes for thi
|
|
|
72
71
|
are in ``airflow.providers.cncf.kubernetes`` python package.
|
|
73
72
|
|
|
74
73
|
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.6.
|
|
74
|
+
in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-cncf-kubernetes/10.6.1/>`_.
|
|
76
75
|
|
|
77
76
|
Installation
|
|
78
77
|
------------
|
|
@@ -81,7 +80,7 @@ You can install this package on top of an existing Airflow 2 installation (see `
|
|
|
81
80
|
for the minimum Airflow version supported) via
|
|
82
81
|
``pip install apache-airflow-providers-cncf-kubernetes``
|
|
83
82
|
|
|
84
|
-
The package supports the following python versions: 3.
|
|
83
|
+
The package supports the following python versions: 3.10,3.11,3.12
|
|
85
84
|
|
|
86
85
|
Requirements
|
|
87
86
|
------------
|
|
@@ -98,5 +97,5 @@ PIP package Version required
|
|
|
98
97
|
====================== ====================
|
|
99
98
|
|
|
100
99
|
The changelog for the provider package can be found in the
|
|
101
|
-
`changelog <https://airflow.apache.org/docs/apache-airflow-providers-cncf-kubernetes/10.6.
|
|
100
|
+
`changelog <https://airflow.apache.org/docs/apache-airflow-providers-cncf-kubernetes/10.6.1/changelog.html>`_.
|
|
102
101
|
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
|
|
24
24
|
Package ``apache-airflow-providers-cncf-kubernetes``
|
|
25
25
|
|
|
26
|
-
Release: ``10.6.
|
|
26
|
+
Release: ``10.6.1``
|
|
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.6.
|
|
39
|
+
in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-cncf-kubernetes/10.6.1/>`_.
|
|
40
40
|
|
|
41
41
|
Installation
|
|
42
42
|
------------
|
|
@@ -45,7 +45,7 @@ You can install this package on top of an existing Airflow 2 installation (see `
|
|
|
45
45
|
for the minimum Airflow version supported) via
|
|
46
46
|
``pip install apache-airflow-providers-cncf-kubernetes``
|
|
47
47
|
|
|
48
|
-
The package supports the following python versions: 3.
|
|
48
|
+
The package supports the following python versions: 3.10,3.11,3.12
|
|
49
49
|
|
|
50
50
|
Requirements
|
|
51
51
|
------------
|
|
@@ -62,4 +62,4 @@ PIP package Version required
|
|
|
62
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.6.
|
|
65
|
+
`changelog <https://airflow.apache.org/docs/apache-airflow-providers-cncf-kubernetes/10.6.1/changelog.html>`_.
|
|
@@ -28,6 +28,35 @@ Changelog
|
|
|
28
28
|
---------
|
|
29
29
|
|
|
30
30
|
|
|
31
|
+
10.6.1
|
|
32
|
+
......
|
|
33
|
+
|
|
34
|
+
Bug Fixes
|
|
35
|
+
~~~~~~~~~
|
|
36
|
+
|
|
37
|
+
* ``Fix deferrable mode for SparkKubernetesOperator (#51956)``
|
|
38
|
+
* ``Reduce log noise from K8s Pod Operator for XCom (#51812)``
|
|
39
|
+
* ``Prevent legacy static hybrid executors to be running in Airflow 3 (#51760)``
|
|
40
|
+
|
|
41
|
+
Misc
|
|
42
|
+
~~~~
|
|
43
|
+
|
|
44
|
+
* ``Move 'BaseHook' implementation to task SDK (#51873)``
|
|
45
|
+
* ``Update Kubernetes provider for Airflow 3.0 compatibility (#52664)``
|
|
46
|
+
* ``Upgrade ruff to latest version (0.12.1) (#52562)``
|
|
47
|
+
* ``Drop support for Python 3.9 (#52072)``
|
|
48
|
+
* ``Use BaseSensorOperator from task sdk in providers (#52296)``
|
|
49
|
+
* ``Move type-ignores up one line (#52195)``
|
|
50
|
+
* ``Ignore mypy errors for deprecated executors (#52187)``
|
|
51
|
+
|
|
52
|
+
.. Below changes are excluded from the changelog. Move them to
|
|
53
|
+
appropriate section above if needed. Do not delete the lines(!):
|
|
54
|
+
* ``Make sure all test version imports come from test_common (#52425)``
|
|
55
|
+
* ``Separate out creation of default Connections for tests and non-tests (#52129)``
|
|
56
|
+
* ``Remove @pytest.mark.db_test for cncf (#52153)``
|
|
57
|
+
* ``Remove residual occurences of 'merge_conn' from cncf tests (#52064)``
|
|
58
|
+
* ``Introducing fixture to create 'Connections' without DB in provider tests (#51930)``
|
|
59
|
+
|
|
31
60
|
10.6.0
|
|
32
61
|
......
|
|
33
62
|
|
|
@@ -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: 1751472892
|
|
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.1
|
|
31
32
|
- 10.6.0
|
|
32
33
|
- 10.5.0
|
|
33
34
|
- 10.4.3
|
|
@@ -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.6.
|
|
28
|
+
version = "10.6.1rc1"
|
|
29
29
|
description = "Provider package apache-airflow-providers-cncf-kubernetes for Apache Airflow"
|
|
30
30
|
readme = "README.rst"
|
|
31
31
|
authors = [
|
|
@@ -44,13 +44,12 @@ classifiers = [
|
|
|
44
44
|
"Framework :: Apache Airflow",
|
|
45
45
|
"Framework :: Apache Airflow :: Provider",
|
|
46
46
|
"License :: OSI Approved :: Apache Software License",
|
|
47
|
-
"Programming Language :: Python :: 3.9",
|
|
48
47
|
"Programming Language :: Python :: 3.10",
|
|
49
48
|
"Programming Language :: Python :: 3.11",
|
|
50
49
|
"Programming Language :: Python :: 3.12",
|
|
51
50
|
"Topic :: System :: Monitoring",
|
|
52
51
|
]
|
|
53
|
-
requires-python = "~=3.
|
|
52
|
+
requires-python = "~=3.10"
|
|
54
53
|
|
|
55
54
|
# The dependencies should be modified in place in the generated file.
|
|
56
55
|
# Any change in the dependencies is preserved when the file is regenerated
|
|
@@ -58,7 +57,7 @@ requires-python = "~=3.9"
|
|
|
58
57
|
# After you modify the dependencies, and rebuild your Breeze CI image with ``breeze ci-image build``
|
|
59
58
|
dependencies = [
|
|
60
59
|
"aiofiles>=23.2.0",
|
|
61
|
-
"apache-airflow>=2.10.
|
|
60
|
+
"apache-airflow>=2.10.0rc1",
|
|
62
61
|
"asgiref>=3.5.2",
|
|
63
62
|
"cryptography>=41.0.0",
|
|
64
63
|
# The Kubernetes API is known to introduce problems when upgraded to a MAJOR version. Airflow Core
|
|
@@ -108,8 +107,8 @@ apache-airflow-providers-common-sql = {workspace = true}
|
|
|
108
107
|
apache-airflow-providers-standard = {workspace = true}
|
|
109
108
|
|
|
110
109
|
[project.urls]
|
|
111
|
-
"Documentation" = "https://airflow.apache.org/docs/apache-airflow-providers-cncf-kubernetes/10.6.
|
|
112
|
-
"Changelog" = "https://airflow.apache.org/docs/apache-airflow-providers-cncf-kubernetes/10.6.
|
|
110
|
+
"Documentation" = "https://airflow.staged.apache.org/docs/apache-airflow-providers-cncf-kubernetes/10.6.1"
|
|
111
|
+
"Changelog" = "https://airflow.staged.apache.org/docs/apache-airflow-providers-cncf-kubernetes/10.6.1/changelog.html"
|
|
113
112
|
"Bug Tracker" = "https://github.com/apache/airflow/issues"
|
|
114
113
|
"Source Code" = "https://github.com/apache/airflow"
|
|
115
114
|
"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.6.
|
|
32
|
+
__version__ = "10.6.1"
|
|
33
33
|
|
|
34
34
|
if packaging.version.parse(packaging.version.parse(airflow_version).base_version) < packaging.version.parse(
|
|
35
35
|
"2.10.0"
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
from __future__ import annotations
|
|
18
18
|
|
|
19
19
|
from enum import Enum
|
|
20
|
-
from typing import TYPE_CHECKING,
|
|
20
|
+
from typing import TYPE_CHECKING, TypeAlias
|
|
21
21
|
|
|
22
22
|
import kubernetes.client as k8s
|
|
23
23
|
import kubernetes_asyncio.client as async_k8s
|
|
@@ -26,7 +26,7 @@ if TYPE_CHECKING:
|
|
|
26
26
|
from airflow.providers.cncf.kubernetes.operators.pod import KubernetesPodOperator
|
|
27
27
|
from airflow.utils.context import Context
|
|
28
28
|
|
|
29
|
-
client_type =
|
|
29
|
+
client_type: TypeAlias = k8s.CoreV1Api | async_k8s.CoreV1Api
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
class ExecutionMode(str, Enum):
|
|
@@ -19,29 +19,23 @@ from __future__ import annotations
|
|
|
19
19
|
import base64
|
|
20
20
|
import os
|
|
21
21
|
import pickle
|
|
22
|
-
from collections.abc import Sequence
|
|
22
|
+
from collections.abc import Callable, Sequence
|
|
23
23
|
from shlex import quote
|
|
24
24
|
from tempfile import TemporaryDirectory
|
|
25
|
-
from typing import TYPE_CHECKING
|
|
25
|
+
from typing import TYPE_CHECKING
|
|
26
26
|
|
|
27
27
|
import dill
|
|
28
28
|
from kubernetes.client import models as k8s
|
|
29
29
|
|
|
30
|
-
from airflow.providers.cncf.kubernetes.version_compat import AIRFLOW_V_3_0_PLUS
|
|
31
|
-
|
|
32
|
-
if AIRFLOW_V_3_0_PLUS:
|
|
33
|
-
from airflow.sdk.bases.decorator import DecoratedOperator, TaskDecorator, task_decorator_factory
|
|
34
|
-
else:
|
|
35
|
-
from airflow.decorators.base import ( # type: ignore[no-redef]
|
|
36
|
-
DecoratedOperator,
|
|
37
|
-
TaskDecorator,
|
|
38
|
-
task_decorator_factory,
|
|
39
|
-
)
|
|
40
|
-
|
|
41
30
|
from airflow.providers.cncf.kubernetes.operators.pod import KubernetesPodOperator
|
|
42
31
|
from airflow.providers.cncf.kubernetes.python_kubernetes_script import (
|
|
43
32
|
write_python_script,
|
|
44
33
|
)
|
|
34
|
+
from airflow.providers.cncf.kubernetes.version_compat import (
|
|
35
|
+
DecoratedOperator,
|
|
36
|
+
TaskDecorator,
|
|
37
|
+
task_decorator_factory,
|
|
38
|
+
)
|
|
45
39
|
|
|
46
40
|
if TYPE_CHECKING:
|
|
47
41
|
from airflow.utils.context import Context
|
|
@@ -17,20 +17,15 @@
|
|
|
17
17
|
from __future__ import annotations
|
|
18
18
|
|
|
19
19
|
import warnings
|
|
20
|
-
from collections.abc import Sequence
|
|
21
|
-
from typing import TYPE_CHECKING
|
|
22
|
-
|
|
23
|
-
from airflow.providers.cncf.kubernetes.version_compat import AIRFLOW_V_3_0_PLUS
|
|
24
|
-
|
|
25
|
-
if AIRFLOW_V_3_0_PLUS:
|
|
26
|
-
from airflow.sdk.bases.decorator import DecoratedOperator, TaskDecorator, task_decorator_factory
|
|
27
|
-
else:
|
|
28
|
-
from airflow.decorators.base import ( # type: ignore[no-redef]
|
|
29
|
-
DecoratedOperator,
|
|
30
|
-
TaskDecorator,
|
|
31
|
-
task_decorator_factory,
|
|
32
|
-
)
|
|
20
|
+
from collections.abc import Callable, Sequence
|
|
21
|
+
from typing import TYPE_CHECKING
|
|
22
|
+
|
|
33
23
|
from airflow.providers.cncf.kubernetes.operators.pod import KubernetesPodOperator
|
|
24
|
+
from airflow.providers.cncf.kubernetes.version_compat import (
|
|
25
|
+
DecoratedOperator,
|
|
26
|
+
TaskDecorator,
|
|
27
|
+
task_decorator_factory,
|
|
28
|
+
)
|
|
34
29
|
from airflow.utils.context import context_merge
|
|
35
30
|
from airflow.utils.operator_helpers import determine_kwargs
|
|
36
31
|
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
# under the License.
|
|
17
17
|
from __future__ import annotations
|
|
18
18
|
|
|
19
|
-
from typing import TYPE_CHECKING, Any
|
|
19
|
+
from typing import TYPE_CHECKING, Any
|
|
20
20
|
|
|
21
21
|
ADOPTED = "adopted"
|
|
22
22
|
if TYPE_CHECKING:
|
|
@@ -29,13 +29,13 @@ if TYPE_CHECKING:
|
|
|
29
29
|
CommandType = Sequence[str]
|
|
30
30
|
|
|
31
31
|
# TaskInstance key, command, configuration, pod_template_file
|
|
32
|
-
KubernetesJobType = tuple[TaskInstanceKey, CommandType, Any,
|
|
32
|
+
KubernetesJobType = tuple[TaskInstanceKey, CommandType, Any, str | None]
|
|
33
33
|
|
|
34
34
|
# key, pod state, pod_name, namespace, resource_version
|
|
35
|
-
KubernetesResultsType = tuple[TaskInstanceKey,
|
|
35
|
+
KubernetesResultsType = tuple[TaskInstanceKey, TaskInstanceState | str | None, str, str, str]
|
|
36
36
|
|
|
37
37
|
# pod_name, namespace, pod state, annotations, resource_version
|
|
38
|
-
KubernetesWatchType = tuple[str, str,
|
|
38
|
+
KubernetesWatchType = tuple[str, str, TaskInstanceState | str | None, dict[str, str], str]
|
|
39
39
|
|
|
40
40
|
ALL_NAMESPACES = "ALL_NAMESPACES"
|
|
41
41
|
POD_EXECUTOR_DONE_KEY = "airflow_executor_done"
|
|
@@ -33,7 +33,11 @@ if TYPE_CHECKING:
|
|
|
33
33
|
from airflow.callbacks.callback_requests import CallbackRequest
|
|
34
34
|
from airflow.executors.base_executor import EventBufferValueType
|
|
35
35
|
from airflow.executors.local_executor import LocalExecutor
|
|
36
|
-
from airflow.models.taskinstance import
|
|
36
|
+
from airflow.models.taskinstance import ( # type: ignore[attr-defined]
|
|
37
|
+
SimpleTaskInstance,
|
|
38
|
+
TaskInstance,
|
|
39
|
+
TaskInstanceKey,
|
|
40
|
+
)
|
|
37
41
|
|
|
38
42
|
CommandType = Sequence[str]
|
|
39
43
|
|
|
@@ -62,7 +66,18 @@ class LocalKubernetesExecutor(BaseExecutor):
|
|
|
62
66
|
|
|
63
67
|
KUBERNETES_QUEUE = conf.get("local_kubernetes_executor", "kubernetes_queue")
|
|
64
68
|
|
|
65
|
-
def __init__(
|
|
69
|
+
def __init__(
|
|
70
|
+
self,
|
|
71
|
+
local_executor: LocalExecutor | None = None,
|
|
72
|
+
kubernetes_executor: KubernetesExecutor | None = None,
|
|
73
|
+
):
|
|
74
|
+
if AIRFLOW_V_3_0_PLUS or not local_executor or not kubernetes_executor:
|
|
75
|
+
raise RuntimeError(
|
|
76
|
+
f"{self.__class__.__name__} does not support Airflow 3.0+. See "
|
|
77
|
+
"https://airflow.apache.org/docs/apache-airflow/stable/core-concepts/executor/index.html#using-multiple-executors-concurrently"
|
|
78
|
+
" how to use multiple executors concurrently."
|
|
79
|
+
)
|
|
80
|
+
|
|
66
81
|
super().__init__()
|
|
67
82
|
self._job_id: int | str | None = None
|
|
68
83
|
self.local_executor = local_executor
|
|
@@ -120,13 +135,6 @@ class LocalKubernetesExecutor(BaseExecutor):
|
|
|
120
135
|
|
|
121
136
|
def start(self) -> None:
|
|
122
137
|
"""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
|
-
|
|
130
138
|
self.log.info("Starting local and Kubernetes Executor")
|
|
131
139
|
self.local_executor.start()
|
|
132
140
|
self.kubernetes_executor.start()
|
|
@@ -167,7 +175,7 @@ class LocalKubernetesExecutor(BaseExecutor):
|
|
|
167
175
|
**kwargs,
|
|
168
176
|
) -> None:
|
|
169
177
|
"""Queues task instance via local or kubernetes executor."""
|
|
170
|
-
from airflow.models.taskinstance import SimpleTaskInstance
|
|
178
|
+
from airflow.models.taskinstance import SimpleTaskInstance # type: ignore[attr-defined]
|
|
171
179
|
|
|
172
180
|
executor = self._router(SimpleTaskInstance.from_ti(task_instance))
|
|
173
181
|
self.log.debug(
|
|
@@ -36,7 +36,6 @@ from kubernetes_asyncio import client as async_client, config as async_config
|
|
|
36
36
|
from urllib3.exceptions import HTTPError
|
|
37
37
|
|
|
38
38
|
from airflow.exceptions import AirflowException, AirflowNotFoundException
|
|
39
|
-
from airflow.hooks.base import BaseHook
|
|
40
39
|
from airflow.models import Connection
|
|
41
40
|
from airflow.providers.cncf.kubernetes.kube_client import _disable_verify_ssl, _enable_tcp_keepalive
|
|
42
41
|
from airflow.providers.cncf.kubernetes.kubernetes_helper_functions import should_retry_creation
|
|
@@ -45,6 +44,11 @@ from airflow.providers.cncf.kubernetes.utils.pod_manager import (
|
|
|
45
44
|
container_is_completed,
|
|
46
45
|
container_is_running,
|
|
47
46
|
)
|
|
47
|
+
|
|
48
|
+
try:
|
|
49
|
+
from airflow.sdk import BaseHook
|
|
50
|
+
except ImportError:
|
|
51
|
+
from airflow.hooks.base import BaseHook # type: ignore[attr-defined,no-redef]
|
|
48
52
|
from airflow.utils import yaml
|
|
49
53
|
|
|
50
54
|
if TYPE_CHECKING:
|
|
@@ -174,7 +178,7 @@ class KubernetesHook(BaseHook, PodOperatorHookProtocol):
|
|
|
174
178
|
default to cluster-derived credentials.
|
|
175
179
|
"""
|
|
176
180
|
try:
|
|
177
|
-
return super().get_connection(conn_id)
|
|
181
|
+
return super().get_connection(conn_id) # type: ignore[return-value]
|
|
178
182
|
except AirflowNotFoundException:
|
|
179
183
|
if conn_id == cls.default_conn_name:
|
|
180
184
|
return Connection(conn_id=cls.default_conn_name)
|
|
@@ -87,8 +87,17 @@ def _enable_tcp_keepalive() -> None:
|
|
|
87
87
|
else:
|
|
88
88
|
log.debug("Unable to set TCP_KEEPCNT on this platform")
|
|
89
89
|
|
|
90
|
-
|
|
91
|
-
|
|
90
|
+
# Cast both the default options and our socket options
|
|
91
|
+
socket_options_cast: list[tuple[int, int, int | bytes]] = [
|
|
92
|
+
(level, opt, val) for level, opt, val in socket_options
|
|
93
|
+
]
|
|
94
|
+
default_options_cast: list[tuple[int, int, int | bytes]] = [
|
|
95
|
+
(level, opt, val) for level, opt, val in HTTPSConnection.default_socket_options
|
|
96
|
+
]
|
|
97
|
+
|
|
98
|
+
# Then use the cast versions for both HTTPS and HTTP
|
|
99
|
+
HTTPSConnection.default_socket_options = default_options_cast + socket_options_cast
|
|
100
|
+
HTTPConnection.default_socket_options = default_options_cast + socket_options_cast
|
|
92
101
|
|
|
93
102
|
|
|
94
103
|
def get_kube_client(
|
|
@@ -32,7 +32,6 @@ from kubernetes.client.rest import ApiException
|
|
|
32
32
|
|
|
33
33
|
from airflow.configuration import conf
|
|
34
34
|
from airflow.exceptions import AirflowException
|
|
35
|
-
from airflow.models import BaseOperator
|
|
36
35
|
from airflow.providers.cncf.kubernetes.hooks.kubernetes import KubernetesHook
|
|
37
36
|
from airflow.providers.cncf.kubernetes.kubernetes_helper_functions import (
|
|
38
37
|
add_unique_suffix,
|
|
@@ -42,6 +41,7 @@ from airflow.providers.cncf.kubernetes.operators.pod import KubernetesPodOperato
|
|
|
42
41
|
from airflow.providers.cncf.kubernetes.pod_generator import PodGenerator, merge_objects
|
|
43
42
|
from airflow.providers.cncf.kubernetes.triggers.job import KubernetesJobTrigger
|
|
44
43
|
from airflow.providers.cncf.kubernetes.utils.pod_manager import EMPTY_XCOM_RESULT, PodNotFoundException
|
|
44
|
+
from airflow.providers.cncf.kubernetes.version_compat import BaseOperator
|
|
45
45
|
from airflow.utils import yaml
|
|
46
46
|
from airflow.utils.context import Context
|
|
47
47
|
|
|
@@ -25,9 +25,9 @@ from functools import cached_property
|
|
|
25
25
|
from kubernetes.utils import FailToCreateError
|
|
26
26
|
|
|
27
27
|
from airflow.exceptions import AirflowException
|
|
28
|
-
from airflow.models import BaseOperator
|
|
29
28
|
from airflow.providers.cncf.kubernetes.hooks.kubernetes import KubernetesHook
|
|
30
29
|
from airflow.providers.cncf.kubernetes.operators.job import KubernetesJobOperator
|
|
30
|
+
from airflow.providers.cncf.kubernetes.version_compat import BaseOperator
|
|
31
31
|
|
|
32
32
|
|
|
33
33
|
class KubernetesInstallKueueOperator(BaseOperator):
|
|
@@ -27,11 +27,11 @@ import os
|
|
|
27
27
|
import re
|
|
28
28
|
import shlex
|
|
29
29
|
import string
|
|
30
|
-
from collections.abc import Container, Iterable, Sequence
|
|
30
|
+
from collections.abc import Callable, Container, Iterable, Sequence
|
|
31
31
|
from contextlib import AbstractContextManager
|
|
32
32
|
from enum import Enum
|
|
33
33
|
from functools import cached_property
|
|
34
|
-
from typing import TYPE_CHECKING, Any,
|
|
34
|
+
from typing import TYPE_CHECKING, Any, Literal
|
|
35
35
|
|
|
36
36
|
import kubernetes
|
|
37
37
|
import tenacity
|
|
@@ -46,7 +46,6 @@ from airflow.exceptions import (
|
|
|
46
46
|
AirflowSkipException,
|
|
47
47
|
TaskDeferred,
|
|
48
48
|
)
|
|
49
|
-
from airflow.models import BaseOperator
|
|
50
49
|
from airflow.providers.cncf.kubernetes import pod_generator
|
|
51
50
|
from airflow.providers.cncf.kubernetes.backcompat.backwards_compat_converters import (
|
|
52
51
|
convert_affinity,
|
|
@@ -81,6 +80,7 @@ from airflow.providers.cncf.kubernetes.utils.pod_manager import (
|
|
|
81
80
|
container_is_succeeded,
|
|
82
81
|
get_container_termination_message,
|
|
83
82
|
)
|
|
83
|
+
from airflow.providers.cncf.kubernetes.version_compat import BaseOperator
|
|
84
84
|
from airflow.settings import pod_mutation_hook
|
|
85
85
|
from airflow.utils import yaml
|
|
86
86
|
from airflow.utils.helpers import prune_dict, validate_key
|
|
@@ -630,7 +630,7 @@ class KubernetesPodOperator(BaseOperator):
|
|
|
630
630
|
self.log.info("xcom result file is empty.")
|
|
631
631
|
return None
|
|
632
632
|
|
|
633
|
-
self.log.
|
|
633
|
+
self.log.debug("xcom result: \n%s", result)
|
|
634
634
|
return json.loads(result)
|
|
635
635
|
|
|
636
636
|
def execute(self, context: Context):
|
|
@@ -796,11 +796,13 @@ class KubernetesPodOperator(BaseOperator):
|
|
|
796
796
|
del self.pod_manager
|
|
797
797
|
|
|
798
798
|
def execute_async(self, context: Context) -> None:
|
|
799
|
-
self.pod_request_obj
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
|
|
799
|
+
if self.pod_request_obj is None:
|
|
800
|
+
self.pod_request_obj = self.build_pod_request_obj(context)
|
|
801
|
+
if self.pod is None:
|
|
802
|
+
self.pod = self.get_or_create_pod( # must set `self.pod` for `on_kill`
|
|
803
|
+
pod_request_obj=self.pod_request_obj,
|
|
804
|
+
context=context,
|
|
805
|
+
)
|
|
804
806
|
if self.callbacks:
|
|
805
807
|
pod = self.find_pod(self.pod.metadata.namespace, context=context)
|
|
806
808
|
for callback in self.callbacks:
|
|
@@ -28,11 +28,11 @@ import yaml
|
|
|
28
28
|
from kubernetes.utils import create_from_yaml
|
|
29
29
|
|
|
30
30
|
from airflow.exceptions import AirflowException
|
|
31
|
-
from airflow.models import BaseOperator
|
|
32
31
|
from airflow.providers.cncf.kubernetes.hooks.kubernetes import KubernetesHook
|
|
33
32
|
from airflow.providers.cncf.kubernetes.kubernetes_helper_functions import should_retry_creation
|
|
34
33
|
from airflow.providers.cncf.kubernetes.utils.delete_from import delete_from_yaml
|
|
35
34
|
from airflow.providers.cncf.kubernetes.utils.k8s_resource_iterator import k8s_resource_iterator
|
|
35
|
+
from airflow.providers.cncf.kubernetes.version_compat import BaseOperator
|
|
36
36
|
|
|
37
37
|
if TYPE_CHECKING:
|
|
38
38
|
from kubernetes.client import ApiClient, CustomObjectsApi
|
|
@@ -254,13 +254,13 @@ class SparkKubernetesOperator(KubernetesPodOperator):
|
|
|
254
254
|
self.log.info("`try_number` of pod: %s", pod.metadata.labels["try_number"])
|
|
255
255
|
return pod
|
|
256
256
|
|
|
257
|
-
def get_or_create_spark_crd(self,
|
|
257
|
+
def get_or_create_spark_crd(self, context) -> k8s.V1Pod:
|
|
258
258
|
if self.reattach_on_restart:
|
|
259
259
|
driver_pod = self.find_spark_job(context)
|
|
260
260
|
if driver_pod:
|
|
261
261
|
return driver_pod
|
|
262
262
|
|
|
263
|
-
driver_pod, spark_obj_spec = launcher.start_spark_job(
|
|
263
|
+
driver_pod, spark_obj_spec = self.launcher.start_spark_job(
|
|
264
264
|
image=self.image, code_path=self.code_path, startup_timeout=self.startup_timeout_seconds
|
|
265
265
|
)
|
|
266
266
|
return driver_pod
|
|
@@ -268,8 +268,9 @@ class SparkKubernetesOperator(KubernetesPodOperator):
|
|
|
268
268
|
def process_pod_deletion(self, pod, *, reraise=True):
|
|
269
269
|
if pod is not None:
|
|
270
270
|
if self.delete_on_termination:
|
|
271
|
-
|
|
272
|
-
self.
|
|
271
|
+
pod_name = pod.metadata.name.replace("-driver", "")
|
|
272
|
+
self.log.info("Deleting spark job: %s", pod_name)
|
|
273
|
+
self.launcher.delete_spark_job(pod_name)
|
|
273
274
|
else:
|
|
274
275
|
self.log.info("skipping deleting spark job: %s", pod.metadata.name)
|
|
275
276
|
|
|
@@ -293,18 +294,22 @@ class SparkKubernetesOperator(KubernetesPodOperator):
|
|
|
293
294
|
def custom_obj_api(self) -> CustomObjectsApi:
|
|
294
295
|
return CustomObjectsApi()
|
|
295
296
|
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
self.log.info("Creating sparkApplication.")
|
|
300
|
-
self.launcher = CustomObjectLauncher(
|
|
297
|
+
@cached_property
|
|
298
|
+
def launcher(self) -> CustomObjectLauncher:
|
|
299
|
+
launcher = CustomObjectLauncher(
|
|
301
300
|
name=self.name,
|
|
302
301
|
namespace=self.namespace,
|
|
303
302
|
kube_client=self.client,
|
|
304
303
|
custom_obj_api=self.custom_obj_api,
|
|
305
304
|
template_body=self.template_body,
|
|
306
305
|
)
|
|
307
|
-
|
|
306
|
+
return launcher
|
|
307
|
+
|
|
308
|
+
def execute(self, context: Context):
|
|
309
|
+
self.name = self.create_job_name()
|
|
310
|
+
|
|
311
|
+
self.log.info("Creating sparkApplication.")
|
|
312
|
+
self.pod = self.get_or_create_spark_crd(context)
|
|
308
313
|
self.pod_request_obj = self.launcher.pod_spec
|
|
309
314
|
|
|
310
315
|
return super().execute(context=context)
|
|
@@ -25,7 +25,7 @@ from kubernetes import client
|
|
|
25
25
|
|
|
26
26
|
from airflow.exceptions import AirflowException
|
|
27
27
|
from airflow.providers.cncf.kubernetes.hooks.kubernetes import KubernetesHook
|
|
28
|
-
from airflow.
|
|
28
|
+
from airflow.providers.cncf.kubernetes.version_compat import BaseSensorOperator
|
|
29
29
|
|
|
30
30
|
if TYPE_CHECKING:
|
|
31
31
|
from airflow.utils.context import Context
|
|
@@ -27,7 +27,7 @@ from collections.abc import Generator, Iterable
|
|
|
27
27
|
from contextlib import closing, suppress
|
|
28
28
|
from dataclasses import dataclass
|
|
29
29
|
from datetime import timedelta
|
|
30
|
-
from typing import TYPE_CHECKING, Protocol, cast
|
|
30
|
+
from typing import TYPE_CHECKING, Literal, Protocol, cast
|
|
31
31
|
|
|
32
32
|
import pendulum
|
|
33
33
|
import tenacity
|
|
@@ -36,7 +36,6 @@ from kubernetes.client.rest import ApiException
|
|
|
36
36
|
from kubernetes.stream import stream as kubernetes_stream
|
|
37
37
|
from pendulum import DateTime
|
|
38
38
|
from pendulum.parsing.exceptions import ParserError
|
|
39
|
-
from typing_extensions import Literal
|
|
40
39
|
from urllib3.exceptions import HTTPError, TimeoutError
|
|
41
40
|
|
|
42
41
|
from airflow.exceptions import AirflowException
|