apache-airflow-providers-cncf-kubernetes 8.3.0rc2__py3-none-any.whl → 8.3.1rc1__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.
@@ -215,7 +215,7 @@ Third party Apache 2.0 licenses
215
215
 
216
216
  The following components are provided under the Apache 2.0 License.
217
217
  See project link for details. The text of each license is also included
218
- at licenses/LICENSE-[project].txt.
218
+ at 3rd-party-licenses/LICENSE-[project].txt.
219
219
 
220
220
  (ALv2 License) hue v4.3.0 (https://github.com/cloudera/hue/)
221
221
  (ALv2 License) jqclock v2.3.0 (https://github.com/JohnRDOrazio/jQuery-Clock-Plugin)
@@ -227,7 +227,7 @@ MIT licenses
227
227
  ========================================================================
228
228
 
229
229
  The following components are provided under the MIT License. See project link for details.
230
- The text of each license is also included at licenses/LICENSE-[project].txt.
230
+ The text of each license is also included at 3rd-party-licenses/LICENSE-[project].txt.
231
231
 
232
232
  (MIT License) jquery v3.5.1 (https://jquery.org/license/)
233
233
  (MIT License) dagre-d3 v0.6.4 (https://github.com/cpettitt/dagre-d3)
@@ -243,11 +243,11 @@ The text of each license is also included at licenses/LICENSE-[project].txt.
243
243
  BSD 3-Clause licenses
244
244
  ========================================================================
245
245
  The following components are provided under the BSD 3-Clause license. See project links for details.
246
- The text of each license is also included at licenses/LICENSE-[project].txt.
246
+ The text of each license is also included at 3rd-party-licenses/LICENSE-[project].txt.
247
247
 
248
248
  (BSD 3 License) d3 v5.16.0 (https://d3js.org)
249
249
  (BSD 3 License) d3-shape v2.1.0 (https://github.com/d3/d3-shape)
250
250
  (BSD 3 License) cgroupspy 0.2.1 (https://github.com/cloudsigma/cgroupspy)
251
251
 
252
252
  ========================================================================
253
- See licenses/LICENSES-ui.txt for packages used in `/airflow/www`
253
+ See 3rd-party-licenses/LICENSES-ui.txt for packages used in `/airflow/www`
@@ -29,7 +29,7 @@ from airflow import __version__ as airflow_version
29
29
 
30
30
  __all__ = ["__version__"]
31
31
 
32
- __version__ = "8.3.0"
32
+ __version__ = "8.3.1"
33
33
 
34
34
  if packaging.version.parse(packaging.version.parse(airflow_version).base_version) < packaging.version.parse(
35
35
  "2.7.0"
@@ -30,7 +30,7 @@ from airflow.models import DagRun, TaskInstance
30
30
  from airflow.providers.cncf.kubernetes import pod_generator
31
31
  from airflow.providers.cncf.kubernetes.executors.kubernetes_executor import KubeConfig
32
32
  from airflow.providers.cncf.kubernetes.kube_client import get_kube_client
33
- from airflow.providers.cncf.kubernetes.kubernetes_helper_functions import create_pod_id
33
+ from airflow.providers.cncf.kubernetes.kubernetes_helper_functions import create_unique_id
34
34
  from airflow.providers.cncf.kubernetes.pod_generator import PodGenerator
35
35
  from airflow.utils import cli as cli_utils, yaml
36
36
  from airflow.utils.cli import get_dag
@@ -52,7 +52,7 @@ def generate_pod_yaml(args):
52
52
  pod = PodGenerator.construct_pod(
53
53
  dag_id=args.dag_id,
54
54
  task_id=ti.task_id,
55
- pod_id=create_pod_id(args.dag_id, ti.task_id),
55
+ pod_id=create_unique_id(args.dag_id, ti.task_id),
56
56
  try_number=ti.try_number,
57
57
  kube_image=kube_config.kube_image,
58
58
  date=ti.execution_date,
@@ -83,7 +83,6 @@ if TYPE_CHECKING:
83
83
  AirflowKubernetesScheduler,
84
84
  )
85
85
 
86
-
87
86
  # CLI Args
88
87
  ARG_NAMESPACE = Arg(
89
88
  ("--namespace",),
@@ -577,7 +576,22 @@ class KubernetesExecutor(BaseExecutor):
577
576
  for pod in pod_list:
578
577
  self.adopt_launched_task(kube_client, pod, tis_to_flush_by_key)
579
578
  self._adopt_completed_pods(kube_client)
580
- tis_to_flush.extend(tis_to_flush_by_key.values())
579
+
580
+ # as this method can be retried within a short time frame
581
+ # (wrapped in a run_with_db_retries of scheduler_job_runner,
582
+ # and get retried due to an OperationalError, for example),
583
+ # there is a chance that in second attempt, adopt_launched_task will not be called even once
584
+ # as all pods are already adopted in the first attempt.
585
+ # and tis_to_flush_by_key will contain TIs that are already adopted.
586
+ # therefore, we need to check if the TIs are already adopted by the first attempt and remove them.
587
+ def _iter_tis_to_flush():
588
+ for key, ti in tis_to_flush_by_key.items():
589
+ if key in self.running:
590
+ self.log.info("%s is already adopted, no need to flush.", ti)
591
+ else:
592
+ yield ti
593
+
594
+ tis_to_flush.extend(_iter_tis_to_flush())
581
595
  return tis_to_flush
582
596
 
583
597
  def cleanup_stuck_queued_tasks(self, tis: list[TaskInstance]) -> list[str]:
@@ -230,7 +230,6 @@ class KubernetesJobWatcher(multiprocessing.Process, LoggingMixin):
230
230
  self.kube_config.worker_pod_pending_fatal_container_state_reasons
231
231
  and "status" in event["raw_object"]
232
232
  ):
233
- self.log.info("Event: %s Pending, annotations: %s", pod_name, annotations_string)
234
233
  # Init containers and base container statuses to check.
235
234
  # Skipping the other containers statuses check.
236
235
  container_statuses_to_check = []
@@ -250,10 +249,18 @@ class KubernetesJobWatcher(multiprocessing.Process, LoggingMixin):
250
249
  and container_status_state["waiting"]["message"] == "pull QPS exceeded"
251
250
  ):
252
251
  continue
252
+ self.log.error(
253
+ "Event: %s has container %s with fatal reason %s",
254
+ pod_name,
255
+ container_status["name"],
256
+ container_status_state["waiting"]["reason"],
257
+ )
253
258
  self.watcher_queue.put(
254
259
  (pod_name, namespace, TaskInstanceState.FAILED, annotations, resource_version)
255
260
  )
256
261
  break
262
+ else:
263
+ self.log.info("Event: %s Pending, annotations: %s", pod_name, annotations_string)
257
264
  else:
258
265
  self.log.debug("Event: %s Pending, annotations: %s", pod_name, annotations_string)
259
266
  elif status == "Failed":
@@ -28,8 +28,9 @@ def get_provider_info():
28
28
  "name": "Kubernetes",
29
29
  "description": "`Kubernetes <https://kubernetes.io/>`__\n",
30
30
  "state": "ready",
31
- "source-date-epoch": 1716287042,
31
+ "source-date-epoch": 1717567104,
32
32
  "versions": [
33
+ "8.3.1",
33
34
  "8.3.0",
34
35
  "8.2.0",
35
36
  "8.1.1",
@@ -92,7 +93,7 @@ def get_provider_info():
92
93
  "aiofiles>=23.2.0",
93
94
  "apache-airflow>=2.7.0",
94
95
  "asgiref>=3.5.2",
95
- "cryptography>=2.0.0",
96
+ "cryptography>=41.0.0",
96
97
  "kubernetes>=28.1.0,<=29.0.0",
97
98
  "kubernetes_asyncio>=28.1.0,<=29.0.0",
98
99
  "google-re2>=1.0",
@@ -469,7 +469,9 @@ class KubernetesPodOperator(BaseOperator):
469
469
  """
470
470
  Generate labels for the pod to track the pod in case of Operator crash.
471
471
 
472
- :param context: task context provided by airflow DAG
472
+ :param context: task context provided by airflow DAG.
473
+ :param include_try_number: if set to True will add the try number
474
+ from the task context to the pod labels.
473
475
  :return: dict
474
476
  """
475
477
  if not context:
@@ -534,24 +536,31 @@ class KubernetesPodOperator(BaseOperator):
534
536
 
535
537
  pod = None
536
538
  num_pods = len(pod_list)
537
- if num_pods > 1:
538
- raise AirflowException(f"More than one pod running with labels {label_selector}")
539
- elif num_pods == 1:
539
+
540
+ if num_pods == 1:
540
541
  pod = pod_list[0]
541
- self.log.info("Found matching pod %s with labels %s", pod.metadata.name, pod.metadata.labels)
542
- self.log.info("`try_number` of task_instance: %s", context["ti"].try_number)
543
- self.log.info("`try_number` of pod: %s", pod.metadata.labels["try_number"])
542
+ self.log_matching_pod(pod=pod, context=context)
543
+ elif num_pods > 1:
544
+ if self.reattach_on_restart:
545
+ raise AirflowException(f"More than one pod running with labels {label_selector}")
546
+ self.log.warning("Found more than one pod running with labels %s, resolving ...", label_selector)
547
+ pod = self.process_duplicate_label_pods(pod_list)
548
+ self.log_matching_pod(pod=pod, context=context)
549
+
544
550
  return pod
545
551
 
552
+ def log_matching_pod(self, pod: k8s.V1Pod, context: Context) -> None:
553
+ self.log.info("Found matching pod %s with labels %s", pod.metadata.name, pod.metadata.labels)
554
+ self.log.info("`try_number` of task_instance: %s", context["ti"].try_number)
555
+ self.log.info("`try_number` of pod: %s", pod.metadata.labels["try_number"])
556
+
546
557
  def get_or_create_pod(self, pod_request_obj: k8s.V1Pod, context: Context) -> k8s.V1Pod:
547
558
  if self.reattach_on_restart:
548
559
  pod = self.find_pod(self.namespace or pod_request_obj.metadata.namespace, context=context)
549
560
  if pod:
550
561
  return pod
551
-
552
562
  self.log.debug("Starting pod:\n%s", yaml.safe_dump(pod_request_obj.to_dict()))
553
563
  self.pod_manager.create_pod(pod=pod_request_obj)
554
-
555
564
  return pod_request_obj
556
565
 
557
566
  def await_pod_start(self, pod: k8s.V1Pod) -> None:
@@ -612,16 +621,7 @@ class KubernetesPodOperator(BaseOperator):
612
621
  mode=ExecutionMode.SYNC,
613
622
  )
614
623
 
615
- if self.get_logs:
616
- self.pod_manager.fetch_requested_container_logs(
617
- pod=self.pod,
618
- containers=self.container_logs,
619
- follow_logs=True,
620
- )
621
- if not self.get_logs or (
622
- self.container_logs is not True and self.base_container_name not in self.container_logs
623
- ):
624
- self.await_container_completion(pod=self.pod, container_name=self.base_container_name)
624
+ self.await_pod_completion(pod=self.pod)
625
625
  if self.callbacks:
626
626
  self.callbacks.on_pod_completion(
627
627
  pod=self.find_pod(self.pod.metadata.namespace, context=context),
@@ -654,9 +654,18 @@ class KubernetesPodOperator(BaseOperator):
654
654
  retry=tenacity.retry_if_exception(lambda exc: check_exception_is_kubernetes_api_unauthorized(exc)),
655
655
  reraise=True,
656
656
  )
657
- def await_container_completion(self, pod: k8s.V1Pod, container_name: str):
657
+ def await_pod_completion(self, pod: k8s.V1Pod):
658
658
  try:
659
- self.pod_manager.await_container_completion(pod=pod, container_name=container_name)
659
+ if self.get_logs:
660
+ self.pod_manager.fetch_requested_container_logs(
661
+ pod=pod,
662
+ containers=self.container_logs,
663
+ follow_logs=True,
664
+ )
665
+ if not self.get_logs or (
666
+ self.container_logs is not True and self.base_container_name not in self.container_logs
667
+ ):
668
+ self.pod_manager.await_container_completion(pod=pod, container_name=self.base_container_name)
660
669
  except kubernetes.client.exceptions.ApiException as exc:
661
670
  if exc.status and str(exc.status) == "401":
662
671
  self.log.warning(
@@ -1138,6 +1147,36 @@ class KubernetesPodOperator(BaseOperator):
1138
1147
  def execute_complete(self, context: Context, event: dict, **kwargs):
1139
1148
  return self.trigger_reentry(context=context, event=event)
1140
1149
 
1150
+ def process_duplicate_label_pods(self, pod_list: list[k8s.V1Pod]) -> k8s.V1Pod:
1151
+ """
1152
+ Patch or delete the existing pod with duplicate labels.
1153
+
1154
+ This is to handle an edge case that can happen only if reattach_on_restart
1155
+ flag is False, and the previous run attempt has failed because the task
1156
+ process has been killed externally by the cluster or another process.
1157
+
1158
+ If the task process is killed externally, it breaks the code execution and
1159
+ immediately exists the task. As a result the pod created in the previous attempt
1160
+ will not be properly deleted or patched by cleanup() method.
1161
+
1162
+ Return the newly created pod to be used for the next run attempt.
1163
+ """
1164
+ new_pod = pod_list.pop(self._get_most_recent_pod_index(pod_list))
1165
+ old_pod = pod_list[0]
1166
+ self.patch_already_checked(old_pod, reraise=False)
1167
+ if self.on_finish_action == OnFinishAction.DELETE_POD:
1168
+ self.process_pod_deletion(old_pod)
1169
+ return new_pod
1170
+
1171
+ @staticmethod
1172
+ def _get_most_recent_pod_index(pod_list: list[k8s.V1Pod]) -> int:
1173
+ """Loop through a list of V1Pod objects and get the index of the most recent one."""
1174
+ pod_start_times: list[datetime.datetime] = [
1175
+ pod.to_dict().get("status").get("start_time") for pod in pod_list
1176
+ ]
1177
+ most_recent_start_time = max(pod_start_times)
1178
+ return pod_start_times.index(most_recent_start_time)
1179
+
1141
1180
 
1142
1181
  class _optionally_suppress(AbstractContextManager):
1143
1182
  """
@@ -219,15 +219,17 @@ class KubernetesPodTrigger(BaseTrigger):
219
219
 
220
220
  async def _wait_for_pod_start(self) -> ContainerState:
221
221
  """Loops until pod phase leaves ``PENDING`` If timeout is reached, throws error."""
222
- delta = datetime.datetime.now(tz=datetime.timezone.utc) - self.trigger_start_time
223
- while self.startup_timeout >= delta.total_seconds():
222
+ while True:
224
223
  pod = await self.hook.get_pod(self.pod_name, self.pod_namespace)
225
224
  if not pod.status.phase == "Pending":
226
225
  return self.define_container_state(pod)
226
+
227
+ delta = datetime.datetime.now(tz=datetime.timezone.utc) - self.trigger_start_time
228
+ if self.startup_timeout < delta.total_seconds():
229
+ raise PodLaunchTimeoutException("Pod did not leave 'Pending' phase within specified timeout")
230
+
227
231
  self.log.info("Still waiting for pod to start. The pod state is %s", pod.status.phase)
228
232
  await asyncio.sleep(self.startup_check_interval)
229
- delta = datetime.datetime.now(tz=datetime.timezone.utc) - self.trigger_start_time
230
- raise PodLaunchTimeoutException("Pod did not leave 'Pending' phase within specified timeout")
231
233
 
232
234
  async def _wait_for_container_completion(self) -> TriggerEvent:
233
235
  """
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: apache-airflow-providers-cncf-kubernetes
3
- Version: 8.3.0rc2
3
+ Version: 8.3.1rc1
4
4
  Summary: Provider package apache-airflow-providers-cncf-kubernetes for Apache Airflow
5
5
  Keywords: airflow-provider,cncf.kubernetes,airflow,integration
6
6
  Author-email: Apache Software Foundation <dev@airflow.apache.org>
@@ -24,13 +24,13 @@ Classifier: Topic :: System :: Monitoring
24
24
  Requires-Dist: aiofiles>=23.2.0
25
25
  Requires-Dist: apache-airflow>=2.7.0rc0
26
26
  Requires-Dist: asgiref>=3.5.2
27
- Requires-Dist: cryptography>=2.0.0
27
+ Requires-Dist: cryptography>=41.0.0
28
28
  Requires-Dist: google-re2>=1.0
29
29
  Requires-Dist: kubernetes>=28.1.0,<=29.0.0
30
30
  Requires-Dist: kubernetes_asyncio>=28.1.0,<=29.0.0
31
31
  Project-URL: Bug Tracker, https://github.com/apache/airflow/issues
32
- Project-URL: Changelog, https://airflow.apache.org/docs/apache-airflow-providers-cncf-kubernetes/8.3.0/changelog.html
33
- Project-URL: Documentation, https://airflow.apache.org/docs/apache-airflow-providers-cncf-kubernetes/8.3.0
32
+ Project-URL: Changelog, https://airflow.apache.org/docs/apache-airflow-providers-cncf-kubernetes/8.3.1/changelog.html
33
+ Project-URL: Documentation, https://airflow.apache.org/docs/apache-airflow-providers-cncf-kubernetes/8.3.1
34
34
  Project-URL: Slack Chat, https://s.apache.org/airflow-slack
35
35
  Project-URL: Source Code, https://github.com/apache/airflow
36
36
  Project-URL: Twitter, https://twitter.com/ApacheAirflow
@@ -80,7 +80,7 @@ Project-URL: YouTube, https://www.youtube.com/channel/UCSXwxpWZQ7XZ1WL3wqevChA/
80
80
 
81
81
  Package ``apache-airflow-providers-cncf-kubernetes``
82
82
 
83
- Release: ``8.3.0.rc2``
83
+ Release: ``8.3.1.rc1``
84
84
 
85
85
 
86
86
  `Kubernetes <https://kubernetes.io/>`__
@@ -93,7 +93,7 @@ This is a provider package for ``cncf.kubernetes`` provider. All classes for thi
93
93
  are in ``airflow.providers.cncf.kubernetes`` python package.
94
94
 
95
95
  You can find package information and changelog for the provider
96
- in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-cncf-kubernetes/8.3.0/>`_.
96
+ in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-cncf-kubernetes/8.3.1/>`_.
97
97
 
98
98
  Installation
99
99
  ------------
@@ -113,11 +113,11 @@ PIP package Version required
113
113
  ``aiofiles`` ``>=23.2.0``
114
114
  ``apache-airflow`` ``>=2.7.0``
115
115
  ``asgiref`` ``>=3.5.2``
116
- ``cryptography`` ``>=2.0.0``
116
+ ``cryptography`` ``>=41.0.0``
117
117
  ``kubernetes`` ``>=28.1.0,<=29.0.0``
118
118
  ``kubernetes_asyncio`` ``>=28.1.0,<=29.0.0``
119
119
  ``google-re2`` ``>=1.0``
120
120
  ====================== =====================
121
121
 
122
122
  The changelog for the provider package can be found in the
123
- `changelog <https://airflow.apache.org/docs/apache-airflow-providers-cncf-kubernetes/8.3.0/changelog.html>`_.
123
+ `changelog <https://airflow.apache.org/docs/apache-airflow-providers-cncf-kubernetes/8.3.1/changelog.html>`_.
@@ -1,7 +1,7 @@
1
- airflow/providers/cncf/kubernetes/LICENSE,sha256=ywUBpKZc7Jb96rVt5I3IDbg7dIJAbUSHkuoDcF3jbH4,13569
2
- airflow/providers/cncf/kubernetes/__init__.py,sha256=83NUJOgIajOFvcGj_jlqzbDKteeBk8DabPCS942gwss,1502
1
+ airflow/providers/cncf/kubernetes/LICENSE,sha256=FFb4jd2AXnOOf7XLP04pQW6jbdhG49TxlGY6fFpCV1Y,13609
2
+ airflow/providers/cncf/kubernetes/__init__.py,sha256=dMoDAIRbZ-DMwIALcZ5M3UYqbx6Gw7ZhN8Mo2VMrF-g,1502
3
3
  airflow/providers/cncf/kubernetes/callbacks.py,sha256=s3DRwNmQJSBlbeUwhSUJwfRFFMdJ9h_PnBzVl881r-8,4094
4
- airflow/providers/cncf/kubernetes/get_provider_info.py,sha256=C5KXj1Y6pL6nP9Qo48aMriiyrAi_B9jQCWx6qLEgWW0,17796
4
+ airflow/providers/cncf/kubernetes/get_provider_info.py,sha256=TPvVUx3tKOoc--63gWAdPPx0WnHFhR6InUNWAyHwuYM,17818
5
5
  airflow/providers/cncf/kubernetes/k8s_model.py,sha256=xmdFhX29DjegoZ-cq8-KDL9soVYXf4OpU6fAGr3cPTU,2101
6
6
  airflow/providers/cncf/kubernetes/kube_client.py,sha256=yflZxLousXA9d7t67KrEy55qzb1cUhEyy6yCPkEem28,5329
7
7
  airflow/providers/cncf/kubernetes/kube_config.py,sha256=FAmhZZ_Z2JtoVzL6wENSjcwrlwAenHttTX_Ild9aEms,5225
@@ -16,13 +16,13 @@ airflow/providers/cncf/kubernetes/template_rendering.py,sha256=AZesc6MDfpFHoN1Pv
16
16
  airflow/providers/cncf/kubernetes/backcompat/__init__.py,sha256=9hdXHABrVpkbpjZgUft39kOFL2xSGeG4GEua0Hmelus,785
17
17
  airflow/providers/cncf/kubernetes/backcompat/backwards_compat_converters.py,sha256=2jIehZsixt4ZGwTkj7kC8Uq3w8XwFAEzZV4g8SyIUZI,4340
18
18
  airflow/providers/cncf/kubernetes/cli/__init__.py,sha256=9hdXHABrVpkbpjZgUft39kOFL2xSGeG4GEua0Hmelus,785
19
- airflow/providers/cncf/kubernetes/cli/kubernetes_command.py,sha256=WUNJC37i028BPiOPtMP-EoDGXEKalxY-BBe77TCLNq0,6984
19
+ airflow/providers/cncf/kubernetes/cli/kubernetes_command.py,sha256=W49hsWZ3XWUJgFLte56tMNGqmOvcFitl7iFjmFR8Ezo,6990
20
20
  airflow/providers/cncf/kubernetes/decorators/__init__.py,sha256=mlJxuZLkd5x-iq2SBwD3mvRQpt3YR7wjz_nceyF1IaI,787
21
21
  airflow/providers/cncf/kubernetes/decorators/kubernetes.py,sha256=YGEdDNZhxeq8dpAaKpwMS2oGRvN1sN0xzf8mYotMk1E,5780
22
22
  airflow/providers/cncf/kubernetes/executors/__init__.py,sha256=mlJxuZLkd5x-iq2SBwD3mvRQpt3YR7wjz_nceyF1IaI,787
23
- airflow/providers/cncf/kubernetes/executors/kubernetes_executor.py,sha256=glBDmKffBSoQIvsC_0jL90bBdplDfz1m1gzEantcqFE,33257
23
+ airflow/providers/cncf/kubernetes/executors/kubernetes_executor.py,sha256=-BqHEVsXik6J-4JUJR02B9g19m3ENwJnxXvXzP0HT_I,34117
24
24
  airflow/providers/cncf/kubernetes/executors/kubernetes_executor_types.py,sha256=9rRhfRuujGtSE73Ax0kC12whZCgWF2m6j5w9G9e0F_I,1673
25
- airflow/providers/cncf/kubernetes/executors/kubernetes_executor_utils.py,sha256=m90GBbOMIlAM4Cf-N0pk3Ngz-s_p3-KMtE_buzwYg5s,23442
25
+ airflow/providers/cncf/kubernetes/executors/kubernetes_executor_utils.py,sha256=uJ_w7HoTRuMz4d_jS9dy9TPnE5UK_uF1Ig_7O1I6tvQ,23802
26
26
  airflow/providers/cncf/kubernetes/executors/local_kubernetes_executor.py,sha256=r5cvhj9NUTreQScn3Y8NlPFoYIa_NaAVQ27WqtOrJvw,10014
27
27
  airflow/providers/cncf/kubernetes/hooks/__init__.py,sha256=9hdXHABrVpkbpjZgUft39kOFL2xSGeG4GEua0Hmelus,785
28
28
  airflow/providers/cncf/kubernetes/hooks/kubernetes.py,sha256=2etfKXuBASdOEGP8VDxUL-l-6RRrS5JM9VJyYpL7bwk,31879
@@ -32,7 +32,7 @@ airflow/providers/cncf/kubernetes/operators/__init__.py,sha256=mlJxuZLkd5x-iq2SB
32
32
  airflow/providers/cncf/kubernetes/operators/custom_object_launcher.py,sha256=ZEXw_PqGItO47AEgGKqAqwFHFo-gb9-7jgEMRJgOfNU,15311
33
33
  airflow/providers/cncf/kubernetes/operators/job.py,sha256=qbhaytWCoi2XdkWZnDFfFPOt1CsNDk7wyrCWtn1nxlk,21432
34
34
  airflow/providers/cncf/kubernetes/operators/kubernetes_pod.py,sha256=EFwHEdEqq4I18BeV9hgp_GFxrLI78ihZAccbyGLSjtY,1269
35
- airflow/providers/cncf/kubernetes/operators/pod.py,sha256=Q1pjQ8-QJyhKv3abQAwfiYKz8MpXSrjIzfnb9No7-JE,52102
35
+ airflow/providers/cncf/kubernetes/operators/pod.py,sha256=WefwtVffBnP5jMHhXXILZPlS6je0yF99ATd7-Ig44oY,54027
36
36
  airflow/providers/cncf/kubernetes/operators/resource.py,sha256=ccbZQKB1B5N4Y-ruItacB5Q105Tc0uNSoEmUAaSCrGQ,7570
37
37
  airflow/providers/cncf/kubernetes/operators/spark_kubernetes.py,sha256=xHuxlcGeMg3afAHEW1JSU9oTdJJ_p07EiqUdA4oxJuU,13262
38
38
  airflow/providers/cncf/kubernetes/pod_template_file_examples/__init__.py,sha256=9hdXHABrVpkbpjZgUft39kOFL2xSGeG4GEua0Hmelus,785
@@ -48,13 +48,13 @@ airflow/providers/cncf/kubernetes/sensors/spark_kubernetes.py,sha256=AFml2CgXTV1
48
48
  airflow/providers/cncf/kubernetes/triggers/__init__.py,sha256=9hdXHABrVpkbpjZgUft39kOFL2xSGeG4GEua0Hmelus,785
49
49
  airflow/providers/cncf/kubernetes/triggers/job.py,sha256=kNxPW19yV6TcrXe6Xio_g38YneBGvAiMuHV43-nsUds,4060
50
50
  airflow/providers/cncf/kubernetes/triggers/kubernetes_pod.py,sha256=Cfq-gmdXsW2QGFiX-EYAGsCpN_MDvofbfr3bK7QfQho,1266
51
- airflow/providers/cncf/kubernetes/triggers/pod.py,sha256=_zNKBpp-gr7WIFp_TUTAsooopo9lHNW8wywra1M1icI,13670
51
+ airflow/providers/cncf/kubernetes/triggers/pod.py,sha256=XTIPCUr61WU81-s14l6xDqf1AvsOzpAct2Yk0IBd0xQ,13610
52
52
  airflow/providers/cncf/kubernetes/utils/__init__.py,sha256=ClZN0VPjWySdVwS_ktH7rrgL9VLAcs3OSJSB9s3zaYw,863
53
53
  airflow/providers/cncf/kubernetes/utils/delete_from.py,sha256=poObZSoEJwQyaYWilEURs8f4CDY2sn_pfwS31Lf579A,5195
54
54
  airflow/providers/cncf/kubernetes/utils/k8s_resource_iterator.py,sha256=-Pgc5i2WEDl7ZBvtJZ4eWDqqlSj8WdULqwUyOWmsRp8,1928
55
55
  airflow/providers/cncf/kubernetes/utils/pod_manager.py,sha256=g4JZpRJONuWFLdSlc7VyBtDGoST7H4W9LAt2nqNtDpg,33669
56
56
  airflow/providers/cncf/kubernetes/utils/xcom_sidecar.py,sha256=k6bdmVJ21OrAwGmWwledRrAmaty9ZrmbuM-IbaI4mqo,2519
57
- apache_airflow_providers_cncf_kubernetes-8.3.0rc2.dist-info/entry_points.txt,sha256=ByD3QJJyP9CfmTYtpNI1953akD38RUDgpGXLaq9vpOw,111
58
- apache_airflow_providers_cncf_kubernetes-8.3.0rc2.dist-info/WHEEL,sha256=EZbGkh7Ie4PoZfRQ8I0ZuP9VklN_TvcZ6DSE5Uar4z4,81
59
- apache_airflow_providers_cncf_kubernetes-8.3.0rc2.dist-info/METADATA,sha256=ImbCRcjMVpyryEgwUjZ4h0-U9cu0cX4mQcgWAukRWOU,5268
60
- apache_airflow_providers_cncf_kubernetes-8.3.0rc2.dist-info/RECORD,,
57
+ apache_airflow_providers_cncf_kubernetes-8.3.1rc1.dist-info/entry_points.txt,sha256=ByD3QJJyP9CfmTYtpNI1953akD38RUDgpGXLaq9vpOw,111
58
+ apache_airflow_providers_cncf_kubernetes-8.3.1rc1.dist-info/WHEEL,sha256=EZbGkh7Ie4PoZfRQ8I0ZuP9VklN_TvcZ6DSE5Uar4z4,81
59
+ apache_airflow_providers_cncf_kubernetes-8.3.1rc1.dist-info/METADATA,sha256=bH-PbaLkBH5xdyISoZ9l9RJrHPY0pLrnVYQv2mk2bBk,5270
60
+ apache_airflow_providers_cncf_kubernetes-8.3.1rc1.dist-info/RECORD,,