Skip to content

Commit 50d9377

Browse files
committed
New post: Unattended Updates
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
1 parent b5c0547 commit 50d9377

1 file changed

Lines changed: 105 additions & 0 deletions

File tree

Lines changed: 105 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,105 @@
1+
---
2+
title: Unattended Updates
3+
author: troglobit
4+
date: 2026-10-05 13:00:00 +0200
5+
categories: [howto]
6+
tags: [upgrade, immutable, automation, rauc]
7+
image:
8+
path: /assets/img/immutable-layout.svg
9+
alt: Infix A/B partition layout, the foundation for unattended updates
10+
show_in_post: false
11+
---
12+
13+
Picture forty switches spread over a dozen substations. A new release
14+
has just come out, and somebody has to log in to every one of them, run
15+
`upgrade`, and reboot in a service window. Most of the time that
16+
somebody would rather let the switches do it themselves.
17+
18+
Infix v26.09 introduces support for unattended updates. A unit follows
19+
a release feed on a schedule you set, and when a newer release shows up
20+
it installs it and either reboots or waits for you. You don't need a
21+
script on the outside or a management agent to keep alive.
22+
23+
![](/assets/img/immutable-layout.svg){: #fig1 width="700" }
24+
_**Figure 1**: The A/B layout from [Immutable by Design][immutable]. An
25+
upgrade writes the slot you are not running from and only then flips
26+
the boot order._
27+
28+
What makes this possible is the layout in Figure 1. An upgrade,
29+
manual or not, goes to the inactive slot, so the release you are
30+
running stays untouched in the other one. If the new release does not
31+
work out, `set boot-order` takes you back to it with a reboot.
32+
Automatic fallback, where the bootloader notices a failed boot and
33+
switches back on its own, is in the works.
34+
35+
### Getting Started
36+
37+
The factory configuration already follows the Infix releases on GitHub
38+
and comes with two [schedules][schedule], `nightly` and `weekly`, both
39+
at 03:00. So all it takes is pointing the feature at one of them:
40+
41+
```
42+
admin@example:/> configure system
43+
admin@example:/config/system/> set software unattended-update schedule weekly
44+
admin@example:/config/system/> leave
45+
```
46+
47+
By default the unit installs the new release and then waits for you to
48+
reboot it. To have it reboot right away instead, so the whole update
49+
happens inside the window:
50+
51+
```
52+
admin@example:/config/system/> set software unattended-update reboot immediate
53+
```
54+
55+
Until automatic fallback is in place, save that for units you can
56+
easily reach if a release does not boot.
57+
58+
If you would rather only hear about new releases, point `check-update`
59+
at a schedule instead. It reads the same feed and leaves a notice at
60+
the next login and on the WebUI dashboard, but installs nothing.
61+
62+
### Your Own Feed
63+
64+
The update source is a plain RSS or Atom feed, so following a fork, a
65+
staging channel, or a feed of your own is a matter of changing
66+
`update-url`. Any static web server will do, with the feed and the
67+
`.pkg` files laid out the same way GitHub does it. The
68+
[documentation][docs] has an example feed.
69+
70+
That also gives you staged rollouts for free. Put a few canary units
71+
on a feed that gets the release first, and move the rest over a week
72+
later.
73+
74+
### Checking the Status
75+
76+
`show software` tells you which schedule drives what, and how the last
77+
check and install went:
78+
79+
```
80+
admin@example:/> show software
81+
...
82+
Software updates
83+
Source : https://github.com/kernelkit/infix/releases.atom
84+
Check : nightly (daily at 03:00)
85+
Unattended : weekly (sunday at 03:00), reboot manual
86+
Last check : 2026-09-30T03:00:12Z, latest v26.08.1, up to date
87+
Last install : 2026-09-28T03:02:41Z, installed v26.08.1, reboot pending
88+
```
89+
90+
The details end up in `/var/log/messages`, and the same status is in
91+
the operational datastore for anything that polls over NETCONF or
92+
RESTCONF. NETCONF and RESTCONF notifications for update events are
93+
coming soon, so a management system will not have to poll at all.
94+
95+
### Staying Current
96+
97+
Configure it once, and every unit keeps itself on the latest release,
98+
on your schedule and through your feed if you want one. The
99+
substations stay current, and the service window is somebody's quiet
100+
Sunday night instead of a road trip. Try it on a unit or two, then
101+
let the rest follow.
102+
103+
[immutable]: /posts/immutable-by-design/
104+
[schedule]: https://kernelkit.org/infix/latest/schedule/
105+
[docs]: https://kernelkit.org/infix/latest/upgrade/#hosting-your-own-feed

0 commit comments

Comments
 (0)