diff --git a/data/data/bootstrap/files/usr/local/bin/bootstrap-pivot.sh.template b/data/data/bootstrap/files/usr/local/bin/bootstrap-pivot.sh.template index e0a3aa7cd55..86a42bb9cc2 100644 --- a/data/data/bootstrap/files/usr/local/bin/bootstrap-pivot.sh.template +++ b/data/data/bootstrap/files/usr/local/bin/bootstrap-pivot.sh.template @@ -42,10 +42,25 @@ if [ ! -f /opt/openshift/.pivot-done ]; then record_service_stage_start "rebase-to-okd-os-image" {{if .IsFCOS -}} mnt="$(podman image mount "${MACHINE_OS_IMAGE}")" +{{- if .BootstrapInPlace }} + # SNO setup boots into Live ISO which cannot be rebased + # https://github.com/coreos/rpm-ostree/issues/4547 + mkdir /var/mnt/{upper,worker} + mount -t overlay overlay -o "lowerdir=/usr:$mnt/usr" /usr + mount -t overlay overlay -o "lowerdir=/etc:$mnt/etc,upperdir=/var/mnt/upper,workdir=/var/mnt/worker" /etc + systemctl daemon-reload + + # Workaround for SELinux denials when launching crio.service from overlayfs + setenforce Permissive + + systemctl start crio.service + # No reboot necessary because SNO setup will reboot system +{{ else }} pushd "${mnt}/bootstrap" # shellcheck disable=SC1091 . ./pre-pivot.sh popd +{{ end -}} {{else if .IsSCOS -}} chmod 0644 /etc/containers/registries.conf rpm-ostree rebase --experimental "ostree-unverified-registry:${MACHINE_OS_IMAGE}" diff --git a/data/data/bootstrap/systemd/units/release-image-pivot.service.template b/data/data/bootstrap/systemd/units/release-image-pivot.service.template index aac2f76ece1..e278091cc50 100644 --- a/data/data/bootstrap/systemd/units/release-image-pivot.service.template +++ b/data/data/bootstrap/systemd/units/release-image-pivot.service.template @@ -3,7 +3,11 @@ Description=Pivot bootstrap to the OpenShift Release Image Wants=release-image.service After=release-image.service +{{- if .BootstrapInPlace }} +Before=bootkube.service kubelet.service +{{ else }} Before=bootkube.service +{{ end -}} [Service] Type=oneshot