: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)




