opensearch-project / OpenSearch

🔎 Open source distributed and RESTful search engine.
https://opensearch.org/docs/latest/opensearch/index/
Apache License 2.0
8.89k stars 1.63k forks source link

Added changes for AdmissionControl Interceptor and AdmissionControlService for RateLimiting #9286

Closed ajaymovva closed 7 months ago

ajaymovva commented 9 months ago

Description

This PR consists of below functionalities

Note:

This PR only have initial basic implementation of many classes. As this is the first PR for this feature we are making sure to give basic idea how admission controller is tracing the transport requests and eventually how we will reject the requests if the threshold breaches based on each admission controllers

Related Issues

Ref: https://github.com/opensearch-project/OpenSearch/issues/8910

Check List

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.

github-actions[bot] commented 9 months ago

Gradle Check (Jenkins) Run Completed with:

opensearch-trigger-bot[bot] commented 9 months ago

Compatibility status:


> Task :checkCompatibility
Incompatible components: [https://github.com/opensearch-project/alerting.git, https://github.com/opensearch-project/index-management.git, https://github.com/opensearch-project/asynchronous-search.git, https://github.com/opensearch-project/sql.git, https://github.com/opensearch-project/observability.git, https://github.com/opensearch-project/common-utils.git, https://github.com/opensearch-project/reporting.git, https://github.com/opensearch-project/cross-cluster-replication.git, https://github.com/opensearch-project/notifications.git, https://github.com/opensearch-project/security-analytics.git, https://github.com/opensearch-project/performance-analyzer.git]
Compatible components: [https://github.com/opensearch-project/security.git, https://github.com/opensearch-project/anomaly-detection.git, https://github.com/opensearch-project/job-scheduler.git, https://github.com/opensearch-project/k-nn.git, https://github.com/opensearch-project/geospatial.git, https://github.com/opensearch-project/neural-search.git, https://github.com/opensearch-project/ml-commons.git, https://github.com/opensearch-project/performance-analyzer-rca.git, https://github.com/opensearch-project/opensearch-oci-object-storage.git]

BUILD SUCCESSFUL in 24m 6s
github-actions[bot] commented 9 months ago

Gradle Check (Jenkins) Run Completed with:

github-actions[bot] commented 9 months ago

Gradle Check (Jenkins) Run Completed with:

opensearch-trigger-bot[bot] commented 9 months ago

Compatibility status:


> Task :checkCompatibility
Incompatible components: [https://github.com/opensearch-project/notifications.git, https://github.com/opensearch-project/index-management.git, https://github.com/opensearch-project/security-analytics.git, https://github.com/opensearch-project/alerting.git, https://github.com/opensearch-project/asynchronous-search.git, https://github.com/opensearch-project/common-utils.git, https://github.com/opensearch-project/cross-cluster-replication.git]
Compatible components: [https://github.com/opensearch-project/geospatial.git, https://github.com/opensearch-project/security.git, https://github.com/opensearch-project/neural-search.git, https://github.com/opensearch-project/sql.git, https://github.com/opensearch-project/job-scheduler.git, https://github.com/opensearch-project/opensearch-oci-object-storage.git, https://github.com/opensearch-project/observability.git, https://github.com/opensearch-project/k-nn.git, https://github.com/opensearch-project/anomaly-detection.git, https://github.com/opensearch-project/reporting.git, https://github.com/opensearch-project/ml-commons.git, https://github.com/opensearch-project/performance-analyzer.git, https://github.com/opensearch-project/performance-analyzer-rca.git]

BUILD SUCCESSFUL in 32m 6s
github-actions[bot] commented 9 months ago

Gradle Check (Jenkins) Run Completed with:

github-actions[bot] commented 9 months ago

Gradle Check (Jenkins) Run Completed with:

github-actions[bot] commented 9 months ago

Compatibility status:

Checks if related components are compatible with change fa39f9a

Incompatible components

Skipped components

Compatible components

Compatible components: [https://github.com/opensearch-project/security-analytics.git, https://github.com/opensearch-project/custom-codecs.git, https://github.com/opensearch-project/security.git, https://github.com/opensearch-project/opensearch-oci-object-storage.git, https://github.com/opensearch-project/index-management.git, https://github.com/opensearch-project/geospatial.git, https://github.com/opensearch-project/sql.git, https://github.com/opensearch-project/job-scheduler.git, https://github.com/opensearch-project/notifications.git, https://github.com/opensearch-project/observability.git, https://github.com/opensearch-project/k-nn.git, https://github.com/opensearch-project/neural-search.git, https://github.com/opensearch-project/cross-cluster-replication.git, https://github.com/opensearch-project/alerting.git, https://github.com/opensearch-project/performance-analyzer.git, https://github.com/opensearch-project/anomaly-detection.git, https://github.com/opensearch-project/performance-analyzer-rca.git, https://github.com/opensearch-project/asynchronous-search.git, https://github.com/opensearch-project/ml-commons.git, https://github.com/opensearch-project/common-utils.git, https://github.com/opensearch-project/reporting.git]

github-actions[bot] commented 9 months ago

Gradle Check (Jenkins) Run Completed with:

github-actions[bot] commented 9 months ago

Compatibility status:

Checks if related components are compatible with change be089cf

Incompatible components

Skipped components

Compatible components

github-actions[bot] commented 9 months ago

Compatibility status:

Checks if related components are compatible with change a1e6134

Incompatible components

Skipped components

Compatible components

github-actions[bot] commented 9 months ago

Gradle Check (Jenkins) Run Completed with:

github-actions[bot] commented 9 months ago

Gradle Check (Jenkins) Run Completed with:

github-actions[bot] commented 9 months ago

Compatibility status:

Checks if related components are compatible with change f60c6b5

Incompatible components

Skipped components

Compatible components

Compatible components: [https://github.com/opensearch-project/security.git, https://github.com/opensearch-project/alerting.git, https://github.com/opensearch-project/index-management.git, https://github.com/opensearch-project/sql.git, https://github.com/opensearch-project/anomaly-detection.git, https://github.com/opensearch-project/job-scheduler.git, https://github.com/opensearch-project/asynchronous-search.git, https://github.com/opensearch-project/observability.git, https://github.com/opensearch-project/common-utils.git, https://github.com/opensearch-project/k-nn.git, https://github.com/opensearch-project/reporting.git, https://github.com/opensearch-project/cross-cluster-replication.git, https://github.com/opensearch-project/geospatial.git, https://github.com/opensearch-project/performance-analyzer.git, https://github.com/opensearch-project/notifications.git, https://github.com/opensearch-project/ml-commons.git, https://github.com/opensearch-project/performance-analyzer-rca.git, https://github.com/opensearch-project/neural-search.git, https://github.com/opensearch-project/security-analytics.git, https://github.com/opensearch-project/opensearch-oci-object-storage.git]

github-actions[bot] commented 9 months ago

Compatibility status:

Checks if related components are compatible with change de4ea96

Incompatible components

Skipped components

Compatible components

Compatible components: [https://github.com/opensearch-project/geospatial.git, https://github.com/opensearch-project/security.git, https://github.com/opensearch-project/notifications.git, https://github.com/opensearch-project/neural-search.git, https://github.com/opensearch-project/index-management.git, https://github.com/opensearch-project/sql.git, https://github.com/opensearch-project/security-analytics.git, https://github.com/opensearch-project/job-scheduler.git, https://github.com/opensearch-project/observability.git, https://github.com/opensearch-project/k-nn.git, https://github.com/opensearch-project/opensearch-oci-object-storage.git, https://github.com/opensearch-project/cross-cluster-replication.git, https://github.com/opensearch-project/alerting.git, https://github.com/opensearch-project/performance-analyzer.git, https://github.com/opensearch-project/anomaly-detection.git, https://github.com/opensearch-project/performance-analyzer-rca.git, https://github.com/opensearch-project/asynchronous-search.git, https://github.com/opensearch-project/ml-commons.git, https://github.com/opensearch-project/common-utils.git, https://github.com/opensearch-project/reporting.git]

github-actions[bot] commented 9 months ago

Gradle Check (Jenkins) Run Completed with:

github-actions[bot] commented 9 months ago

Compatibility status:

Checks if related components are compatible with change 25c16b6

Incompatible components

Skipped components

Compatible components

Compatible components: [https://github.com/opensearch-project/geospatial.git, https://github.com/opensearch-project/security.git, https://github.com/opensearch-project/notifications.git, https://github.com/opensearch-project/neural-search.git, https://github.com/opensearch-project/index-management.git, https://github.com/opensearch-project/sql.git, https://github.com/opensearch-project/security-analytics.git, https://github.com/opensearch-project/job-scheduler.git, https://github.com/opensearch-project/observability.git, https://github.com/opensearch-project/k-nn.git, https://github.com/opensearch-project/opensearch-oci-object-storage.git, https://github.com/opensearch-project/cross-cluster-replication.git, https://github.com/opensearch-project/alerting.git, https://github.com/opensearch-project/performance-analyzer.git, https://github.com/opensearch-project/anomaly-detection.git, https://github.com/opensearch-project/ml-commons.git, https://github.com/opensearch-project/asynchronous-search.git, https://github.com/opensearch-project/performance-analyzer-rca.git, https://github.com/opensearch-project/common-utils.git, https://github.com/opensearch-project/reporting.git]

github-actions[bot] commented 9 months ago

Gradle Check (Jenkins) Run Completed with:

codecov[bot] commented 9 months ago

Codecov Report

Merging #9286 (fa39f9a) into main (200ad5d) will increase coverage by 0.09%. Report is 4 commits behind head on main. The diff coverage is 92.14%.

@@             Coverage Diff              @@
##               main    #9286      +/-   ##
============================================
+ Coverage     71.12%   71.21%   +0.09%     
- Complexity    58545    58688     +143     
============================================
  Files          4859     4868       +9     
  Lines        276252   276399     +147     
  Branches      40191    40195       +4     
============================================
+ Hits         196473   196847     +374     
+ Misses        63347    63185     -162     
+ Partials      16432    16367      -65     
Files Coverage Δ
...upport/replication/TransportReplicationAction.java 77.28% <100.00%> (-3.40%) :arrow_down:
...a/org/opensearch/common/network/NetworkModule.java 92.20% <100.00%> (+0.20%) :arrow_up:
...rg/opensearch/common/settings/ClusterSettings.java 92.85% <ø> (ø)
.../indices/replication/common/ReplicationTarget.java 86.25% <100.00%> (+7.30%) :arrow_up:
server/src/main/java/org/opensearch/node/Node.java 85.28% <100.00%> (+0.09%) :arrow_up:
...ting/admissioncontrol/AdmissionControlService.java 100.00% <100.00%> (ø)
...issioncontrol/controllers/AdmissionController.java 100.00% <100.00%> (ø)
...g/admissioncontrol/enums/AdmissionControlMode.java 100.00% <100.00%> (ø)
...ng/admissioncontrol/enums/TransportActionType.java 100.00% <100.00%> (ø)
...ol/transport/AdmissionControlTransportHandler.java 100.00% <100.00%> (ø)
... and 7 more

... and 471 files with indirect coverage changes

github-actions[bot] commented 8 months ago

Compatibility status:

Checks if related components are compatible with change 7f87c0e

Incompatible components

Incompatible components: [https://github.com/opensearch-project/sql.git, https://github.com/opensearch-project/cross-cluster-replication.git, https://github.com/opensearch-project/neural-search.git]

Skipped components

Compatible components

Compatible components: [https://github.com/opensearch-project/security.git, https://github.com/opensearch-project/alerting.git, https://github.com/opensearch-project/index-management.git, https://github.com/opensearch-project/anomaly-detection.git, https://github.com/opensearch-project/job-scheduler.git, https://github.com/opensearch-project/observability.git, https://github.com/opensearch-project/asynchronous-search.git, https://github.com/opensearch-project/common-utils.git, https://github.com/opensearch-project/k-nn.git, https://github.com/opensearch-project/reporting.git, https://github.com/opensearch-project/geospatial.git, https://github.com/opensearch-project/ml-commons.git, https://github.com/opensearch-project/notifications.git, https://github.com/opensearch-project/performance-analyzer.git, https://github.com/opensearch-project/performance-analyzer-rca.git, https://github.com/opensearch-project/security-analytics.git, https://github.com/opensearch-project/opensearch-oci-object-storage.git]

github-actions[bot] commented 8 months ago

Compatibility status:

Checks if related components are compatible with change fc249df

Incompatible components

Incompatible components: [https://github.com/opensearch-project/sql.git, https://github.com/opensearch-project/cross-cluster-replication.git, https://github.com/opensearch-project/neural-search.git]

Skipped components

Compatible components

Compatible components: [https://github.com/opensearch-project/security.git, https://github.com/opensearch-project/alerting.git, https://github.com/opensearch-project/index-management.git, https://github.com/opensearch-project/anomaly-detection.git, https://github.com/opensearch-project/job-scheduler.git, https://github.com/opensearch-project/asynchronous-search.git, https://github.com/opensearch-project/observability.git, https://github.com/opensearch-project/common-utils.git, https://github.com/opensearch-project/k-nn.git, https://github.com/opensearch-project/reporting.git, https://github.com/opensearch-project/geospatial.git, https://github.com/opensearch-project/ml-commons.git, https://github.com/opensearch-project/notifications.git, https://github.com/opensearch-project/performance-analyzer.git, https://github.com/opensearch-project/performance-analyzer-rca.git, https://github.com/opensearch-project/security-analytics.git, https://github.com/opensearch-project/opensearch-oci-object-storage.git]

github-actions[bot] commented 8 months ago

Gradle Check (Jenkins) Run Completed with:

github-actions[bot] commented 8 months ago

Gradle Check (Jenkins) Run Completed with:

github-actions[bot] commented 8 months ago

Compatibility status:

Checks if related components are compatible with change eaf67e0

Incompatible components

Incompatible components: [https://github.com/opensearch-project/sql.git, https://github.com/opensearch-project/cross-cluster-replication.git, https://github.com/opensearch-project/neural-search.git]

Skipped components

Compatible components

Compatible components: [https://github.com/opensearch-project/security.git, https://github.com/opensearch-project/alerting.git, https://github.com/opensearch-project/index-management.git, https://github.com/opensearch-project/anomaly-detection.git, https://github.com/opensearch-project/job-scheduler.git, https://github.com/opensearch-project/asynchronous-search.git, https://github.com/opensearch-project/observability.git, https://github.com/opensearch-project/common-utils.git, https://github.com/opensearch-project/k-nn.git, https://github.com/opensearch-project/reporting.git, https://github.com/opensearch-project/geospatial.git, https://github.com/opensearch-project/ml-commons.git, https://github.com/opensearch-project/notifications.git, https://github.com/opensearch-project/performance-analyzer.git, https://github.com/opensearch-project/performance-analyzer-rca.git, https://github.com/opensearch-project/security-analytics.git, https://github.com/opensearch-project/opensearch-oci-object-storage.git]

github-actions[bot] commented 8 months ago

Gradle Check (Jenkins) Run Completed with:

github-actions[bot] commented 8 months ago

Compatibility status:

Checks if related components are compatible with change 63035a8

Incompatible components

Incompatible components: [https://github.com/opensearch-project/sql.git, https://github.com/opensearch-project/cross-cluster-replication.git, https://github.com/opensearch-project/neural-search.git]

Skipped components

Compatible components

Compatible components: [https://github.com/opensearch-project/security.git, https://github.com/opensearch-project/alerting.git, https://github.com/opensearch-project/index-management.git, https://github.com/opensearch-project/anomaly-detection.git, https://github.com/opensearch-project/job-scheduler.git, https://github.com/opensearch-project/asynchronous-search.git, https://github.com/opensearch-project/observability.git, https://github.com/opensearch-project/common-utils.git, https://github.com/opensearch-project/k-nn.git, https://github.com/opensearch-project/reporting.git, https://github.com/opensearch-project/geospatial.git, https://github.com/opensearch-project/ml-commons.git, https://github.com/opensearch-project/performance-analyzer.git, https://github.com/opensearch-project/notifications.git, https://github.com/opensearch-project/performance-analyzer-rca.git, https://github.com/opensearch-project/security-analytics.git, https://github.com/opensearch-project/opensearch-oci-object-storage.git]

github-actions[bot] commented 8 months ago

Gradle Check (Jenkins) Run Completed with:

github-actions[bot] commented 8 months ago

Gradle Check (Jenkins) Run Completed with:

github-actions[bot] commented 8 months ago

Gradle Check (Jenkins) Run Completed with:

github-actions[bot] commented 8 months ago

Gradle Check (Jenkins) Run Completed with:

github-actions[bot] commented 8 months ago

Gradle Check (Jenkins) Run Completed with:

github-actions[bot] commented 8 months ago

Gradle Check (Jenkins) Run Completed with:

github-actions[bot] commented 8 months ago

Gradle Check (Jenkins) Run Completed with:

github-actions[bot] commented 8 months ago

Gradle Check (Jenkins) Run Completed with:

github-actions[bot] commented 8 months ago

Gradle Check (Jenkins) Run Completed with:

github-actions[bot] commented 8 months ago

Gradle Check (Jenkins) Run Completed with:

github-actions[bot] commented 8 months ago

Gradle Check (Jenkins) Run Completed with:

github-actions[bot] commented 8 months ago

Gradle Check (Jenkins) Run Completed with:

github-actions[bot] commented 8 months ago

Gradle Check (Jenkins) Run Completed with:

ajaymovva commented 8 months ago

Tagging @reta for the review feedback on the PR.

github-actions[bot] commented 8 months ago

Gradle Check (Jenkins) Run Completed with:

github-actions[bot] commented 8 months ago

Gradle Check (Jenkins) Run Completed with:

github-actions[bot] commented 8 months ago

Gradle Check (Jenkins) Run Completed with:

github-actions[bot] commented 8 months ago

Gradle Check (Jenkins) Run Completed with:

github-actions[bot] commented 8 months ago

Gradle Check (Jenkins) Run Completed with:

github-actions[bot] commented 8 months ago

Gradle Check (Jenkins) Run Completed with:

github-actions[bot] commented 8 months ago

Gradle Check (Jenkins) Run Completed with:

github-actions[bot] commented 7 months ago

Gradle Check (Jenkins) Run Completed with:

github-actions[bot] commented 7 months ago

Gradle Check (Jenkins) Run Completed with:

github-actions[bot] commented 7 months ago

Gradle Check (Jenkins) Run Completed with: