From 4f2e4524b8f730bf40b62b249143380c457d7dc4 Mon Sep 17 00:00:00 2001
From: singeleaf <71816194+singeleaf@users.noreply.github.com>
Date: Tue, 14 Dec 2021 06:46:27 +0800
Subject: [PATCH] Fix external lb error (#8299)

---
 roles/kubernetes/preinstall/defaults/main.yml       | 7 +++++++
 roles/kubernetes/preinstall/tasks/0090-etchosts.yml | 2 +-
 2 files changed, 8 insertions(+), 1 deletion(-)

diff --git a/roles/kubernetes/preinstall/defaults/main.yml b/roles/kubernetes/preinstall/defaults/main.yml
index 10f22cb5b..f755adf6d 100644
--- a/roles/kubernetes/preinstall/defaults/main.yml
+++ b/roles/kubernetes/preinstall/defaults/main.yml
@@ -60,3 +60,10 @@ pkg_install_retries: 4
 
 # Check if access_ip responds to ping. Set false if your firewall blocks ICMP.
 ping_access_ip: true
+
+apiserver_loadbalancer_domain_name_host: |-
+  {% if inventory_hostname in groups['kube_control_plane'] -%}
+      127.0.0.1
+  {%- else -%}
+      {{ loadbalancer_apiserver.address }}
+  {%- endif %}
diff --git a/roles/kubernetes/preinstall/tasks/0090-etchosts.yml b/roles/kubernetes/preinstall/tasks/0090-etchosts.yml
index 32a2c8e77..6357975f2 100644
--- a/roles/kubernetes/preinstall/tasks/0090-etchosts.yml
+++ b/roles/kubernetes/preinstall/tasks/0090-etchosts.yml
@@ -29,7 +29,7 @@
   lineinfile:
     dest: /etc/hosts
     regexp: ".*{{ apiserver_loadbalancer_domain_name }}$"
-    line: "{{ loadbalancer_apiserver.address }} {{ apiserver_loadbalancer_domain_name }}"
+    line: "{{ apiserver_loadbalancer_domain_name_host }} {{ apiserver_loadbalancer_domain_name }}"
     state: present
     backup: yes
     unsafe_writes: yes
-- 
GitLab