The Kubernetes OpenSearch Operator is used for automating the deployment, provisioning, management, and orchestration of OpenSearch clusters and OpenSearch dashboards.
The full roadmap is available here: Development plan
- Deploy a new OS cluster.
- Ability to deploy multiple clusters.
- Spin up OS dashboards.
- Configuration of all node roles (master, data, coordinating..).
- Scale the cluster resources (manually), per nodes' role group.
- Drain strategy for scale down.
- Version updates.
- Change nodes' memory allocation and limits.
- Secured installation features.
- Certificate management.
- Scaling nodes' disks - increase/replace disks.
- Cluster configurations and nodes' settings updates.
- Rolling restarts - through API.
- Auto scaler based on usage, load, and resources.
- Operator Monitoring, with Prometheus and Grafana.
- Control shard balancing and allocation: AZ/Rack awareness, Hot/Warm.
- Clone the repo
- Run
make build manifests
to build the controller binary and the manifests - Start a kubernetes cluster (e.g. with k3d or minikube) and make sure your
~/.kube/config
points to it - Run
make install
to create the CRD in the kubernetes cluster
Go to opensearch-operator
and use opensearch-cluster.yaml
as a starting point to define your cluster - note that the clusterName
is also the namespace that the new cluster will reside in. Then run:
kubectl apply -f opensearch-cluster.yaml
Note: the current installation deploys with the default demo certificate provided by OpenSearch.
In order to delete the cluster, please delete your OpenSearch cluster resource; this will delete the cluster namespace and all its resources.
kubectl get opensearchclusters --all-namespaces
kubectl delete opensearchclusters my-cluster -n <namespace>
We welcome contributions! See how you can get involved here.