-
Notifications
You must be signed in to change notification settings - Fork 25
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
Adding Jenkins instance for Benchmark #381
Conversation
Signed-off-by: Jeff Lu <[email protected]>
Signed-off-by: Jeff Lu <[email protected]>
Signed-off-by: Jeff Lu <[email protected]>
Signed-off-by: Jeff Lu <[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.
I think the approach here needs to be revisited. As a user, I should be able to deploy any number of ci-config
and ci
stacks without having to create new classes everytime. See https://github.com/opensearch-project/opensearch-ci/blob/main/bin/ci-stack.ts for more details.
The defaultEnv
can be replaced by any number of values by the user which can help to deploy same stacks for different environments, In this case, benchmarks.
With respect to the configuration customization, I can suggest below:
- Allow user to pass custom jenkins.yaml
- Allow user to specify what agent nodes needs to be deployed. Can be cateogorized into:
a. Default Agent (Already Present)
b. ProdAgents (Already Present, can be changed)
c. Benchmarks Agents (Collection of all agent nodes related to benchmarks)
d. All (All of the above)
I don't see any variable in the docker-compose file so maybe better to use default or allow user to specify its own.
Thanks!
Thank for the comments, @gaiksaya , I may need to check further and discuss more on this becasue :
|
We need to reuse the current stack to deploy a similar set up. An example would be initialize the stack for number of different use cases: const app = new App();
const defaultEnv: string = 'Dev';
const defaultBenchmarkEnv: string = 'benchMark
const ciConfigStack = new CIConfigStack(app, `OpenSearch-CI-Config-${defaultEnv}`, {});
const ciConfigBenchStack = new CIConfigStack(app, `OpenSearch-CI-Config-${defaultBenchmarkEnv}`, {});
const ciStack = new CIStack(app, `OpenSearch-CI-${defaultEnv}`, {});
const ciBenchStack = new CIStack(app, `OpenSearch-CI-${defaultBenchmarkEnv}`, {});
Right, hence we would be keeping this code base as generic and minimal as possible. For user specific use case (like benchmarks) we will initialize as per many stacks as we want like above |
How about having a 'template stack' for all new instance instead of making changes into the existing stack? for example :
The reason is we can prevent more code update on the existing CIStack and CIConfigstack because we want to avoid rebuilding of exsiting CFN template ; |
Description
Adding Jenkins instance for Benchmark -
Issues Resolved
#382
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.