Deprecated: Please see machine-config-operator.
pivot
provides a simple command allowing you to upgrade an
OSTree-based system from an OSTree repo embedded within a container
image. Such container images are generated by the
coreos-assembler oscontainer
command.
It works by (1) downloading the oscontainer, (2) mounting it using
podman mount
, (3) looking for the OSTree commit stored inside the
container, and (4) invoking rpm-ostree to rebase the OS to that commit.
It's not intended to be run manually, but rather as part of the installation and upgrade process of a cluster. Though one can certainly test it today by provisioning an RHCOS node and running it directly (see the internal guide and release page) for more information).
make build
OR
make static
pivot -r $REGISTRY/os:latest
Though normally, one wants to use digests rather than tags, e.g.:
pivot -r $REGISTRY/os@sha256:fdf70521df4ed1dc135d81fd3c4608574aeca45dc22d1b4e38d16630e9d6f1a7
It also comes with a systemd unit to provide a "host API". For example:
mkdir -p /etc/pivot
echo $REGISTRY/os:latest > /etc/pivot/image-pullspec
touch /run/pivot/reboot-needed
systemctl start pivot
This will start pivot
, which will read the file and execute the pivot.
If the pivot is completed, the file will be deleted. The expected way to
make use of this is to create the necessary files from Ignition.