Instantly share code, notes, and snippets.

What would you like to do?
How to upgrade CoreOS manually

Before upgrading, make sure you are allowing insecure registry access, or your newer docker won't be able to talk to the Deis registry:

sudo bash -c 'mkdir -p /etc/systemd/system/docker.service.d/; cat <<EOF > /etc/systemd/system/docker.service.d/50-insecure-registry.conf
Environment="DOCKER_OPTS=--insecure-registry --insecure-registry --insecure-registry"

To kick off the upgrade:

sudo bash -ec 'uname -a && cat /etc/lsb-release && \
echo GROUP=stable > /etc/coreos/update.conf && \
systemctl unmask update-engine.service && \
systemctl start update-engine.service && \
update_engine_client -update && \

After the reboot, wait a few minutes until you see that the grub boot flags have been updated:

journalctl -u update-engine.service | grep "boot flags"

After grub has been updated, stop the update-engine service and re-mask it:

sudo bash -ec 'systemctl stop update-engine.service && \
systemctl mask update-engine.service'

More information is available in Deis issue #3155 and CoreOS issue #262


This comment has been minimized.

Copy link

jobinar commented Aug 4, 2016

How is this better than just doing a update_engine_client -update?


This comment has been minimized.

Copy link

FranklinYu commented Aug 14, 2016

+1 to @jobinar


This comment has been minimized.

Copy link

KenanSulayman commented Jun 1, 2017

@jobinar well, at least it allows you to change the update channel of coreOS in one shot

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment