From 15c8a4768d7fb93bc2738413ea4fb2374485f73e Mon Sep 17 00:00:00 2001 From: Max Gautier Date: Mon, 7 Jul 2025 11:53:26 +0000 Subject: [PATCH] Do not alter etc/hosts (#12382) This is no longer needed, likely for a long time. --- roles/kubernetes/preinstall/defaults/main.yml | 20 ----- .../preinstall/tasks/0090-etchosts.yml | 80 ------------------- roles/kubernetes/preinstall/tasks/main.yml | 6 -- roles/reset/tasks/main.yml | 1 + 4 files changed, 1 insertion(+), 106 deletions(-) delete mode 100644 roles/kubernetes/preinstall/tasks/0090-etchosts.yml diff --git a/roles/kubernetes/preinstall/defaults/main.yml b/roles/kubernetes/preinstall/defaults/main.yml index c4c765444..e8d3e9540 100644 --- a/roles/kubernetes/preinstall/defaults/main.yml +++ b/roles/kubernetes/preinstall/defaults/main.yml @@ -28,28 +28,8 @@ kubelet_flexvolumes_plugins_dir: /usr/libexec/kubernetes/kubelet-plugins/volume/ # for hostnet pods and infra needs resolveconf_cloud_init_conf: /etc/resolveconf_cloud_init.conf -# All inventory hostnames will be written into each /etc/hosts file. -populate_inventory_to_hosts_file: true -# K8S Api FQDN will be written into /etc/hosts file. -populate_loadbalancer_apiserver_to_hosts_file: true -# etc_hosts_localhost_entries will be written into /etc/hosts file. -populate_localhost_entries_to_hosts_file: true - sysctl_file_path: "/etc/sysctl.d/99-sysctl.conf" -etc_hosts_localhost_entries: - 127.0.0.1: - expected: - - localhost - - localhost.localdomain - ::1: - expected: - - localhost6 - - localhost6.localdomain - unexpected: - - localhost - - localhost.localdomain - # Minimal memory requirement in MB for safety checks minimal_node_memory_mb: 1024 minimal_master_memory_mb: 1500 diff --git a/roles/kubernetes/preinstall/tasks/0090-etchosts.yml b/roles/kubernetes/preinstall/tasks/0090-etchosts.yml deleted file mode 100644 index 2952a6313..000000000 --- a/roles/kubernetes/preinstall/tasks/0090-etchosts.yml +++ /dev/null @@ -1,80 +0,0 @@ ---- -- name: Hosts | create hosts list from inventory - set_fact: - etc_hosts_inventory_block: |- - {% for item in (groups['k8s_cluster'] + groups['etcd'] | default([]) + groups['calico_rr'] | default([])) | unique %} - {{ hostvars[item]['main_access_ip'] }} {{ hostvars[item]['ansible_hostname'] | default(item) }}.{{ dns_domain }} {{ hostvars[item]['ansible_hostname'] | default(item) }} - {% if ipv4_stack and ipv6_stack %} - {{ hostvars[item]['access_ip6'] | default(hostvars[item]['ip6'] | default(hostvars[item]['ansible_default_ipv6']['address'])) }} {{ hostvars[item]['ansible_hostname'] | default(item) }}.{{ dns_domain }} {{ hostvars[item]['ansible_hostname'] | default(item) }} - {% endif %} - {% endfor %} - delegate_to: localhost - connection: local - delegate_facts: true - run_once: true - -- name: Hosts | populate inventory into hosts file - blockinfile: - path: /etc/hosts - block: "{{ hostvars.localhost.etc_hosts_inventory_block }}" - state: "{{ 'present' if populate_inventory_to_hosts_file else 'absent' }}" - create: true - backup: "{{ leave_etc_backup_files }}" - unsafe_writes: true - marker: "# Ansible inventory hosts {mark}" - mode: "0644" - -- name: Hosts | populate kubernetes loadbalancer address into hosts file - lineinfile: - dest: /etc/hosts - regexp: ".*{{ apiserver_loadbalancer_domain_name }}$" - line: "{{ loadbalancer_apiserver.address }} {{ apiserver_loadbalancer_domain_name }}" - state: present - backup: "{{ leave_etc_backup_files }}" - unsafe_writes: true - when: - - populate_loadbalancer_apiserver_to_hosts_file - - loadbalancer_apiserver is defined - - loadbalancer_apiserver.address is defined - -- name: Hosts | Update localhost entries in hosts file - when: populate_localhost_entries_to_hosts_file - block: - - name: Hosts | Retrieve hosts file content - slurp: - src: /etc/hosts - register: etc_hosts_content - - - name: Hosts | Extract existing entries for localhost from hosts file - set_fact: - etc_hosts_localhosts_dict: >- - {%- set splitted = (item | regex_replace('[ \t]+', ' ') | regex_replace('#.*$') | trim).split(' ') -%} - {{ etc_hosts_localhosts_dict | default({}) | combine({splitted[0]: splitted[1::]}) }} - with_items: "{{ (etc_hosts_content['content'] | b64decode).splitlines() }}" - when: - - etc_hosts_content.content is defined - - (item is match('^::1 .*') or item is match('^127.0.0.1 .*')) - - - name: Hosts | Update target hosts file entries dict with required entries - set_fact: - etc_hosts_localhosts_dict_target: >- - {%- set target_entries = (etc_hosts_localhosts_dict | default({})).get(item.key, []) | difference(item.value.get('unexpected', [])) -%} - {{ etc_hosts_localhosts_dict_target | default({}) | combine({item.key: (target_entries + item.value.expected) | unique}) }} - loop: "{{ etc_hosts_localhost_entries | dict2items }}" - - - name: Hosts | Update (if necessary) hosts file - lineinfile: - dest: /etc/hosts - line: "{{ item.key }} {{ item.value | join(' ') }}" - regexp: "^{{ item.key }}.*$" - state: present - backup: "{{ leave_etc_backup_files }}" - unsafe_writes: true - loop: "{{ etc_hosts_localhosts_dict_target | default({}) | dict2items }}" - -# gather facts to update ansible_fqdn -- name: Update facts - setup: - gather_subset: min - when: - - not dns_late diff --git a/roles/kubernetes/preinstall/tasks/main.yml b/roles/kubernetes/preinstall/tasks/main.yml index 7179e3d57..3553d8e5f 100644 --- a/roles/kubernetes/preinstall/tasks/main.yml +++ b/roles/kubernetes/preinstall/tasks/main.yml @@ -77,12 +77,6 @@ tags: - bootstrap_os -- name: Configure /etc/hosts - import_tasks: 0090-etchosts.yml - tags: - - bootstrap_os - - etchosts - - name: Configure dhclient import_tasks: 0100-dhclient-hooks.yml when: diff --git a/roles/reset/tasks/main.yml b/roles/reset/tasks/main.yml index af70b812d..52047b321 100644 --- a/roles/reset/tasks/main.yml +++ b/roles/reset/tasks/main.yml @@ -395,6 +395,7 @@ - files - dns + # TODO: remove after release 2.29 - name: Reset | remove host entries from /etc/hosts blockinfile: path: "/etc/hosts"