Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add a setting to delay updates on a Bottlerocket node #4273

Open
cbgbt opened this issue Oct 30, 2024 · 1 comment
Open

Add a setting to delay updates on a Bottlerocket node #4273

cbgbt opened this issue Oct 30, 2024 · 1 comment
Labels
status/needs-triage Pending triage or re-evaluation type/enhancement New feature or request

Comments

@cbgbt
Copy link
Contributor

cbgbt commented Oct 30, 2024

What I'd like:
Bottlerocket nodes currently decide for themselves when an update "becomes visible" to the host. This is controlled by a combination of the following factors:

  • The update's wave schedule
  • The node's update seed which determine's its position in the wave schedule
  • The node's ignore-waves setting, which allows the node to op to ignore the wave schedule.

It would be useful if we could add an additional setting to add an arbitrary delay to the update.

As an example, suppose we introduce a new setting:

apiclient set settings.updates.delay="48 hours"

Instead of using the settings.updates.seed value to make the update available exactly when that node's position becomes "ready" in the wave schedule, we would use the relevant wave's start time + the offset dictated by the new value.

We may be able to retrofit this setting into settings.updates.ignore-waves so that string values indicate the delay:

ignore-waves = "for 1 week"
ignore-waves = "for 3 days"

Any alternatives you've considered:

This is something that could also be implemented in the update agents (e.g. brupop). I'm not as inclined to prefer this, since it would only solve the problem for a subset of Bottlerocket users which use in-place updates.

@cbgbt cbgbt added type/enhancement New feature or request status/needs-triage Pending triage or re-evaluation labels Oct 30, 2024
@cbgbt
Copy link
Contributor Author

cbgbt commented Oct 30, 2024

After some further discussion, I think two unique settings may be less ambiguous:

  • The existing boolean ignore-waves
  • A new setting, delay-waves or bake-time.

The semantics would be as such:

  • If ignore-waves is true, wait for the static bake-time but always delayed from the very first wave in the update schedule (or perhaps based on the update publication day).
  • If ignore-waves is false, wait for the static bake-time but delayed from the wave position that the node would have otherwise fallen under.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
status/needs-triage Pending triage or re-evaluation type/enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant