Elasticsearch DB Operator is a Kubernetes operator built with Kubebuilder, that operates Elasticsearch database (i.e. indices and settings).
You need kubectl to deploy Elasticsearch DB Operator with it.
git clone https://github.com/kaitoy/elasticsearch-db-operator.git
cd elasticsearch-db-operator
kubectl apply -f config/crds/elasticsearchdb_v1beta1_index.yaml
kubectl apply -f config/crds/elasticsearchdb_v1beta1_template.yaml
kubectl apply -f elasticsearch-db-operator.yaml
-
Write an index manifest.
e.g.)
apiVersion: elasticsearchdb.kaitoy.github.com/v1beta1 kind: Index metadata: labels: controller-tools.k8s.io: "1.0" name: index-sample url: elasticsearchEndpoint: http://elasticsearch:9200 index: user spec: settings: index: number_of_shards: 5 number_of_replicas: 1 mappings: _doc: _source: enabled: true properties: age: type: integer name: properties: first: type: keyword boost: 2.5 last: type: keyword
-
Apply the manifest to create the index.
-
Delete the manifest to delete the index.
-
Write a template manifest.
e.g.)
apiVersion: elasticsearchdb.kaitoy.github.com/v1beta1 kind: Template metadata: labels: controller-tools.k8s.io: "1.0" name: template-sample url: elasticsearchEndpoint: http://elasticsearch:9200 template: user_template spec: index_patterns: - user-* settings: index: number_of_shards: 5 number_of_replicas: 1 order: 10 version: 3 mappings: _doc: _source: enabled: true properties: age: type: integer name: properties: first: type: keyword boost: 2.5 last: type: keyword
-
Apply the manifest to create the template.
-
Delete the manifest to delete the template.
You need Docker to build Elasticsearch DB Operator container image, and kustomize to generate a Kubernetes manifest file.
- Build container image
git clone https://github.com/kaitoy/elasticsearch-db-operator.git
cd elasticsearch-db-operator
docker build .
- Generate Kubernetes manifest file
kustomize build config/default > elasticsearch-db-operator.yaml