mirror of
https://github.com/kubernetes-sigs/kubespray.git
synced 2025-12-14 05:45:06 +03:00
improve NTP package conflict handling (#12212)
Signed-off-by: bo.jiang <bo.jiang@daocloud.io>
This commit is contained in:
@@ -55,17 +55,6 @@ minimal_node_memory_mb: 1024
|
|||||||
minimal_master_memory_mb: 1500
|
minimal_master_memory_mb: 1500
|
||||||
|
|
||||||
## NTP Settings
|
## NTP Settings
|
||||||
# Start the ntpd or chrony service and enable it at system boot.
|
|
||||||
ntp_enabled: false
|
|
||||||
# The package to install which provides NTP functionality.
|
|
||||||
# The default is ntp for most platforms, or chrony on RHEL/CentOS 7 and later.
|
|
||||||
# The ntp_package can be one of ['ntp', 'ntpsec', 'chrony']
|
|
||||||
ntp_package: >-
|
|
||||||
{% if ansible_os_family == "RedHat" -%}
|
|
||||||
chrony
|
|
||||||
{%- else -%}
|
|
||||||
ntp
|
|
||||||
{%- endif -%}
|
|
||||||
|
|
||||||
# Manage the NTP configuration file.
|
# Manage the NTP configuration file.
|
||||||
ntp_manage_config: false
|
ntp_manage_config: false
|
||||||
|
|||||||
@@ -1,12 +1,4 @@
|
|||||||
---
|
---
|
||||||
- name: Ensure NTP package
|
|
||||||
package:
|
|
||||||
name:
|
|
||||||
- "{{ ntp_package }}"
|
|
||||||
state: present
|
|
||||||
when:
|
|
||||||
- not is_fedora_coreos
|
|
||||||
- not ansible_os_family in ["Flatcar", "Flatcar Container Linux by Kinvolk"]
|
|
||||||
|
|
||||||
- name: Disable systemd-timesyncd
|
- name: Disable systemd-timesyncd
|
||||||
service:
|
service:
|
||||||
|
|||||||
@@ -770,3 +770,20 @@ system_upgrade_reboot: on-upgrade # never, always
|
|||||||
|
|
||||||
# Enables or disables the scheduler plugins.
|
# Enables or disables the scheduler plugins.
|
||||||
scheduler_plugins_enabled: false
|
scheduler_plugins_enabled: false
|
||||||
|
|
||||||
|
## NTP Settings
|
||||||
|
# Start the ntpd or chrony service and enable it at system boot.
|
||||||
|
ntp_enabled: false
|
||||||
|
|
||||||
|
# TODO: Refactor NTP package selection to integrate with the general package installation system
|
||||||
|
# instead of using a separate variable approach
|
||||||
|
|
||||||
|
# The package to install which provides NTP functionality.
|
||||||
|
# The default is ntp for most platforms, or chrony on RHEL/CentOS 7 and later.
|
||||||
|
# The ntp_package can be one of ['ntp', 'ntpsec', 'chrony']
|
||||||
|
ntp_package: >-
|
||||||
|
{% if ansible_os_family == "RedHat" -%}
|
||||||
|
chrony
|
||||||
|
{%- else -%}
|
||||||
|
ntp
|
||||||
|
{%- endif -%}
|
||||||
|
|||||||
@@ -65,14 +65,19 @@
|
|||||||
tags:
|
tags:
|
||||||
- bootstrap_os
|
- bootstrap_os
|
||||||
|
|
||||||
- name: Install packages requirements
|
- name: Manage packages
|
||||||
package:
|
package:
|
||||||
name: "{{ pkgs | dict2items | selectattr('value', 'ansible.builtin.all') | map(attribute='key') }}"
|
name: "{{ item.packages | dict2items | selectattr('value', 'ansible.builtin.all') | map(attribute='key') }}"
|
||||||
state: present
|
state: "{{ item.state }}"
|
||||||
register: pkgs_task_result
|
register: pkgs_task_result
|
||||||
until: pkgs_task_result is succeeded
|
until: pkgs_task_result is succeeded
|
||||||
retries: "{{ pkg_install_retries }}"
|
retries: "{{ pkg_install_retries }}"
|
||||||
delay: "{{ retry_stagger | random + 3 }}"
|
delay: "{{ retry_stagger | random + 3 }}"
|
||||||
when: not (ansible_os_family in ["Flatcar", "Flatcar Container Linux by Kinvolk"] or is_fedora_coreos)
|
when: not (ansible_os_family in ["Flatcar", "Flatcar Container Linux by Kinvolk"] or is_fedora_coreos)
|
||||||
|
loop:
|
||||||
|
- { packages: "{{ pkgs_to_remove }}", state: "absent", action_label: "remove" }
|
||||||
|
- { packages: "{{ pkgs }}", state: "present", action_label: "install" }
|
||||||
|
loop_control:
|
||||||
|
label: "{{ item.action_label }}"
|
||||||
tags:
|
tags:
|
||||||
- bootstrap_os
|
- bootstrap_os
|
||||||
|
|||||||
@@ -1,4 +1,9 @@
|
|||||||
---
|
---
|
||||||
|
pkgs_to_remove:
|
||||||
|
systemd-timesyncd:
|
||||||
|
- "{{ ntp_enabled }}"
|
||||||
|
- "{{ ntp_package == 'ntp' }}"
|
||||||
|
- "{{ ansible_os_family == 'Debian' }}"
|
||||||
pkgs:
|
pkgs:
|
||||||
apparmor:
|
apparmor:
|
||||||
- "{{ ansible_os_family == 'Debian' }}"
|
- "{{ ansible_os_family == 'Debian' }}"
|
||||||
@@ -9,6 +14,9 @@ pkgs:
|
|||||||
- "{{ ansible_distribution_major_version == '10' }}"
|
- "{{ ansible_distribution_major_version == '10' }}"
|
||||||
- "{{ 'k8s_cluster' in group_names }}"
|
- "{{ 'k8s_cluster' in group_names }}"
|
||||||
bash-completion: []
|
bash-completion: []
|
||||||
|
chrony:
|
||||||
|
- "{{ ntp_enabled }}"
|
||||||
|
- "{{ ntp_package == 'chrony' }}"
|
||||||
conntrack:
|
conntrack:
|
||||||
- "{{ ansible_os_family in ['Debian', 'RedHat'] }}"
|
- "{{ ansible_os_family in ['Debian', 'RedHat'] }}"
|
||||||
- "{{ ansible_distribution != 'openEuler' }}"
|
- "{{ ansible_distribution != 'openEuler' }}"
|
||||||
@@ -70,6 +78,12 @@ pkgs:
|
|||||||
- "{{ 'k8s_cluster' in group_names }}"
|
- "{{ 'k8s_cluster' in group_names }}"
|
||||||
nss:
|
nss:
|
||||||
- "{{ ansible_os_family == 'RedHat' }}"
|
- "{{ ansible_os_family == 'RedHat' }}"
|
||||||
|
ntp:
|
||||||
|
- "{{ ntp_enabled }}"
|
||||||
|
- "{{ ntp_package == 'ntp' }}"
|
||||||
|
ntpsec:
|
||||||
|
- "{{ ntp_enabled }}"
|
||||||
|
- "{{ ntp_package == 'ntpsec' }}"
|
||||||
openssl: []
|
openssl: []
|
||||||
python-apt:
|
python-apt:
|
||||||
- "{{ ansible_os_family == 'Debian' }}"
|
- "{{ ansible_os_family == 'Debian' }}"
|
||||||
|
|||||||
@@ -40,12 +40,15 @@
|
|||||||
include_vars: ../roles/system_packages/vars/main.yml
|
include_vars: ../roles/system_packages/vars/main.yml
|
||||||
|
|
||||||
- name: Verify that the packages list is sorted
|
- name: Verify that the packages list is sorted
|
||||||
|
loop:
|
||||||
|
- pkgs_to_remove
|
||||||
|
- pkgs
|
||||||
vars:
|
vars:
|
||||||
pkgs_lists: "{{ pkgs.keys() | list }}"
|
pkgs_lists: "{{ lookup('vars', item).keys() | list }}"
|
||||||
ansible_distribution: irrelevant
|
ansible_distribution: irrelevant
|
||||||
ansible_distribution_major_version: irrelevant
|
ansible_distribution_major_version: irrelevant
|
||||||
ansible_distribution_minor_version: irrelevant
|
ansible_distribution_minor_version: irrelevant
|
||||||
ansible_os_family: irrelevant
|
ansible_os_family: irrelevant
|
||||||
assert:
|
assert:
|
||||||
that: "pkgs_lists | sort == pkgs_lists"
|
that: "pkgs_lists | sort == pkgs_lists"
|
||||||
fail_msg: "pkgs is not sorted: {{ pkgs_lists | ansible.utils.fact_diff(pkgs_lists | sort) }}"
|
fail_msg: "{{ item }} is not sorted: {{ pkgs_lists | ansible.utils.fact_diff(pkgs_lists | sort) }}"
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ kube_proxy_mode: nftables
|
|||||||
|
|
||||||
# NTP mangement
|
# NTP mangement
|
||||||
ntp_enabled: true
|
ntp_enabled: true
|
||||||
|
ntp_package: chrony
|
||||||
ntp_timezone: Etc/UTC
|
ntp_timezone: Etc/UTC
|
||||||
ntp_manage_config: true
|
ntp_manage_config: true
|
||||||
ntp_tinker_panic: true
|
ntp_tinker_panic: true
|
||||||
|
|||||||
@@ -4,3 +4,7 @@ cloud_image: debian-12
|
|||||||
|
|
||||||
# Kubespray settings
|
# Kubespray settings
|
||||||
kube_network_plugin: cilium
|
kube_network_plugin: cilium
|
||||||
|
|
||||||
|
# ntp settings
|
||||||
|
ntp_enabled: true
|
||||||
|
ntp_package: ntp
|
||||||
|
|||||||
@@ -44,3 +44,7 @@ kubeadm_patches:
|
|||||||
example.com/test: "false"
|
example.com/test: "false"
|
||||||
labels:
|
labels:
|
||||||
example.com/prod_level: "prep"
|
example.com/prod_level: "prep"
|
||||||
|
|
||||||
|
# ntp settings
|
||||||
|
ntp_enabled: true
|
||||||
|
ntp_package: ntpsec
|
||||||
|
|||||||
Reference in New Issue
Block a user