add containerd on fedora CoreOS (#7794)
* set selinux type t_etc if selinux state is enforcing * workaround with update repo is no longer needed remove comments about failing playbook * grubby is not available in distros using ostree * remove docker support because removed in fcos update install script example with live rootfs * do not call grubby on ostree based distro * update docs enabling containerd on fedora coreospull/7802/head
parent
3b3ccac212
commit
c2cf0d9945
|
@ -119,7 +119,7 @@ vagrant up
|
||||||
- **Ubuntu** 16.04, 18.04, 20.04
|
- **Ubuntu** 16.04, 18.04, 20.04
|
||||||
- **CentOS/RHEL** 7, [8](docs/centos8.md)
|
- **CentOS/RHEL** 7, [8](docs/centos8.md)
|
||||||
- **Fedora** 33, 34
|
- **Fedora** 33, 34
|
||||||
- **Fedora CoreOS** (experimental: see [fcos Note](docs/fcos.md))
|
- **Fedora CoreOS** (see [fcos Note](docs/fcos.md))
|
||||||
- **openSUSE** Leap 15.x/Tumbleweed
|
- **openSUSE** Leap 15.x/Tumbleweed
|
||||||
- **Oracle Linux** 7, [8](docs/centos8.md)
|
- **Oracle Linux** 7, [8](docs/centos8.md)
|
||||||
- **Alma Linux** [8](docs/centos8.md)
|
- **Alma Linux** [8](docs/centos8.md)
|
||||||
|
|
|
@ -1,14 +0,0 @@
|
||||||
CoreOS bootstrap
|
|
||||||
===============
|
|
||||||
|
|
||||||
Example with Ansible:
|
|
||||||
|
|
||||||
Before running the cluster playbook you must satisfy the following requirements:
|
|
||||||
|
|
||||||
General CoreOS Pre-Installation Notes:
|
|
||||||
|
|
||||||
- Ensure that the bin_dir is set to `/opt/bin`
|
|
||||||
- ansible_python_interpreter should be `/opt/bin/python`. This will be laid down by the bootstrap task.
|
|
||||||
- The default resolvconf_mode setting of `docker_dns` **does not** work for CoreOS. This is because we do not edit the systemd service file for docker on CoreOS nodes. Instead, just use the `host_resolvconf` mode. It should work out of the box.
|
|
||||||
|
|
||||||
Then you can proceed to [cluster deployment](#run-deployment)
|
|
37
docs/fcos.md
37
docs/fcos.md
|
@ -1,6 +1,6 @@
|
||||||
# Fedora CoreOS
|
# Fedora CoreOS
|
||||||
|
|
||||||
Tested with stable version 31.20200223.3.0.
|
Tested with stable version 34.20210611.3.0
|
||||||
|
|
||||||
Because package installation with `rpm-ostree` requires a reboot, playbook may fail while bootstrap.
|
Because package installation with `rpm-ostree` requires a reboot, playbook may fail while bootstrap.
|
||||||
Restart playbook again.
|
Restart playbook again.
|
||||||
|
@ -9,33 +9,9 @@ Restart playbook again.
|
||||||
|
|
||||||
Tested with
|
Tested with
|
||||||
|
|
||||||
- docker
|
- containerd
|
||||||
- crio
|
- crio
|
||||||
|
|
||||||
### docker
|
|
||||||
|
|
||||||
OS base packages contains docker.
|
|
||||||
|
|
||||||
### cri-o
|
|
||||||
|
|
||||||
To use `cri-o` disable docker service with ignition:
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
#workaround, see https://github.com/coreos/fedora-coreos-tracker/issues/229
|
|
||||||
systemd:
|
|
||||||
units:
|
|
||||||
- name: docker.service
|
|
||||||
enabled: false
|
|
||||||
contents: |
|
|
||||||
[Unit]
|
|
||||||
Description=disable docker
|
|
||||||
|
|
||||||
[Service]
|
|
||||||
|
|
||||||
[Install]
|
|
||||||
WantedBy=multi-user.target
|
|
||||||
```
|
|
||||||
|
|
||||||
## Network
|
## Network
|
||||||
|
|
||||||
### calico
|
### calico
|
||||||
|
@ -79,11 +55,14 @@ Prepare ignition and serve via http (a.e. python -m http.server )
|
||||||
### create guest
|
### create guest
|
||||||
|
|
||||||
```shell script
|
```shell script
|
||||||
fcos_version=31.20200223.3.0
|
machine_name=myfcos1
|
||||||
|
ignition_url=http://mywebserver/fcos.ign
|
||||||
|
|
||||||
|
fcos_version=34.20210611.3.0
|
||||||
kernel=https://builds.coreos.fedoraproject.org/prod/streams/stable/builds/${fcos_version}/x86_64/fedora-coreos-${fcos_version}-live-kernel-x86_64
|
kernel=https://builds.coreos.fedoraproject.org/prod/streams/stable/builds/${fcos_version}/x86_64/fedora-coreos-${fcos_version}-live-kernel-x86_64
|
||||||
initrd=https://builds.coreos.fedoraproject.org/prod/streams/stable/builds/${fcos_version}/x86_64/fedora-coreos-${fcos_version}-live-initramfs.x86_64.img
|
initrd=https://builds.coreos.fedoraproject.org/prod/streams/stable/builds/${fcos_version}/x86_64/fedora-coreos-${fcos_version}-live-initramfs.x86_64.img
|
||||||
ignition_url=http://mywebserver/fcos.ign
|
rootfs=https://builds.coreos.fedoraproject.org/prod/streams/stable/builds/${fcos_version}/x86_64/fedora-coreos-${fcos_version}-live-rootfs.x86_64.img
|
||||||
kernel_args="ip=dhcp rd.neednet=1 console=tty0 coreos.liveiso=/ console=ttyS0 coreos.inst.install_dev=/dev/sda coreos.inst.stream=stable coreos.inst.ignition_url=${ignition_url}"
|
kernel_args="console=ttyS0 coreos.live.rootfs_url=${rootfs} coreos.inst.install_dev=/dev/sda coreos.inst.stream=stable coreos.inst.ignition_url=${ignition_url}"
|
||||||
sudo virt-install --name ${machine_name} --ram 4048 --graphics=none --vcpus 2 --disk size=20 \
|
sudo virt-install --name ${machine_name} --ram 4048 --graphics=none --vcpus 2 --disk size=20 \
|
||||||
--network bridge=virbr0 \
|
--network bridge=virbr0 \
|
||||||
--install kernel=${kernel},initrd=${initrd},kernel_args_overwrite=yes,kernel_args="${kernel_args}"
|
--install kernel=${kernel},initrd=${initrd},kernel_args_overwrite=yes,kernel_args="${kernel_args}"
|
||||||
|
|
|
@ -19,28 +19,12 @@
|
||||||
become: true
|
become: true
|
||||||
when: need_bootstrap.rc != 0
|
when: need_bootstrap.rc != 0
|
||||||
|
|
||||||
# Because the package "python3-libselinux" has a dependency on libselinux,
|
|
||||||
# which is a base package in Fedora CoreOS and cannot be upgraded.
|
|
||||||
# Temporary disabling update repo allows to install python3-libselinux
|
|
||||||
# see https://github.com/coreos/fedora-coreos-tracker/issues/592
|
|
||||||
- name: Temporary disable fedora updates repo because of base packages conflicts
|
|
||||||
raw: "sed -i 's|^enabled=1|enabled=0|g' /etc/yum.repos.d/fedora-updates.repo"
|
|
||||||
become: true
|
|
||||||
when: need_bootstrap.rc != 0
|
|
||||||
|
|
||||||
- name: Install required packages on fedora coreos
|
- name: Install required packages on fedora coreos
|
||||||
raw: "export http_proxy={{ http_proxy | default('') }};rpm-ostree install --allow-inactive {{ fedora_coreos_packages|join(' ') }}"
|
raw: "export http_proxy={{ http_proxy | default('') }};rpm-ostree install --allow-inactive {{ fedora_coreos_packages|join(' ') }}"
|
||||||
become: true
|
become: true
|
||||||
when: need_bootstrap.rc != 0
|
when: need_bootstrap.rc != 0
|
||||||
|
|
||||||
# see https://github.com/coreos/fedora-coreos-tracker/issues/592
|
- name: Reboot immediately for updated ostree
|
||||||
- name: Enable fedora updates repo
|
|
||||||
raw: "sed -i 's|^enabled=0|enabled=1|g' /etc/yum.repos.d/fedora-updates.repo"
|
|
||||||
become: true
|
|
||||||
when: need_bootstrap.rc != 0
|
|
||||||
|
|
||||||
# playbook fails because connection lost
|
|
||||||
- name: Reboot immediately for updated ostree, please run playbook again if failed first time.
|
|
||||||
raw: "nohup bash -c 'sleep 5s && shutdown -r now'"
|
raw: "nohup bash -c 'sleep 5s && shutdown -r now'"
|
||||||
become: true
|
become: true
|
||||||
ignore_errors: true # noqa ignore-errors
|
ignore_errors: true # noqa ignore-errors
|
||||||
|
|
|
@ -43,6 +43,7 @@
|
||||||
- ansible_distribution == "Fedora"
|
- ansible_distribution == "Fedora"
|
||||||
- (ansible_distribution_major_version | int) >= 31
|
- (ansible_distribution_major_version | int) >= 31
|
||||||
- ansible_proc_cmdline['systemd.unified_cgroup_hierarchy'] is not defined or ansible_proc_cmdline['systemd.unified_cgroup_hierarchy'] != '0'
|
- ansible_proc_cmdline['systemd.unified_cgroup_hierarchy'] is not defined or ansible_proc_cmdline['systemd.unified_cgroup_hierarchy'] != '0'
|
||||||
|
- not is_ostree
|
||||||
|
|
||||||
- name: reboot in Fedora 31+
|
- name: reboot in Fedora 31+
|
||||||
reboot:
|
reboot:
|
||||||
|
@ -50,6 +51,7 @@
|
||||||
- ansible_distribution == "Fedora"
|
- ansible_distribution == "Fedora"
|
||||||
- (ansible_distribution_major_version | int) >= 31
|
- (ansible_distribution_major_version | int) >= 31
|
||||||
- ansible_proc_cmdline['systemd.unified_cgroup_hierarchy'] is not defined or ansible_proc_cmdline['systemd.unified_cgroup_hierarchy'] != '0'
|
- ansible_proc_cmdline['systemd.unified_cgroup_hierarchy'] is not defined or ansible_proc_cmdline['systemd.unified_cgroup_hierarchy'] != '0'
|
||||||
|
- not is_ostree
|
||||||
|
|
||||||
- include_tasks: containerd_repo.yml
|
- include_tasks: containerd_repo.yml
|
||||||
when: not is_ostree
|
when: not is_ostree
|
||||||
|
|
|
@ -34,6 +34,7 @@
|
||||||
- ansible_distribution == "Fedora"
|
- ansible_distribution == "Fedora"
|
||||||
- (ansible_distribution_major_version | int) >= 31
|
- (ansible_distribution_major_version | int) >= 31
|
||||||
- ansible_proc_cmdline['systemd.unified_cgroup_hierarchy'] is not defined or ansible_proc_cmdline['systemd.unified_cgroup_hierarchy'] != '0'
|
- ansible_proc_cmdline['systemd.unified_cgroup_hierarchy'] is not defined or ansible_proc_cmdline['systemd.unified_cgroup_hierarchy'] != '0'
|
||||||
|
- not is_ostree
|
||||||
|
|
||||||
- name: reboot in Fedora 31+
|
- name: reboot in Fedora 31+
|
||||||
reboot:
|
reboot:
|
||||||
|
@ -41,6 +42,7 @@
|
||||||
- ansible_distribution == "Fedora"
|
- ansible_distribution == "Fedora"
|
||||||
- (ansible_distribution_major_version | int) >= 31
|
- (ansible_distribution_major_version | int) >= 31
|
||||||
- ansible_proc_cmdline['systemd.unified_cgroup_hierarchy'] is not defined or ansible_proc_cmdline['systemd.unified_cgroup_hierarchy'] != '0'
|
- ansible_proc_cmdline['systemd.unified_cgroup_hierarchy'] is not defined or ansible_proc_cmdline['systemd.unified_cgroup_hierarchy'] != '0'
|
||||||
|
- not is_ostree
|
||||||
|
|
||||||
- name: import crio repo
|
- name: import crio repo
|
||||||
import_tasks: "crio_repo.yml"
|
import_tasks: "crio_repo.yml"
|
||||||
|
|
Loading…
Reference in New Issue