apache-airflow-providers-cncf-kubernetes 7.13.0__py3-none-any.whl → 7.14.0rc1__py3-none-any.whl
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.
- airflow/providers/cncf/kubernetes/__init__.py +1 -1
- airflow/providers/cncf/kubernetes/callbacks.py +111 -0
- airflow/providers/cncf/kubernetes/get_provider_info.py +4 -2
- airflow/providers/cncf/kubernetes/hooks/kubernetes.py +4 -4
- airflow/providers/cncf/kubernetes/operators/custom_object_launcher.py +367 -0
- airflow/providers/cncf/kubernetes/operators/pod.py +74 -13
- airflow/providers/cncf/kubernetes/operators/spark_kubernetes.py +221 -136
- airflow/providers/cncf/kubernetes/pod_generator.py +13 -6
- airflow/providers/cncf/kubernetes/pod_launcher_deprecated.py +3 -3
- airflow/providers/cncf/kubernetes/resource_convert/__init__.py +16 -0
- airflow/providers/cncf/kubernetes/resource_convert/configmap.py +52 -0
- airflow/providers/cncf/kubernetes/resource_convert/env_variable.py +39 -0
- airflow/providers/cncf/kubernetes/resource_convert/secret.py +40 -0
- airflow/providers/cncf/kubernetes/utils/pod_manager.py +18 -4
- {apache_airflow_providers_cncf_kubernetes-7.13.0.dist-info → apache_airflow_providers_cncf_kubernetes-7.14.0rc1.dist-info}/METADATA +7 -7
- {apache_airflow_providers_cncf_kubernetes-7.13.0.dist-info → apache_airflow_providers_cncf_kubernetes-7.14.0rc1.dist-info}/RECORD +18 -12
- {apache_airflow_providers_cncf_kubernetes-7.13.0.dist-info → apache_airflow_providers_cncf_kubernetes-7.14.0rc1.dist-info}/WHEEL +0 -0
- {apache_airflow_providers_cncf_kubernetes-7.13.0.dist-info → apache_airflow_providers_cncf_kubernetes-7.14.0rc1.dist-info}/entry_points.txt +0 -0
|
@@ -39,7 +39,7 @@ from kubernetes.client.api_client import ApiClient
|
|
|
39
39
|
from airflow.exceptions import (
|
|
40
40
|
AirflowConfigException,
|
|
41
41
|
AirflowException,
|
|
42
|
-
|
|
42
|
+
AirflowProviderDeprecationWarning,
|
|
43
43
|
)
|
|
44
44
|
from airflow.providers.cncf.kubernetes.kubernetes_helper_functions import (
|
|
45
45
|
POD_NAME_MAX_LENGTH,
|
|
@@ -155,7 +155,7 @@ class PodGenerator:
|
|
|
155
155
|
|
|
156
156
|
def gen_pod(self) -> k8s.V1Pod:
|
|
157
157
|
"""Generate pod."""
|
|
158
|
-
warnings.warn("This function is deprecated. ",
|
|
158
|
+
warnings.warn("This function is deprecated. ", AirflowProviderDeprecationWarning, stacklevel=2)
|
|
159
159
|
result = self.ud_pod
|
|
160
160
|
|
|
161
161
|
result.metadata.name = add_pod_suffix(pod_name=result.metadata.name)
|
|
@@ -170,7 +170,9 @@ class PodGenerator:
|
|
|
170
170
|
"""Add sidecar."""
|
|
171
171
|
warnings.warn(
|
|
172
172
|
"This function is deprecated. "
|
|
173
|
-
"Please use airflow.providers.cncf.kubernetes.utils.xcom_sidecar.add_xcom_sidecar instead"
|
|
173
|
+
"Please use airflow.providers.cncf.kubernetes.utils.xcom_sidecar.add_xcom_sidecar instead",
|
|
174
|
+
AirflowProviderDeprecationWarning,
|
|
175
|
+
stacklevel=2,
|
|
174
176
|
)
|
|
175
177
|
pod_cp = copy.deepcopy(pod)
|
|
176
178
|
pod_cp.spec.volumes = pod.spec.volumes or []
|
|
@@ -207,7 +209,8 @@ class PodGenerator:
|
|
|
207
209
|
"Using a dictionary for the executor_config is deprecated and will soon be removed."
|
|
208
210
|
'please use a `kubernetes.client.models.V1Pod` class with a "pod_override" key'
|
|
209
211
|
" instead. ",
|
|
210
|
-
category=
|
|
212
|
+
category=AirflowProviderDeprecationWarning,
|
|
213
|
+
stacklevel=2,
|
|
211
214
|
)
|
|
212
215
|
return PodGenerator.from_legacy_obj(obj)
|
|
213
216
|
else:
|
|
@@ -386,7 +389,10 @@ class PodGenerator:
|
|
|
386
389
|
"""
|
|
387
390
|
if len(pod_id) > POD_NAME_MAX_LENGTH:
|
|
388
391
|
warnings.warn(
|
|
389
|
-
f"pod_id supplied is longer than {POD_NAME_MAX_LENGTH} characters;
|
|
392
|
+
f"pod_id supplied is longer than {POD_NAME_MAX_LENGTH} characters; "
|
|
393
|
+
f"truncating and adding unique suffix.",
|
|
394
|
+
UserWarning,
|
|
395
|
+
stacklevel=2,
|
|
390
396
|
)
|
|
391
397
|
pod_id = add_pod_suffix(pod_name=pod_id, max_len=POD_NAME_MAX_LENGTH)
|
|
392
398
|
try:
|
|
@@ -583,7 +589,8 @@ class PodGenerator:
|
|
|
583
589
|
"""
|
|
584
590
|
warnings.warn(
|
|
585
591
|
"This function is deprecated. Use `add_pod_suffix` in `kubernetes_helper_functions`.",
|
|
586
|
-
|
|
592
|
+
AirflowProviderDeprecationWarning,
|
|
593
|
+
stacklevel=2,
|
|
587
594
|
)
|
|
588
595
|
|
|
589
596
|
if not pod_id:
|
|
@@ -21,7 +21,7 @@ import json
|
|
|
21
21
|
import math
|
|
22
22
|
import time
|
|
23
23
|
import warnings
|
|
24
|
-
from typing import TYPE_CHECKING
|
|
24
|
+
from typing import TYPE_CHECKING, cast
|
|
25
25
|
|
|
26
26
|
import pendulum
|
|
27
27
|
import tenacity
|
|
@@ -148,13 +148,13 @@ class PodLauncher(LoggingMixin):
|
|
|
148
148
|
"""
|
|
149
149
|
if get_logs:
|
|
150
150
|
read_logs_since_sec = None
|
|
151
|
-
last_log_time = None
|
|
151
|
+
last_log_time: pendulum.DateTime | None = None
|
|
152
152
|
while True:
|
|
153
153
|
logs = self.read_pod_logs(pod, timestamps=True, since_seconds=read_logs_since_sec)
|
|
154
154
|
for line in logs:
|
|
155
155
|
timestamp, message = self.parse_log_line(line.decode("utf-8"))
|
|
156
156
|
if timestamp:
|
|
157
|
-
last_log_time = pendulum.parse(timestamp)
|
|
157
|
+
last_log_time = cast(pendulum.DateTime, pendulum.parse(timestamp))
|
|
158
158
|
self.log.info(message)
|
|
159
159
|
time.sleep(1)
|
|
160
160
|
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# Licensed to the Apache Software Foundation (ASF) under one
|
|
2
|
+
# or more contributor license agreements. See the NOTICE file
|
|
3
|
+
# distributed with this work for additional information
|
|
4
|
+
# regarding copyright ownership. The ASF licenses this file
|
|
5
|
+
# to you under the Apache License, Version 2.0 (the
|
|
6
|
+
# "License"); you may not use this file except in compliance
|
|
7
|
+
# with the License. You may obtain a copy of the License at
|
|
8
|
+
#
|
|
9
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
#
|
|
11
|
+
# Unless required by applicable law or agreed to in writing,
|
|
12
|
+
# software distributed under the License is distributed on an
|
|
13
|
+
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
14
|
+
# KIND, either express or implied. See the License for the
|
|
15
|
+
# specific language governing permissions and limitations
|
|
16
|
+
# under the License.
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# Licensed to the Apache Software Foundation (ASF) under one
|
|
2
|
+
# or more contributor license agreements. See the NOTICE file
|
|
3
|
+
# distributed with this work for additional information
|
|
4
|
+
# regarding copyright ownership. The ASF licenses this file
|
|
5
|
+
# to you under the Apache License, Version 2.0 (the
|
|
6
|
+
# "License"); you may not use this file except in compliance
|
|
7
|
+
# with the License. You may obtain a copy of the License at
|
|
8
|
+
#
|
|
9
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
#
|
|
11
|
+
# Unless required by applicable law or agreed to in writing,
|
|
12
|
+
# software distributed under the License is distributed on an
|
|
13
|
+
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
14
|
+
# KIND, either express or implied. See the License for the
|
|
15
|
+
# specific language governing permissions and limitations
|
|
16
|
+
# under the License.
|
|
17
|
+
from __future__ import annotations
|
|
18
|
+
|
|
19
|
+
from kubernetes.client import models as k8s
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
def convert_configmap(configmap_name) -> k8s.V1EnvFromSource:
|
|
23
|
+
"""
|
|
24
|
+
Converts a str into an k8s object.
|
|
25
|
+
|
|
26
|
+
:param configmap_name: config map name
|
|
27
|
+
:return:
|
|
28
|
+
"""
|
|
29
|
+
return k8s.V1EnvFromSource(config_map_ref=k8s.V1ConfigMapEnvSource(name=configmap_name))
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
def convert_configmap_to_volume(
|
|
33
|
+
configmap_info: dict[str, str],
|
|
34
|
+
) -> tuple[list[k8s.V1Volume], list[k8s.V1VolumeMount]]:
|
|
35
|
+
"""
|
|
36
|
+
Converts a dictionary of config_map_name and mount_path into k8s volume mount object and k8s volume.
|
|
37
|
+
|
|
38
|
+
:param configmap_info: a dictionary of {config_map_name: mount_path}
|
|
39
|
+
:return:
|
|
40
|
+
"""
|
|
41
|
+
volume_mounts = []
|
|
42
|
+
volumes = []
|
|
43
|
+
for config_name, mount_path in configmap_info.items():
|
|
44
|
+
volume_mounts.append(k8s.V1VolumeMount(mount_path=mount_path, name=config_name))
|
|
45
|
+
volumes.append(
|
|
46
|
+
k8s.V1Volume(
|
|
47
|
+
name=config_name,
|
|
48
|
+
config_map=k8s.V1ConfigMapVolumeSource(name=config_name),
|
|
49
|
+
)
|
|
50
|
+
)
|
|
51
|
+
|
|
52
|
+
return volumes, volume_mounts
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# Licensed to the Apache Software Foundation (ASF) under one
|
|
2
|
+
# or more contributor license agreements. See the NOTICE file
|
|
3
|
+
# distributed with this work for additional information
|
|
4
|
+
# regarding copyright ownership. The ASF licenses this file
|
|
5
|
+
# to you under the Apache License, Version 2.0 (the
|
|
6
|
+
# "License"); you may not use this file except in compliance
|
|
7
|
+
# with the License. You may obtain a copy of the License at
|
|
8
|
+
#
|
|
9
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
#
|
|
11
|
+
# Unless required by applicable law or agreed to in writing,
|
|
12
|
+
# software distributed under the License is distributed on an
|
|
13
|
+
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
14
|
+
# KIND, either express or implied. See the License for the
|
|
15
|
+
# specific language governing permissions and limitations
|
|
16
|
+
# under the License.
|
|
17
|
+
from __future__ import annotations
|
|
18
|
+
|
|
19
|
+
from kubernetes.client import models as k8s
|
|
20
|
+
|
|
21
|
+
from airflow.exceptions import AirflowException
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
def convert_env_vars(env_vars) -> list[k8s.V1EnvVar]:
|
|
25
|
+
"""
|
|
26
|
+
Converts a dictionary of key:value into a list of env_vars.
|
|
27
|
+
|
|
28
|
+
:param env_vars:
|
|
29
|
+
:return:
|
|
30
|
+
"""
|
|
31
|
+
if isinstance(env_vars, dict):
|
|
32
|
+
res = []
|
|
33
|
+
for k, v in env_vars.items():
|
|
34
|
+
res.append(k8s.V1EnvVar(name=k, value=v))
|
|
35
|
+
return res
|
|
36
|
+
elif isinstance(env_vars, list):
|
|
37
|
+
if all([isinstance(e, k8s.V1EnvVar) for e in env_vars]):
|
|
38
|
+
return env_vars
|
|
39
|
+
raise AirflowException(f"Expected dict or list of V1EnvVar, got {type(env_vars)}")
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# Licensed to the Apache Software Foundation (ASF) under one
|
|
2
|
+
# or more contributor license agreements. See the NOTICE file
|
|
3
|
+
# distributed with this work for additional information
|
|
4
|
+
# regarding copyright ownership. The ASF licenses this file
|
|
5
|
+
# to you under the Apache License, Version 2.0 (the
|
|
6
|
+
# "License"); you may not use this file except in compliance
|
|
7
|
+
# with the License. You may obtain a copy of the License at
|
|
8
|
+
#
|
|
9
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
#
|
|
11
|
+
# Unless required by applicable law or agreed to in writing,
|
|
12
|
+
# software distributed under the License is distributed on an
|
|
13
|
+
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
14
|
+
# KIND, either express or implied. See the License for the
|
|
15
|
+
# specific language governing permissions and limitations
|
|
16
|
+
# under the License.
|
|
17
|
+
from __future__ import annotations
|
|
18
|
+
|
|
19
|
+
from kubernetes.client import models as k8s
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
def convert_secret(secret_name: str) -> k8s.V1EnvFromSource:
|
|
23
|
+
"""
|
|
24
|
+
Converts a str into an k8s object.
|
|
25
|
+
|
|
26
|
+
:param secret_name:
|
|
27
|
+
:return:
|
|
28
|
+
"""
|
|
29
|
+
return k8s.V1EnvFromSource(secret_ref=k8s.V1SecretEnvSource(name=secret_name))
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
def convert_image_pull_secrets(image_pull_secrets: str) -> list[k8s.V1LocalObjectReference]:
|
|
33
|
+
"""
|
|
34
|
+
Converts a image pull secret name into k8s local object reference.
|
|
35
|
+
|
|
36
|
+
:param image_pull_secrets: comma separated string that contains secrets
|
|
37
|
+
:return:
|
|
38
|
+
"""
|
|
39
|
+
secrets = image_pull_secrets.split(",")
|
|
40
|
+
return [k8s.V1LocalObjectReference(name=secret) for secret in secrets]
|
|
@@ -40,6 +40,7 @@ from typing_extensions import Literal
|
|
|
40
40
|
from urllib3.exceptions import HTTPError, TimeoutError
|
|
41
41
|
|
|
42
42
|
from airflow.exceptions import AirflowException, AirflowProviderDeprecationWarning
|
|
43
|
+
from airflow.providers.cncf.kubernetes.callbacks import ExecutionMode, KubernetesPodOperatorCallback
|
|
43
44
|
from airflow.providers.cncf.kubernetes.pod_generator import PodDefaults
|
|
44
45
|
from airflow.utils.log.logging_mixin import LoggingMixin
|
|
45
46
|
from airflow.utils.timezone import utcnow
|
|
@@ -50,6 +51,7 @@ if TYPE_CHECKING:
|
|
|
50
51
|
from kubernetes.client.models.v1_pod import V1Pod
|
|
51
52
|
from urllib3.response import HTTPResponse
|
|
52
53
|
|
|
54
|
+
|
|
53
55
|
EMPTY_XCOM_RESULT = "__airflow_xcom_result_empty__"
|
|
54
56
|
"""
|
|
55
57
|
Sentinel for no xcom result.
|
|
@@ -287,18 +289,22 @@ class PodManager(LoggingMixin):
|
|
|
287
289
|
def __init__(
|
|
288
290
|
self,
|
|
289
291
|
kube_client: client.CoreV1Api,
|
|
292
|
+
callbacks: type[KubernetesPodOperatorCallback] | None = None,
|
|
290
293
|
progress_callback: Callable[[str], None] | None = None,
|
|
291
294
|
):
|
|
292
295
|
"""
|
|
293
296
|
Create the launcher.
|
|
294
297
|
|
|
295
298
|
:param kube_client: kubernetes client
|
|
299
|
+
:param callbacks:
|
|
296
300
|
:param progress_callback: Callback function invoked when fetching container log.
|
|
301
|
+
This parameter is deprecated, please use ````
|
|
297
302
|
"""
|
|
298
303
|
super().__init__()
|
|
299
304
|
self._client = kube_client
|
|
300
305
|
self._progress_callback = progress_callback
|
|
301
306
|
self._watch = watch.Watch()
|
|
307
|
+
self._callbacks = callbacks
|
|
302
308
|
|
|
303
309
|
def run_pod_async(self, pod: V1Pod, **kwargs) -> V1Pod:
|
|
304
310
|
"""Run POD asynchronously."""
|
|
@@ -441,9 +447,13 @@ class PodManager(LoggingMixin):
|
|
|
441
447
|
message_timestamp = line_timestamp
|
|
442
448
|
progress_callback_lines.append(line)
|
|
443
449
|
else: # previous log line is complete
|
|
444
|
-
|
|
445
|
-
|
|
450
|
+
for line in progress_callback_lines:
|
|
451
|
+
if self._progress_callback:
|
|
446
452
|
self._progress_callback(line)
|
|
453
|
+
if self._callbacks:
|
|
454
|
+
self._callbacks.progress_callback(
|
|
455
|
+
line=line, client=self._client, mode=ExecutionMode.SYNC
|
|
456
|
+
)
|
|
447
457
|
self.log.info("[%s] %s", container_name, message_to_log)
|
|
448
458
|
last_captured_timestamp = message_timestamp
|
|
449
459
|
message_to_log = message
|
|
@@ -454,9 +464,13 @@ class PodManager(LoggingMixin):
|
|
|
454
464
|
progress_callback_lines.append(line)
|
|
455
465
|
finally:
|
|
456
466
|
# log the last line and update the last_captured_timestamp
|
|
457
|
-
|
|
458
|
-
|
|
467
|
+
for line in progress_callback_lines:
|
|
468
|
+
if self._progress_callback:
|
|
459
469
|
self._progress_callback(line)
|
|
470
|
+
if self._callbacks:
|
|
471
|
+
self._callbacks.progress_callback(
|
|
472
|
+
line=line, client=self._client, mode=ExecutionMode.SYNC
|
|
473
|
+
)
|
|
460
474
|
self.log.info("[%s] %s", container_name, message_to_log)
|
|
461
475
|
last_captured_timestamp = message_timestamp
|
|
462
476
|
except TimeoutError as e:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: apache-airflow-providers-cncf-kubernetes
|
|
3
|
-
Version: 7.
|
|
3
|
+
Version: 7.14.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>
|
|
@@ -21,15 +21,15 @@ Classifier: Programming Language :: Python :: 3.10
|
|
|
21
21
|
Classifier: Programming Language :: Python :: 3.11
|
|
22
22
|
Classifier: Topic :: System :: Monitoring
|
|
23
23
|
Requires-Dist: aiofiles>=23.2.0
|
|
24
|
-
Requires-Dist: apache-airflow>=2.6.0
|
|
24
|
+
Requires-Dist: apache-airflow>=2.6.0.dev0
|
|
25
25
|
Requires-Dist: asgiref>=3.5.2
|
|
26
26
|
Requires-Dist: cryptography>=2.0.0
|
|
27
27
|
Requires-Dist: google-re2>=1.0
|
|
28
28
|
Requires-Dist: kubernetes>=21.7.0,<24
|
|
29
29
|
Requires-Dist: kubernetes_asyncio>=18.20.1,<25
|
|
30
30
|
Project-URL: Bug Tracker, https://github.com/apache/airflow/issues
|
|
31
|
-
Project-URL: Changelog, https://airflow.apache.org/docs/apache-airflow-providers-cncf-kubernetes/7.
|
|
32
|
-
Project-URL: Documentation, https://airflow.apache.org/docs/apache-airflow-providers-cncf-kubernetes/7.
|
|
31
|
+
Project-URL: Changelog, https://airflow.apache.org/docs/apache-airflow-providers-cncf-kubernetes/7.14.0/changelog.html
|
|
32
|
+
Project-URL: Documentation, https://airflow.apache.org/docs/apache-airflow-providers-cncf-kubernetes/7.14.0
|
|
33
33
|
Project-URL: Slack Chat, https://s.apache.org/airflow-slack
|
|
34
34
|
Project-URL: Source Code, https://github.com/apache/airflow
|
|
35
35
|
Project-URL: Twitter, https://twitter.com/ApacheAirflow
|
|
@@ -79,7 +79,7 @@ Project-URL: YouTube, https://www.youtube.com/channel/UCSXwxpWZQ7XZ1WL3wqevChA/
|
|
|
79
79
|
|
|
80
80
|
Package ``apache-airflow-providers-cncf-kubernetes``
|
|
81
81
|
|
|
82
|
-
Release: ``7.
|
|
82
|
+
Release: ``7.14.0.rc1``
|
|
83
83
|
|
|
84
84
|
|
|
85
85
|
`Kubernetes <https://kubernetes.io/>`__
|
|
@@ -92,7 +92,7 @@ This is a provider package for ``cncf.kubernetes`` provider. All classes for thi
|
|
|
92
92
|
are in ``airflow.providers.cncf.kubernetes`` python package.
|
|
93
93
|
|
|
94
94
|
You can find package information and changelog for the provider
|
|
95
|
-
in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-cncf-kubernetes/7.
|
|
95
|
+
in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-cncf-kubernetes/7.14.0/>`_.
|
|
96
96
|
|
|
97
97
|
Installation
|
|
98
98
|
------------
|
|
@@ -119,4 +119,4 @@ PIP package Version required
|
|
|
119
119
|
====================== ==================
|
|
120
120
|
|
|
121
121
|
The changelog for the provider package can be found in the
|
|
122
|
-
`changelog <https://airflow.apache.org/docs/apache-airflow-providers-cncf-kubernetes/7.
|
|
122
|
+
`changelog <https://airflow.apache.org/docs/apache-airflow-providers-cncf-kubernetes/7.14.0/changelog.html>`_.
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
airflow/providers/cncf/kubernetes/LICENSE,sha256=ywUBpKZc7Jb96rVt5I3IDbg7dIJAbUSHkuoDcF3jbH4,13569
|
|
2
|
-
airflow/providers/cncf/kubernetes/__init__.py,sha256=
|
|
3
|
-
airflow/providers/cncf/kubernetes/
|
|
2
|
+
airflow/providers/cncf/kubernetes/__init__.py,sha256=bFZ6hyvfQvCXG1hqpkj5RshDz4W7u82wPWnfMwiQLAI,1591
|
|
3
|
+
airflow/providers/cncf/kubernetes/callbacks.py,sha256=D9stUmHxeKYOy8lRa-hSqXSbYcSvOJrTkZzNvmlAQWI,4101
|
|
4
|
+
airflow/providers/cncf/kubernetes/get_provider_info.py,sha256=XMbD1JT95OenfoMVGa0LE5ixm914PSEKv2W6eKj9f6s,16381
|
|
4
5
|
airflow/providers/cncf/kubernetes/k8s_model.py,sha256=JzpSjHdCBpajT5HohKhvYp4vZ9emf7A6AVmte8tI4T0,2100
|
|
5
6
|
airflow/providers/cncf/kubernetes/kube_client.py,sha256=nL9daGLElvX4f72rWvONRN-VUbrOPzjsElix6xfkcXU,5328
|
|
6
7
|
airflow/providers/cncf/kubernetes/kube_config.py,sha256=SZhMYmCJACkzxEFe0vcCW0m1XmoFpmDaIYf_Rl_uycA,4851
|
|
7
8
|
airflow/providers/cncf/kubernetes/kubernetes_helper_functions.py,sha256=3z6fkvgi6cczsxzoL4f3Lxi4YS3INuR2xeckWFWKgbI,4634
|
|
8
|
-
airflow/providers/cncf/kubernetes/pod_generator.py,sha256=
|
|
9
|
+
airflow/providers/cncf/kubernetes/pod_generator.py,sha256=TA65JQPp37gc_m5KKSwEPGv-b3jVzJ9Mtz1QdBdmE3Y,24265
|
|
9
10
|
airflow/providers/cncf/kubernetes/pod_generator_deprecated.py,sha256=tOrFvE4MJxy94ecSLOxAGKjIeKztqOC81q_xXr17rRU,11993
|
|
10
|
-
airflow/providers/cncf/kubernetes/pod_launcher_deprecated.py,sha256=
|
|
11
|
+
airflow/providers/cncf/kubernetes/pod_launcher_deprecated.py,sha256=ugg-u-M8J0zBmnMwpSBN_zyYCZ37mFICrAQpGeIO52c,12001
|
|
11
12
|
airflow/providers/cncf/kubernetes/python_kubernetes_script.jinja2,sha256=gUGBhBTFWIXjnjxTAjawWIacDwk2EDxoGEzVQYnlUT8,1741
|
|
12
13
|
airflow/providers/cncf/kubernetes/python_kubernetes_script.py,sha256=yLIWsB1HvGlmU74G_QDXRwRJS02gH7RlgxecJtLxYug,3452
|
|
13
14
|
airflow/providers/cncf/kubernetes/secret.py,sha256=U06v6pSp_9GAsokC_gu5JGN298Ud9DN9YwpQZqmQ9fI,5208
|
|
@@ -22,18 +23,23 @@ airflow/providers/cncf/kubernetes/executors/kubernetes_executor_types.py,sha256=
|
|
|
22
23
|
airflow/providers/cncf/kubernetes/executors/kubernetes_executor_utils.py,sha256=7oHCtUQoTVVBwjVOEtwr2_yOBVGSWHB32MtW9I4WsOQ,21773
|
|
23
24
|
airflow/providers/cncf/kubernetes/executors/local_kubernetes_executor.py,sha256=r5cvhj9NUTreQScn3Y8NlPFoYIa_NaAVQ27WqtOrJvw,10014
|
|
24
25
|
airflow/providers/cncf/kubernetes/hooks/__init__.py,sha256=9hdXHABrVpkbpjZgUft39kOFL2xSGeG4GEua0Hmelus,785
|
|
25
|
-
airflow/providers/cncf/kubernetes/hooks/kubernetes.py,sha256=
|
|
26
|
+
airflow/providers/cncf/kubernetes/hooks/kubernetes.py,sha256=7P91Ffw2Gu0xWjBrOXTZWKVSxni5XuYK3GHfBYYszrA,24043
|
|
26
27
|
airflow/providers/cncf/kubernetes/kubernetes_executor_templates/__init__.py,sha256=9hdXHABrVpkbpjZgUft39kOFL2xSGeG4GEua0Hmelus,785
|
|
27
28
|
airflow/providers/cncf/kubernetes/kubernetes_executor_templates/basic_template.yaml,sha256=yzJmXN4ZyB4aDwI_GIugpL9-f1YMVy__X-LQSbeU95A,2567
|
|
28
29
|
airflow/providers/cncf/kubernetes/operators/__init__.py,sha256=mlJxuZLkd5x-iq2SBwD3mvRQpt3YR7wjz_nceyF1IaI,787
|
|
30
|
+
airflow/providers/cncf/kubernetes/operators/custom_object_launcher.py,sha256=Zw9N4fTez5OXtOJaFmzUnvpU7GGkR6Ez4xNNUZdOARc,15348
|
|
29
31
|
airflow/providers/cncf/kubernetes/operators/kubernetes_pod.py,sha256=XvJgehU-4ZubJZ2vsekHX4DlCLlzBttXuZQlpVZZ2Ro,1262
|
|
30
|
-
airflow/providers/cncf/kubernetes/operators/pod.py,sha256=
|
|
32
|
+
airflow/providers/cncf/kubernetes/operators/pod.py,sha256=cG_pzHoelgDOTp5bz_BH2EKummTHLnXlGh70jH5OFpQ,46680
|
|
31
33
|
airflow/providers/cncf/kubernetes/operators/resource.py,sha256=t7JBj7Q-2f_y-vCdTMxrmjG8VYQj9k03u0rz1fbAFVQ,5457
|
|
32
|
-
airflow/providers/cncf/kubernetes/operators/spark_kubernetes.py,sha256=
|
|
34
|
+
airflow/providers/cncf/kubernetes/operators/spark_kubernetes.py,sha256=dMaloDr6UHiwfDp86I5H-YudiuoLN_E4jMjagN6mMNI,11986
|
|
33
35
|
airflow/providers/cncf/kubernetes/pod_template_file_examples/__init__.py,sha256=9hdXHABrVpkbpjZgUft39kOFL2xSGeG4GEua0Hmelus,785
|
|
34
36
|
airflow/providers/cncf/kubernetes/pod_template_file_examples/dags_in_image_template.yaml,sha256=7JdppZ-XDBpv2Bnde2SthhcME8w3b8xQdPAK1fJGW60,2256
|
|
35
37
|
airflow/providers/cncf/kubernetes/pod_template_file_examples/dags_in_volume_template.yaml,sha256=-Pk_EwKpyWRYZKOnumUxVrDeAfFJ0nr3WZ7JNnvppzg,2442
|
|
36
38
|
airflow/providers/cncf/kubernetes/pod_template_file_examples/git_sync_template.yaml,sha256=Pxpa1AiBlf4H8aIc7tUTmH2XNOz84cO0ttMQdlfMJ2c,3020
|
|
39
|
+
airflow/providers/cncf/kubernetes/resource_convert/__init__.py,sha256=9hdXHABrVpkbpjZgUft39kOFL2xSGeG4GEua0Hmelus,785
|
|
40
|
+
airflow/providers/cncf/kubernetes/resource_convert/configmap.py,sha256=Ntt192qNiq240WfDEzEjQCx78snJ2suJ0bEvlxymZ44,1875
|
|
41
|
+
airflow/providers/cncf/kubernetes/resource_convert/env_variable.py,sha256=6sPZhh8QV00JkIhyvP3fbEdQmuCHCi12t1uXanEO_hg,1465
|
|
42
|
+
airflow/providers/cncf/kubernetes/resource_convert/secret.py,sha256=fs5MV5xKg8pxrkjuWPNMpxwK2dr3jpawJnq2uFvVY5k,1495
|
|
37
43
|
airflow/providers/cncf/kubernetes/sensors/__init__.py,sha256=9hdXHABrVpkbpjZgUft39kOFL2xSGeG4GEua0Hmelus,785
|
|
38
44
|
airflow/providers/cncf/kubernetes/sensors/spark_kubernetes.py,sha256=AFml2CgXTV13G2VGrmNAIh-778FnRZdyLfverw92Uo0,5552
|
|
39
45
|
airflow/providers/cncf/kubernetes/triggers/__init__.py,sha256=9hdXHABrVpkbpjZgUft39kOFL2xSGeG4GEua0Hmelus,785
|
|
@@ -42,9 +48,9 @@ airflow/providers/cncf/kubernetes/triggers/pod.py,sha256=UJoNgcKYQZrlsxl1Q1Thg9A
|
|
|
42
48
|
airflow/providers/cncf/kubernetes/utils/__init__.py,sha256=ClZN0VPjWySdVwS_ktH7rrgL9VLAcs3OSJSB9s3zaYw,863
|
|
43
49
|
airflow/providers/cncf/kubernetes/utils/delete_from.py,sha256=poObZSoEJwQyaYWilEURs8f4CDY2sn_pfwS31Lf579A,5195
|
|
44
50
|
airflow/providers/cncf/kubernetes/utils/k8s_resource_iterator.py,sha256=-Pgc5i2WEDl7ZBvtJZ4eWDqqlSj8WdULqwUyOWmsRp8,1928
|
|
45
|
-
airflow/providers/cncf/kubernetes/utils/pod_manager.py,sha256=
|
|
51
|
+
airflow/providers/cncf/kubernetes/utils/pod_manager.py,sha256=VIvu9lfyZFYx0rTsTEDfdndU54oJLWuoVCn3TP3Jqjs,33068
|
|
46
52
|
airflow/providers/cncf/kubernetes/utils/xcom_sidecar.py,sha256=dCLPE-KyI3nVfawcuKMjhxuBuK9TgVZocc4eC82hAM4,2518
|
|
47
|
-
apache_airflow_providers_cncf_kubernetes-7.
|
|
48
|
-
apache_airflow_providers_cncf_kubernetes-7.
|
|
49
|
-
apache_airflow_providers_cncf_kubernetes-7.
|
|
50
|
-
apache_airflow_providers_cncf_kubernetes-7.
|
|
53
|
+
apache_airflow_providers_cncf_kubernetes-7.14.0rc1.dist-info/entry_points.txt,sha256=ByD3QJJyP9CfmTYtpNI1953akD38RUDgpGXLaq9vpOw,111
|
|
54
|
+
apache_airflow_providers_cncf_kubernetes-7.14.0rc1.dist-info/WHEEL,sha256=EZbGkh7Ie4PoZfRQ8I0ZuP9VklN_TvcZ6DSE5Uar4z4,81
|
|
55
|
+
apache_airflow_providers_cncf_kubernetes-7.14.0rc1.dist-info/METADATA,sha256=uI5_wmt_39mOhiOMAcCrXZ0Ox2JvHoyyPLdH7O5XseA,5193
|
|
56
|
+
apache_airflow_providers_cncf_kubernetes-7.14.0rc1.dist-info/RECORD,,
|
|
File without changes
|