providers/cncf/kubernetes/provider.yaml (346 lines of code) (raw):

# Licensed to the Apache Software Foundation (ASF) under one # or more contributor license agreements. See the NOTICE file # distributed with this work for additional information # regarding copyright ownership. The ASF licenses this file # to you under the Apache License, Version 2.0 (the # "License"); you may not use this file except in compliance # with the License. You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, # software distributed under the License is distributed on an # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY # KIND, either express or implied. See the License for the # specific language governing permissions and limitations # under the License. --- package-name: apache-airflow-providers-cncf-kubernetes name: Kubernetes description: | `Kubernetes <https://kubernetes.io/>`__ state: ready source-date-epoch: 1744788926 # Note that those versions are maintained by release manager - do not update them manually # with the exception of case where other provider in sources has >= new provider version. # In such case adding >= NEW_VERSION and bumping to NEW_VERSION in a provider have # to be done in the same PR versions: - 10.4.3 - 10.4.2 - 10.4.1 - 10.4.0 - 10.3.1 - 10.3.0 - 10.1.0 - 10.0.1 - 10.0.0 - 9.0.1 - 9.0.0 - 8.4.2 - 8.4.1 - 8.4.0 - 8.3.4 - 8.3.3 - 8.3.2 - 8.3.1 - 8.3.0 - 8.2.0 - 8.1.1 - 8.1.0 - 8.0.1 - 8.0.0 - 7.14.0 - 7.13.0 - 7.12.0 - 7.11.0 - 7.10.0 - 7.9.0 - 7.8.0 - 7.7.0 - 7.6.0 - 7.5.1 - 7.5.0 - 7.4.2 - 7.4.1 - 7.4.0 - 7.3.0 - 7.2.0 - 7.1.0 - 7.0.0 - 6.1.0 - 6.0.0 - 5.3.0 - 5.2.2 - 5.2.1 - 5.2.0 - 5.1.1 - 5.1.0 - 5.0.0 - 4.4.0 - 4.3.0 - 4.2.0 - 4.1.0 - 4.0.2 - 4.0.1 - 4.0.0 - 3.1.2 - 3.1.1 - 3.1.0 - 3.0.2 - 3.0.1 - 3.0.0 - 2.2.0 - 2.1.0 - 2.0.3 - 2.0.2 - 2.0.1 - 2.0.0 - 1.2.0 - 1.1.0 - 1.0.2 - 1.0.1 - 1.0.0 integrations: - integration-name: Kubernetes external-doc-url: https://kubernetes.io/ how-to-guide: - /docs/apache-airflow-providers-cncf-kubernetes/operators.rst logo: /docs/integration-logos/Kubernetes.png tags: [software] - integration-name: Spark on Kubernetes external-doc-url: https://github.com/GoogleCloudPlatform/spark-on-k8s-operator logo: /docs/integration-logos/Spark-On-Kubernetes.png tags: [software] operators: - integration-name: Kubernetes python-modules: - airflow.providers.cncf.kubernetes.operators.custom_object_launcher - airflow.providers.cncf.kubernetes.operators.kueue - airflow.providers.cncf.kubernetes.operators.pod - airflow.providers.cncf.kubernetes.operators.spark_kubernetes - airflow.providers.cncf.kubernetes.operators.resource - airflow.providers.cncf.kubernetes.operators.job sensors: - integration-name: Kubernetes python-modules: - airflow.providers.cncf.kubernetes.sensors.spark_kubernetes hooks: - integration-name: Kubernetes python-modules: - airflow.providers.cncf.kubernetes.hooks.kubernetes triggers: - integration-name: Kubernetes python-modules: - airflow.providers.cncf.kubernetes.triggers.pod - airflow.providers.cncf.kubernetes.triggers.job connection-types: - hook-class-name: airflow.providers.cncf.kubernetes.hooks.kubernetes.KubernetesHook connection-type: kubernetes task-decorators: - class-name: airflow.providers.cncf.kubernetes.decorators.kubernetes.kubernetes_task name: kubernetes - class-name: airflow.providers.cncf.kubernetes.decorators.kubernetes_cmd.kubernetes_cmd_task name: kubernetes_cmd config: local_kubernetes_executor: description: | This section only applies if you are using the ``LocalKubernetesExecutor`` in ``[core]`` section above options: kubernetes_queue: description: | Define when to send a task to ``KubernetesExecutor`` when using ``LocalKubernetesExecutor``. When the queue of a task is the value of ``kubernetes_queue`` (default ``kubernetes``), the task is executed via ``KubernetesExecutor``, otherwise via ``LocalExecutor`` version_added: ~ type: string example: ~ default: "kubernetes" kubernetes_executor: description: ~ options: api_client_retry_configuration: description: | Kwargs to override the default urllib3 Retry used in the kubernetes API client version_added: ~ type: string example: '{ "total": 3, "backoff_factor": 0.5 }' default: "" logs_task_metadata: description: | Flag to control the information added to kubernetes executor logs for better traceability version_added: ~ type: boolean example: ~ default: "False" pod_template_file: description: | Path to the YAML pod file that forms the basis for KubernetesExecutor workers. version_added: ~ type: string example: ~ default: "" see_also: ":ref:`concepts:pod_template_file`" worker_container_repository: description: | The repository of the Kubernetes Image for the Worker to Run version_added: ~ type: string example: ~ default: "" worker_container_tag: description: | The tag of the Kubernetes Image for the Worker to Run version_added: ~ type: string example: ~ default: "" namespace: description: | The Kubernetes namespace where airflow workers should be created. Defaults to ``default`` version_added: ~ type: string example: ~ default: "default" delete_worker_pods: description: | If True, all worker pods will be deleted upon termination version_added: ~ type: string example: ~ default: "True" delete_worker_pods_on_failure: description: | If False (and delete_worker_pods is True), failed worker pods will not be deleted so users can investigate them. This only prevents removal of worker pods where the worker itself failed, not when the task it ran failed. version_added: ~ type: string example: ~ default: "False" worker_pod_pending_fatal_container_state_reasons: description: | If the worker pods are in a pending state due to a fatal container state reasons, then fail the task and delete the worker pod if delete_worker_pods is True and delete_worker_pods_on_failure is True. version_added: 8.1.0 type: string example: ~ default: 'CreateContainerConfigError,ErrImagePull,CreateContainerError,ImageInspectError, InvalidImageName' worker_pods_creation_batch_size: description: | Number of Kubernetes Worker Pod creation calls per scheduler loop. Note that the current default of "1" will only launch a single pod per-heartbeat. It is HIGHLY recommended that users increase this number to match the tolerance of their kubernetes cluster for better performance. version_added: ~ type: string example: ~ default: "1" multi_namespace_mode: description: | Allows users to launch pods in multiple namespaces. Will require creating a cluster-role for the scheduler, or use multi_namespace_mode_namespace_list configuration. version_added: ~ type: boolean example: ~ default: "False" multi_namespace_mode_namespace_list: description: | If multi_namespace_mode is True while scheduler does not have a cluster-role, give the list of namespaces where the scheduler will schedule jobs Scheduler needs to have the necessary permissions in these namespaces. version_added: ~ type: string example: ~ default: "" in_cluster: description: | Use the service account kubernetes gives to pods to connect to kubernetes cluster. It's intended for clients that expect to be running inside a pod running on kubernetes. It will raise an exception if called from a process not running in a kubernetes environment. version_added: ~ type: string example: ~ default: "True" cluster_context: description: | When running with in_cluster=False change the default cluster_context or config_file options to Kubernetes client. Leave blank these to use default behaviour like ``kubectl`` has. version_added: ~ type: string example: ~ default: ~ config_file: description: | Path to the kubernetes configfile to be used when ``in_cluster`` is set to False version_added: ~ type: string example: ~ default: ~ kube_client_request_args: description: | Keyword parameters to pass while calling a kubernetes client core_v1_api methods from Kubernetes Executor provided as a single line formatted JSON dictionary string. List of supported params are similar for all core_v1_apis, hence a single config variable for all apis. See: https://raw.githubusercontent.com/kubernetes-client/python/41f11a09995efcd0142e25946adc7591431bfb2f/kubernetes/client/api/core_v1_api.py version_added: ~ type: string example: ~ default: "" delete_option_kwargs: description: | Optional keyword arguments to pass to the ``delete_namespaced_pod`` kubernetes client ``core_v1_api`` method when using the Kubernetes Executor. This should be an object and can contain any of the options listed in the ``v1DeleteOptions`` class defined here: https://github.com/kubernetes-client/python/blob/41f11a09995efcd0142e25946adc7591431bfb2f/kubernetes/client/models/v1_delete_options.py#L19 version_added: ~ type: string example: '{"grace_period_seconds": 10}' default: "" enable_tcp_keepalive: description: | Enables TCP keepalive mechanism. This prevents Kubernetes API requests to hang indefinitely when idle connection is time-outed on services like cloud load balancers or firewalls. version_added: ~ type: boolean example: ~ default: "True" tcp_keep_idle: description: | When the `enable_tcp_keepalive` option is enabled, TCP probes a connection that has been idle for `tcp_keep_idle` seconds. version_added: ~ type: integer example: ~ default: "120" tcp_keep_intvl: description: | When the `enable_tcp_keepalive` option is enabled, if Kubernetes API does not respond to a keepalive probe, TCP retransmits the probe after `tcp_keep_intvl` seconds. version_added: ~ type: integer example: ~ default: "30" tcp_keep_cnt: description: | When the `enable_tcp_keepalive` option is enabled, if Kubernetes API does not respond to a keepalive probe, TCP retransmits the probe `tcp_keep_cnt number` of times before a connection is considered to be broken. version_added: ~ type: integer example: ~ default: "6" verify_ssl: description: | Set this to false to skip verifying SSL certificate of Kubernetes python client. version_added: ~ type: boolean example: ~ default: "True" ssl_ca_cert: description: | Path to a CA certificate to be used by the Kubernetes client to verify the server's SSL certificate. version_added: ~ type: string example: ~ default: "" task_publish_max_retries: description: | The Maximum number of retries for queuing the task to the kubernetes scheduler when failing due to Kube API exceeded quota errors before giving up and marking task as failed. -1 for unlimited times. version_added: ~ type: integer example: ~ default: "0" executors: - airflow.providers.cncf.kubernetes.executors.kubernetes_executor.KubernetesExecutor