apache-airflow-providers-cncf-kubernetes 10.1.0rc2__py3-none-any.whl → 10.3.0__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.
Files changed (31) hide show
  1. airflow/providers/cncf/kubernetes/LICENSE +0 -52
  2. airflow/providers/cncf/kubernetes/__init__.py +1 -1
  3. airflow/providers/cncf/kubernetes/backcompat/backwards_compat_converters.py +2 -3
  4. airflow/providers/cncf/kubernetes/callbacks.py +90 -8
  5. airflow/providers/cncf/kubernetes/cli/kubernetes_command.py +3 -4
  6. airflow/providers/cncf/kubernetes/decorators/kubernetes.py +10 -5
  7. airflow/providers/cncf/kubernetes/exceptions.py +29 -0
  8. airflow/providers/cncf/kubernetes/executors/kubernetes_executor.py +36 -113
  9. airflow/providers/cncf/kubernetes/executors/kubernetes_executor_utils.py +27 -15
  10. airflow/providers/cncf/kubernetes/get_provider_info.py +14 -21
  11. airflow/providers/cncf/kubernetes/hooks/kubernetes.py +20 -10
  12. airflow/providers/cncf/kubernetes/kube_config.py +0 -4
  13. airflow/providers/cncf/kubernetes/kubernetes_helper_functions.py +1 -1
  14. airflow/providers/cncf/kubernetes/operators/custom_object_launcher.py +3 -3
  15. airflow/providers/cncf/kubernetes/operators/job.py +4 -4
  16. airflow/providers/cncf/kubernetes/operators/kueue.py +2 -2
  17. airflow/providers/cncf/kubernetes/operators/pod.py +102 -44
  18. airflow/providers/cncf/kubernetes/operators/resource.py +1 -1
  19. airflow/providers/cncf/kubernetes/operators/spark_kubernetes.py +23 -19
  20. airflow/providers/cncf/kubernetes/pod_generator.py +51 -21
  21. airflow/providers/cncf/kubernetes/resource_convert/env_variable.py +1 -2
  22. airflow/providers/cncf/kubernetes/secret.py +1 -2
  23. airflow/providers/cncf/kubernetes/sensors/spark_kubernetes.py +1 -2
  24. airflow/providers/cncf/kubernetes/template_rendering.py +10 -2
  25. airflow/providers/cncf/kubernetes/utils/k8s_resource_iterator.py +1 -2
  26. airflow/providers/cncf/kubernetes/utils/pod_manager.py +12 -11
  27. {apache_airflow_providers_cncf_kubernetes-10.1.0rc2.dist-info → apache_airflow_providers_cncf_kubernetes-10.3.0.dist-info}/METADATA +10 -27
  28. {apache_airflow_providers_cncf_kubernetes-10.1.0rc2.dist-info → apache_airflow_providers_cncf_kubernetes-10.3.0.dist-info}/RECORD +30 -30
  29. airflow/providers/cncf/kubernetes/pod_generator_deprecated.py +0 -309
  30. {apache_airflow_providers_cncf_kubernetes-10.1.0rc2.dist-info → apache_airflow_providers_cncf_kubernetes-10.3.0.dist-info}/WHEEL +0 -0
  31. {apache_airflow_providers_cncf_kubernetes-10.1.0rc2.dist-info → apache_airflow_providers_cncf_kubernetes-10.3.0.dist-info}/entry_points.txt +0 -0
@@ -34,14 +34,12 @@ from typing import TYPE_CHECKING
34
34
 
35
35
  import re2
36
36
  from dateutil import parser
37
- from kubernetes.client import models as k8s
38
- from kubernetes.client.api_client import ApiClient
39
37
 
40
38
  from airflow.exceptions import (
41
39
  AirflowConfigException,
42
- AirflowException,
43
40
  )
44
41
  from airflow.providers.cncf.kubernetes.backcompat import get_logical_date_key
