tectonic-torcx
A self-contained node-helper to automatically operate torcx on Tectonic machines.
Background
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.
Details
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)
1: Bootstrap
- 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)
2: OS upgrade on a node
- 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.
Build
make all
to build for all supported architectures.
Execute
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
See also