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

Integrating multiple Jenkins CI instances for unified access #382

Open
9 tasks
jordarlu opened this issue Jan 5, 2024 · 1 comment
Open
9 tasks

Integrating multiple Jenkins CI instances for unified access #382

jordarlu opened this issue Jan 5, 2024 · 1 comment
Assignees
Labels
enhancement New feature or request

Comments

@jordarlu
Copy link
Contributor

jordarlu commented Jan 5, 2024

Is your feature request related to a problem? Please describe

The current OpenSearch Jenkins CI is critical to the success of OpenSearch project. It acts as a gateway for PR’s, distribution builds, benchmark tests, releases, security scans and more.

There are requests to add new tasks (for example adding integration test jobs against on a new Github Repo) to the current public OpenSearch Jenkins CI, keeping in mind the possibility of transitioning to community management soon.

The current Jenkins CI has been facing resource constraints, mainly caused by the increased specific tasks. This has led to service disruptions, for example increasing the frequency of build jobs, which in turn, has strained our other tasks within the Jenkins to run.

In response to these challenges, instead of relying on a current single Jenkins CI to handle all tasks, we're moving towards a distributed approach. This new strategy proposes the deployment of multiple Jenkins CI instances, each dedicated to managing specific types of tasks.

Describe the solution you'd like

The proposal in high level is to have multiple Jenkins instances, and each instance is responsible for a specific work/job/load ; for example we will have Jenkins for Build, Jenkins for Gradle Check, Jenkins for Benchmark, etc. Before splitting up jenkins the plan is to move the CDK package and deployment process to github, Github actions will be used instead of internal pipelines in the new approach.

Sub tasks:

Acceptance criteria :

  • Migrate the internal CDK package and the deployment steps to github.
  • Jenkins CI shall be able to be deployed on multiple AWS accounts
  • By default, every AWS account should be able to deploy one instance of Jenkins CI
  • The Jenkins CI instances system should be publicly accessible as it is today
  • Support for BYOJ (Bring Your Own Jenkins) shall be available, allowing integration any Jenkins CI with the current Build Jenkins CI that offers a public access point, provided it is accessible via the existing/current build CI URL path
  • If any Jenkins CI account is compromised, it won't impact any other Jenkins CI
  • If one Jenkins CI has been loaded, it won't impact any other Jenkins CI
  • Different accounts, teams, or individuals can manage Jenkins CI instances without sharing sensitive information or secrets or minimizing the needs for sharing information crossing accounts

Describe alternatives you've considered

Keep using the current Jenkins CI

Additional context

N/A

@jordarlu jordarlu added enhancement New feature or request untriaged Issues that have not yet been triaged and removed untriaged Issues that have not yet been triaged labels Jan 5, 2024
@jordarlu jordarlu self-assigned this Jan 5, 2024
@jordarlu jordarlu changed the title Jenkins multi instances support Integrating multiple Jenkins CI instances for unified access Feb 9, 2024
@jordarlu
Copy link
Contributor Author

jordarlu commented Feb 9, 2024

We've opted to proceed with having the identification of Jenkins instances into the URL path.
The existing URL, https://build.ci.opensearch.org/, will serve as the primary access point for the main Jenkins CI. For accessing additional Jenkins instances, we will utilize specific paths within the URL, denoted as /path/.

For example:
jenkinsCI_for_github_issue

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
Status: 🏗 In progress
Development

No branches or pull requests

2 participants