kubespray/roles/bootstrap-os
Etienne Champetier 42702dc1a3 Fixes for CentOS 8 (#5213)
* Fix python3-libselinux installation for RHEL/CentOS 8

In bootstrap-centos.yml we haven't gathered the facts,
so #5127 couldn't work

Minimum ansible version to run kubespray is 2.7.8,
so ansible_distribution_major_version is defined an there is no need to default it

Signed-off-by: Etienne Champetier <champetier.etienne@gmail.com>

* Restart NetworkManager for RHEL/CentOS 8

network.service doesn't exist anymore
 # systemctl status network
 Unit network.service could not be found.

Signed-off-by: Etienne Champetier <champetier.etienne@gmail.com>

* Add module_hotfixes=True to docker / containerd yum repo config

https://bugzilla.redhat.com/show_bug.cgi?id=1734081
https://bugzilla.redhat.com/show_bug.cgi?id=1756473
Without this setting you end up with the following error:
 # yum install docker-ce
 Failed to set locale, defaulting to C
 Last metadata expiration check: 0:03:21 ago on Thu Sep 26 22:00:05 2019.
 Error:
  Problem: package docker-ce-3:19.03.2-3.el7.x86_64 requires containerd.io >= 1.2.2-3, but none of the providers can be installed
   - cannot install the best candidate for the job
   - package containerd.io-1.2.2-3.3.el7.x86_64 is excluded
   - package containerd.io-1.2.2-3.el7.x86_64 is excluded
   - package containerd.io-1.2.4-3.1.el7.x86_64 is excluded
   - package containerd.io-1.2.5-3.1.el7.x86_64 is excluded
   - package containerd.io-1.2.6-3.3.el7.x86_64 is excluded
 (try to add '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages)

Signed-off-by: Etienne Champetier <champetier.etienne@gmail.com>
2019-12-09 01:37:10 -08:00
..
defaults Define and implement specs for bootstrap-os (#4455) 2019-04-23 15:46:02 -07:00
files Update pypy3 on CoreOS to 7.0.0 (#4456) 2019-04-08 00:28:24 -07:00
tasks Fixes for CentOS 8 (#5213) 2019-12-09 01:37:10 -08:00
README.md Add support for http(s)_proxy to CoreOS, Fedora and OpenSUSE (#4669) 2019-05-02 12:28:22 -07:00

README.md

bootstrap-os

Bootstrap an Ansible host to be able to run Ansible modules.

This role will:

  • configure the package manager (if applicable) to be able to fetch packages
  • install Python
  • install the necessary packages to use Ansible's package manager modules
  • set the hostname of the host to {{ inventory_hostname }} when requested

Requirements

A host running an operating system that is supported by Kubespray. See https://github.com/kubernetes-sigs/kubespray#supported-linux-distributions for a current list.

SSH access to the host.

Role Variables

Variables are listed with their default values, if applicable.

General variables

  • http_proxy/https_proxy The role will configure the package manager (if applicable) to download packages via a proxy.

  • override_system_hostname: true The role will set the hostname of the machine to the name it has according to Ansible's inventory (the variable {{ inventory_hostname }}).

Per distribution variables

CoreOS

  • coreos_locksmithd_disable: false Whether locksmithd (responsible for rolling restarts) should be disabled or be left alone.

CentOS/RHEL

  • centos_fastestmirror_enabled: false Whether the fastestmirror yum plugin should be enabled.

Dependencies

The kubespray-defaults role is expected to be run before this role.

Example Playbook

Remember to disable fact gathering since Python might not be present on hosts.

- hosts: all
  gather_facts: false  # not all hosts might be able to run modules yet
  roles:
     - kubespray-defaults
     - bootstrap-os

License

Apache 2.0