apache-airflow-providers-cncf-kubernetes 10.3.0__tar.gz → 10.3.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of apache-airflow-providers-cncf-kubernetes might be problematic. Click here for more details.
- {apache_airflow_providers_cncf_kubernetes-10.3.0 → apache_airflow_providers_cncf_kubernetes-10.3.1}/PKG-INFO +24 -27
- {apache_airflow_providers_cncf_kubernetes-10.3.0 → apache_airflow_providers_cncf_kubernetes-10.3.1}/README.rst +20 -22
- {apache_airflow_providers_cncf_kubernetes-10.3.0 → apache_airflow_providers_cncf_kubernetes-10.3.1}/pyproject.toml +25 -9
- {apache_airflow_providers_cncf_kubernetes-10.3.0 → apache_airflow_providers_cncf_kubernetes-10.3.1}/src/airflow/providers/cncf/kubernetes/__init__.py +1 -1
- {apache_airflow_providers_cncf_kubernetes-10.3.0 → apache_airflow_providers_cncf_kubernetes-10.3.1}/src/airflow/providers/cncf/kubernetes/backcompat/backwards_compat_converters.py +2 -1
- {apache_airflow_providers_cncf_kubernetes-10.3.0 → apache_airflow_providers_cncf_kubernetes-10.3.1}/src/airflow/providers/cncf/kubernetes/callbacks.py +1 -2
- {apache_airflow_providers_cncf_kubernetes-10.3.0 → apache_airflow_providers_cncf_kubernetes-10.3.1}/src/airflow/providers/cncf/kubernetes/cli/kubernetes_command.py +4 -3
- {apache_airflow_providers_cncf_kubernetes-10.3.0 → apache_airflow_providers_cncf_kubernetes-10.3.1}/src/airflow/providers/cncf/kubernetes/executors/kubernetes_executor.py +11 -8
- {apache_airflow_providers_cncf_kubernetes-10.3.0 → apache_airflow_providers_cncf_kubernetes-10.3.1}/src/airflow/providers/cncf/kubernetes/executors/kubernetes_executor_utils.py +7 -4
- {apache_airflow_providers_cncf_kubernetes-10.3.0 → apache_airflow_providers_cncf_kubernetes-10.3.1}/src/airflow/providers/cncf/kubernetes/get_provider_info.py +3 -2
- {apache_airflow_providers_cncf_kubernetes-10.3.0 → apache_airflow_providers_cncf_kubernetes-10.3.1}/src/airflow/providers/cncf/kubernetes/operators/job.py +4 -3
- {apache_airflow_providers_cncf_kubernetes-10.3.0 → apache_airflow_providers_cncf_kubernetes-10.3.1}/src/airflow/providers/cncf/kubernetes/operators/kueue.py +2 -1
- {apache_airflow_providers_cncf_kubernetes-10.3.0 → apache_airflow_providers_cncf_kubernetes-10.3.1}/src/airflow/providers/cncf/kubernetes/operators/pod.py +15 -15
- {apache_airflow_providers_cncf_kubernetes-10.3.0 → apache_airflow_providers_cncf_kubernetes-10.3.1}/src/airflow/providers/cncf/kubernetes/operators/spark_kubernetes.py +2 -1
- {apache_airflow_providers_cncf_kubernetes-10.3.0 → apache_airflow_providers_cncf_kubernetes-10.3.1}/src/airflow/providers/cncf/kubernetes/pod_generator.py +4 -4
- {apache_airflow_providers_cncf_kubernetes-10.3.0 → apache_airflow_providers_cncf_kubernetes-10.3.1}/src/airflow/providers/cncf/kubernetes/resource_convert/env_variable.py +2 -1
- {apache_airflow_providers_cncf_kubernetes-10.3.0 → apache_airflow_providers_cncf_kubernetes-10.3.1}/src/airflow/providers/cncf/kubernetes/secret.py +2 -1
- {apache_airflow_providers_cncf_kubernetes-10.3.0 → apache_airflow_providers_cncf_kubernetes-10.3.1}/src/airflow/providers/cncf/kubernetes/sensors/spark_kubernetes.py +2 -1
- {apache_airflow_providers_cncf_kubernetes-10.3.0 → apache_airflow_providers_cncf_kubernetes-10.3.1}/src/airflow/providers/cncf/kubernetes/utils/k8s_resource_iterator.py +2 -1
- {apache_airflow_providers_cncf_kubernetes-10.3.0 → apache_airflow_providers_cncf_kubernetes-10.3.1}/src/airflow/providers/cncf/kubernetes/utils/pod_manager.py +4 -5
- {apache_airflow_providers_cncf_kubernetes-10.3.0 → apache_airflow_providers_cncf_kubernetes-10.3.1}/src/airflow/providers/cncf/kubernetes/LICENSE +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.3.0 → apache_airflow_providers_cncf_kubernetes-10.3.1}/src/airflow/providers/cncf/kubernetes/backcompat/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.3.0 → apache_airflow_providers_cncf_kubernetes-10.3.1}/src/airflow/providers/cncf/kubernetes/cli/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.3.0 → apache_airflow_providers_cncf_kubernetes-10.3.1}/src/airflow/providers/cncf/kubernetes/decorators/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.3.0 → apache_airflow_providers_cncf_kubernetes-10.3.1}/src/airflow/providers/cncf/kubernetes/decorators/kubernetes.py +1 -1
- {apache_airflow_providers_cncf_kubernetes-10.3.0 → apache_airflow_providers_cncf_kubernetes-10.3.1}/src/airflow/providers/cncf/kubernetes/exceptions.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.3.0 → apache_airflow_providers_cncf_kubernetes-10.3.1}/src/airflow/providers/cncf/kubernetes/executors/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.3.0 → apache_airflow_providers_cncf_kubernetes-10.3.1}/src/airflow/providers/cncf/kubernetes/executors/kubernetes_executor_types.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.3.0 → apache_airflow_providers_cncf_kubernetes-10.3.1}/src/airflow/providers/cncf/kubernetes/executors/local_kubernetes_executor.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.3.0 → apache_airflow_providers_cncf_kubernetes-10.3.1}/src/airflow/providers/cncf/kubernetes/hooks/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.3.0 → apache_airflow_providers_cncf_kubernetes-10.3.1}/src/airflow/providers/cncf/kubernetes/hooks/kubernetes.py +3 -3
- {apache_airflow_providers_cncf_kubernetes-10.3.0 → apache_airflow_providers_cncf_kubernetes-10.3.1}/src/airflow/providers/cncf/kubernetes/k8s_model.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.3.0 → apache_airflow_providers_cncf_kubernetes-10.3.1}/src/airflow/providers/cncf/kubernetes/kube_client.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.3.0 → apache_airflow_providers_cncf_kubernetes-10.3.1}/src/airflow/providers/cncf/kubernetes/kube_config.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.3.0 → apache_airflow_providers_cncf_kubernetes-10.3.1}/src/airflow/providers/cncf/kubernetes/kubernetes_executor_templates/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.3.0 → apache_airflow_providers_cncf_kubernetes-10.3.1}/src/airflow/providers/cncf/kubernetes/kubernetes_executor_templates/basic_template.yaml +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.3.0 → apache_airflow_providers_cncf_kubernetes-10.3.1}/src/airflow/providers/cncf/kubernetes/kubernetes_helper_functions.py +1 -1
- {apache_airflow_providers_cncf_kubernetes-10.3.0 → apache_airflow_providers_cncf_kubernetes-10.3.1}/src/airflow/providers/cncf/kubernetes/operators/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.3.0 → apache_airflow_providers_cncf_kubernetes-10.3.1}/src/airflow/providers/cncf/kubernetes/operators/custom_object_launcher.py +2 -2
- {apache_airflow_providers_cncf_kubernetes-10.3.0 → apache_airflow_providers_cncf_kubernetes-10.3.1}/src/airflow/providers/cncf/kubernetes/operators/resource.py +1 -1
- {apache_airflow_providers_cncf_kubernetes-10.3.0 → apache_airflow_providers_cncf_kubernetes-10.3.1}/src/airflow/providers/cncf/kubernetes/pod_template_file_examples/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.3.0 → apache_airflow_providers_cncf_kubernetes-10.3.1}/src/airflow/providers/cncf/kubernetes/pod_template_file_examples/dags_in_image_template.yaml +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.3.0 → apache_airflow_providers_cncf_kubernetes-10.3.1}/src/airflow/providers/cncf/kubernetes/pod_template_file_examples/dags_in_volume_template.yaml +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.3.0 → apache_airflow_providers_cncf_kubernetes-10.3.1}/src/airflow/providers/cncf/kubernetes/pod_template_file_examples/git_sync_template.yaml +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.3.0 → apache_airflow_providers_cncf_kubernetes-10.3.1}/src/airflow/providers/cncf/kubernetes/python_kubernetes_script.jinja2 +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.3.0 → apache_airflow_providers_cncf_kubernetes-10.3.1}/src/airflow/providers/cncf/kubernetes/python_kubernetes_script.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.3.0 → apache_airflow_providers_cncf_kubernetes-10.3.1}/src/airflow/providers/cncf/kubernetes/resource_convert/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.3.0 → apache_airflow_providers_cncf_kubernetes-10.3.1}/src/airflow/providers/cncf/kubernetes/resource_convert/configmap.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.3.0 → apache_airflow_providers_cncf_kubernetes-10.3.1}/src/airflow/providers/cncf/kubernetes/resource_convert/secret.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.3.0 → apache_airflow_providers_cncf_kubernetes-10.3.1}/src/airflow/providers/cncf/kubernetes/sensors/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.3.0 → apache_airflow_providers_cncf_kubernetes-10.3.1}/src/airflow/providers/cncf/kubernetes/template_rendering.py +1 -1
- {apache_airflow_providers_cncf_kubernetes-10.3.0 → apache_airflow_providers_cncf_kubernetes-10.3.1}/src/airflow/providers/cncf/kubernetes/triggers/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.3.0 → apache_airflow_providers_cncf_kubernetes-10.3.1}/src/airflow/providers/cncf/kubernetes/triggers/job.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.3.0 → apache_airflow_providers_cncf_kubernetes-10.3.1}/src/airflow/providers/cncf/kubernetes/triggers/pod.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.3.0 → apache_airflow_providers_cncf_kubernetes-10.3.1}/src/airflow/providers/cncf/kubernetes/utils/__init__.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.3.0 → apache_airflow_providers_cncf_kubernetes-10.3.1}/src/airflow/providers/cncf/kubernetes/utils/delete_from.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.3.0 → apache_airflow_providers_cncf_kubernetes-10.3.1}/src/airflow/providers/cncf/kubernetes/utils/xcom_sidecar.py +0 -0
- {apache_airflow_providers_cncf_kubernetes-10.3.0 → apache_airflow_providers_cncf_kubernetes-10.3.1}/src/airflow/providers/cncf/kubernetes/version_compat.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: apache-airflow-providers-cncf-kubernetes
|
|
3
|
-
Version: 10.3.
|
|
3
|
+
Version: 10.3.1
|
|
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>
|
|
@@ -26,42 +26,40 @@ Requires-Dist: asgiref>=3.5.2
|
|
|
26
26
|
Requires-Dist: cryptography>=41.0.0
|
|
27
27
|
Requires-Dist: kubernetes>=29.0.0,<=31.0.0
|
|
28
28
|
Requires-Dist: kubernetes_asyncio>=29.0.0,<=31.0.0
|
|
29
|
-
Requires-Dist: google-re2>=1.0
|
|
30
29
|
Project-URL: Bug Tracker, https://github.com/apache/airflow/issues
|
|
31
|
-
Project-URL: Changelog, https://airflow.apache.org/docs/apache-airflow-providers-cncf-kubernetes/10.3.
|
|
32
|
-
Project-URL: Documentation, https://airflow.apache.org/docs/apache-airflow-providers-cncf-kubernetes/10.3.
|
|
30
|
+
Project-URL: Changelog, https://airflow.apache.org/docs/apache-airflow-providers-cncf-kubernetes/10.3.1/changelog.html
|
|
31
|
+
Project-URL: Documentation, https://airflow.apache.org/docs/apache-airflow-providers-cncf-kubernetes/10.3.1
|
|
33
32
|
Project-URL: Slack Chat, https://s.apache.org/airflow-slack
|
|
34
33
|
Project-URL: Source Code, https://github.com/apache/airflow
|
|
35
34
|
Project-URL: Twitter, https://x.com/ApacheAirflow
|
|
36
35
|
Project-URL: YouTube, https://www.youtube.com/channel/UCSXwxpWZQ7XZ1WL3wqevChA/
|
|
37
36
|
|
|
38
37
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
38
|
+
.. Licensed to the Apache Software Foundation (ASF) under one
|
|
39
|
+
or more contributor license agreements. See the NOTICE file
|
|
40
|
+
distributed with this work for additional information
|
|
41
|
+
regarding copyright ownership. The ASF licenses this file
|
|
42
|
+
to you under the Apache License, Version 2.0 (the
|
|
43
|
+
"License"); you may not use this file except in compliance
|
|
44
|
+
with the License. You may obtain a copy of the License at
|
|
46
45
|
|
|
47
|
-
|
|
46
|
+
.. http://www.apache.org/licenses/LICENSE-2.0
|
|
48
47
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
48
|
+
.. Unless required by applicable law or agreed to in writing,
|
|
49
|
+
software distributed under the License is distributed on an
|
|
50
|
+
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
51
|
+
KIND, either express or implied. See the License for the
|
|
52
|
+
specific language governing permissions and limitations
|
|
53
|
+
under the License.
|
|
55
54
|
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
.. IF YOU WANT TO MODIFY TEMPLATE FOR THIS FILE, YOU SHOULD MODIFY THE TEMPLATE
|
|
59
|
-
`PROVIDER_README_TEMPLATE.rst.jinja2` IN the `dev/breeze/src/airflow_breeze/templates` DIRECTORY
|
|
55
|
+
.. NOTE! THIS FILE IS AUTOMATICALLY GENERATED AND WILL BE OVERWRITTEN!
|
|
60
56
|
|
|
57
|
+
.. IF YOU WANT TO MODIFY TEMPLATE FOR THIS FILE, YOU SHOULD MODIFY THE TEMPLATE
|
|
58
|
+
``PROVIDER_README_TEMPLATE.rst.jinja2`` IN the ``dev/breeze/src/airflow_breeze/templates`` DIRECTORY
|
|
61
59
|
|
|
62
60
|
Package ``apache-airflow-providers-cncf-kubernetes``
|
|
63
61
|
|
|
64
|
-
Release: ``10.3.
|
|
62
|
+
Release: ``10.3.1``
|
|
65
63
|
|
|
66
64
|
|
|
67
65
|
`Kubernetes <https://kubernetes.io/>`__
|
|
@@ -74,7 +72,7 @@ This is a provider package for ``cncf.kubernetes`` provider. All classes for thi
|
|
|
74
72
|
are in ``airflow.providers.cncf.kubernetes`` python package.
|
|
75
73
|
|
|
76
74
|
You can find package information and changelog for the provider
|
|
77
|
-
in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-cncf-kubernetes/10.3.
|
|
75
|
+
in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-cncf-kubernetes/10.3.1/>`_.
|
|
78
76
|
|
|
79
77
|
Installation
|
|
80
78
|
------------
|
|
@@ -97,9 +95,8 @@ PIP package Version required
|
|
|
97
95
|
``cryptography`` ``>=41.0.0``
|
|
98
96
|
``kubernetes`` ``>=29.0.0,<=31.0.0``
|
|
99
97
|
``kubernetes_asyncio`` ``>=29.0.0,<=31.0.0``
|
|
100
|
-
``google-re2`` ``>=1.0``
|
|
101
98
|
====================== =====================
|
|
102
99
|
|
|
103
100
|
The changelog for the provider package can be found in the
|
|
104
|
-
`changelog <https://airflow.apache.org/docs/apache-airflow-providers-cncf-kubernetes/10.3.
|
|
101
|
+
`changelog <https://airflow.apache.org/docs/apache-airflow-providers-cncf-kubernetes/10.3.1/changelog.html>`_.
|
|
105
102
|
|
|
@@ -1,30 +1,29 @@
|
|
|
1
1
|
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
2
|
+
.. Licensed to the Apache Software Foundation (ASF) under one
|
|
3
|
+
or more contributor license agreements. See the NOTICE file
|
|
4
|
+
distributed with this work for additional information
|
|
5
|
+
regarding copyright ownership. The ASF licenses this file
|
|
6
|
+
to you under the Apache License, Version 2.0 (the
|
|
7
|
+
"License"); you may not use this file except in compliance
|
|
8
|
+
with the License. You may obtain a copy of the License at
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
.. http://www.apache.org/licenses/LICENSE-2.0
|
|
11
11
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
12
|
+
.. Unless required by applicable law or agreed to in writing,
|
|
13
|
+
software distributed under the License is distributed on an
|
|
14
|
+
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
15
|
+
KIND, either express or implied. See the License for the
|
|
16
|
+
specific language governing permissions and limitations
|
|
17
|
+
under the License.
|
|
18
18
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
.. IF YOU WANT TO MODIFY TEMPLATE FOR THIS FILE, YOU SHOULD MODIFY THE TEMPLATE
|
|
22
|
-
`PROVIDER_README_TEMPLATE.rst.jinja2` IN the `dev/breeze/src/airflow_breeze/templates` DIRECTORY
|
|
19
|
+
.. NOTE! THIS FILE IS AUTOMATICALLY GENERATED AND WILL BE OVERWRITTEN!
|
|
23
20
|
|
|
21
|
+
.. IF YOU WANT TO MODIFY TEMPLATE FOR THIS FILE, YOU SHOULD MODIFY THE TEMPLATE
|
|
22
|
+
``PROVIDER_README_TEMPLATE.rst.jinja2`` IN the ``dev/breeze/src/airflow_breeze/templates`` DIRECTORY
|
|
24
23
|
|
|
25
24
|
Package ``apache-airflow-providers-cncf-kubernetes``
|
|
26
25
|
|
|
27
|
-
Release: ``10.3.
|
|
26
|
+
Release: ``10.3.1``
|
|
28
27
|
|
|
29
28
|
|
|
30
29
|
`Kubernetes <https://kubernetes.io/>`__
|
|
@@ -37,7 +36,7 @@ This is a provider package for ``cncf.kubernetes`` provider. All classes for thi
|
|
|
37
36
|
are in ``airflow.providers.cncf.kubernetes`` python package.
|
|
38
37
|
|
|
39
38
|
You can find package information and changelog for the provider
|
|
40
|
-
in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-cncf-kubernetes/10.3.
|
|
39
|
+
in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-cncf-kubernetes/10.3.1/>`_.
|
|
41
40
|
|
|
42
41
|
Installation
|
|
43
42
|
------------
|
|
@@ -60,8 +59,7 @@ PIP package Version required
|
|
|
60
59
|
``cryptography`` ``>=41.0.0``
|
|
61
60
|
``kubernetes`` ``>=29.0.0,<=31.0.0``
|
|
62
61
|
``kubernetes_asyncio`` ``>=29.0.0,<=31.0.0``
|
|
63
|
-
``google-re2`` ``>=1.0``
|
|
64
62
|
====================== =====================
|
|
65
63
|
|
|
66
64
|
The changelog for the provider package can be found in the
|
|
67
|
-
`changelog <https://airflow.apache.org/docs/apache-airflow-providers-cncf-kubernetes/10.3.
|
|
65
|
+
`changelog <https://airflow.apache.org/docs/apache-airflow-providers-cncf-kubernetes/10.3.1/changelog.html>`_.
|
|
@@ -20,12 +20,12 @@
|
|
|
20
20
|
# IF YOU WANT TO MODIFY THIS FILE EXCEPT DEPENDENCIES, YOU SHOULD MODIFY THE TEMPLATE
|
|
21
21
|
# `pyproject_TEMPLATE.toml.jinja2` IN the `dev/breeze/src/airflow_breeze/templates` DIRECTORY
|
|
22
22
|
[build-system]
|
|
23
|
-
requires = ["flit_core==3.
|
|
23
|
+
requires = ["flit_core==3.11.0"]
|
|
24
24
|
build-backend = "flit_core.buildapi"
|
|
25
25
|
|
|
26
26
|
[project]
|
|
27
27
|
name = "apache-airflow-providers-cncf-kubernetes"
|
|
28
|
-
version = "10.3.
|
|
28
|
+
version = "10.3.1"
|
|
29
29
|
description = "Provider package apache-airflow-providers-cncf-kubernetes for Apache Airflow"
|
|
30
30
|
readme = "README.rst"
|
|
31
31
|
authors = [
|
|
@@ -52,8 +52,10 @@ classifiers = [
|
|
|
52
52
|
]
|
|
53
53
|
requires-python = "~=3.9"
|
|
54
54
|
|
|
55
|
-
# The dependencies should be modified in place in the generated file
|
|
55
|
+
# The dependencies should be modified in place in the generated file.
|
|
56
56
|
# Any change in the dependencies is preserved when the file is regenerated
|
|
57
|
+
# Make sure to run ``breeze static-checks --type update-providers-dependencies --all-files``
|
|
58
|
+
# After you modify the dependencies, and rebuild your Breeze CI image with ``breeze ci-image build``
|
|
57
59
|
dependencies = [
|
|
58
60
|
"aiofiles>=23.2.0",
|
|
59
61
|
"apache-airflow>=2.9.0",
|
|
@@ -74,12 +76,29 @@ dependencies = [
|
|
|
74
76
|
# (started from current 24.2.2 version) to prevent introducing some problems that could be due to some
|
|
75
77
|
# major changes in the package.
|
|
76
78
|
"kubernetes_asyncio>=29.0.0,<=31.0.0",
|
|
77
|
-
"google-re2>=1.0",
|
|
78
79
|
]
|
|
79
80
|
|
|
81
|
+
[dependency-groups]
|
|
82
|
+
dev = [
|
|
83
|
+
"apache-airflow",
|
|
84
|
+
"apache-airflow-task-sdk",
|
|
85
|
+
"apache-airflow-devel-common",
|
|
86
|
+
# Additional devel dependencies (do not remove this line and add extra development dependencies)
|
|
87
|
+
]
|
|
88
|
+
|
|
89
|
+
[tool.uv.sources]
|
|
90
|
+
# These names must match the names as defined in the pyproject.toml of the workspace items,
|
|
91
|
+
# *not* the workspace folder paths
|
|
92
|
+
apache-airflow = {workspace = true}
|
|
93
|
+
apache-airflow-devel-common = {workspace = true}
|
|
94
|
+
apache-airflow-task-sdk = {workspace = true}
|
|
95
|
+
apache-airflow-providers-common-sql = {workspace = true}
|
|
96
|
+
apache-airflow-providers-fab = {workspace = true}
|
|
97
|
+
apache-airflow-providers-standard = {workspace = true}
|
|
98
|
+
|
|
80
99
|
[project.urls]
|
|
81
|
-
"Documentation" = "https://airflow.apache.org/docs/apache-airflow-providers-cncf-kubernetes/10.3.
|
|
82
|
-
"Changelog" = "https://airflow.apache.org/docs/apache-airflow-providers-cncf-kubernetes/10.3.
|
|
100
|
+
"Documentation" = "https://airflow.apache.org/docs/apache-airflow-providers-cncf-kubernetes/10.3.1"
|
|
101
|
+
"Changelog" = "https://airflow.apache.org/docs/apache-airflow-providers-cncf-kubernetes/10.3.1/changelog.html"
|
|
83
102
|
"Bug Tracker" = "https://github.com/apache/airflow/issues"
|
|
84
103
|
"Source Code" = "https://github.com/apache/airflow"
|
|
85
104
|
"Slack Chat" = "https://s.apache.org/airflow-slack"
|
|
@@ -91,6 +110,3 @@ provider_info = "airflow.providers.cncf.kubernetes.get_provider_info:get_provide
|
|
|
91
110
|
|
|
92
111
|
[tool.flit.module]
|
|
93
112
|
name = "airflow.providers.cncf.kubernetes"
|
|
94
|
-
|
|
95
|
-
[tool.pytest.ini_options]
|
|
96
|
-
ignore = "tests/system/"
|
|
@@ -29,7 +29,7 @@ from airflow import __version__ as airflow_version
|
|
|
29
29
|
|
|
30
30
|
__all__ = ["__version__"]
|
|
31
31
|
|
|
32
|
-
__version__ = "10.3.
|
|
32
|
+
__version__ = "10.3.1"
|
|
33
33
|
|
|
34
34
|
if packaging.version.parse(packaging.version.parse(airflow_version).base_version) < packaging.version.parse(
|
|
35
35
|
"2.9.0"
|
|
@@ -18,9 +18,10 @@
|
|
|
18
18
|
|
|
19
19
|
from __future__ import annotations
|
|
20
20
|
|
|
21
|
-
from airflow.exceptions import AirflowException
|
|
22
21
|
from kubernetes.client import ApiClient, models as k8s
|
|
23
22
|
|
|
23
|
+
from airflow.exceptions import AirflowException
|
|
24
|
+
|
|
24
25
|
|
|
25
26
|
def _convert_kube_model_object(obj, new_class):
|
|
26
27
|
convert_op = getattr(obj, "to_k8s_client_obj", None)
|
|
@@ -19,9 +19,8 @@ from __future__ import annotations
|
|
|
19
19
|
from enum import Enum
|
|
20
20
|
from typing import TYPE_CHECKING, Union
|
|
21
21
|
|
|
22
|
-
import kubernetes_asyncio.client as async_k8s
|
|
23
|
-
|
|
24
22
|
import kubernetes.client as k8s
|
|
23
|
+
import kubernetes_asyncio.client as async_k8s
|
|
25
24
|
|
|
26
25
|
if TYPE_CHECKING:
|
|
27
26
|
from airflow.providers.cncf.kubernetes.operators.pod import KubernetesPodOperator
|
|
@@ -22,6 +22,10 @@ import os
|
|
|
22
22
|
import sys
|
|
23
23
|
from datetime import datetime, timedelta
|
|
24
24
|
|
|
25
|
+
from kubernetes import client
|
|
26
|
+
from kubernetes.client.api_client import ApiClient
|
|
27
|
+
from kubernetes.client.rest import ApiException
|
|
28
|
+
|
|
25
29
|
from airflow.models import DagRun, TaskInstance
|
|
26
30
|
from airflow.providers.cncf.kubernetes import pod_generator
|
|
27
31
|
from airflow.providers.cncf.kubernetes.executors.kubernetes_executor import KubeConfig
|
|
@@ -32,9 +36,6 @@ from airflow.providers.cncf.kubernetes.version_compat import AIRFLOW_V_3_0_PLUS
|
|
|
32
36
|
from airflow.utils import cli as cli_utils, yaml
|
|
33
37
|
from airflow.utils.cli import get_dag
|
|
34
38
|
from airflow.utils.providers_configuration_loader import providers_configuration_loaded
|
|
35
|
-
from kubernetes import client
|
|
36
|
-
from kubernetes.client.api_client import ApiClient
|
|
37
|
-
from kubernetes.client.rest import ApiException
|
|
38
39
|
|
|
39
40
|
|
|
40
41
|
@cli_utils.action_cli
|
|
@@ -37,11 +37,11 @@ from queue import Empty, Queue
|
|
|
37
37
|
from typing import TYPE_CHECKING, Any
|
|
38
38
|
|
|
39
39
|
from deprecated import deprecated
|
|
40
|
+
from kubernetes.dynamic import DynamicClient
|
|
40
41
|
from sqlalchemy import select
|
|
41
42
|
|
|
42
43
|
from airflow.providers.cncf.kubernetes.pod_generator import PodGenerator
|
|
43
44
|
from airflow.providers.cncf.kubernetes.version_compat import AIRFLOW_V_3_0_PLUS
|
|
44
|
-
from kubernetes.dynamic import DynamicClient
|
|
45
45
|
|
|
46
46
|
try:
|
|
47
47
|
from airflow.cli.cli_config import ARG_LOGICAL_DATE
|
|
@@ -78,6 +78,8 @@ from airflow.utils.state import TaskInstanceState
|
|
|
78
78
|
if TYPE_CHECKING:
|
|
79
79
|
import argparse
|
|
80
80
|
|
|
81
|
+
from kubernetes import client
|
|
82
|
+
from kubernetes.client import models as k8s
|
|
81
83
|
from sqlalchemy.orm import Session
|
|
82
84
|
|
|
83
85
|
from airflow.executors import workloads
|
|
@@ -91,8 +93,6 @@ if TYPE_CHECKING:
|
|
|
91
93
|
from airflow.providers.cncf.kubernetes.executors.kubernetes_executor_utils import (
|
|
92
94
|
AirflowKubernetesScheduler,
|
|
93
95
|
)
|
|
94
|
-
from kubernetes import client
|
|
95
|
-
from kubernetes.client import models as k8s
|
|
96
96
|
|
|
97
97
|
# CLI Args
|
|
98
98
|
ARG_NAMESPACE = Arg(
|
|
@@ -284,15 +284,18 @@ class KubernetesExecutor(BaseExecutor):
|
|
|
284
284
|
self.queued_tasks[ti.key] = workload
|
|
285
285
|
|
|
286
286
|
def _process_workloads(self, workloads: list[workloads.All]) -> None:
|
|
287
|
+
from airflow.executors.workloads import ExecuteTask
|
|
288
|
+
|
|
287
289
|
# Airflow V3 version
|
|
288
290
|
for w in workloads:
|
|
291
|
+
if not isinstance(w, ExecuteTask):
|
|
292
|
+
raise RuntimeError(f"{type(self)} cannot handle workloads of type {type(w)}")
|
|
293
|
+
|
|
289
294
|
# TODO: AIP-72 handle populating tokens once https://github.com/apache/airflow/issues/45107 is handled.
|
|
290
295
|
command = [w]
|
|
291
|
-
key = w.ti.key
|
|
292
|
-
queue = w.ti.queue
|
|
293
|
-
|
|
294
|
-
# TODO: will be handled by https://github.com/apache/airflow/issues/46892
|
|
295
|
-
executor_config = {} # type: ignore[var-annotated]
|
|
296
|
+
key = w.ti.key
|
|
297
|
+
queue = w.ti.queue
|
|
298
|
+
executor_config = w.ti.executor_config or {}
|
|
296
299
|
|
|
297
300
|
del self.queued_tasks[key]
|
|
298
301
|
self.execute_async(key=key, command=command, queue=queue, executor_config=executor_config) # type: ignore[arg-type]
|
|
@@ -23,6 +23,8 @@ import time
|
|
|
23
23
|
from queue import Empty, Queue
|
|
24
24
|
from typing import TYPE_CHECKING, Any
|
|
25
25
|
|
|
26
|
+
from kubernetes import client, watch
|
|
27
|
+
from kubernetes.client.rest import ApiException
|
|
26
28
|
from urllib3.exceptions import ReadTimeoutError
|
|
27
29
|
|
|
28
30
|
from airflow.exceptions import AirflowException
|
|
@@ -43,16 +45,15 @@ from airflow.providers.cncf.kubernetes.pod_generator import PodGenerator
|
|
|
43
45
|
from airflow.utils.log.logging_mixin import LoggingMixin
|
|
44
46
|
from airflow.utils.singleton import Singleton
|
|
45
47
|
from airflow.utils.state import TaskInstanceState
|
|
46
|
-
from kubernetes import client, watch
|
|
47
|
-
from kubernetes.client.rest import ApiException
|
|
48
48
|
|
|
49
49
|
if TYPE_CHECKING:
|
|
50
|
+
from kubernetes.client import Configuration, models as k8s
|
|
51
|
+
|
|
50
52
|
from airflow.providers.cncf.kubernetes.executors.kubernetes_executor_types import (
|
|
51
53
|
KubernetesJobType,
|
|
52
54
|
KubernetesResultsType,
|
|
53
55
|
KubernetesWatchType,
|
|
54
56
|
)
|
|
55
|
-
from kubernetes.client import Configuration, models as k8s
|
|
56
57
|
|
|
57
58
|
|
|
58
59
|
class ResourceVersion(metaclass=Singleton):
|
|
@@ -394,7 +395,9 @@ class AirflowKubernetesScheduler(LoggingMixin):
|
|
|
394
395
|
|
|
395
396
|
if isinstance(command[0], ExecuteTask):
|
|
396
397
|
workload = command[0]
|
|
397
|
-
|
|
398
|
+
# `executor_config` is a k8s.V1Pod object and we do not need to pass it to the
|
|
399
|
+
# execute_workload module. So, we exclude it from the serialisation process.
|
|
400
|
+
ser_input = workload.model_dump_json(exclude={"ti": {"executor_config"}})
|
|
398
401
|
command = [
|
|
399
402
|
"python",
|
|
400
403
|
"-m",
|
|
@@ -27,8 +27,9 @@ def get_provider_info():
|
|
|
27
27
|
"name": "Kubernetes",
|
|
28
28
|
"description": "`Kubernetes <https://kubernetes.io/>`__\n",
|
|
29
29
|
"state": "ready",
|
|
30
|
-
"source-date-epoch":
|
|
30
|
+
"source-date-epoch": 1741508564,
|
|
31
31
|
"versions": [
|
|
32
|
+
"10.3.1",
|
|
32
33
|
"10.3.0",
|
|
33
34
|
"10.1.0",
|
|
34
35
|
"10.0.1",
|
|
@@ -357,6 +358,6 @@ def get_provider_info():
|
|
|
357
358
|
"cryptography>=41.0.0",
|
|
358
359
|
"kubernetes>=29.0.0,<=31.0.0",
|
|
359
360
|
"kubernetes_asyncio>=29.0.0,<=31.0.0",
|
|
360
|
-
"google-re2>=1.0",
|
|
361
361
|
],
|
|
362
|
+
"devel-dependencies": [],
|
|
362
363
|
}
|
|
@@ -26,6 +26,10 @@ from collections.abc import Sequence
|
|
|
26
26
|
from functools import cached_property
|
|
27
27
|
from typing import TYPE_CHECKING
|
|
28
28
|
|
|
29
|
+
from kubernetes.client import BatchV1Api, models as k8s
|
|
30
|
+
from kubernetes.client.api_client import ApiClient
|
|
31
|
+
from kubernetes.client.rest import ApiException
|
|
32
|
+
|
|
29
33
|
from airflow.configuration import conf
|
|
30
34
|
from airflow.exceptions import AirflowException
|
|
31
35
|
from airflow.models import BaseOperator
|
|
@@ -40,9 +44,6 @@ from airflow.providers.cncf.kubernetes.triggers.job import KubernetesJobTrigger
|
|
|
40
44
|
from airflow.providers.cncf.kubernetes.utils.pod_manager import EMPTY_XCOM_RESULT, PodNotFoundException
|
|
41
45
|
from airflow.utils import yaml
|
|
42
46
|
from airflow.utils.context import Context
|
|
43
|
-
from kubernetes.client import BatchV1Api, models as k8s
|
|
44
|
-
from kubernetes.client.api_client import ApiClient
|
|
45
|
-
from kubernetes.client.rest import ApiException
|
|
46
47
|
|
|
47
48
|
if TYPE_CHECKING:
|
|
48
49
|
from airflow.utils.context import Context
|
|
@@ -22,11 +22,12 @@ import json
|
|
|
22
22
|
from collections.abc import Sequence
|
|
23
23
|
from functools import cached_property
|
|
24
24
|
|
|
25
|
+
from kubernetes.utils import FailToCreateError
|
|
26
|
+
|
|
25
27
|
from airflow.exceptions import AirflowException
|
|
26
28
|
from airflow.models import BaseOperator
|
|
27
29
|
from airflow.providers.cncf.kubernetes.hooks.kubernetes import KubernetesHook
|
|
28
30
|
from airflow.providers.cncf.kubernetes.operators.job import KubernetesJobOperator
|
|
29
|
-
from kubernetes.utils import FailToCreateError
|
|
30
31
|
|
|
31
32
|
|
|
32
33
|
class KubernetesInstallKueueOperator(BaseOperator):
|
|
@@ -32,10 +32,13 @@ from enum import Enum
|
|
|
32
32
|
from functools import cached_property
|
|
33
33
|
from typing import TYPE_CHECKING, Any, Callable, Literal
|
|
34
34
|
|
|
35
|
+
import kubernetes
|
|
35
36
|
import tenacity
|
|
37
|
+
from kubernetes.client import CoreV1Api, V1Pod, models as k8s
|
|
38
|
+
from kubernetes.client.exceptions import ApiException
|
|
39
|
+
from kubernetes.stream import stream
|
|
36
40
|
from urllib3.exceptions import HTTPError
|
|
37
41
|
|
|
38
|
-
import kubernetes
|
|
39
42
|
from airflow.configuration import conf
|
|
40
43
|
from airflow.exceptions import (
|
|
41
44
|
AirflowException,
|
|
@@ -81,9 +84,6 @@ from airflow.settings import pod_mutation_hook
|
|
|
81
84
|
from airflow.utils import yaml
|
|
82
85
|
from airflow.utils.helpers import prune_dict, validate_key
|
|
83
86
|
from airflow.version import version as airflow_version
|
|
84
|
-
from kubernetes.client import CoreV1Api, V1Pod, models as k8s
|
|
85
|
-
from kubernetes.client.exceptions import ApiException
|
|
86
|
-
from kubernetes.stream import stream
|
|
87
87
|
|
|
88
88
|
if TYPE_CHECKING:
|
|
89
89
|
import jinja2
|
|
@@ -132,23 +132,23 @@ class KubernetesPodOperator(BaseOperator):
|
|
|
132
132
|
simplifies the authorization process.
|
|
133
133
|
|
|
134
134
|
:param kubernetes_conn_id: The :ref:`kubernetes connection id <howto/connection:kubernetes>`
|
|
135
|
-
for the Kubernetes cluster.
|
|
135
|
+
for the Kubernetes cluster. (templated)
|
|
136
136
|
:param namespace: the namespace to run within kubernetes.
|
|
137
|
-
:param image:
|
|
137
|
+
:param image: Container image you wish to launch. Defaults to hub.docker.com,
|
|
138
138
|
but fully qualified URLS will point to custom repositories. (templated)
|
|
139
139
|
:param name: name of the pod in which the task will run, will be used (plus a random
|
|
140
140
|
suffix if random_name_suffix is True) to generate a pod id (DNS-1123 subdomain,
|
|
141
|
-
containing only [a-z0-9.-]).
|
|
141
|
+
containing only [a-z0-9.-]). (templated)
|
|
142
142
|
:param random_name_suffix: if True, will generate a random suffix.
|
|
143
|
-
:param cmds: entrypoint of the container.
|
|
144
|
-
The
|
|
145
|
-
:param arguments: arguments of the entrypoint.
|
|
146
|
-
The
|
|
143
|
+
:param cmds: entrypoint of the container.
|
|
144
|
+
The container images's entrypoint is used if this is not provided. (templated)
|
|
145
|
+
:param arguments: arguments of the entrypoint.
|
|
146
|
+
The container image's CMD is used if this is not provided. (templated)
|
|
147
147
|
:param ports: ports for the launched pod.
|
|
148
|
-
:param volume_mounts: volumeMounts for the launched pod.
|
|
149
|
-
:param volumes: volumes for the launched pod. Includes ConfigMaps and PersistentVolumes.
|
|
148
|
+
:param volume_mounts: volumeMounts for the launched pod. (templated)
|
|
149
|
+
:param volumes: volumes for the launched pod. Includes ConfigMaps and PersistentVolumes. (templated)
|
|
150
150
|
:param env_vars: Environment variables initialized in the container. (templated)
|
|
151
|
-
:param env_from: (Optional) List of sources to populate environment variables in the container.
|
|
151
|
+
:param env_from: (Optional) List of sources to populate environment variables in the container. (templated)
|
|
152
152
|
:param secrets: Kubernetes secrets to inject in the container.
|
|
153
153
|
They can be exposed as environment vars or files in a volume.
|
|
154
154
|
:param in_cluster: run kubernetes client with in_cluster configuration.
|
|
@@ -187,7 +187,7 @@ class KubernetesPodOperator(BaseOperator):
|
|
|
187
187
|
:param container_security_context: security options the container should run with.
|
|
188
188
|
:param dnspolicy: dnspolicy for the pod.
|
|
189
189
|
:param dns_config: dns configuration (ip addresses, searches, options) for the pod.
|
|
190
|
-
:param hostname: hostname for the pod.
|
|
190
|
+
:param hostname: hostname for the pod. (templated)
|
|
191
191
|
:param subdomain: subdomain for the pod.
|
|
192
192
|
:param schedulername: Specify a schedulername for the pod
|
|
193
193
|
:param full_pod_spec: The complete podSpec
|
|
@@ -21,6 +21,8 @@ from functools import cached_property
|
|
|
21
21
|
from pathlib import Path
|
|
22
22
|
from typing import TYPE_CHECKING, Any, cast
|
|
23
23
|
|
|
24
|
+
from kubernetes.client import CoreV1Api, CustomObjectsApi, models as k8s
|
|
25
|
+
|
|
24
26
|
from airflow.exceptions import AirflowException
|
|
25
27
|
from airflow.providers.cncf.kubernetes import pod_generator
|
|
26
28
|
from airflow.providers.cncf.kubernetes.hooks.kubernetes import KubernetesHook, _load_body_to_dict
|
|
@@ -30,7 +32,6 @@ from airflow.providers.cncf.kubernetes.operators.pod import KubernetesPodOperato
|
|
|
30
32
|
from airflow.providers.cncf.kubernetes.pod_generator import MAX_LABEL_LEN, PodGenerator
|
|
31
33
|
from airflow.providers.cncf.kubernetes.utils.pod_manager import PodManager
|
|
32
34
|
from airflow.utils.helpers import prune_dict
|
|
33
|
-
from kubernetes.client import CoreV1Api, CustomObjectsApi, models as k8s
|
|
34
35
|
|
|
35
36
|
if TYPE_CHECKING:
|
|
36
37
|
import jinja2
|
|
@@ -28,12 +28,14 @@ from __future__ import annotations
|
|
|
28
28
|
import copy
|
|
29
29
|
import logging
|
|
30
30
|
import os
|
|
31
|
+
import re
|
|
31
32
|
import warnings
|
|
32
33
|
from functools import reduce
|
|
33
34
|
from typing import TYPE_CHECKING
|
|
34
35
|
|
|
35
|
-
import re2
|
|
36
36
|
from dateutil import parser
|
|
37
|
+
from kubernetes.client import V1EmptyDirVolumeSource, V1Volume, V1VolumeMount, models as k8s
|
|
38
|
+
from kubernetes.client.api_client import ApiClient
|
|
37
39
|
|
|
38
40
|
from airflow.exceptions import (
|
|
39
41
|
AirflowConfigException,
|
|
@@ -47,8 +49,6 @@ from airflow.providers.cncf.kubernetes.kubernetes_helper_functions import (
|
|
|
47
49
|
from airflow.utils import yaml
|
|
48
50
|
from airflow.utils.hashlib_wrapper import md5
|
|
49
51
|
from airflow.version import version as airflow_version
|
|
50
|
-
from kubernetes.client import V1EmptyDirVolumeSource, V1Volume, V1VolumeMount, models as k8s
|
|
51
|
-
from kubernetes.client.api_client import ApiClient
|
|
52
52
|
|
|
53
53
|
if TYPE_CHECKING:
|
|
54
54
|
import datetime
|
|
@@ -70,7 +70,7 @@ def make_safe_label_value(string: str) -> str:
|
|
|
70
70
|
way from the original value sent to this function, then we need to truncate to
|
|
71
71
|
53 chars, and append it with a unique hash.
|
|
72
72
|
"""
|
|
73
|
-
safe_label =
|
|
73
|
+
safe_label = re.sub(r"^[^a-z0-9A-Z]*|[^a-zA-Z0-9_\-\.]|[^a-z0-9A-Z]*$", "", string)
|
|
74
74
|
|
|
75
75
|
if len(safe_label) > MAX_LABEL_LEN or string != safe_label:
|
|
76
76
|
safe_hash = md5(string.encode()).hexdigest()[:9]
|
|
@@ -16,9 +16,10 @@
|
|
|
16
16
|
# under the License.
|
|
17
17
|
from __future__ import annotations
|
|
18
18
|
|
|
19
|
-
from airflow.exceptions import AirflowException
|
|
20
19
|
from kubernetes.client import models as k8s
|
|
21
20
|
|
|
21
|
+
from airflow.exceptions import AirflowException
|
|
22
|
+
|
|
22
23
|
|
|
23
24
|
def convert_env_vars(env_vars) -> list[k8s.V1EnvVar]:
|
|
24
25
|
"""
|
|
@@ -21,9 +21,10 @@ from __future__ import annotations
|
|
|
21
21
|
import copy
|
|
22
22
|
import uuid
|
|
23
23
|
|
|
24
|
+
from kubernetes.client import models as k8s
|
|
25
|
+
|
|
24
26
|
from airflow.exceptions import AirflowConfigException
|
|
25
27
|
from airflow.providers.cncf.kubernetes.k8s_model import K8SModel
|
|
26
|
-
from kubernetes.client import models as k8s
|
|
27
28
|
|
|
28
29
|
|
|
29
30
|
class Secret(K8SModel):
|
|
@@ -21,10 +21,11 @@ from collections.abc import Sequence
|
|
|
21
21
|
from functools import cached_property
|
|
22
22
|
from typing import TYPE_CHECKING
|
|
23
23
|
|
|
24
|
+
from kubernetes import client
|
|
25
|
+
|
|
24
26
|
from airflow.exceptions import AirflowException
|
|
25
27
|
from airflow.providers.cncf.kubernetes.hooks.kubernetes import KubernetesHook
|
|
26
28
|
from airflow.sensors.base import BaseSensorOperator
|
|
27
|
-
from kubernetes import client
|
|
28
29
|
|
|
29
30
|
if TYPE_CHECKING:
|
|
30
31
|
from airflow.utils.context import Context
|
|
@@ -19,9 +19,10 @@ from __future__ import annotations
|
|
|
19
19
|
from collections.abc import Iterator
|
|
20
20
|
from typing import Callable
|
|
21
21
|
|
|
22
|
-
from airflow.providers.cncf.kubernetes.utils.delete_from import FailToDeleteError
|
|
23
22
|
from kubernetes.utils import FailToCreateError
|
|
24
23
|
|
|
24
|
+
from airflow.providers.cncf.kubernetes.utils.delete_from import FailToDeleteError
|
|
25
|
+
|
|
25
26
|
|
|
26
27
|
def k8s_resource_iterator(callback: Callable[[dict], None], resources: Iterator) -> None:
|
|
27
28
|
failures: list = []
|
|
@@ -31,6 +31,9 @@ from typing import TYPE_CHECKING, Protocol, cast
|
|
|
31
31
|
|
|
32
32
|
import pendulum
|
|
33
33
|
import tenacity
|
|
34
|
+
from kubernetes import client, watch
|
|
35
|
+
from kubernetes.client.rest import ApiException
|
|
36
|
+
from kubernetes.stream import stream as kubernetes_stream
|
|
34
37
|
from pendulum import DateTime
|
|
35
38
|
from pendulum.parsing.exceptions import ParserError
|
|
36
39
|
from typing_extensions import Literal
|
|
@@ -41,16 +44,12 @@ from airflow.providers.cncf.kubernetes.callbacks import ExecutionMode, Kubernete
|
|
|
41
44
|
from airflow.providers.cncf.kubernetes.utils.xcom_sidecar import PodDefaults
|
|
42
45
|
from airflow.utils.log.logging_mixin import LoggingMixin
|
|
43
46
|
from airflow.utils.timezone import utcnow
|
|
44
|
-
from kubernetes import client, watch
|
|
45
|
-
from kubernetes.client.rest import ApiException
|
|
46
|
-
from kubernetes.stream import stream as kubernetes_stream
|
|
47
47
|
|
|
48
48
|
if TYPE_CHECKING:
|
|
49
|
-
from urllib3.response import HTTPResponse
|
|
50
|
-
|
|
51
49
|
from kubernetes.client.models.core_v1_event_list import CoreV1EventList
|
|
52
50
|
from kubernetes.client.models.v1_container_status import V1ContainerStatus
|
|
53
51
|
from kubernetes.client.models.v1_pod import V1Pod
|
|
52
|
+
from urllib3.response import HTTPResponse
|
|
54
53
|
|
|
55
54
|
|
|
56
55
|
EMPTY_XCOM_RESULT = "__airflow_xcom_result_empty__"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -25,13 +25,13 @@ from tempfile import TemporaryDirectory
|
|
|
25
25
|
from typing import TYPE_CHECKING, Callable
|
|
26
26
|
|
|
27
27
|
import dill
|
|
28
|
+
from kubernetes.client import models as k8s
|
|
28
29
|
|
|
29
30
|
from airflow.decorators.base import DecoratedOperator, TaskDecorator, task_decorator_factory
|
|
30
31
|
from airflow.providers.cncf.kubernetes.operators.pod import KubernetesPodOperator
|
|
31
32
|
from airflow.providers.cncf.kubernetes.python_kubernetes_script import (
|
|
32
33
|
write_python_script,
|
|
33
34
|
)
|
|
34
|
-
from kubernetes.client import models as k8s
|
|
35
35
|
|
|
36
36
|
if TYPE_CHECKING:
|
|
37
37
|
from airflow.utils.context import Context
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -29,6 +29,9 @@ import aiofiles
|
|
|
29
29
|
import requests
|
|
30
30
|
import tenacity
|
|
31
31
|
from asgiref.sync import sync_to_async
|
|
32
|
+
from kubernetes import client, config, utils, watch
|
|
33
|
+
from kubernetes.client.models import V1Deployment
|
|
34
|
+
from kubernetes.config import ConfigException
|
|
32
35
|
from kubernetes_asyncio import client as async_client, config as async_config
|
|
33
36
|
from urllib3.exceptions import HTTPError
|
|
34
37
|
|
|
@@ -43,9 +46,6 @@ from airflow.providers.cncf.kubernetes.utils.pod_manager import (
|
|
|
43
46
|
container_is_running,
|
|
44
47
|
)
|
|
45
48
|
from airflow.utils import yaml
|
|
46
|
-
from kubernetes import client, config, utils, watch
|
|
47
|
-
from kubernetes.client.models import V1Deployment
|
|
48
|
-
from kubernetes.config import ConfigException
|
|
49
49
|
|
|
50
50
|
if TYPE_CHECKING:
|
|
51
51
|
from kubernetes.client import V1JobList
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -23,11 +23,11 @@ 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
27
|
from slugify import slugify
|
|
27
28
|
|
|
28
29
|
from airflow.configuration import conf
|
|
29
30
|
from airflow.providers.cncf.kubernetes.backcompat import get_logical_date_key
|
|
30
|
-
from kubernetes.client.rest import ApiException
|
|
31
31
|
|
|
32
32
|
if TYPE_CHECKING:
|
|
33
33
|
from airflow.models.taskinstancekey import TaskInstanceKey
|
|
File without changes
|
|
@@ -24,6 +24,8 @@ from datetime import datetime as dt
|
|
|
24
24
|
from functools import cached_property
|
|
25
25
|
|
|
26
26
|
import tenacity
|
|
27
|
+
from kubernetes.client import CoreV1Api, CustomObjectsApi, models as k8s
|
|
28
|
+
from kubernetes.client.rest import ApiException
|
|
27
29
|
|
|
28
30
|
from airflow.exceptions import AirflowException
|
|
29
31
|
from airflow.providers.cncf.kubernetes.resource_convert.configmap import (
|
|
@@ -37,8 +39,6 @@ from airflow.providers.cncf.kubernetes.resource_convert.secret import (
|
|
|
37
39
|
)
|
|
38
40
|
from airflow.providers.cncf.kubernetes.utils.pod_manager import PodManager
|
|
39
41
|
from airflow.utils.log.logging_mixin import LoggingMixin
|
|
40
|
-
from kubernetes.client import CoreV1Api, CustomObjectsApi, models as k8s
|
|
41
|
-
from kubernetes.client.rest import ApiException
|
|
42
42
|
|
|
43
43
|
|
|
44
44
|
def should_retry_start_spark_job(exception: BaseException) -> bool:
|
|
@@ -25,6 +25,7 @@ from typing import TYPE_CHECKING
|
|
|
25
25
|
|
|
26
26
|
import tenacity
|
|
27
27
|
import yaml
|
|
28
|
+
from kubernetes.utils import create_from_yaml
|
|
28
29
|
|
|
29
30
|
from airflow.exceptions import AirflowException
|
|
30
31
|
from airflow.models import BaseOperator
|
|
@@ -32,7 +33,6 @@ from airflow.providers.cncf.kubernetes.hooks.kubernetes import KubernetesHook
|
|
|
32
33
|
from airflow.providers.cncf.kubernetes.kubernetes_helper_functions import should_retry_creation
|
|
33
34
|
from airflow.providers.cncf.kubernetes.utils.delete_from import delete_from_yaml
|
|
34
35
|
from airflow.providers.cncf.kubernetes.utils.k8s_resource_iterator import k8s_resource_iterator
|
|
35
|
-
from kubernetes.utils import create_from_yaml
|
|
36
36
|
|
|
37
37
|
if TYPE_CHECKING:
|
|
38
38
|
from kubernetes.client import ApiClient, CustomObjectsApi
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -20,13 +20,13 @@ from __future__ import annotations
|
|
|
20
20
|
from typing import TYPE_CHECKING
|
|
21
21
|
|
|
22
22
|
from jinja2 import TemplateAssertionError, UndefinedError
|
|
23
|
+
from kubernetes.client.api_client import ApiClient
|
|
23
24
|
|
|
24
25
|
from airflow.exceptions import AirflowException
|
|
25
26
|
from airflow.providers.cncf.kubernetes.kube_config import KubeConfig
|
|
26
27
|
from airflow.providers.cncf.kubernetes.kubernetes_helper_functions import create_unique_id
|
|
27
28
|
from airflow.providers.cncf.kubernetes.pod_generator import PodGenerator
|
|
28
29
|
from airflow.utils.session import NEW_SESSION, provide_session
|
|
29
|
-
from kubernetes.client.api_client import ApiClient
|
|
30
30
|
|
|
31
31
|
if TYPE_CHECKING:
|
|
32
32
|
from airflow.models.taskinstance import TaskInstance
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|