From 80b3345ed85342351bb34ad0d6c6f3479fd2271a Mon Sep 17 00:00:00 2001 From: ChengHao Yang <17496418+tico88612@users.noreply.github.com> Date: Mon, 6 Jul 2026 13:26:20 +0800 Subject: [PATCH] fix: cri-dockerd doesn't support ExtendWebSocketsToKubelet Disabled the FG ExtendWebSocketsToKubelet when `container_manager` set `docker`, let CI can passed. --- .../templates/kubeadm-config.v1beta4.yaml.j2 | 11 ++++++++++- .../node/templates/kubelet-config.v1beta1.yaml.j2 | 14 ++++++++++++-- 2 files changed, 22 insertions(+), 3 deletions(-) diff --git a/roles/kubernetes/control-plane/templates/kubeadm-config.v1beta4.yaml.j2 b/roles/kubernetes/control-plane/templates/kubeadm-config.v1beta4.yaml.j2 index edd5e9fd8..6c8827003 100644 --- a/roles/kubernetes/control-plane/templates/kubeadm-config.v1beta4.yaml.j2 +++ b/roles/kubernetes/control-plane/templates/kubeadm-config.v1beta4.yaml.j2 @@ -586,9 +586,18 @@ clusterDNS: {% for dns_address in kubelet_cluster_dns %} - {{ dns_address }} {% endfor %} -{% if kubelet_feature_gates or kube_feature_gates %} +{% set disable_websockets_to_kubelet = (container_manager == 'docker' and kube_version is version('1.36.0', '>=')) %} {% set feature_gates = ( kubelet_feature_gates | default(kube_feature_gates, true) ) %} +{% if disable_websockets_to_kubelet %} +{% set feature_gates = feature_gates | reject('search', '^ExtendWebSocketsToKubelet=') | list %} +{% endif %} +{% if feature_gates or disable_websockets_to_kubelet %} featureGates: +{% if disable_websockets_to_kubelet %} + # cri-dockerd does not support WebSocket streaming + # https://github.com/kubernetes-sigs/kubespray/issues/13360 + ExtendWebSocketsToKubelet: false +{% endif %} {% for feature in feature_gates %} {{ feature | replace("=", ": ") }} {% endfor %} diff --git a/roles/kubernetes/node/templates/kubelet-config.v1beta1.yaml.j2 b/roles/kubernetes/node/templates/kubelet-config.v1beta1.yaml.j2 index cce3a0989..5418f1a24 100644 --- a/roles/kubernetes/node/templates/kubelet-config.v1beta1.yaml.j2 +++ b/roles/kubernetes/node/templates/kubelet-config.v1beta1.yaml.j2 @@ -81,9 +81,19 @@ resolvConf: "{{ kube_resolv_conf }}" {% if kubelet_config_extra_args %} {{ kubelet_config_extra_args | to_nice_yaml(indent=2) }} {% endif %} -{% if kubelet_feature_gates or kube_feature_gates %} +{% set disable_websockets_to_kubelet = (container_manager == 'docker' and kube_version is version('1.36.0', '>=')) %} +{% set kubelet_gates = (kubelet_feature_gates | default(kube_feature_gates, true)) %} +{% if disable_websockets_to_kubelet %} +{% set kubelet_gates = kubelet_gates | reject('search', '^ExtendWebSocketsToKubelet=') | list %} +{% endif %} +{% if kubelet_gates or disable_websockets_to_kubelet %} featureGates: -{% for feature in (kubelet_feature_gates | default(kube_feature_gates, true)) %} +{% if disable_websockets_to_kubelet %} + # cri-dockerd does not support WebSocket streaming + # https://github.com/kubernetes-sigs/kubespray/issues/13360 + ExtendWebSocketsToKubelet: false +{% endif %} +{% for feature in kubelet_gates %} {{ feature | replace("=", ": ") }} {% endfor %} {% endif %}