update

k0s Update Server - Reference implementation

This repo serves as k0s update server reference implementation. It provides the basic channels descriptions that is expected from an update server.

Available channels

Channel “protocol”

When autopilot is configred to use a channel called some-channel, it will request the information from following URL <update-server-address/<channel>/index.yaml Essentially k0s autopilot assumes the folowing structure for update channels:

<channel-name>/
    index.yaml

Each the channel name can contain e.g. forward slashes so you can structure the channels for example like so:

stable/v1.28/
    index.yaml
unstable/v1.28/
    index.yaml

Each channel index.yaml need to provide following information:

channel: v1.27
eolDate: "2024-06-28"
version: 1.27.8+k0s.0
downloadURLs:
- arch: amd64
  os: linux
  k0s: https://github.com/k0sproject/k0s/releases/download/v1.27.0%2Bk0s.0/k0s-v1.27.0+k0s.0-amd64
  k0sSha256: deadbeef
  airgapBundle: someurlhere
  airgapSha256: deadbeef
- arch: arm64
  os: linux
  url: https://github.com/k0sproject/k0s/releases/download/v1.27.0%2Bk0s.0/k0s-v1.27.0+k0s.0-arm64
- arch: arm
  os: linux
  url: https://github.com/k0sproject/k0s/releases/download/v1.27.0%2Bk0s.0/k0s-v1.27.0+k0s.0-arm
- arch: amd64
  os: windows
  url: https://github.com/k0sproject/k0s/releases/download/v1.27.0%2Bk0s.0/k0s-v1.27.0+k0s.0-amd64.exe

So each channel can offer only single version to k0s autopilot client. In general the design pattern here is that each major.minor version will have their own channel where the latest patch release is offered.