How the agent gets into a VM
Nothing needs to be done per instance: the platform installs the agent at the instance’s first boot.
At first boot
Section titled “At first boot”The platform adds its own cloud-init vendor data to every instance, beside the tenant’s user data. On first boot it:
-
Adds a package repository served by the metadata service (
http://169.254.169.254/latest/stratum/packages), with the release key that signs its metadata. -
Installs the
stratum-instance-agentpackage:Image family Repository Install dnf / yum (AlmaLinux, CentOS Stream, Fedora, RHEL) /etc/yum.repos.d/stratum.repo, key in/etc/pki/rpm-gpg/RPM-GPG-KEY-stratumdnf install stratum-instance-agentapt (Debian, Ubuntu) /etc/apt/sources.list.d/stratum.list, key in/etc/apt/keyrings/stratum.ascapt-get install stratum-instance-agent -
If the package manager is not recognized, or the repository cannot be reached, falls back to downloading the agent binary from the metadata service and writing its systemd units directly.
The repository is used only when its key fetches; the platform never configures it with signature checking off.
The package owns the agent’s files, so tenant user data cannot delete them by
accident, and a repair is a reinstall (dnf reinstall or
apt-get install --reinstall).
What the image needs
Section titled “What the image needs”- Full cloud-init. AlmaLinux, CentOS Stream, Fedora, Debian and Ubuntu cloud images work; minimal test images such as CirrOS do not.
- The metadata service enabled on the instance. An instance launched with the metadata endpoint disabled has no agent rail.
- curl or wget in the image, for the fallback path.
Custom user data cannot lock the agent out: the agent runs as root and recreates
the stratum-ssh login user if the tenant’s users: list replaced it.
Inside the guest
Section titled “Inside the guest”| Unit | Runs |
|---|---|
stratum-instance-agent-heartbeat.timer |
The heartbeat, about once a minute, and the self-update check. |
stratum-instance-agent-session.service |
The Session Manager channel; a timer restarts it if it stops. |
stratum-instance-agent.timer |
SSH host certificate and CA trust upkeep, every 6 hours. |
stratum-instance-agent-metrics.timer |
Guest metrics. |
stratum-instance-agent-inventory.timer, -connections.timer |
Security posture: inventory every 15 minutes, connections every 2. |
stratum-instance-agent-selfheal.timer |
Every 10 minutes, repairs a wedged agent. |
The binary is /usr/local/bin/stratum-instance-agent.
Updates
Section titled “Updates”Each heartbeat compares the agent’s own binary with the build the platform serves. When they differ, the agent fetches and runs the platform’s install script as root, then checks the new binary. Updates across a fleet are spread over a few minutes, so instances do not all restart at once. A new release of the platform therefore reaches running instances by itself, with no relaunch.
To apply it now instead, use Refresh agent; see Troubleshooting.
