stackabletech / stackabletech/opensearch-operator

Install selected OpenSearch plugins on start-up

Open
#59 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

customer-request size/M type/feature-new
Dominant language
Rust
Stars
0
Forks
2
Avg merge
11h 1m
Merged PRs (30d)
9

Description

Users often need some but not all OpenSearch plugins. It would be optimal if users can choose the desired plugins in the OpenSearchCluster specification, e.g.

---
apiVersion: opensearch.stackable.tech/v1alpha1
kind: OpenSearchCluster
spec:
  clusterConfig:
    plugins:
      - opensearch-alerting
      - opensearch-anomaly-detection
      - opensearch-asynchronous-search
      - opensearch-cross-cluster-replication
      - opensearch-custom-codecs
      - opensearch-flow-framework
      - opensearch-geospatial
      - opensearch-index-management
      - opensearch-job-scheduler
      - opensearch-knn
      - opensearch-ml
      - opensearch-neural-search
      - opensearch-notifications
      - opensearch-notifications-core
      - opensearch-observability
      - opensearch-performance-analyzer
      - opensearch-reports-scheduler
      - opensearch-search-relevance
      - opensearch-security
      - opensearch-security-analytics
      - opensearch-skills
      - opensearch-sql
      - opensearch-system-templates
      - opensearch-ubi
      - prometheus-exporter
      - query-insights
      - repository-s3
      - telemetry-otel

Dependent plugins should be installed automatically, e.g. if the plugin opensearch-index-management is set then the required plugin opensearch-job-scheduler should also be installed.

The installation must not require a connection to the internet. The core plugins and some additional plugins could be already added (but not installed) to the Stackable OpenSearch image, see https://docs.opensearch.org/3.1/install-and-configure/plugins/#downloading-bundled-plugins-for-offline-installation.

Custom plugins could be supported by setting a URL or a path to a mounted volume.

Some plugins can be disabled after installation, others cannot. Therefore, it is not a good solution to just install all plugins in the Dockerfile.

Workaround

A custom image based on the Stackable OpenSearch image must be created where desired plugins can be installed and undesired ones removed.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

The issue identifies OpenSearchCluster.spec.clusterConfig.plugins as the configuration entry point and points to OpenSearch's bundled-plugin documentation; start by tracing that specification and the operator's image and start-up path. Done means selected and dependent plugins can be installed without internet access, with the requested custom plugin and disablement behavior resolved.

Written by the indexing model from the issue text.

Assessment

Tech stack
docker, kubernetes, rust
Domain
backend-api-design, infrastructure, search
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.