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.
Files changed (159) hide show
  1. {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/PKG-INFO +9 -9
  2. {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/README.rst +4 -4
  3. {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/docs/changelog.rst +33 -8
  4. {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/docs/index.rst +5 -5
  5. {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/provider.yaml +2 -1
  6. {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/pyproject.toml +5 -5
  7. {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
  8. {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
  9. {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
  10. {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
  11. {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
  12. {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
  13. {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
  14. {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
  15. {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
  16. {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/tests/unit/cncf/kubernetes/conftest.py +22 -0
  17. {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
  18. {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
  19. {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
  20. {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
  21. {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
  22. {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
  23. {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
  24. {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
  25. {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
  26. {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/LICENSE +0 -0
  27. {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/NOTICE +0 -0
  28. {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/docs/.latest-doc-only-change.txt +0 -0
  29. {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/docs/cli-ref.rst +0 -0
  30. {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/docs/commits.rst +0 -0
  31. {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/docs/conf.py +0 -0
  32. {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/docs/configurations-ref.rst +0 -0
  33. {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/docs/connections/kubernetes.rst +0 -0
  34. {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/docs/img/arch-diag-kubernetes.png +0 -0
  35. {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/docs/img/arch-diag-kubernetes2.png +0 -0
  36. {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/docs/img/k8s-failed-pod.png +0 -0
  37. {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/docs/img/k8s-happy-path.png +0 -0
  38. {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/docs/installing-providers-from-sources.rst +0 -0
  39. {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/docs/integration-logos/Kubernetes.png +0 -0
  40. {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
  41. {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/docs/kubernetes_executor.rst +0 -0
  42. {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/docs/local_kubernetes_executor.rst +0 -0
  43. {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/docs/operators.rst +0 -0
  44. {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/docs/redirects.txt +0 -0
  45. {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/docs/security.rst +0 -0
  46. {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/src/airflow/__init__.py +0 -0
  47. {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/src/airflow/providers/__init__.py +0 -0
  48. {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/src/airflow/providers/cncf/__init__.py +0 -0
  49. {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
  50. {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
  51. {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
  52. {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
  53. {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
  54. {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
  55. {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
  56. {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
  57. {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
  58. {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
  59. {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
  60. {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
  61. {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
  62. {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
  63. {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
  64. {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
  65. {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
  66. {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
  67. {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
  68. {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
  69. {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
  70. {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
  71. {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
  72. {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
  73. {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
  74. {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
  75. {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
  76. {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
  77. {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
  78. {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
  79. {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
  80. {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
  81. {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
  82. {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
  83. {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
  84. {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
  85. {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
  86. {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
  87. {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
  88. {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
  89. {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
  90. {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
  91. {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
  92. {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
  93. {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
  94. {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
  95. {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
  96. {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/tests/conftest.py +0 -0
  97. {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/tests/system/__init__.py +0 -0
  98. {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/tests/system/cncf/__init__.py +0 -0
  99. {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/tests/system/cncf/kubernetes/__init__.py +0 -0
  100. {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
  101. {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
  102. {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
  103. {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
  104. {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
  105. {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
  106. {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
  107. {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
  108. {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
  109. {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
  110. {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/tests/unit/__init__.py +0 -0
  111. {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/tests/unit/cncf/__init__.py +0 -0
  112. {apache_airflow_providers_cncf_kubernetes-10.10.0 → apache_airflow_providers_cncf_kubernetes-10.11.0rc1}/tests/unit/cncf/kubernetes/__init__.py +0 -0
  113. {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
  114. {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
  115. {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
  116. {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
  117. {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
  118. {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
  119. {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
  120. {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
  121. {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
  122. {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
  123. {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
  124. {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
  125. {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
  126. {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
  127. {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
  128. {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
  129. {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
  130. {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
  131. {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
  132. {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
  133. {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
  134. {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
  135. {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
  136. {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
  137. {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
  138. {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
  139. {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
  140. {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
  141. {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
  142. {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
  143. {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
  144. {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
  145. {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
  146. {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
  147. {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
  148. {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
  149. {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
  150. {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
  151. {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
  152. {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
  153. {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
  154. {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
  155. {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
  156. {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
  157. {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
  158. {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
  159. {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.10.0
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.10.0
27
- Requires-Dist: apache-airflow-providers-common-compat>=1.8.0
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.10.0/changelog.html
34
- Project-URL: Documentation, https://airflow.apache.org/docs/apache-airflow-providers-cncf-kubernetes/10.10.0
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.10.0``
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.10.0/>`_.
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.10.0``
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.10.0/changelog.html>`_.
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.10.0``
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.10.0/>`_.
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.10.0``
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.10.0/changelog.html>`_.
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
- .. Review and move the new changes to one of the sections above:
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
- .. Review and move the new changes to one of the sections above:
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.10.0
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.10.0``.
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.10.0``
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.10.0 sdist package <https://downloads.apache.org/airflow/providers/apache_airflow_providers_cncf_kubernetes-10.10.0.tar.gz>`_ (`asc <https://downloads.apache.org/airflow/providers/apache_airflow_providers_cncf_kubernetes-10.10.0.tar.gz.asc>`__, `sha512 <https://downloads.apache.org/airflow/providers/apache_airflow_providers_cncf_kubernetes-10.10.0.tar.gz.sha512>`__)
148
- * `The apache-airflow-providers-cncf-kubernetes 10.10.0 wheel package <https://downloads.apache.org/airflow/providers/apache_airflow_providers_cncf_kubernetes-10.10.0-py3-none-any.whl>`_ (`asc <https://downloads.apache.org/airflow/providers/apache_airflow_providers_cncf_kubernetes-10.10.0-py3-none-any.whl.asc>`__, `sha512 <https://downloads.apache.org/airflow/providers/apache_airflow_providers_cncf_kubernetes-10.10.0-py3-none-any.whl.sha512>`__)
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: 1763068815
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.10.0"
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.10.0",
63
- "apache-airflow-providers-common-compat>=1.8.0",
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.10.0"
116
- "Changelog" = "https://airflow.apache.org/docs/apache-airflow-providers-cncf-kubernetes/10.10.0/changelog.html"
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.10.0"
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.10.0"
35
+ "2.11.0"
36
36
  ):
37
37
  raise RuntimeError(
38
- f"The package `apache-airflow-providers-cncf-kubernetes:{__version__}` needs Apache Airflow 2.10.0+"
38
+ f"The package `apache-airflow-providers-cncf-kubernetes:{__version__}` needs Apache Airflow 2.11.0+"
39
39
  )
@@ -16,9 +16,7 @@
16
16
  # under the License.
17
17
  from __future__ import annotations
18
18
 
19
- from airflow.exceptions import (
20
- AirflowException,
21
- )
19
+ from airflow.exceptions import AirflowException
22
20
 
23
21
 
24
22
  class PodMutationHookException(AirflowException):
@@ -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 should_retry_creation
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
- @tenacity.retry(
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
- container_name=container_name,
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
- from kubernetes.client.rest import ApiException
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=80
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"job-{job.metadata.name}"
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 should_retry_creation
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
- @tenacity.retry(
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: