Skip to content

Conversation

sgontla
Copy link
Contributor

@sgontla sgontla commented Oct 18, 2021

Implement a Scheduler for the App framework

Code changes listed here add the following functionality:

  • Support for adding multiple pipeline phases. For now, there are 3 phases: Download, Pod Copy, and Install
  • Support for a phase handler for each pipeline phase
  • Channels to hand off the workers to the phase handlers.
  • Updates to the CR Status to include the Phase Info to track all the 3 phases of the scheduler. Also, Aux Phase Info in the case of Standalone CRs, such that each Pod is tracked separately for the App package install status.
  • Yield logic to yield the current reconciliation once in a while, and re-enter later, so that the other parts of the reconcile are not stalled for extended period of time.
  • A control channel to break the Scheduler, when it is time to yield.

@sgontla sgontla marked this pull request as draft October 18, 2021 04:20
@sgontla sgontla requested a review from vebken-splunk October 20, 2021 14:16
@sgontla sgontla marked this pull request as ready for review October 20, 2021 14:16
@sgontla sgontla requested a review from kashok-splunk October 20, 2021 14:23
@sgontla sgontla force-pushed the feature_cspl-1337 branch 3 times, most recently from 95d832b to e2a522c Compare October 23, 2021 18:13
@smohan-splunk smohan-splunk self-requested a review October 26, 2021 18:24
- Add scheduler for App framework:
- Define Download, Pod copy  and install phase, and their managers, to run in a decoupled way
- Asynchronous channel writes active as interface for download, pod copy and install workers.
- Periodically yield the reconcile, so that other CRs are not blocked for a long time
- Update the phase status, across the reconciles, so that the App framework restarts from the place it left during the last reconcile
@smohan-splunk smohan-splunk merged commit e014065 into feature-appframework Oct 27, 2021
@@ -2646,6 +2646,29 @@ spec:
type: object
appName:
type: string
auxPhaseInfo:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@sgontla Do we need these changes for MC? OR should this be part of PR #571

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, it comes by default for all the CRs, as it is one data structure that is used for App Deploy info across the places.

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.

5 participants