[ https://issues.apache.org/jira/browse/AIRFLOW-3402?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16701190#comment-16701190 ]
ASF GitHub Bot commented on AIRFLOW-3402: ----------------------------------------- kppullin opened a new pull request #4247: [AIRFLOW-3402] Support global k8s affinity and toleration configs URL: https://github.com/apache/incubator-airflow/pull/4247 Make sure you have checked _all_ steps below. ### Jira - [X] My PR addresses the following [Airflow Jira](https://issues.apache.org/jira/browse/AIRFLOW/) issues and references them in the PR title. For example, "\[AIRFLOW-XXX\] My Airflow PR" - https://issues.apache.org/jira/browse/AIRFLOW-3402 - In case you are fixing a typo in the documentation you can prepend your commit with \[AIRFLOW-XXX\], code changes always need a Jira issue. ### Description - [X] Here are some details about my PR, including screenshots of any UI changes: - In the airflow.cfg file, adds new `affinity` and `tolerations` config keys to the `kubernetes` section. - The values for these are required to be in JSON format, as they are dense. - Wires up support for `tolerations` for pods generated via the `KubernetesExecutor`. - Minor updates to function documentation. ### Tests - [X ] My PR adds the following unit tests __OR__ does not need testing for this extremely good reason: - Tests added to `test_kubernetes_executor.py` to validate the generated pod contains the defined affinity and tolerations config, for config coming from both the `kube_config` and `kube_executor_config` dicts. ### Commits - [X] My commits all reference Jira issues in their subject lines, and I have squashed multiple commits if they address the same issue. In addition, my commits follow the guidelines from "[How to write a good git commit message](http://chris.beams.io/posts/git-commit/)": 1. Subject is separated from body by a blank line 1. Subject is limited to 50 characters (not including Jira issue reference) 1. Subject does not end with a period 1. Subject uses the imperative mood ("add", not "adding") 1. Body wraps at 72 characters 1. Body explains "what" and "why", not "how" ### Documentation - [X] In case of new functionality, my PR adds documentation that describes how to use it. - When adding new operators/hooks/sensors, the autoclass documentation generation needs to be added. - Documentation added to the config file and inline in tests. ### Code Quality - [X] Passes `flake8` - These changes at least don't make things worse... ---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org > Set default kubernetes affinity and toleration settings in airflow.cfg > ---------------------------------------------------------------------- > > Key: AIRFLOW-3402 > URL: https://issues.apache.org/jira/browse/AIRFLOW-3402 > Project: Apache Airflow > Issue Type: Improvement > Components: kubernetes > Reporter: Kevin Pullin > Priority: Major > > Currently airflow supports setting kubernetes `affinity` and `toleration` > configuration inside dags using either a `KubernetesExecutorConfig` > definition or using the `KubernetesPodOperator`. > In order to reduce having to set and maintain this configuration in every > dag, it'd be useful to have the ability to set these globally in the > airflow.cfg file. One use case is to force all kubernetes pods to run on a > particular set of dedicated airflow nodes, which requires both affinity rules > and tolerations. -- This message was sent by Atlassian JIRA (v7.6.3#76005)