42
+ from airflow.providers.cncf.kubernetes.exceptions import PodMutationHookException, PodReconciliationError
45
43
  from airflow.providers.cncf.kubernetes.kubernetes_helper_functions import (
46
44
  POD_NAME_MAX_LENGTH,
47
45
  add_unique_suffix,
@@ -49,6 +47,8 @@ from airflow.providers.cncf.kubernetes.kubernetes_helper_functions import (
49
47
  from airflow.utils import yaml
50
48
  from airflow.utils.hashlib_wrapper import md5
51
49
  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
@@ -58,14 +58,6 @@ log = logging.getLogger(__name__)
58
58
  MAX_LABEL_LEN = 63
59
59
 
60
60
 
61
- class PodMutationHookException(AirflowException):
62
- """Raised when exception happens during Pod Mutation Hook execution."""
63
-
64
-
65
- class PodReconciliationError(AirflowException):
66
- """Raised when an error is encountered while trying to merge pod configs."""
67
-
68
-
69
61
  def make_safe_label_value(string: str) -> str:
70
62
  """
71
63
  Normalize a provided label to be of valid length and characters.
@@ -296,6 +288,7 @@ class PodGenerator:
296
288
  scheduler_job_id: str,
297
289
  run_id: str | None = None,
298
290
  map_index: int = -1,
291
+ content_json_for_volume: str = "",
299
292
  *,
300
293
  with_mutation_hook: bool = False,
301
294
  ) -> k8s.V1Pod:
@@ -334,6 +327,14 @@ class PodGenerator:
334
327
  if run_id:
335
328
  annotations["run_id"] = run_id
336
329
 
330
+ main_container = k8s.V1Container(
331
+ name="base",
332
+ args=args,
333
+ image=image,
334
+ env=[
335
+ k8s.V1EnvVar(name="AIRFLOW_IS_K8S_EXECUTOR_POD", value="True"),
336
+ ],
337
+ )
337
338
  dynamic_pod = k8s.V1Pod(
338
339
  metadata=k8s.V1ObjectMeta(
339
340
  namespace=namespace,
@@ -349,18 +350,47 @@ class PodGenerator:
349
350
  run_id=run_id,
350
351
  ),
351
352
  ),
352
- spec=k8s.V1PodSpec(
353
- containers=[
354
- k8s.V1Container(
355
- name="base",
356
- args=args,
357
- image=image,
358
- env=[k8s.V1EnvVar(name="AIRFLOW_IS_K8S_EXECUTOR_POD", value="True")],
359
- )
360
- ]
361
- ),
362
353
  )
363
354
 
355
+ podspec = k8s.V1PodSpec(
356
+ containers=[main_container],
357
+ )
358
+
359
+ if content_json_for_volume:
360
+ import shlex
361
+
362
+ input_file_path = "/tmp/execute/input.json"
363
+ execute_volume = V1Volume(
364
+ name="execute-volume",
365
+ empty_dir=V1EmptyDirVolumeSource(),
366
+ )
367
+
368
+ execute_volume_mount = V1VolumeMount(
369
+ name="execute-volume",
370
+ mount_path="/tmp/execute",
371
+ read_only=False,
372
+ )
373
+
374
+ escaped_json = shlex.quote(content_json_for_volume)
375
+ init_container = k8s.V1Container(
376
+ name="init-container",
377
+ image="busybox",
378
+ command=["/bin/sh", "-c", f"echo {escaped_json} > {input_file_path}"],
379
+ volume_mounts=[execute_volume_mount],
380
+ )
381
+
382
+ main_container.volume_mounts = [execute_volume_mount]
383
+ main_container.command = args[:-1]
384
+ main_container.args = args[-1:]
385
+
386
+ podspec = k8s.V1PodSpec(
387
+ containers=[main_container],
388
+ volumes=[execute_volume],
389
+ init_containers=[init_container],
390
+ )
391
+
392
+ dynamic_pod.spec = podspec
393
+
364
394
  # Reconcile the pods starting with the first chronologically,
365
395
  # Pod from the pod_template_File -> Pod from the K8s executor -> Pod from executor_config arg
366
396
  pod_list = [base_worker_pod, dynamic_pod, pod_override_object]
@@ -16,9 +16,8 @@
16
16
  # under the License.
17
17
  from __future__ import annotations
18
18
 
19
- from kubernetes.client import models as k8s
20
-
21
19
  from airflow.exceptions import AirflowException
20
+ from kubernetes.client import models as k8s
22
21
 
23
22
 
24
23
  def convert_env_vars(env_vars) -> list[k8s.V1EnvVar]:
@@ -21,10 +21,9 @@ from __future__ import annotations
21
21
  import copy
22
22
  import uuid
23
23
 
24
- from kubernetes.client import models as k8s
25
-
26
24
  from airflow.exceptions import AirflowConfigException
27
25
  from airflow.providers.cncf.kubernetes.k8s_model import K8SModel
26
+ from kubernetes.client import models as k8s
28
27
 
29
28
 
30
29
  class Secret(K8SModel):
@@ -21,11 +21,10 @@ 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
-
26
24
  from airflow.exceptions import AirflowException
27
25
  from airflow.providers.cncf.kubernetes.hooks.kubernetes import KubernetesHook
28
26
  from airflow.sensors.base import BaseSensorOperator
27
+ from kubernetes import client
29
28
 
30
29
  if TYPE_CHECKING:
31
30
  from airflow.utils.context import Context
@@ -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
24
23
 
25
24
  from airflow.exceptions import AirflowException
26
25
  from airflow.providers.cncf.kubernetes.kube_config import KubeConfig
27
26
  from airflow.providers.cncf.kubernetes.kubernetes_helper_functions import create_unique_id
28
27
  from airflow.providers.cncf.kubernetes.pod_generator import PodGenerator
29
28
  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
@@ -35,6 +35,14 @@ if TYPE_CHECKING:
35
35
  def render_k8s_pod_yaml(task_instance: TaskInstance) -> dict | None:
36
36
  """Render k8s pod yaml."""
37
37
  kube_config = KubeConfig()
38
+ if task_instance.executor_config and task_instance.executor_config.get("pod_template_file"):
39
+ # If a specific pod_template_file was passed to the executor, we make
40
+ # sure to render the k8s pod spec using this one, and not the default one.
41
+ pod_template_file = task_instance.executor_config["pod_template_file"]
42
+ else:
43
+ # If no such pod_template_file override was passed, we can simply render
44
+ # The pod spec using the default template.
45
+ pod_template_file = kube_config.pod_template_file
38
46
  pod = PodGenerator.construct_pod(
39
47
  dag_id=task_instance.dag_id,
40
48
  run_id=task_instance.run_id,
@@ -48,7 +56,7 @@ def render_k8s_pod_yaml(task_instance: TaskInstance) -> dict | None:
48
56
  pod_override_object=PodGenerator.from_obj(task_instance.executor_config),
49
57
  scheduler_job_id="0",
50
58
  namespace=kube_config.executor_namespace,
51
- base_worker_pod=PodGenerator.deserialize_model_file(kube_config.pod_template_file),
59
+ base_worker_pod=PodGenerator.deserialize_model_file(pod_template_file),
52
60
  with_mutation_hook=True,
53
61
  )
54
62
  sanitized_pod = ApiClient().sanitize_for_serialization(pod)
@@ -19,9 +19,8 @@ from __future__ import annotations
19
19
  from collections.abc import Iterator
20
20
  from typing import Callable
21
21
 
22
- from kubernetes.utils import FailToCreateError
23
-
24
22
  from airflow.providers.cncf.kubernetes.utils.delete_from import FailToDeleteError
23
+ from kubernetes.utils import FailToCreateError
25
24
 
26
25
 
27
26
  def k8s_resource_iterator(callback: Callable[[dict], None], resources: Iterator) -> None:
@@ -31,9 +31,6 @@ 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
37
34
  from pendulum import DateTime
38
35
  from pendulum.parsing.exceptions import ParserError
39
36
  from typing_extensions import Literal
@@ -44,12 +41,16 @@ from airflow.providers.cncf.kubernetes.callbacks import ExecutionMode, Kubernete
44
41
  from airflow.providers.cncf.kubernetes.utils.xcom_sidecar import PodDefaults
45
42
  from airflow.utils.log.logging_mixin import LoggingMixin
46
43
  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
+
49
51
  from kubernetes.client.models.core_v1_event_list import CoreV1EventList
50
52
  from kubernetes.client.models.v1_container_status import V1ContainerStatus
51
53
  from kubernetes.client.models.v1_pod import V1Pod
52
- from urllib3.response import HTTPResponse
53
54
 
54
55
 
55
56
  EMPTY_XCOM_RESULT = "__airflow_xcom_result_empty__"
@@ -320,7 +321,7 @@ class PodManager(LoggingMixin):
320
321
  def __init__(
321
322
  self,
322
323
  kube_client: client.CoreV1Api,
323
- callbacks: type[KubernetesPodOperatorCallback] | None = None,
324
+ callbacks: list[type[KubernetesPodOperatorCallback]] | None = None,
324
325
  ):
325
326
  """
326
327
  Create the launcher.
@@ -331,7 +332,7 @@ class PodManager(LoggingMixin):
331
332
  super().__init__()
332
333
  self._client = kube_client
333
334
  self._watch = watch.Watch()
334
- self._callbacks = callbacks
335
+ self._callbacks = callbacks or []
335
336
 
336
337
  def run_pod_async(self, pod: V1Pod, **kwargs) -> V1Pod:
337
338
  """Run POD asynchronously."""
@@ -466,8 +467,8 @@ class PodManager(LoggingMixin):
466
467
  progress_callback_lines.append(line)
467
468
  else: # previous log line is complete
468
469
  for line in progress_callback_lines:
469
- if self._callbacks:
470
- self._callbacks.progress_callback(
470
+ for callback in self._callbacks:
471
+ callback.progress_callback(
471
472
  line=line, client=self._client, mode=ExecutionMode.SYNC
472
473
  )
473
474
  if message_to_log is not None:
@@ -485,8 +486,8 @@ class PodManager(LoggingMixin):
485
486
  finally:
486
487
  # log the last line and update the last_captured_timestamp
487
488
  for line in progress_callback_lines:
488
- if self._callbacks:
489
- self._callbacks.progress_callback(
489
+ for callback in self._callbacks:
490
+ callback.progress_callback(
490
491
  line=line, client=self._client, mode=ExecutionMode.SYNC
491
492
  )
492
493
  if message_to_log is not None:
@@ -855,7 +856,7 @@ class PodManager(LoggingMixin):
855
856
  _preload_content=False,
856
857
  )
857
858
  ) as resp:
858
- self._exec_pod_command(resp, "kill -2 $(pgrep -u $(whoami) -f trap)")
859
+ self._exec_pod_command(resp, "kill -2 $(pgrep -u $(id -u) -f 'sh')")
859
860
 
860
861
  def _exec_pod_command(self, resp, command: str) -> str | None:
861
862
  res = ""
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: apache-airflow-providers-cncf-kubernetes
3
- Version: 10.1.0rc2
3
+ Version: 10.3.0
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,38 +21,21 @@ Classifier: Programming Language :: Python :: 3.11
21
21
  Classifier: Programming Language :: Python :: 3.12
22
22
  Classifier: Topic :: System :: Monitoring
23
23
  Requires-Dist: aiofiles>=23.2.0
24
- Requires-Dist: apache-airflow>=2.9.0rc0
24
+ Requires-Dist: apache-airflow>=2.9.0
25
25
  Requires-Dist: asgiref>=3.5.2
26
26
  Requires-Dist: cryptography>=41.0.0
27
- Requires-Dist: google-re2>=1.0
28
27
  Requires-Dist: kubernetes>=29.0.0,<=31.0.0
29
28
  Requires-Dist: kubernetes_asyncio>=29.0.0,<=31.0.0
29
+ Requires-Dist: google-re2>=1.0
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/10.1.0/changelog.html
32
- Project-URL: Documentation, https://airflow.apache.org/docs/apache-airflow-providers-cncf-kubernetes/10.1.0
31
+ Project-URL: Changelog, https://airflow.apache.org/docs/apache-airflow-providers-cncf-kubernetes/10.3.0/changelog.html
32
+ Project-URL: Documentation, https://airflow.apache.org/docs/apache-airflow-providers-cncf-kubernetes/10.3.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://x.com/ApacheAirflow
36
36
  Project-URL: YouTube, https://www.youtube.com/channel/UCSXwxpWZQ7XZ1WL3wqevChA/
37
37
 
38
38
 
39
- .. Licensed to the Apache Software Foundation (ASF) under one
40
- or more contributor license agreements. See the NOTICE file
41
- distributed with this work for additional information
42
- regarding copyright ownership. The ASF licenses this file
43
- to you under the Apache License, Version 2.0 (the
44
- "License"); you may not use this file except in compliance
45
- with the License. You may obtain a copy of the License at
46
-
47
- .. http://www.apache.org/licenses/LICENSE-2.0
48
-
49
- .. Unless required by applicable law or agreed to in writing,
50
- software distributed under the License is distributed on an
51
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
52
- KIND, either express or implied. See the License for the
53
- specific language governing permissions and limitations
54
- under the License.
55
-
56
39
  .. Licensed to the Apache Software Foundation (ASF) under one
57
40
  or more contributor license agreements. See the NOTICE file
58
41
  distributed with this work for additional information
@@ -70,8 +53,7 @@ Project-URL: YouTube, https://www.youtube.com/channel/UCSXwxpWZQ7XZ1WL3wqevChA/
70
53
  specific language governing permissions and limitations
71
54
  under the License.
72
55
 
73
- .. NOTE! THIS FILE IS AUTOMATICALLY GENERATED AND WILL BE
74
- OVERWRITTEN WHEN PREPARING PACKAGES.
56
+ .. NOTE! THIS FILE IS AUTOMATICALLY GENERATED AND WILL BE OVERWRITTEN!
75
57
 
76
58
  .. IF YOU WANT TO MODIFY TEMPLATE FOR THIS FILE, YOU SHOULD MODIFY THE TEMPLATE
77
59
  `PROVIDER_README_TEMPLATE.rst.jinja2` IN the `dev/breeze/src/airflow_breeze/templates` DIRECTORY
@@ -79,7 +61,7 @@ Project-URL: YouTube, https://www.youtube.com/channel/UCSXwxpWZQ7XZ1WL3wqevChA/
79
61
 
80
62
  Package ``apache-airflow-providers-cncf-kubernetes``
81
63
 
82
- Release: ``10.1.0.rc2``
64
+ Release: ``10.3.0``
83
65
 
84
66
 
85
67
  `Kubernetes <https://kubernetes.io/>`__
@@ -92,7 +74,7 @@ This is a provider package for ``cncf.kubernetes`` provider. All classes for thi
92
74
  are in ``airflow.providers.cncf.kubernetes`` python package.
93
75
 
94
76
  You can find package information and changelog for the provider
95
- in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-cncf-kubernetes/10.1.0/>`_.
77
+ in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-cncf-kubernetes/10.3.0/>`_.
96
78
 
97
79
  Installation
98
80
  ------------
@@ -119,4 +101,5 @@ PIP package Version required
119
101
  ====================== =====================
120
102
 
121
103
  The changelog for the provider package can be found in the
122
- `changelog <https://airflow.apache.org/docs/apache-airflow-providers-cncf-kubernetes/10.1.0/changelog.html>`_.
104
+ `changelog <https://airflow.apache.org/docs/apache-airflow-providers-cncf-kubernetes/10.3.0/changelog.html>`_.
105
+
@@ -1,59 +1,59 @@
1
- airflow/providers/cncf/kubernetes/LICENSE,sha256=FFb4jd2AXnOOf7XLP04pQW6jbdhG49TxlGY6fFpCV1Y,13609
2
- airflow/providers/cncf/kubernetes/__init__.py,sha256=JgM645XlySCq1ye8U2Ey6y4rVnjnol6jpa3JvSyh5ag,1503
3
- airflow/providers/cncf/kubernetes/callbacks.py,sha256=SK_gKvGWuU-nxHfsqsYMlNQ8HZbHfpvyItOqieel2lc,4162
4
- airflow/providers/cncf/kubernetes/get_provider_info.py,sha256=W7WIaR7A-NHGZzM3IKgYaNS_iI4KNFMvj1_bIPGe4gY,18125
1
+ airflow/providers/cncf/kubernetes/LICENSE,sha256=gXPVwptPlW1TJ4HSuG5OMPg-a3h43OGMkZRR1rpwfJA,10850
2
+ airflow/providers/cncf/kubernetes/__init__.py,sha256=kPtM2GCtzpUb4DtQUS_SPWEozXTGN2zwGyn-lueQw6M,1503
3
+ airflow/providers/cncf/kubernetes/callbacks.py,sha256=7sZx4eujOJs82TxAxNS8Pu6dfAlBSnHqUu5inwdYnjQ,6077
4
+ airflow/providers/cncf/kubernetes/exceptions.py,sha256=3cNEZTnrltBsqwzHiLfckwYYc_IWY1g4PcRs6zuMWWA,1137
5
+ airflow/providers/cncf/kubernetes/get_provider_info.py,sha256=YOuI2-CWl9aYJKglLZd-s6VLhMITWkSJi3yXYsZa4Ms,17723
5
6
  airflow/providers/cncf/kubernetes/k8s_model.py,sha256=xmdFhX29DjegoZ-cq8-KDL9soVYXf4OpU6fAGr3cPTU,2101
6
7
  airflow/providers/cncf/kubernetes/kube_client.py,sha256=yflZxLousXA9d7t67KrEy55qzb1cUhEyy6yCPkEem28,5329
7
- airflow/providers/cncf/kubernetes/kube_config.py,sha256=FAmhZZ_Z2JtoVzL6wENSjcwrlwAenHttTX_Ild9aEms,5225
8
- airflow/providers/cncf/kubernetes/kubernetes_helper_functions.py,sha256=Zf7RyNt9BkUHY7Sjm_6CimTmb2H1bv5lrO3T0pni_r0,5524
9
- airflow/providers/cncf/kubernetes/pod_generator.py,sha256=KGFqR8IIo41-Z5sFtxBFOrc2cvL7s-ER8OVBhp2dFs0,19841
10
- airflow/providers/cncf/kubernetes/pod_generator_deprecated.py,sha256=aukRdia0Wtv0FVZXgvaIWQxdWfnT9cxzH0UwOVph8dE,11998
8
+ airflow/providers/cncf/kubernetes/kube_config.py,sha256=3qWdCp2z4g8gX_sIOProgwp52UxM5kAIYabkxaX297g,5079
9
+ airflow/providers/cncf/kubernetes/kubernetes_helper_functions.py,sha256=DyBxDNltnBG2txljnih7nrOxeQo4OyX1SOaKPJiX0PA,5524
10
+ airflow/providers/cncf/kubernetes/pod_generator.py,sha256=9329jtwCY0k_l2HiP4ApPyeNOdE2UW5L8q-G9sfZSG4,20889
11
11
  airflow/providers/cncf/kubernetes/python_kubernetes_script.jinja2,sha256=I0EHRGwLHjSiX85e51HBIoddRDnC8TJPFrDBqQq_NJg,1776
12
12
  airflow/providers/cncf/kubernetes/python_kubernetes_script.py,sha256=KnTlZSWCZhwvj89fSc2kgIRTaI4iLNKPquHc2wXnluo,3460
13
- airflow/providers/cncf/kubernetes/secret.py,sha256=wj-T9gouqau_X14slAstGmnSxqXJQzdLwUdURzHna0I,5209
14
- airflow/providers/cncf/kubernetes/template_rendering.py,sha256=AZesc6MDfpFHoN1PvQpVwM-PzwbKYC1IsdChYvTubZ8,2965
13
+ airflow/providers/cncf/kubernetes/secret.py,sha256=TZoCxV7d3r2avpRs3zzqB4Az_nGeM2B7LweMzYwA-6s,5208
14
+ airflow/providers/cncf/kubernetes/template_rendering.py,sha256=ae00DroxxXEtkaSux49sCYCT_aR_d56y77HsSFzeFrQ,3490
15
15
  airflow/providers/cncf/kubernetes/version_compat.py,sha256=aHg90_DtgoSnQvILFICexMyNlHlALBdaeWqkX3dFDug,1605
16
16
  airflow/providers/cncf/kubernetes/backcompat/__init__.py,sha256=KXF76f3v1jIFUBNz8kwxVMvm7i4mNo35LbIG9IijBNc,1299
17
- airflow/providers/cncf/kubernetes/backcompat/backwards_compat_converters.py,sha256=2jIehZsixt4ZGwTkj7kC8Uq3w8XwFAEzZV4g8SyIUZI,4340
17
+ airflow/providers/cncf/kubernetes/backcompat/backwards_compat_converters.py,sha256=bJV-Itf_RcN8_eJw2LkZU_edhlqElmbeOB7OP09MPrk,4348
18
18
  airflow/providers/cncf/kubernetes/cli/__init__.py,sha256=9hdXHABrVpkbpjZgUft39kOFL2xSGeG4GEua0Hmelus,785
19
- airflow/providers/cncf/kubernetes/cli/kubernetes_command.py,sha256=0n1Tj7w6jWfeRtf_VTn1dA5XN1MlOziXFDBA51nHquM,7252
19
+ airflow/providers/cncf/kubernetes/cli/kubernetes_command.py,sha256=5hVT18pCu0kGStQ5sJYO4pd8rRTmCZWedBBvxe5rSMY,7251
20
20
  airflow/providers/cncf/kubernetes/decorators/__init__.py,sha256=mlJxuZLkd5x-iq2SBwD3mvRQpt3YR7wjz_nceyF1IaI,787
21
- airflow/providers/cncf/kubernetes/decorators/kubernetes.py,sha256=-YgRnFGyS-tdoAqwKP_Jj5mh_YJlKpk5TvwYnphvp4o,5814
21
+ airflow/providers/cncf/kubernetes/decorators/kubernetes.py,sha256=Tfxn0FiAoUJUQlvYAoxdDYbwYXfLV1XzzrPJsxN9XY8,6174
22
22
  airflow/providers/cncf/kubernetes/executors/__init__.py,sha256=mlJxuZLkd5x-iq2SBwD3mvRQpt3YR7wjz_nceyF1IaI,787
23
- airflow/providers/cncf/kubernetes/executors/kubernetes_executor.py,sha256=ZUOmeohZkIxF1K77EoKQx275YC5Yf8wu63ijzNGsMsU,35436
23
+ airflow/providers/cncf/kubernetes/executors/kubernetes_executor.py,sha256=715AIfLanGjmK_Qm1lNzfa7A6rurTmLxyz2m1RS4KSQ,31712
24
24
  airflow/providers/cncf/kubernetes/executors/kubernetes_executor_types.py,sha256=L8_8HOHd_4O8WW6xT2tp49-yOj0EMKCYK5YqMOOx_bI,1973
25
- airflow/providers/cncf/kubernetes/executors/kubernetes_executor_utils.py,sha256=lNdHp7Q5aTOxHBew-_H3cl9F4NLgmElNidhWXO3UKGw,24302
25
+ airflow/providers/cncf/kubernetes/executors/kubernetes_executor_utils.py,sha256=PLb7S2Ra0bQfydst23efxp5wmu67L_LPNsMWiOZjvgo,24772
26
26
  airflow/providers/cncf/kubernetes/executors/local_kubernetes_executor.py,sha256=kx6pHAfSnKiDgT6iDOS4fJRq49DodFnyxUyd-iJsuI8,11512
27
27
  airflow/providers/cncf/kubernetes/hooks/__init__.py,sha256=9hdXHABrVpkbpjZgUft39kOFL2xSGeG4GEua0Hmelus,785
28
- airflow/providers/cncf/kubernetes/hooks/kubernetes.py,sha256=eH9yTOf9vNFuBCspFtVQjfLDX2v-UwaU5xlyq8GlHR0,36306
28
+ airflow/providers/cncf/kubernetes/hooks/kubernetes.py,sha256=i7l7q4DK9c7CFF1KTf_Qtjk_H1tyXoOhwDFwVnq-pBU,36784
29
29
  airflow/providers/cncf/kubernetes/kubernetes_executor_templates/__init__.py,sha256=9hdXHABrVpkbpjZgUft39kOFL2xSGeG4GEua0Hmelus,785
30
30
  airflow/providers/cncf/kubernetes/kubernetes_executor_templates/basic_template.yaml,sha256=yzJmXN4ZyB4aDwI_GIugpL9-f1YMVy__X-LQSbeU95A,2567
31
31
  airflow/providers/cncf/kubernetes/operators/__init__.py,sha256=mlJxuZLkd5x-iq2SBwD3mvRQpt3YR7wjz_nceyF1IaI,787
32
- airflow/providers/cncf/kubernetes/operators/custom_object_launcher.py,sha256=ZEXw_PqGItO47AEgGKqAqwFHFo-gb9-7jgEMRJgOfNU,15311
33
- airflow/providers/cncf/kubernetes/operators/job.py,sha256=mWstFYBzET1Pm7RYJyBOSZgjG_tb1s__DmWjb2An9jY,23738
34
- airflow/providers/cncf/kubernetes/operators/kueue.py,sha256=KE-y9_cnG3VgjSY4vxfvA2BEd5GYHn5y7xzFVa3UXa4,4538
35
- airflow/providers/cncf/kubernetes/operators/pod.py,sha256=UxvNUYUGY8RtZ4cNKG-CZHxIbpqnzFpbJwY6HAdjI_Y,54871
36
- airflow/providers/cncf/kubernetes/operators/resource.py,sha256=4nS-eiVEGlotp-gCkHlwRuenj3pnKhZ4khh9s2cjZms,7597
37
- airflow/providers/cncf/kubernetes/operators/spark_kubernetes.py,sha256=QQbJ9MwIHkTCnHwu2BLkJdTeYjhmla-7zY0zGwXhTpk,13822
32
+ airflow/providers/cncf/kubernetes/operators/custom_object_launcher.py,sha256=wSFpJ1s0dmmpBCL6_qhhbc50Bk6Ya23Mm5Jy_RKG_vE,15315
33
+ airflow/providers/cncf/kubernetes/operators/job.py,sha256=UUkw_5Y8HQ92GyihzOIK_iFWmcajISoc5NZS48AHJo8,23772
34
+ airflow/providers/cncf/kubernetes/operators/kueue.py,sha256=hY-tHjpeVnRyoTNEdxanb8kI8Na_oTWNzlX2m5TUWIM,4564
35
+ airflow/providers/cncf/kubernetes/operators/pod.py,sha256=BeZt2OTKB7THZyw-_MC0Le_q69KwOE3sMtwlTOvBIh0,57027
36
+ airflow/providers/cncf/kubernetes/operators/resource.py,sha256=graV9wcvhtbRnUuxXQP_oJBCSx1SYt_08JGwQ0GFVVw,7597
37
+ airflow/providers/cncf/kubernetes/operators/spark_kubernetes.py,sha256=GPsKBKT0YM4DYfehLjBGjkiEsNsqZ3ccaZ8YUjSGzKU,13846
38
38
  airflow/providers/cncf/kubernetes/pod_template_file_examples/__init__.py,sha256=9hdXHABrVpkbpjZgUft39kOFL2xSGeG4GEua0Hmelus,785
39
39
  airflow/providers/cncf/kubernetes/pod_template_file_examples/dags_in_image_template.yaml,sha256=7JdppZ-XDBpv2Bnde2SthhcME8w3b8xQdPAK1fJGW60,2256
40
40
  airflow/providers/cncf/kubernetes/pod_template_file_examples/dags_in_volume_template.yaml,sha256=-Pk_EwKpyWRYZKOnumUxVrDeAfFJ0nr3WZ7JNnvppzg,2442
41
41
  airflow/providers/cncf/kubernetes/pod_template_file_examples/git_sync_template.yaml,sha256=Pxpa1AiBlf4H8aIc7tUTmH2XNOz84cO0ttMQdlfMJ2c,3020
42
42
  airflow/providers/cncf/kubernetes/resource_convert/__init__.py,sha256=9hdXHABrVpkbpjZgUft39kOFL2xSGeG4GEua0Hmelus,785
43
43
  airflow/providers/cncf/kubernetes/resource_convert/configmap.py,sha256=gf7DdVeD0yKRNCTVCM-SywJDxwEJTYx3ogykAqbxRoU,1873
44
- airflow/providers/cncf/kubernetes/resource_convert/env_variable.py,sha256=CsVgLPXjI5pSDCBwcN3WCyyWPbiNRZc_OJCPK_C_298,1464
44
+ airflow/providers/cncf/kubernetes/resource_convert/env_variable.py,sha256=sCjpD8AbVqhq5hDDnKwn-Qo3mNHLWpY152S3JWpEpEk,1463
45
45
  airflow/providers/cncf/kubernetes/resource_convert/secret.py,sha256=ElZCMbTWeTKoPeIJ1fTvlqRXM8nGkWj2MrIlVckX6Ag,1494
46
46
  airflow/providers/cncf/kubernetes/sensors/__init__.py,sha256=9hdXHABrVpkbpjZgUft39kOFL2xSGeG4GEua0Hmelus,785
47
- airflow/providers/cncf/kubernetes/sensors/spark_kubernetes.py,sha256=q5VZPf037pbsunFUjUrtz7M5oJW7waZ1q8snNAugCIk,5380
47
+ airflow/providers/cncf/kubernetes/sensors/spark_kubernetes.py,sha256=qsU1mAEnHXKNaI6DaGnTzcXR17aGzPGnT3eWOZICnl0,5379
48
48
  airflow/providers/cncf/kubernetes/triggers/__init__.py,sha256=9hdXHABrVpkbpjZgUft39kOFL2xSGeG4GEua0Hmelus,785
49
49
  airflow/providers/cncf/kubernetes/triggers/job.py,sha256=DGbC1FZktBF-00Lb0pU9iIKQnmdW8HWklp5Wwq54OEY,6754
50
50
  airflow/providers/cncf/kubernetes/triggers/pod.py,sha256=7vLj9SvOOwh9p5XSZIr7mj47YWe_aPQgtN7uEZhma68,12653
51
51
  airflow/providers/cncf/kubernetes/utils/__init__.py,sha256=ClZN0VPjWySdVwS_ktH7rrgL9VLAcs3OSJSB9s3zaYw,863
52
52
  airflow/providers/cncf/kubernetes/utils/delete_from.py,sha256=poObZSoEJwQyaYWilEURs8f4CDY2sn_pfwS31Lf579A,5195
53
- airflow/providers/cncf/kubernetes/utils/k8s_resource_iterator.py,sha256=DLypjkD_3YDixRTcsxEjgvHZNbbG9qamlz05eBqaWzU,1955
54
- airflow/providers/cncf/kubernetes/utils/pod_manager.py,sha256=-aW_4PucvfUk_VjH56ZjbxEn6BFQS1j_aDnlrKEprkc,36451
53
+ airflow/providers/cncf/kubernetes/utils/k8s_resource_iterator.py,sha256=wiqkHS8WbSZGEtSCO8ENMtKbAVpboODKb29wU96Ffk0,1954
54
+ airflow/providers/cncf/kubernetes/utils/pod_manager.py,sha256=_76aQ2BkY1XK2mtHpW_g8jj1n7vuR9iX0rQIqI7IVek,36475
55
55
  airflow/providers/cncf/kubernetes/utils/xcom_sidecar.py,sha256=k6bdmVJ21OrAwGmWwledRrAmaty9ZrmbuM-IbaI4mqo,2519
56
- apache_airflow_providers_cncf_kubernetes-10.1.0rc2.dist-info/entry_points.txt,sha256=ByD3QJJyP9CfmTYtpNI1953akD38RUDgpGXLaq9vpOw,111
57
- apache_airflow_providers_cncf_kubernetes-10.1.0rc2.dist-info/WHEEL,sha256=CpUCUxeHQbRN5UGRQHYRJorO5Af-Qy_fHMctcQ8DSGI,82
58
- apache_airflow_providers_cncf_kubernetes-10.1.0rc2.dist-info/METADATA,sha256=1CfeeYrkhwb_8Z1Z_Vbr8q3BTc5smaRY0sGdJ9FAmW0,5216
59
- apache_airflow_providers_cncf_kubernetes-10.1.0rc2.dist-info/RECORD,,
56
+ apache_airflow_providers_cncf_kubernetes-10.3.0.dist-info/entry_points.txt,sha256=ByD3QJJyP9CfmTYtpNI1953akD38RUDgpGXLaq9vpOw,111
57
+ apache_airflow_providers_cncf_kubernetes-10.3.0.dist-info/WHEEL,sha256=CpUCUxeHQbRN5UGRQHYRJorO5Af-Qy_fHMctcQ8DSGI,82
58
+ apache_airflow_providers_cncf_kubernetes-10.3.0.dist-info/METADATA,sha256=5hHZ853ZBweOrVz2f1yAewvxs2TzzWqNA6FewN8tu9k,4381
59
+ apache_airflow_providers_cncf_kubernetes-10.3.0.dist-info/RECORD,,