Qubership OpenSearch
Qubership OpenSearch is a comprehensive solution for deploying OpenSearch in Kubernetes with High Availability (HA), Disaster Recovery (DR), and Multi-AZ setups.
Includes tools for backup management, monitoring, database as a service API and integration testing to ensure reliable operation and security.
Designed for creating resilient and secure OpenSearch clusters in a cloud-native environment.

Documentation
Repository structure
./charts
- directory with main HELM chart for OpenSearch and integration tests.
./config
- directory with YAML resources for operator framework.
./controllers
- directory with operator's Golang source code which implements controller functionality.
./dev-kit
- directory with scripts for working with Golang Operator Framework.
./disasterrecovery
- directory with operator's Golang source code which implements disaster recovery functionality.
./docs
- directory with actual documentation for OpenSearch service component.
./integration-tests
- directory with Robot Framework test cases for OpenSearch.
./tls-init
- directory with source code, Dockerfile and CI/CD config files for tls-init
job.
./utils
- directory with operator's Golang source code which implements common functions.
How to start
Deploy to k8s
Pure helm
- Build operator and integration tests, if you need non-main versions.
- Prepare kubeconfig on you host machine to work with target cluster.
- Prepare
sample.yaml
file with deployment parameters, which should contains custom docker images if it is needed.
- Store
sample.yaml
file in /charts/helm/opensearch-service
directory.
- Go to
/charts/helm/opensearch-service
directory.
- Run the following command:
helm install opensearch-service ./ -f sample.yaml -n <TARGET_NAMESPACE>
Smoke tests
There is no smoke tests.
How to debug
VSCode
To debug Operator in VSCode you can use Launch operator
configuration which is already defined in
.vscode/launch.json
file.
The developer should configure environment variables:
KUBECONFIG
- developer should need to define KUBECONFIG
environment variable
which should contains path to the kube-config file. It can be defined on configuration level
or on the level of user's environment variables.
OPENSEARCH_USERNAME
- username for REST API access.
OPENSEARCH_PASSWORD
- password for REST API access.
OPENSEARCH_HOST
- OpenSearch's Ingress.
OPENSEARCH_NAME
, WATCH_NAMESPACE
.
How to troubleshoot
There are no well-defined rules for troubleshooting, as each task is unique, but there are some tips that can do:
- Deploy parameters.
- Application manifest.
- Logs from all OpenSearch service pods: operator, OpenSearch, monitoring and others.
Also, developer can take a look on Troubleshooting guide.
Evergreen strategy
To keep the component up to date, the following activities should be performed regularly:
- Vulnerabilities fixing.
- OpenSearch upgrade.
- Bug-fixing, improvement and feature implementation for operator and other related supplementary services.
Useful links