airflow.providers.cncf.kubernetes.hooks.kubernetes¶
Attributes¶
Classes¶
Creates Kubernetes API connection. |
|
Hook to use Kubernetes SDK asynchronously. |
Module Contents¶
- airflow.providers.cncf.kubernetes.hooks.kubernetes.LOADING_KUBE_CONFIG_FILE_RESOURCE = 'Loading Kubernetes configuration file kube_config from {}...'[source]¶
- class airflow.providers.cncf.kubernetes.hooks.kubernetes.KubernetesHook(conn_id=default_conn_name, client_configuration=None, cluster_context=None, config_file=None, in_cluster=None, disable_verify_ssl=None, disable_tcp_keepalive=None)[source]¶
Bases:
airflow.hooks.base.BaseHook
,airflow.providers.cncf.kubernetes.utils.pod_manager.PodOperatorHookProtocol
Creates Kubernetes API connection.
use in cluster configuration by using extra field
in_cluster
in connectionuse custom config by providing path to the file using extra field
kube_config_path
in connection- use custom configuration by providing content of kubeconfig file via
extra field
kube_config
in connection
use default config by providing no extras
This hook check for configuration option in the above order. Once an option is present it will use this configuration.
See also
For more information about Kubernetes connection: Kubernetes cluster Connection
- Parameters:
conn_id (str | None) – The kubernetes connection to Kubernetes cluster.
client_configuration (kubernetes.client.Configuration | None) – Optional dictionary of client configuration params. Passed on to kubernetes client.
cluster_context (str | None) – Optionally specify a context to use (e.g. if you have multiple in your kubeconfig.
config_file (str | None) – Path to kubeconfig file.
in_cluster (bool | None) – Set to
True
if running from within a kubernetes cluster.disable_verify_ssl (bool | None) – Set to
True
if SSL verification should be disabled.disable_tcp_keepalive (bool | None) – Set to
True
if you want to disable keepalive logic.
- classmethod get_connection_form_widgets()[source]¶
Return connection widgets to add to connection form.
- classmethod get_connection(conn_id)[source]¶
Return requested connection.
If missing and conn_id is “kubernetes_default”, will return empty connection so that hook will default to cluster-derived credentials.
- property is_in_cluster: bool[source]¶
Expose whether the hook is configured with
load_incluster_config
or not.
- create_custom_object(group, version, plural, body, namespace=None)[source]¶
Create custom resource definition object in Kubernetes.
- get_custom_object(group, version, plural, name, namespace=None)[source]¶
Get custom resource definition object from Kubernetes.
- delete_custom_object(group, version, plural, name, namespace=None, **kwargs)[source]¶
Delete custom resource definition object from Kubernetes.
- get_xcom_sidecar_container_image()[source]¶
Return the xcom sidecar image that defined in the connection.
- get_xcom_sidecar_container_resources()[source]¶
Return the xcom sidecar resources that defined in the connection.
- get_pod_log_stream(pod_name, container='', namespace=None)[source]¶
Retrieve a log stream for a container in a kubernetes pod.
- get_pod_logs(pod_name, container='', namespace=None)[source]¶
Retrieve a container’s log from the specified pod.
- get_namespaced_pod_list(label_selector='', namespace=None, watch=False, **kwargs)[source]¶
Retrieve a list of Kind pod which belong default kubernetes namespace.
- get_deployment_status(name, namespace='default', **kwargs)[source]¶
Get status of existing Deployment.
- create_job(job, **kwargs)[source]¶
Run Job.
- Parameters:
job (kubernetes.client.models.V1Job) – A kubernetes Job object
- wait_until_job_complete(job_name, namespace, job_poll_interval=10)[source]¶
Block job of specified name and namespace until it is complete or failed.
- list_jobs_all_namespaces()[source]¶
Get list of Jobs from all namespaces.
- Returns:
V1JobList object
- Return type:
kubernetes.client.V1JobList
- list_jobs_from_namespace(namespace)[source]¶
Get list of Jobs from dedicated namespace.
- Parameters:
namespace (str) – Namespace of the Job.
- Returns:
V1JobList object
- Return type:
kubernetes.client.V1JobList
- is_job_complete(job)[source]¶
Check whether the given job is complete (with success or fail).
- Returns:
Boolean indicating that the given job is complete.
- Return type:
- apply_from_yaml_file(api_client=None, yaml_file=None, yaml_objects=None, verbose=False, namespace='default')[source]¶
Perform an action from a yaml file.
- Parameters:
api_client (Any) – A Kubernetes client application.
yaml_file (str | None) – Contains the path to yaml file.
yaml_objects (list[dict] | None) – List of YAML objects; used instead of reading the yaml_file.
verbose (bool) – If True, print confirmation from create action. Default is False.
namespace (str) – Contains the namespace to create all resources inside. The namespace must preexist otherwise the resource creation will fail.
- class airflow.providers.cncf.kubernetes.hooks.kubernetes.AsyncKubernetesHook(config_dict=None, *args, **kwargs)[source]¶
Bases:
KubernetesHook
Hook to use Kubernetes SDK asynchronously.
- async read_logs(name, namespace)[source]¶
Read logs inside the pod while starting containers inside.
All the logs will be outputted with its timestamp to track the logs after the execution of the pod is completed. The method is used for async output of the logs only in the pod failed it execution or the task was cancelled by the user.
- async wait_until_job_complete(name, namespace, poll_interval=10)[source]¶
Block job of specified name and namespace until it is complete or failed.
- async wait_until_container_complete(name, namespace, container_name, poll_interval=10)[source]¶
Wait for the given container in the given pod to be completed.