A self-contained node-helper to automatically operate torcx on Tectonic machines.
Tectonic needs a specific version of Docker to be installed. Since Docker on Container Linux is managed by torcx, this tool suite keeps the torcx configuration in sync with the cluster environment.
The tool ensures that the correct verison of Docker is in the torcx store for any potential OS versions. In other words, it populates torcx stores for Current and Next OS versions.
This software handles two main cases:
- A new node is added to the cluster and needs to be configured (bootstrap)
- An existing node is ready to reboot to a new OS version (pre-reboot hook)
- Trigger an OS update (optional, default true)
- Determine the Kubelet version to install
- Determine the correct Docker version
- Fetch and configure Docker torcx addons and profile
- Set the correct kubelet version
- Trigger node reboot (if needed by updates)
- Watch for pre-reboot annotation
- Determine new OS version
- Determine docker version
- Fetch correct docker torcx addon
- GC unneeded images
- Add success annotation
In both cases, it can also determine/update kubelet based on cluster status.
make all
to build for all supported architectures.
This helper is normally run within a container:
docker run \
--tmpfs /tmp \
-v /usr/share:/usr/share:ro \
-v /usr/lib/os-release:/usr/lib/os-release:ro \
-v /usr/share/ca-certificates/ca-certificates.crt:/etc/ssl/certs/ca-certificates.crt:ro \
-v /var/lib/torcx:/var/lib/torcx \
-v /run/metadata:/run/metadata:ro \
-v /run/systemd:/run/systemd \
-v /run/torcx:/run/torcx:ro \
-v /var/run/dbus:/var/run/dbus \
-v /etc/coreos:/etc/coreos:ro \
-v /etc/torcx:/etc/torcx \
-v /etc/kubernetes:/etc/kubernetes \
-v /dev/log:/dev/log \
quay.io/coreos/tectonic-torcx:latest-dev \
--verbose=debug