This is an automated email from the ASF dual-hosted git repository. ash pushed a commit to branch v2-0-test in repository https://gitbox.apache.org/repos/asf/airflow.git
commit 7e28c975b66a942a7253092f2dff6619d7882f63 Author: Jed Cunningham <[email protected]> AuthorDate: Tue Apr 13 08:24:09 2021 -0600 Change default of `[kubernetes] enable_tcp_keepalive` to `True` (#15338) We've seen instances of connection resets happening, particularly in Azure, that are remedied by enabling tcp_keepalive. Enabling it by default should be safe and sane regardless of where we are running. (cherry picked from commit 6e31465a30dfd17e2e1409a81600b2e83c910036) --- airflow/config_templates/config.yml | 2 +- airflow/config_templates/default_airflow.cfg | 2 +- airflow/kubernetes/kube_client.py | 8 ++++---- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/airflow/config_templates/config.yml b/airflow/config_templates/config.yml index 32694e4..c92acf8 100644 --- a/airflow/config_templates/config.yml +++ b/airflow/config_templates/config.yml @@ -2065,7 +2065,7 @@ version_added: ~ type: boolean example: ~ - default: "False" + default: "True" - name: tcp_keep_idle description: | When the `enable_tcp_keepalive` option is enabled, TCP probes a connection that has diff --git a/airflow/config_templates/default_airflow.cfg b/airflow/config_templates/default_airflow.cfg index 7685457..bc4d54a 100644 --- a/airflow/config_templates/default_airflow.cfg +++ b/airflow/config_templates/default_airflow.cfg @@ -1014,7 +1014,7 @@ delete_option_kwargs = # 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. -enable_tcp_keepalive = False +enable_tcp_keepalive = True # When the `enable_tcp_keepalive` option is enabled, TCP probes a connection that has # been idle for `tcp_keep_idle` seconds. diff --git a/airflow/kubernetes/kube_client.py b/airflow/kubernetes/kube_client.py index 7e8c5e8..1e65ae5 100644 --- a/airflow/kubernetes/kube_client.py +++ b/airflow/kubernetes/kube_client.py @@ -80,9 +80,9 @@ def _enable_tcp_keepalive() -> None: from urllib3.connection import HTTPConnection, HTTPSConnection - tcp_keep_idle = conf.getint('kubernetes', 'tcp_keep_idle', fallback=120) - tcp_keep_intvl = conf.getint('kubernetes', 'tcp_keep_intvl', fallback=30) - tcp_keep_cnt = conf.getint('kubernetes', 'tcp_keep_cnt', fallback=6) + tcp_keep_idle = conf.getint('kubernetes', 'tcp_keep_idle') + tcp_keep_intvl = conf.getint('kubernetes', 'tcp_keep_intvl') + tcp_keep_cnt = conf.getint('kubernetes', 'tcp_keep_cnt') socket_options = [ (socket.SOL_SOCKET, socket.SO_KEEPALIVE, 1), @@ -120,7 +120,7 @@ def get_kube_client( if config_file is None: config_file = conf.get('kubernetes', 'config_file', fallback=None) - if conf.getboolean('kubernetes', 'enable_tcp_keepalive', fallback=False): + if conf.getboolean('kubernetes', 'enable_tcp_keepalive'): _enable_tcp_keepalive() client_conf = _get_kube_config(in_cluster, cluster_context, config_file)
