mirror of
https://github.com/kubernetes-sigs/kubespray.git
synced 2026-02-15 02:00:03 -03:30
Since a2019c1c2 (Add a JSON schema describing the packages install
structure, 2024-04-25), we use a custom structure to select which
packages should be installed on a particular host OS.
This has proven too rigid in practice, and the query is pretty
complicated.
Replace this by simply using an array of jinja conditions for the
packages, which should be easier to understand for everyone and more
flexible.
Also remove the associated schema and validation which are no longer
needed.
73 lines
2.0 KiB
YAML
73 lines
2.0 KiB
YAML
---
|
|
- name: Update package management cache (zypper) - SUSE
|
|
command: zypper -n --gpg-auto-import-keys ref
|
|
register: make_cache_output
|
|
until: make_cache_output is succeeded
|
|
retries: 4
|
|
delay: "{{ retry_stagger | random + 3 }}"
|
|
when:
|
|
- ansible_pkg_mgr == 'zypper'
|
|
tags: bootstrap-os
|
|
|
|
- name: Add debian 10 required repos
|
|
when:
|
|
- ansible_distribution == "Debian"
|
|
- ansible_distribution_version == "10"
|
|
tags:
|
|
- bootstrap-os
|
|
block:
|
|
- name: Add Debian Backports apt repo
|
|
apt_repository:
|
|
repo: "deb http://deb.debian.org/debian {{ ansible_distribution_release }}-backports main"
|
|
state: present
|
|
filename: debian-backports
|
|
|
|
- name: Set libseccomp2 pin priority to apt_preferences on Debian buster
|
|
copy:
|
|
content: |
|
|
Package: libseccomp2
|
|
Pin: release a={{ ansible_distribution_release }}-backports
|
|
Pin-Priority: 1001
|
|
dest: "/etc/apt/preferences.d/libseccomp2"
|
|
owner: "root"
|
|
mode: "0644"
|
|
|
|
- name: Update package management cache (APT)
|
|
apt:
|
|
update_cache: true
|
|
cache_valid_time: 3600
|
|
when: ansible_os_family == "Debian"
|
|
tags:
|
|
- bootstrap-os
|
|
|
|
- name: Remove legacy docker repo file
|
|
file:
|
|
path: "{{ yum_repo_dir }}/docker.repo"
|
|
state: absent
|
|
when:
|
|
- ansible_os_family == "RedHat"
|
|
- not is_fedora_coreos
|
|
|
|
- name: Install epel-release on RHEL derivatives
|
|
package:
|
|
name: epel-release
|
|
state: present
|
|
when:
|
|
- ansible_os_family == "RedHat"
|
|
- not is_fedora_coreos
|
|
- epel_enabled | bool
|
|
tags:
|
|
- bootstrap-os
|
|
|
|
- name: Install packages requirements
|
|
package:
|
|
name: "{{ pkgs | dict2items | selectattr('value', 'ansible.builtin.all') | map(attribute='key') }}"
|
|
state: present
|
|
register: pkgs_task_result
|
|
until: pkgs_task_result is succeeded
|
|
retries: "{{ pkg_install_retries }}"
|
|
delay: "{{ retry_stagger | random + 3 }}"
|
|
when: not (ansible_os_family in ["Flatcar", "Flatcar Container Linux by Kinvolk"] or is_fedora_coreos)
|
|
tags:
|
|
- bootstrap-os
|