Skip to content

Remove the substrate version label from the install - #1812

Merged
Dmitry Berkovich (dberkov) merged 1 commit into
agent-substrate:mainfrom
HavenXia:remove-version-label
Oct 13, 2026
Merged

Dmitry Berkovich (dberkov) merged 1 commit into
agent-substrate:mainfrom
HavenXia:remove-version-label

Conversation

@HavenXia

@HavenXia Haven Xia (HavenXia) commented Sep 23, 2026 •

Copy link
Copy Markdown
Member

ate-setup no longer labels nodes with ate.dev/substrate-version. The atelet DaemonSet is now named atelet and runs on every node, instead of atelet-<version suffix> pinned to nodes carrying its version.

The label let two Substrate versions run side by side on disjoint sets of nodes, which the clone-WorkerPool upgrade runbook relied on. The GA upgrade doesn't split nodes by version: atelet rolls in place and worker pools roll as ordinary Deployment updates. With the label, deploying a new atelet creates a second DaemonSet pinned to a version no node carries, so it schedules nowhere.

This merges together with #1844, which replaces the label-based runbook in docs/upgrade.md.

Breaking change

Due to the removal of version label system. An install from v0.4 or earlier can't be upgraded in place. Reinstall it, as with every pre-GA minor release.

Part of #1686

  • Tests pass
  • Appropriate changes to documentation are included in the PR

@HavenXia Haven Xia (HavenXia) added DO NOT MERGE This PR must not be merged yet. area/dev-infra labels Sep 23, 2026
@bowei Bowei Du (bowei) added the kind/cleanup Small fixes that are not bugs, for example a typo in a code comment label Sep 30, 2026
@HavenXia Haven Xia (HavenXia) changed the title [DO NOT MERGE]Remove the substrate version label from the install Remove the substrate version label from the install Oct 12, 2026
@HavenXia Haven Xia (HavenXia) removed the DO NOT MERGE This PR must not be merged yet. label Oct 12, 2026
@annapendleton

Copy link
Copy Markdown
Collaborator

Since this is breaking for anyone coming from v0.4, could we add the breaking-change label and fill in the template's "Breaking change" section? kind/cleanup puts it in Other Changes. Two things the note should say: reinstall means ate-setup delete then deploy, because deploying over v0.4 leaves atelet-<version> holding hostPorts 8085/9090 and the new atelet never schedules. And WorkerPools should drop any ate.dev/substrate-version nodeSelector, since delete no longer clears the label from nodes.

@annapendleton

Copy link
Copy Markdown
Collaborator

docs/upgrade.md on main still describes the label-based runbook. #1844's table also says next-minor upgrades are supported, but the design says crossing a window is a reinstall. Will #1844 be updated to match, and can it merge right after this one so main's runbook isn't stale in between?

@HavenXia

Copy link
Copy Markdown
Member Author

docs/upgrade.md on main still describes the label-based runbook. #1844's table also says next-minor upgrades are supported, but the design says crossing a window is a reinstall. Will #1844 be updated to match, and can it merge right after this one so main's runbook isn't stale in between?

Yes they will be merged at the same moment. #1844's table says upgrade cross major version is not supported, which matches our designed compatibility policy now.

@HavenXia Haven Xia (HavenXia) added the breaking-change PRs with breaking changes label Oct 13, 2026
The install labeled every node with ate.dev/substrate-version, named the
atelet DaemonSet atelet-<version suffix> and pinned it to nodes carrying
its version.

This let two substrate versions run side by side on disjoint sets of
nodes, which the clone-WorkerPool upgrade runbook relied on.

The GA upgrade does not split nodes by version. atelet rolls in place and
worker pools roll as ordinary Deployment updates. The label breaks that
flow: deploying a new atelet creates a second DaemonSet pinned to a
version no node carries, so it schedules nowhere.
@dberkov
Dmitry Berkovich (dberkov) added this pull request to the merge queue Oct 13, 2026
Merged via the queue into agent-substrate:main with commit 02d885e Oct 13, 2026
14 checks passed
Adhita Selvaraj (swiftdiaries) pushed a commit to swiftdiaries/substrate that referenced this pull request Oct 14, 2026
Rewrites the upgrade runbook for an `in-place` roll by K8s deployment.

Each component is upgraded where it runs, in order:
podcertificate-controller, atelet, the workers, ate-api-server, the CRDs
and ate-controller, atenet, then the default SandboxConfig.
ate-controller follows the API server because it is a client of it, and
new workers start from the pod template the old ate-controller renders.
The old runbook ran the old and new dataplane side by side instead.

This deliberately gives up two things the old runbook had.

The first is zero loss. Workers are replaced through the eviction path:
`SIGTERM`, then 30 minutes for the actor to be suspended before
`SIGKILL`. Actors already need to handle this for node upgrades and
preemption. An actor that is suspended in time loses nothing. One that
isn't crashes and loses the work since its last snapshot. The old
runbook avoided this by having the operator suspend every actor on a
node before moving it.

The second is instant rollback. Rollback is the same roll in reverse,
from the old release, instead of flipping a node label back. Keeping
both versions running needs spare capacity and the version label.

## TODOs

 Some places are marked TODO because they depend on unfinished work:

1. [DONE] The install record `ate-setup` writes (agent-substrate#1887, implemented in
agent-substrate#2223)
2. The compatibility policy and the version skew policy. The runbook
links both, while both poclies are still in design.
3. Per-release SandboxConfig names

> Part of agent-substrate#1686

Merges together with agent-substrate#1812
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/dev-infra breaking-change PRs with breaking changes kind/cleanup Small fixes that are not bugs, for example a typo in a code comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants