airflow.providers.cncf.kubernetes.utils.pod_manager
¶
Launches PODs.
Module Contents¶
Classes¶
Possible pod phases |
|
Protocol to define methods relied upon by KubernetesPodOperator. |
|
Used for returning the status of the pod and last log time when exiting from fetch_container_logs. |
|
Helper class for creating, monitoring, and otherwise interacting with Kubernetes pods |
Functions¶
|
Check if an Exception indicates a transient error and warrants retrying. |
|
Retrieves container status. |
|
Examines V1Pod |
|
Examines V1Pod |
|
- exception airflow.providers.cncf.kubernetes.utils.pod_manager.PodLaunchFailedException[source]¶
Bases:
airflow.exceptions.AirflowException
When pod launching fails in KubernetesPodOperator.
- airflow.providers.cncf.kubernetes.utils.pod_manager.should_retry_start_pod(exception)[source]¶
Check if an Exception indicates a transient error and warrants retrying.
- class airflow.providers.cncf.kubernetes.utils.pod_manager.PodPhase[source]¶
Possible pod phases See https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-phase.
- class airflow.providers.cncf.kubernetes.utils.pod_manager.PodOperatorHookProtocol[source]¶
Bases:
airflow.typing_compat.Protocol
Protocol to define methods relied upon by KubernetesPodOperator.
Subclasses of KubernetesPodOperator, such as GKEStartPodOperator, may use hooks that don’t extend KubernetesHook. We use this protocol to document the methods used by KPO and ensure that these methods exist on such other hooks.
- airflow.providers.cncf.kubernetes.utils.pod_manager.get_container_status(pod, container_name)[source]¶
Retrieves container status.
- airflow.providers.cncf.kubernetes.utils.pod_manager.container_is_running(pod, container_name)[source]¶
Examines V1Pod
pod
to determine whethercontainer_name
is running. If that container is present and running, returns True. Returns False otherwise.
- airflow.providers.cncf.kubernetes.utils.pod_manager.container_is_terminated(pod, container_name)[source]¶
Examines V1Pod
pod
to determine whethercontainer_name
is terminated. If that container is present and terminated, returns True. Returns False otherwise.
- airflow.providers.cncf.kubernetes.utils.pod_manager.get_container_termination_message(pod, container_name)[source]¶
- class airflow.providers.cncf.kubernetes.utils.pod_manager.PodLoggingStatus[source]¶
Used for returning the status of the pod and last log time when exiting from fetch_container_logs.
- class airflow.providers.cncf.kubernetes.utils.pod_manager.PodManager(kube_client)[source]¶
Bases:
airflow.utils.log.logging_mixin.LoggingMixin
Helper class for creating, monitoring, and otherwise interacting with Kubernetes pods for use with the KubernetesPodOperator.
- await_pod_start(pod, startup_timeout=120)[source]¶
Waits for the pod to reach phase other than
Pending
.- Parameters
pod (kubernetes.client.models.v1_pod.V1Pod) –
startup_timeout (int) – Timeout (in seconds) for startup of the pod (if pod is pending for too long, fails task)
- Returns
- Return type
None
- fetch_container_logs(pod, container_name, *, follow=False, since_time=None, post_termination_timeout=120)[source]¶
Follows the logs of container and streams to airflow logging.
Returns when container exits.
Between when the pod starts and logs being available, there might be a delay due to CSR not approved and signed yet. In such situation, ApiException is thrown. This is why we are retrying on this specific exception.
- await_container_completion(pod, container_name)[source]¶
Waits for the given container in the given pod to be completed.
- Parameters
pod (kubernetes.client.models.v1_pod.V1Pod) – pod spec that will be monitored
container_name (str) – name of the container within the pod to monitor
- await_pod_completion(pod)[source]¶
Monitors a pod and returns the final state.
- Parameters
pod (kubernetes.client.models.v1_pod.V1Pod) – pod spec that will be monitored
- Returns
tuple[State, str | None]
- Return type
kubernetes.client.models.v1_pod.V1Pod
- container_is_terminated(pod, container_name)[source]¶
Reads pod and checks if container is terminated.