Giter Club home page Giter Club logo

opensearch-k8s-operator's Introduction

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 project is currently a work in progress and is not (yet) recommended for use in non-test environments. The plan is to reach General Availability and a fully functioning Operator by end of 22-Q1.

The Operator features:

  • Deploy a new OS cluster.
  • Ability to deploy multiple clusters.
  • Spin up OS dashboards.
  • Operator Monitoring, with Prometheus and Grafana.
  • Configuration of all node roles (master, data, coordinating..).
  • Scale the cluster resources (manually), per nodes' role group.
  • Drain strategy for scale down.
  • Cluster configurations and nodes' settings updates.
  • Single/Rolling restarts.
  • Version updates.
  • Scaling nodes' disks - increase/replace disks.
  • Change nodes' memory allocation and limits.
  • Control shard balancing and allocation.
  • Advanced allocation strategies: AZ/Rack awareness, Hot/Warm.
  • Secured installation features.
  • Auto scaler based on usage, load, and resources.

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! If you want to contribute to this project please reach out to us at: [email protected].

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.