leandrocostam / opensearch-k8s-operator

OpenSearch k8s Operator

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

build test

OpenSearch-k8s-operator

The Kubernetes OpenSearch Operator is used for automating the deployment, provisioning, management, and orchestration of OpenSearch clusters and OpenSearch dashboards.

Roadmap

The full roadmap is available here: Development plan

The Operator features:

  • 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.

Getting Started

Installing the Operator

  • 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

Deploying a new OpenSearch 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.

Deleting an OpenSearch cluster

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>

Contributions

We welcome contributions! See how you can get involved here.

About

OpenSearch k8s Operator

License:Apache License 2.0


Languages

Language:Go 97.1%Language:Makefile 2.1%Language:Dockerfile 0.4%Language:Starlark 0.2%Language:Shell 0.2%