-
Notifications
You must be signed in to change notification settings - Fork 1.9k
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/extensions] Determining whether Job Scheduler should be in core or an extension #4218
Comments
Possible Routes :
Summary / initial thoughts : Our recommendation is to move job scheduler into core as a native plugin. This course of action would make it easier for contributors to extend the core functionality of OpenSearch. Previous discussions have pointed out that the functionality provided by Job Scheduler is not necessary for all deployments, thus mandating installation would only consume resources and not add any inherent value. Therefore, the native plugin design being superior to the module design for Job Scheduler. Since Job Scheduler already has a one-to-many relationship with other plugins, simplifying dependency management provides enough justification for pulling it into core. Additionally, communication between Job Scheduler and other extensions must go through core in order to utilize the REST API framework, so implementing Job Scheduler as an extension would not be as efficient. |
@dblock @kartg @nknize @Bukhtawar @praveensameneni @owaiskazi19 @anasalkouz @reta @bbarani @mch2 @andrross @peternied @saratvemulapalli @anirudha Many of you were involved in previous discussions about the location of Job Scheduler, and we would appreciate your input on this decision. |
💯 Additional there are many reoccurring processes inside of OpenSearch itself, having a single mechanism available for defining and scheduling those actions would be of great long term value. |
I think the benefits of making job scheduler a native plugin are clear. |
I agree with the recommendation and the comments above to model job scheduler as a native plugin. That said, I did have a follow-up question around this:
Can we improve this experience so that the onus is on the upstream plugin rather than the user to install job-scheduler? It seems like there's an opportunity here to improve our guardrails so that users aren't expected to know that job-scheduler is a pre-requisite for certain plugins. Such a mechanism would also prevent users from accidentally uninstalling job-scheduler if a plugin is using it. |
We can definitely look into that. |
@kartg this is exactly what we want to do in Extensions world as part of extensibility project. |
+1 I like the idea of putting getting it in as a native plugin, it really doesn't mandate the installation but if customers need it, its simple to install.
@kartg Our plugin installation tool A sample run on opensearch 2.2.1 distribution:
[1] Lines 110 to 116 in 54364a5
|
I'd also vote native plugin for less dependency and the flexibility on installation, and there seems to be no real downside. |
Glad to see the issue re-surface from the previous issue/discussion |
I'm actually quite confused how this is a different issue than opensearch-project/job-scheduler#147 where there was strong opposition to moving it to the core. Tangentially, it looks like there is an unresolved question on whether it should be a plugin or module. Should min distribution install the job scheduler by default (module) if no other plugin or module is using it? Separately, the opensearch distribution can install it as part of the bundle since Index Management, Anomaly Detection, Reporting, and Alerting take it as a dependency. If extensions is picking this up, is refactoring to the core necessary as a stepping stone to "extension-ifying" job scheduler? |
From what I understand, the main opposition to moving Job Scheduler in previous discussions was due to the mandated installation required by making Job Scheduler a module. Our recommendation is to make Job Scheduler a native plugin, which does not require installation, since not every user needs Job Scheduler. However, our proposal would make it easier for the user to install Job Scheduler. Another justification for moving to core is the 1-Many relationship between Job Scheduler and IM, AD, Reporting, and Alerting. The refactor to core is not absolutely necessary in order to function with extensions, but it is a major improvement. The communication framework that we are building for extensions uses many of the API's found in core, which would simplify communication between Job Scheduler and the plugins/extensions that depend on it. |
I see. That wasn't my take of the original issue so maybe I misinterpreted the original feedback. Moving job-scheduler to core (regardless of plugin vs module) has been a long running controversial issue because no min-distro functionality uses it, only bundled plugins that depend on it. Do not take this feedback as my veto to refactor job-scheduler to core. Having it as an optional plugin I think is a net positive, minimally-disruptive, change. There are a few things, though, I think we should sort out:
Update: if we do decide to rote refactor job scheduler to plugins, then we should do this in #2608 so @dbbaughe get's primary authorship credit since he largely took care of everything. We just need to move it to plugins instead of modules. |
@anirudha could you please share your input here on this proposal as well since Reporting plugin has a dependency on JS plugin? |
Based on the feedback provided, we have decided to proceed with moving Job Scheduler to a native plugin. |
@ryanbogan I am curious what the feedback provided that made the decision final. Would you be able to provide that insight or link to that convo? Seems like some of questions by @nknize were still open before proceeding. I think it would be good to be have a definition what belongs in core and what doesn't. It would probably be important to have the same alignment with OpenSearch Dashboards. |
Since the extensibility team is taking over ownership for job-scheduler, we need to determine how it will be integrated with extensions moving forward.
Research tasks:
Duplicate of opensearch-project/job-scheduler#147
The text was updated successfully, but these errors were encountered: