From a661f2e75fb6125ef37bb6b46ca49f4cc28e44c4 Mon Sep 17 00:00:00 2001 From: Vadim Rutkovsky Date: Wed, 23 Oct 2019 17:26:06 +0200 Subject: [PATCH] Change bootstrap host to replace itself with machine-os-content too Currently every machine instance we launch uses the same "bootimage", including the bootstrap host. However, everything except bootstrap (i.e. control plane and workers) replace their OS content with the machine-os-content from the release payload before joining the cluster. For more information, see: https://github.com/openshift/machine-config-operator/blob/master/docs/OSUpgrades.md This changes the bootstrap host to do the same, which will help avoid issues from "bootimage drift". Closes: #2542 --- .../files/usr/local/bin/bootkube.sh.template | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/data/data/bootstrap/files/usr/local/bin/bootkube.sh.template b/data/data/bootstrap/files/usr/local/bin/bootkube.sh.template index a8f536325bb..165b43a9282 100755 --- a/data/data/bootstrap/files/usr/local/bin/bootkube.sh.template +++ b/data/data/bootstrap/files/usr/local/bin/bootkube.sh.template @@ -37,6 +37,21 @@ MDNS_PUBLISHER_IMAGE=$(image_for mdns-publisher) HAPROXY_IMAGE=$(image_for haproxy-router) BAREMETAL_RUNTIMECFG_IMAGE=$(image_for baremetal-runtimecfg) +# Copy machine-config-daemon binary from payload and run pivot +if [ ! -f .pivot-done ]; then + mkdir /run/pivot /etc/pivot + touch /run/pivot/reboot-needed + echo "${MACHINE_CONFIG_OSCONTENT}" > /etc/pivot/image-pullspec + + hostmcd=/usr/local/bin/machine-config-daemon + bootkube_podman_run --entrypoint=sh "${MACHINE_CONFIG_OPERATOR_IMAGE}" \ + cat /usr/bin/machine-config-daemon > ${hostmcd} + chmod a+x ${hostmcd} + restorecon ${hostmcd} + touch .pivot-done + ${hostmcd} pivot +fi + mkdir --parents ./{bootstrap-manifests,manifests} if [ ! -f openshift-manifests.done ]