From 53a30aea58be799b9c3c5fd1de565fb86bf28c1d Mon Sep 17 00:00:00 2001 From: longxiucai Date: Tue, 15 Sep 2026 14:37:18 +0800 Subject: [PATCH] Fix kubelet.conf server line indentation (#13284) The lineinfile tasks that rewrite the server field in kubelet.conf replaced the whole line with a hard-coded indentation, corrupting the file when the existing entry was indented differently. Capture the original leading whitespace with a group regexp and restore it via backrefs so the rewrite preserves the surrounding YAML structure. Signed-off-by: longyuxiang --- roles/kubernetes/kubeadm/tasks/main.yml | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/roles/kubernetes/kubeadm/tasks/main.yml b/roles/kubernetes/kubeadm/tasks/main.yml index 5364c7b2c..9851b73d5 100644 --- a/roles/kubernetes/kubeadm/tasks/main.yml +++ b/roles/kubernetes/kubeadm/tasks/main.yml @@ -103,8 +103,9 @@ - name: Update server field in kubelet kubeconfig lineinfile: dest: "{{ kube_config_dir }}/kubelet.conf" - regexp: 'server:' - line: ' server: {{ kube_apiserver_endpoint }}' + regexp: '^(\s+)server: https.*' + line: '\1server: {{ kube_apiserver_endpoint }}' + backrefs: true backup: true when: - kubeadm_config_api_fqdn is not defined @@ -115,8 +116,9 @@ - name: Update server field in kubelet kubeconfig - external lb lineinfile: dest: "{{ kube_config_dir }}/kubelet.conf" - regexp: '^ server: https' - line: ' server: {{ kube_apiserver_endpoint }}' + regexp: '^(\s+)server: https.*' + line: '\1server: {{ kube_apiserver_endpoint }}' + backrefs: true backup: true when: - ('kube_control_plane' not in group_names)