From 8fb411491fe4921f0c5fadb72586b542ae8b338a 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..593e342aa7f 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 + /usr/bin/machine-config-daemon pivot +fi + mkdir --parents ./{bootstrap-manifests,manifests} if [ ! -f openshift-manifests.done ]