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

[#1548] Add support for dynamic rollouts #1533

Merged
merged 2 commits into from Jan 18, 2024

Conversation

avgustinmm
Copy link
Contributor

@avgustinmm avgustinmm commented Jan 6, 2024

Status - Experimental !!! to be improved

Concept for dynamic groups, main aspects:

  • Rollouts are static and dynamic.
  • Static rollouts consist of static groups only, while
  • dynamic rollouts have several (unlimited) - first comes some static groups and then an unlimited number of dynamic groups.

Group targets assignments:

  • static groups include ALL matching targets created at the time the rollout was created, nevertheless they have active actions with bigger weight or not. Assignments for the rollout and included targets are created at the start time.
  • dynamic groups however are filled in when started and consider the action weight. The targets included in a dynamic group are:
    • matching (filter and distribution set compatible)
    • not included in this or following rollout static groups (if already included in any of the following rollouts - it's intended to be overridden)
    • not in actions of any rollouts in this and newer rollouts or in a rollout with a bigger weight

In general, when you create a rollout it contains all matching targets available at create time overriding any previous rollouts, actions, and so on. If the rollout is dynamic when its dynamic group becomes running it gets only matching targets that don't belong to static groups or have actions with great or equal weight

Some effects:

  • action weight - becomes non null, current nulls are set to 1000
  • rollout weight - becomes non null, current nulls are set to 1000
  • auto assignment weight - becomes non null, current nulls are set to 1000
  • there is an assumption that until now default "default weight" 1000 hasn't been overridden
  • dynamic property added to rollout and groups
  • changed the percent for groups - now (for new groups) it is the percent from all targets (was from the rest)

@hawkbit-bot
Copy link

Can one of the admins verify this patch?

@avgustinmm avgustinmm force-pushed the feature/dynamic_rollouts branch 6 times, most recently from 1176297 to a158415 Compare January 14, 2024 09:28
@avgustinmm avgustinmm marked this pull request as ready for review January 14, 2024 09:38
@avgustinmm avgustinmm changed the title Add support for dynamic rollouts [#1548] Add support for dynamic rollouts Jan 16, 2024
-- Current status --

Initial draft only !!!, to be improved

TODO:
 * evaluate the target count - if update group/rollout total count fails dynamic updates could (?), actually, contain more targets
 * is it needed to break handler on group creating?
 * if dynamic group schedulers occur to be heavy - maybe a handler per tenant will ensure that one tenant won't break all

*Concept for dynamic groups*:

Rollouts are static and dynamic.
Static rollouts consist of static groups only while dynamic rollouts have a number of static groups (first groups) and then an unlimited number of dynamic groups.

Group targets assignments:
* static groups include ALL matching targets created at the time the rollout was created, nevertheless they have active actions with bigger weight or not. Actions for the rollout and included targeets however are created at the start time.
* dynamic groups however are filled in when started and consider the action weight. The targets included in a dynamic group are:
  * matching (filter and distribution set compatible)
  * not included in this or following rollout static groups (if already included in any of the following rollouts - it's intended to be overridden)
  * not in active actions of any rollouts with equal or bigger weight

In general, when you create a rollout it contains all matching targets available at create time overriding any previous rollouts, actions, and so on. If the rollout is dynamic when its dynamic group becomes running it gets only matching targets that doesn't belong to static groups or have actions with great or equal weight

Signed-off-by: Marinov Avgustin <Avgustin.Marinov@bosch.com>
…ents without weight

Signed-off-by: Marinov Avgustin <Avgustin.Marinov@bosch.com>
@avgustinmm avgustinmm merged commit 7768e54 into eclipse:master Jan 18, 2024
2 checks passed
@avgustinmm avgustinmm deleted the feature/dynamic_rollouts branch February 3, 2024 04:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants