From dc9662d38463801ac9d36e14a2e7a19565106d91 Mon Sep 17 00:00:00 2001 From: YASWANTH PUPPALA Date: Sun, 23 Feb 2025 14:38:03 +0530 Subject: [PATCH 1/3] Resolved the issue #2358 --- kubernetes/base/watch/watch.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/kubernetes/base/watch/watch.py b/kubernetes/base/watch/watch.py index da81f97029..2de3ee9530 100644 --- a/kubernetes/base/watch/watch.py +++ b/kubernetes/base/watch/watch.py @@ -76,8 +76,7 @@ def iter_resp_lines(resp): line = buffer[:next_newline].decode( "utf-8", errors="replace") buffer = buffer[next_newline+1:] - if line: - yield line + yield line next_newline = buffer.find(b'\n') From 6bf7cccb58cfe52bbac08096196a56bf8cd544fe Mon Sep 17 00:00:00 2001 From: BhaskarSrinivasK Date: Sun, 23 Feb 2025 15:45:58 +0530 Subject: [PATCH 2/3] Resolved the issue #2356 --- kubernetes/base/config/exec_provider.py | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/kubernetes/base/config/exec_provider.py b/kubernetes/base/config/exec_provider.py index ae7049ada3..3149fdded1 100644 --- a/kubernetes/base/config/exec_provider.py +++ b/kubernetes/base/config/exec_provider.py @@ -15,6 +15,7 @@ import os import subprocess import sys +import platform from .config_exception import ConfigException @@ -83,15 +84,17 @@ def run(self, previous_response=None): kubernetes_exec_info['spec']['cluster'] = self.cluster.value self.env['KUBERNETES_EXEC_INFO'] = json.dumps(kubernetes_exec_info) + is_windows = platform.system() == "Windows" process = subprocess.Popen( - self.args, - stdout=subprocess.PIPE, - stderr=sys.stderr if is_interactive else subprocess.PIPE, - stdin=sys.stdin if is_interactive else None, - cwd=self.cwd, - env=self.env, - universal_newlines=True, - shell=self.shell) + self.args, + stdout=subprocess.PIPE, + stderr=sys.stderr if is_interactive else subprocess.PIPE, + stdin=sys.stdin if is_interactive else None, + cwd=self.cwd, + env=self.env, + universal_newlines=True, + shell=is_windows # Only use shell=True on Windows + ) (stdout, stderr) = process.communicate() exit_code = process.wait() if exit_code != 0: From 9569f77b6c2e77a362b62c0de9853225f059cb69 Mon Sep 17 00:00:00 2001 From: BhaskarSrinivasK Date: Sun, 23 Feb 2025 16:07:28 +0530 Subject: [PATCH 3/3] Resolved the issue #2355 --- kubernetes/base/stream/ws_client.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kubernetes/base/stream/ws_client.py b/kubernetes/base/stream/ws_client.py index 10c6c1bcd5..3a995cf0cc 100644 --- a/kubernetes/base/stream/ws_client.py +++ b/kubernetes/base/stream/ws_client.py @@ -469,7 +469,7 @@ def create_websocket(configuration, url, headers=None): header.append("sec-websocket-protocol: %s" % headers['sec-websocket-protocol']) else: - header.append("sec-websocket-protocol: v4.channel.k8s.io") + header.append("sec-websocket-protocol: v5.channel.k8s.io") if url.startswith('wss://') and configuration.verify_ssl: ssl_opts = {