| :mod:`airflow.contrib.operators.kubernetes_pod_operator` |
| ======================================================== |
| |
| .. py:module:: airflow.contrib.operators.kubernetes_pod_operator |
| |
| .. autoapi-nested-parse:: |
| |
| Executes task in a Kubernetes POD |
| |
| |
| |
| Module Contents |
| --------------- |
| |
| .. py:class:: KubernetesPodOperator(namespace, image, name, cmds=None, arguments=None, ports=None, volume_mounts=None, volumes=None, env_vars=None, secrets=None, in_cluster=None, cluster_context=None, labels=None, startup_timeout_seconds=120, get_logs=True, image_pull_policy='IfNotPresent', annotations=None, resources=None, affinity=None, config_file=None, node_selectors=None, image_pull_secrets=None, service_account_name='default', is_delete_operator_pod=False, hostnetwork=False, tolerations=None, configmaps=None, security_context=None, pod_runtime_info_envs=None, dnspolicy=None, do_xcom_push=False, *args, **kwargs) |
| |
| Bases: :class:`airflow.models.BaseOperator` |
| |
| Execute a task in a Kubernetes Pod |
| |
| :param image: Docker image you wish to launch. Defaults to hub.docker.com, |
| but fully qualified URLS will point to custom repositories. |
| :type image: str |
| :param namespace: the namespace to run within kubernetes. |
| :type namespace: str |
| :param cmds: entrypoint of the container. (templated) |
| The docker images's entrypoint is used if this is not provided. |
| :type cmds: list[str] |
| :param arguments: arguments of the entrypoint. (templated) |
| The docker image's CMD is used if this is not provided. |
| :type arguments: list[str] |
| :param image_pull_policy: Specify a policy to cache or always pull an image. |
| :type image_pull_policy: str |
| :param image_pull_secrets: Any image pull secrets to be given to the pod. |
| If more than one secret is required, provide a |
| comma separated list: secret_a,secret_b |
| :type image_pull_secrets: str |
| :param ports: ports for launched pod. |
| :type ports: list[airflow.contrib.kubernetes.pod.Port] |
| :param volume_mounts: volumeMounts for launched pod. |
| :type volume_mounts: list[airflow.contrib.kubernetes.volume_mount.VolumeMount] |
| :param volumes: volumes for launched pod. Includes ConfigMaps and PersistentVolumes. |
| :type volumes: list[airflow.contrib.kubernetes.volume.Volume] |
| :param labels: labels to apply to the Pod. |
| :type labels: dict |
| :param startup_timeout_seconds: timeout in seconds to startup the pod. |
| :type startup_timeout_seconds: int |
| :param name: name of the pod in which the task will run, will be used to |
| generate a pod id (DNS-1123 subdomain, containing only [a-z0-9.-]). |
| :type name: str |
| :param env_vars: Environment variables initialized in the container. (templated) |
| :type env_vars: dict |
| :param secrets: Kubernetes secrets to inject in the container. |
| They can be exposed as environment vars or files in a volume |
| :type secrets: list[airflow.contrib.kubernetes.secret.Secret] |
| :param in_cluster: run kubernetes client with in_cluster configuration. |
| :type in_cluster: bool |
| :param cluster_context: context that points to kubernetes cluster. |
| Ignored when in_cluster is True. If None, current-context is used. |
| :type cluster_context: str |
| :param get_logs: get the stdout of the container as logs of the tasks. |
| :type get_logs: bool |
| :param annotations: non-identifying metadata you can attach to the Pod. |
| Can be a large range of data, and can include characters |
| that are not permitted by labels. |
| :type annotations: dict |
| :param resources: A dict containing resources requests and limits. |
| Possible keys are request_memory, request_cpu, limit_memory, limit_cpu, |
| and limit_gpu, which will be used to generate airflow.kubernetes.pod.Resources. |
| See also kubernetes.io/docs/concepts/configuration/manage-compute-resources-container |
| :type resources: dict |
| :param affinity: A dict containing a group of affinity scheduling rules. |
| :type affinity: dict |
| :param node_selectors: A dict containing a group of scheduling rules. |
| :type node_selectors: dict |
| :param config_file: The path to the Kubernetes config file. (templated) |
| :type config_file: str |
| :param do_xcom_push: If do_xcom_push is True, the content of the file |
| /airflow/xcom/return.json in the container will also be pushed to an |
| XCom when the container completes. |
| :type do_xcom_push: bool |
| :param is_delete_operator_pod: What to do when the pod reaches its final |
| state, or the execution is interrupted. |
| If False (default): do nothing, If True: delete the pod |
| :type is_delete_operator_pod: bool |
| :param hostnetwork: If True enable host networking on the pod. |
| :type hostnetwork: bool |
| :param tolerations: A list of kubernetes tolerations. |
| :type tolerations: list tolerations |
| :param configmaps: A list of configmap names objects that we |
| want mount as env variables. |
| :type configmaps: list[str] |
| :param pod_runtime_info_envs: environment variables about |
| pod runtime information (ip, namespace, nodeName, podName). |
| :type pod_runtime_info_envs: list[PodRuntimeEnv] |
| :param security_context: security options the pod should run with (PodSecurityContext). |
| :type security_context: dict |
| :param dnspolicy: dnspolicy for the pod. |
| :type dnspolicy: str |
| |
| .. attribute:: template_fields |
| :annotation: = ['cmds', 'arguments', 'env_vars', 'config_file'] |
| |
| |
| |
| |
| .. method:: execute(self, context) |
| |
| |
| |
| |
| .. method:: _set_resources(self, resources) |
| |
| |
| |
| |
| .. method:: _set_name(self, name) |
| |
| |
| |
| |