Repository navigation
ate-setup: save used settings locally after installation - #2223
Conversation
254e011 to
99f8049
Compare
Anna Pendleton (annapendleton)
left a comment
There was a problem hiding this comment.
Non-blocking: changes like this are much easier to review in smaller pieces, e.g. (1) moving settings into the registry with no behaviour change, (2) the settings report, (3) saving runs. Not asking to split this one, just a thought for next time.
I generally agree. This was already broken down from the Config management aspect for that reason. My issue with breaking this down further is that API updates that change the underlying flags might get missed because adding them all to the config (change 1) before deleting them (change 2) leaves a chance for them to change at the source of truth until the wiring is complete (also Change 2) leading to regressions (added modified flag not in change 1). The issue I am facing now is that the merge conflicts are tripping me up a bit leaving behind some cruft. Not perfect either way |
This change wires a uniform configuration into the installer to enable saving the used setting to a local "cache" for later usage (i.e. during an upgrade). All demos and install steps have been ported over to the uniform config file.
99f8049 to
64e01d1
Compare
Haven Xia (HavenXia)
left a comment
There was a problem hiding this comment.
LGTM, thank you!
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
This change wires a uniform configuration into the installer to enable saving the used setting to a local "cache" for later usage (i.e. during an upgrade).
All demos and install steps have been ported over to the uniform config file and commands will print their settings and the origin of those settings:
Example:
Breaking change
All in-flight API updates that are accessible via the ate-setup tooling must be updated to use the uniform config layer.
Fixes #1887