Skip to content

Scheduler #465

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

Merged
merged 11 commits into from
Jul 3, 2024
Merged

Scheduler #465

merged 11 commits into from
Jul 3, 2024

Conversation

yalosev
Copy link
Contributor

@yalosev yalosev commented Apr 2, 2024

Overview

  • Reworking the mechanism of detecting which modules are enabled/disabled and by which components;
  • RunModuleWithNewStaticValues method was rewritten to RunModuleWithNewOpenAPISchema (and it's logic, from updating a module's static values to updating its schema storage;
  • A module status changed event is sent if the module's enabled status wasn't changed, but the reason why module is enabled/disabled has changed.

What this PR does / why we need it

This pr introduces a new sub-component of Module Manager - Module Scheduler, which aim is to decide which Module Manager's modules should be enabled or disabled by means of calculating a graph of the modules (DAG), traversing the graph and applying various module Filters (called Extenders). Currently, there are four basic extenders to filter modules' status:

  • static (based on static values files)
  • dynamic (based on catching global hooks' patches)
  • kube-config (based on the values provided in the comfigMap)
  • script-enabled (based on the results of running modules' enabled scripts)
    The order extenders applied is up to the user, yet a default list of applied extenders is provided. It's up to the user to add any new extenders, following provided extender interface.

Also, there are numerous changes to other components of the operator in the pr to suit the new graph-based model.

Special notes for your reviewer

@miklezzzz miklezzzz force-pushed the feature-scheduler branch from 1e45790 to dd04cd5 Compare April 9, 2024 16:02
@miklezzzz miklezzzz added the enhancement New feature or request label Apr 19, 2024
@miklezzzz miklezzzz force-pushed the feature-scheduler branch 2 times, most recently from 80544c0 to 557b081 Compare May 3, 2024 15:57
@miklezzzz miklezzzz force-pushed the feature-scheduler branch 5 times, most recently from 5dccd62 to d888ada Compare May 9, 2024 09:23
@miklezzzz miklezzzz force-pushed the feature-scheduler branch 3 times, most recently from 32112f1 to 2df067e Compare May 20, 2024 13:46
@miklezzzz miklezzzz self-assigned this May 20, 2024
@miklezzzz miklezzzz force-pushed the feature-scheduler branch 3 times, most recently from 0a9dbbf to 392105e Compare May 21, 2024 19:13
@miklezzzz miklezzzz force-pushed the feature-scheduler branch 5 times, most recently from ab7d367 to 1d86271 Compare June 4, 2024 09:07
@miklezzzz miklezzzz force-pushed the feature-scheduler branch 5 times, most recently from 7c713fe to 29b172c Compare July 1, 2024 18:29
yalosev and others added 2 commits July 2, 2024 13:35
add dynamically enabled extender

Signed-off-by: Mikhail Scherba <[email protected]>
Signed-off-by: Mikhail Scherba <[email protected]>
@miklezzzz miklezzzz force-pushed the feature-scheduler branch from 354b899 to 2b54206 Compare July 2, 2024 11:16
@miklezzzz miklezzzz force-pushed the feature-scheduler branch from 2b54206 to 153e001 Compare July 2, 2024 12:13
@miklezzzz miklezzzz marked this pull request as ready for review July 2, 2024 12:29
@miklezzzz miklezzzz self-requested a review July 3, 2024 10:50
@yalosev yalosev merged commit e6aaf51 into main Jul 3, 2024
8 checks passed
@yalosev yalosev deleted the feature-scheduler branch July 3, 2024 10:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants