You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat(db): make rollout state runtime-local for distributed Nebraska
The `rollout_in_progress` indicator for a group is the only field on
the admin-managed `groups` table that is written by the update-serving
engine, not the admin. This is a step towards the distributed topology
described in RFC #1375: admin state needs to flow one-way from the
admin node to each runtime node, while runtime state must stay local
so each runtime node records what it observes from its own clients.
This change moves that single field onto its own runtime-local table.
Standalone-mode behavior is unchanged.
Note on `policy_safe_mode`: in distributed mode there is no path for
runtime nodes to send observations back to the admin node, which means
the `safe_mode` auto-pause cannot work as it does today. I'm proposing
we do not support `safe_mode` while distributed mode is enabled, at
least within the scope of this effort. A proper solution (e.g. some
form of runtime-to-admin state sharing) can be designed separately.
Refs: #1375
Signed-off-by: Moustafa Moustafa <momousta@microsoft.com>
-**Group rollout state moved to runtime-local table:** The `rollout_in_progress` flag on `groups` is now stored in a separate `group_state` table, in preparation for the distributed Nebraska topology described in [RFC #1375](https://github.com/flatcar/nebraska/issues/1375). The JSON contract is unchanged. ([#1396](https://github.com/flatcar/nebraska/pull/1396))
insert into groups values ('9a2deb70-37be-4026-853f-bfdd6b347bbe', 'Stable', 'For production clusters', false, true, true, false, 'Europe/Berlin', '15 minutes', 2, '60 minutes', '2019-08-19 05:09:34.269062', 'e96281a6-d1af-4bde-9a0a-97b76e56dc57', 'e06064ad-4414-4904-9a6e-fd465593d1b2', 'stable');
29
-
insert into groups values ('3fe10490-dd73-4b49-b72a-28ac19acfcdc', 'Beta', 'Promoted alpha releases, to catch bugs specific to your configuration', true, true, true, false, 'Europe/Berlin', '15 minutes', 2, '60 minutes', '2019-08-19 05:09:34.273244', 'e96281a6-d1af-4bde-9a0a-97b76e56dc57', '128b8c29-5058-4643-8e67-a1a0e3c641c9', 'beta');
30
-
insert into groups values ('5b810680-e36a-4879-b98a-4f989e80b899', 'Alpha', 'Tracks current development work and is released frequently', false, true, true, false, 'Europe/Berlin', '15 minutes', 1, '30 minutes', '2019-08-19 05:09:34.274911', 'e96281a6-d1af-4bde-9a0a-97b76e56dc57', 'a87a03ad-4984-47a1-8dc4-3507bae91ee1', 'alpha');
28
+
insert into groups values ('9a2deb70-37be-4026-853f-bfdd6b347bbe', 'Stable', 'For production clusters', true, true, false, 'Europe/Berlin', '15 minutes', 2, '60 minutes', '2019-08-19 05:09:34.269062', 'e96281a6-d1af-4bde-9a0a-97b76e56dc57', 'e06064ad-4414-4904-9a6e-fd465593d1b2', 'stable');
29
+
insert into groups values ('3fe10490-dd73-4b49-b72a-28ac19acfcdc', 'Beta', 'Promoted alpha releases, to catch bugs specific to your configuration', true, true, false, 'Europe/Berlin', '15 minutes', 2, '60 minutes', '2019-08-19 05:09:34.273244', 'e96281a6-d1af-4bde-9a0a-97b76e56dc57', '128b8c29-5058-4643-8e67-a1a0e3c641c9', 'beta');
30
+
update group_state set rollout_in_progress = true where group_id ='3fe10490-dd73-4b49-b72a-28ac19acfcdc';
31
+
insert into groups values ('5b810680-e36a-4879-b98a-4f989e80b899', 'Alpha', 'Tracks current development work and is released frequently', true, true, false, 'Europe/Berlin', '15 minutes', 1, '30 minutes', '2019-08-19 05:09:34.274911', 'e96281a6-d1af-4bde-9a0a-97b76e56dc57', 'a87a03ad-4984-47a1-8dc4-3507bae91ee1', 'alpha');
0 commit comments