From ada3b9a2c7f3fbf0725e96861fa67a72417b0ef2 Mon Sep 17 00:00:00 2001 From: Jean-Eudes Peloye Date: Wed, 17 Jul 2024 14:16:06 +0200 Subject: [PATCH 1/3] fix: use instance base_container_name to fetch logs on trigger_reentry --- airflow/providers/cncf/kubernetes/operators/pod.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/airflow/providers/cncf/kubernetes/operators/pod.py b/airflow/providers/cncf/kubernetes/operators/pod.py index 8df4137a288fd..60508dfd862b1 100644 --- a/airflow/providers/cncf/kubernetes/operators/pod.py +++ b/airflow/providers/cncf/kubernetes/operators/pod.py @@ -766,7 +766,7 @@ def trigger_reentry(self, context: Context, event: dict[str, Any]) -> Any: pod_log_status = self.pod_manager.fetch_container_logs( pod=self.pod, - container_name=self.BASE_CONTAINER_NAME, + container_name=self.base_container_name, follow=follow, since_time=last_log_time, ) From c45c093247e8fc2bce2cad6e444fa87d82d71d47 Mon Sep 17 00:00:00 2001 From: Jean-Eudes Peloye Date: Wed, 17 Jul 2024 14:20:41 +0200 Subject: [PATCH 2/3] chore: use self.base_container_name to set self.container_logs value --- airflow/providers/cncf/kubernetes/operators/pod.py | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/airflow/providers/cncf/kubernetes/operators/pod.py b/airflow/providers/cncf/kubernetes/operators/pod.py index 60508dfd862b1..158b7b39887ce 100644 --- a/airflow/providers/cncf/kubernetes/operators/pod.py +++ b/airflow/providers/cncf/kubernetes/operators/pod.py @@ -30,7 +30,7 @@ from contextlib import AbstractContextManager from enum import Enum from functools import cached_property -from typing import TYPE_CHECKING, Any, Callable, Iterable, Sequence +from typing import TYPE_CHECKING, Any, Callable, Iterable, Literal, Sequence import kubernetes import tenacity @@ -91,7 +91,6 @@ if TYPE_CHECKING: import jinja2 from pendulum import DateTime - from typing_extensions import Literal from airflow.providers.cncf.kubernetes.secret import Secret from airflow.utils.context import Context @@ -281,7 +280,8 @@ def __init__( startup_timeout_seconds: int = 120, startup_check_interval_seconds: int = 5, get_logs: bool = True, - container_logs: Iterable[str] | str | Literal[True] = BASE_CONTAINER_NAME, + base_container_name: str | None = None, + container_logs: Iterable[str] | str | Literal[True] | None = None, image_pull_policy: str | None = None, annotations: dict | None = None, container_resources: k8s.V1ResourceRequirements | None = None, @@ -311,7 +311,6 @@ def __init__( termination_grace_period: int | None = None, configmaps: list[str] | None = None, skip_on_exit_code: int | Container[int] | None = None, - base_container_name: str | None = None, deferrable: bool = conf.getboolean("operators", "default_deferrable", fallback=False), poll_interval: float = 2, log_pod_spec_on_failure: bool = True, @@ -353,9 +352,9 @@ def __init__( self.cluster_context = cluster_context self.reattach_on_restart = reattach_on_restart self.get_logs = get_logs - self.container_logs = container_logs - if self.container_logs == KubernetesPodOperator.BASE_CONTAINER_NAME: - self.container_logs = base_container_name or self.BASE_CONTAINER_NAME + self.base_container_name = base_container_name or self.BASE_CONTAINER_NAME + # container_logs defaults to the provided base container name, or operator-level BASE_CONTAINER_NAME + self.container_logs = container_logs or self.base_container_name self.image_pull_policy = image_pull_policy self.node_selector = node_selector or {} self.annotations = annotations or {} @@ -394,7 +393,6 @@ def __init__( if skip_on_exit_code is not None else [] ) - self.base_container_name = base_container_name or self.BASE_CONTAINER_NAME self.deferrable = deferrable self.poll_interval = poll_interval self.remote_pod: k8s.V1Pod | None = None From 815c2059586b1be91a1fbd1f9b51186f1a099182 Mon Sep 17 00:00:00 2001 From: Jean-Eudes Peloye Date: Sun, 4 Aug 2024 16:56:47 +0200 Subject: [PATCH 3/3] Move BASE_CONTAINER_NAME as default value for base_container_name arg --- airflow/providers/cncf/kubernetes/operators/pod.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/airflow/providers/cncf/kubernetes/operators/pod.py b/airflow/providers/cncf/kubernetes/operators/pod.py index 158b7b39887ce..8ea512552cd36 100644 --- a/airflow/providers/cncf/kubernetes/operators/pod.py +++ b/airflow/providers/cncf/kubernetes/operators/pod.py @@ -280,7 +280,7 @@ def __init__( startup_timeout_seconds: int = 120, startup_check_interval_seconds: int = 5, get_logs: bool = True, - base_container_name: str | None = None, + base_container_name: str = BASE_CONTAINER_NAME, container_logs: Iterable[str] | str | Literal[True] | None = None, image_pull_policy: str | None = None, annotations: dict | None = None, @@ -352,7 +352,7 @@ def __init__( self.cluster_context = cluster_context self.reattach_on_restart = reattach_on_restart self.get_logs = get_logs - self.base_container_name = base_container_name or self.BASE_CONTAINER_NAME + self.base_container_name = base_container_name # container_logs defaults to the provided base container name, or operator-level BASE_CONTAINER_NAME self.container_logs = container_logs or self.base_container_name self.image_pull_policy = image_pull_policy