-
Notifications
You must be signed in to change notification settings - Fork 15
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
Feature/multi loader #559
base: main
Are you sure you want to change the base?
Feature/multi loader #559
Conversation
Signed-off-by: Lenson <[email protected]>
Signed-off-by: Lenson <[email protected]>
Signed-off-by: Lenson <[email protected]>
Signed-off-by: Lenson <[email protected]>
Signed-off-by: Lenson <[email protected]> add multi loader base Signed-off-by: Lenson <[email protected]>
Signed-off-by: Lenson <[email protected]>
Signed-off-by: Lenson <[email protected]>
Signed-off-by: Lenson <[email protected]>
Signed-off-by: Lenson <[email protected]>
Signed-off-by: Lenson <[email protected]> add additional knative platform type Signed-off-by: Lenson <[email protected]>
Signed-off-by: Lenson <[email protected]>
Signed-off-by: Lenson <[email protected]> update multi loader config struct Signed-off-by: Lenson <[email protected]>
Signed-off-by: Lenson <[email protected]> add unpack study Signed-off-by: Lenson <[email protected]>
Signed-off-by: Lenson <[email protected]> update experiment config temp path Signed-off-by: Lenson <[email protected]>
Signed-off-by: Lenson <[email protected]> update log parser Signed-off-by: Lenson <[email protected]> update log parser Signed-off-by: Lenson <[email protected]> update log parser Signed-off-by: Lenson <[email protected]>
Signed-off-by: Lenson <[email protected]>
Signed-off-by: Lenson <[email protected]>
Signed-off-by: Lenson <[email protected]>
Signed-off-by: Lenson <[email protected]> update default multi loader config path Signed-off-by: Lenson <[email protected]>
Signed-off-by: Lenson <[email protected]> update basic config Signed-off-by: Lenson <[email protected]> update basic config Signed-off-by: Lenson <[email protected]> add basic configs Signed-off-by: Lenson <[email protected]> update base config Signed-off-by: Lenson <[email protected]>
Signed-off-by: Lenson <[email protected]>
Signed-off-by: Lenson <[email protected]> remove knative extra features Signed-off-by: Lenson <[email protected]>
Signed-off-by: Lenson <[email protected]>
Signed-off-by: Lenson <[email protected]>
Signed-off-by: Lenson <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is the first brief look at the code.
Please consider moving the multi-loader exclusive part away from the loader's common package. There is no point in storing a structure for a multi-loader there.
Another thing is gofmt; please set the VS Code to run it on all file saves. There are issues with alignment and whitespace around parentheses.
Please add GitHub workflows for the tests and add e2e tests. You can add separate workflow files for both. In e2e, please check the output hierarchy and the different settings used in the experiments.
Please review each function and ensure that the names make sense to someone who reads them for the first time.
For the failing spellcheck, you will need to add all the failing words (unless you misspelled them) into .github/configs/wordlist.txt
.
pkg/common/node_types.go
Outdated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't think it is a good idea to create a separate file in common for node group. It is only used in the multi-loader, so it is already not common.
pkg/common/config_types.go
Outdated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Also quite multi-loader related, you can move it where it is actually use, instead of storing it in common.
pkg/common/validators.go
Outdated
} | ||
|
||
// Check general multi-loader configuration that applies to all platforms | ||
func CheckMultiLoaderConfig(multiLoaderConfig MultiLoaderConfiguration) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is very multi-loader specific, please move out of common.
MultiLoaderConfig common.MultiLoaderConfiguration | ||
NodeGroup common.NodeGroup | ||
DryRunSuccess bool | ||
Verbosity string | ||
IatGeneration bool | ||
Generated bool | ||
DryRun bool | ||
Platform string |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please run gofmt on all the files. VSCode can do it on each save.
return experiments | ||
} | ||
|
||
func (d *MultiLoaderRunner) createNewStudy(study common.LoaderStudy, fileName string) common.LoaderStudy { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not very obvious what is going on; why do you supply loader study (by copy, BTW) to the function to create a new study.
Signed-off-by: Lenson <[email protected]>
Signed-off-by: Lenson <[email protected]>
…ader folder Signed-off-by: Lenson <[email protected]>
Signed-off-by: Lenson <[email protected]>
Summary
A wrapper around loader to run multiple studies at once with additional features like validation, dry-run and log collection
Implementation Notes ⚒️
Multi-Loader Entry Point:
MultiLoaderRunner
houses the main logic of the multi-loader and exposes two execution points:RunDryRun
andRunActual
multi_loader.go
intools/multiloader/
initializes theMultiLoaderRunner
and calls the appropriate execution pointExperiment Execution Flow:
dryRun
flag is set totrue
when callingloader.go
Post Execution:
Make Clean
External Dependencies 🍀
Breaking API Changes⚠️
Simply specify none (N/A) if not applicable.