Merge branch 'elastic-multinode'

This commit is contained in:
Sameer Naik
2017-09-06 17:42:24 +05:30
11 changed files with 381 additions and 223 deletions
+2 -2
View File
@@ -1,6 +1,6 @@
name: elasticsearch
version: 0.0.1
appVersion: 5.5.1
version: 0.1.0
appVersion: 5.5.2
description: A highly scalable open-source full-text search and analytics engine
keywords:
- elasticsearch
+28 -24
View File
@@ -2,7 +2,7 @@
[Elasticsearch](https://www.elastic.co/products/elasticsearch) is a highly scalable open-source full-text search and analytics engine. It allows you to store, search, and analyze big volumes of data quickly and in near real time.
## TL;DR;
## TL;DR
```console
$ helm install incubator/elasticsearch
@@ -43,24 +43,30 @@ The command removes all the Kubernetes components associated with the chart and
The following tables lists the configurable parameters of the Elasticsearch chart and their default values.
| Parameter | Description | Default |
|-------------------------------|-----------------------------------------------------------------|-----------------------------------|
| `image` | Elasticsearch image | `bitnami/elasticsearch:{VERSION}` |
| `imagePullPolicy` | Image pull policy | `IfNotPresent` |
| `elasticsearchClusterName` | Elasticsearch cluster name | `elasticsearch-cluster` |
| `elasticsearchNodeName` | Elasticsearch node name | `` |
| `elasticsearchPortNumber` | Elasticsearch port | `9200` |
| `elasticsearchNodePortNumber` | Elasticsearch Node to Node port | `9300` |
| `elasticsearchClusterHosts` | Elasticsearch hosts list (comma/colon seperated) | `` |
| `elasticsClientNode` | Elasticsearch node to behave as a 'smart router' for Kibana app | `false` |
| `serviceType` | Kubernetes Service type | `ClusterIP` |
| `persistence.enabled` | Enable persistence using a `PersistentVolumeClaim` | `true` |
| `persistence.annotations` | Persistent Volume Claim annotations | `{}` |
| `persistence.existingClaim` | Persistent Volume existing claim name | `` |
| `persistence.storageClass` | Persistent Volume Storage Class | `` |
| `persistence.accessModes` | Persistent Volume Access Modes | `[ReadWriteOnce]` |
| `persistence.size` | Persistent Volume Size | `8Gi` |
| `resources` | CPU/Memory resource requests/limits | `` |
| Parameter | Description | Default |
|------------------------------------|-------------------------------------------------------|---------------------------------------------------------------------|
| image.name | Elasticsearch image name | `bitnami/elasticsearch` |
| image.tag | Elasticsearch image tag | `{VERSION}` |
| image.pullPolicy | Image pull policy | `IfNotPresent` |
| service.type | Kubernetes service type | `ClusterIP` |
| cluster.name | Elasticsearch cluster name | `elasticsearch-cluster` |
| cluster.port.http | Elasticsearch REST port | `9200` |
| node.serviceAccountName | Kubernetes service account | `default` |
| node.plugins | Elasticsearch node plugins | `io.fabric8:elasticsearch-cloud-kubernetes:5.5.2` (required plugin) |
| node.config | Elasticsearch node custom configuration | `` |
| node.master.name | Master node pod name | `master` |
| node.master.replicas | Desired number of Elasticsearch master eligible nodes | `2` |
| node.master.heapSize | master node heap size | `128m` |
| node.master.resources | CPU/Memory resource requests/limits for master nodes | `{ memory: "256Mi" }` |
| node.data.name | Data node pod name | `data` |
| node.data.replicas | Desired number of Elasticsearch data eligible nodes | `3` |
| node.data.heapSize | data node heap size | `1024m` |
| node.data.resources | CPU/Memory resource requests/limits for data nodes | `{ memory: "512Mi" }` |
| node.data.persistence.enabled | Enable persistence using a `PersistentVolumeClaim` | `true` |
| node.data.persistence.annotations | Persistent Volume Claim annotations | `{}` |
| node.data.persistence.storageClass | Persistent Volume Storage Class | `` |
| node.data.persistence.accessModes | Persistent Volume Access Modes | `[ReadWriteOnce]` |
| node.data.persistence.size | Persistent Volume Size | `8Gi` |
The above parameters map to the env variables defined in [bitnami/elasticsearch](http://github.com/bitnami/bitnami-docker-elasticsearch). For more information please refer to the [bitnami/elasticsearch](http://github.com/bitnami/bitnami-docker-elasticsearch) image documentation.
@@ -68,11 +74,11 @@ Specify each parameter using the `--set key=value[,key=value]` argument to `helm
```console
$ helm install --name my-release \
--set elasticsearchClusterName=elastic,elasticsearchPortNumber=80 \
--set cluster.name=elastic,cluster.port.http=8080 \
incubator/elasticsearch
```
The above command sets the Elasticsearch cluster name and REST api port number to `elastic` and `80` respectively.
The above command sets the Elasticsearch cluster name to `elastic` and REST port number to `8080`.
Alternatively, a YAML file that specifies the values for the parameters can be provided while installing the chart. For example,
@@ -84,7 +90,5 @@ $ helm install --name my-release -f values.yaml incubator/elasticsearch
## Persistence
The [Bitnami Elasticsearch](https://github.com/bitnami/bitnami-docker-elasticsearch) image stores the Elasticsearch data and configurations at the `/bitnami` path of the container.
Persistent Volume Claims are used to keep the data across deployments. This is known to work in GCE, AWS, and minikube.
The [Bitnami Elasticsearch](https://github.com/bitnami/bitnami-docker-elasticsearch) image stores the Elasticsearch data and configurations at the `/bitnami` path of the container. Persistent Volume Claims are used to persist the state of the data processing Elasticsearch nodes. This is known to work in GCE, AWS, and minikube.
See the [Configuration](#configuration) section to configure the PVC or to disable persistence.
+15 -15
View File
@@ -1,38 +1,38 @@
{{- if contains .Values.serviceType "LoadBalancer" }}
{{- if contains .Values.service.type "LoadBalancer" }}
-------------------------------------------------------------------------------
WARNING
By specifying "serviceType=LoadBalancer" you have most likely exposed the
By specifying "service.type=LoadBalancer" you have most likely exposed the
Elasticsearch service externally. Please note that Elasticsearch does not
implement a authentication mechanism to secure your cluster.
For security reasons, we strongly suggest that you switch to using "ClusterIP"
or "NodePort" as the "serviceType".
For security reasons, we strongly suggest that you switch to "ClusterIP"
or "NodePort".
-------------------------------------------------------------------------------
{{- end }}
** Please be patient while the chart is being deployed **
Elasticsearch can be accessed within the cluster on port {{ .Values.elasticsearchPortNumber }} at {{ template "fullname" . }}.{{ .Release.Namespace }}.svc.cluster.local
Elasticsearch can be accessed within the cluster on port {{ .Values.cluster.port.http }} at {{ template "fullname" . }}-http.{{ .Release.Namespace }}.svc.cluster.local
To access from outside the cluster execute the following commands:
{{- if contains "NodePort" .Values.serviceType }}
{{- if contains "NodePort" .Values.service.type }}
export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ template "fullname" . }})
export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ template "fullname" . }}-http)
export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}")
echo http://$NODE_IP:$NODE_PORT/
{{- else if contains "LoadBalancer" .Values.serviceType }}
{{- else if contains "LoadBalancer" .Values.service.type }}
NOTE: It may take a few minutes for the LoadBalancer IP to be available.
Watch the status with: 'kubectl get svc --namespace {{ .Release.Namespace }} -w {{ template "fullname" . }}'
Watch the status with: 'kubectl get svc --namespace {{ .Release.Namespace }} -w {{ template "fullname" . }}-http'
export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ template "fullname" . }} -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
echo http://$SERVICE_IP:{{ .Values.elasticsearchPortNumber }}/
{{- else if contains "ClusterIP" .Values.serviceType }}
export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ template "fullname" . }}-http -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
echo http://$SERVICE_IP:{{ .Values.cluster.port.http }}/
{{- else if contains "ClusterIP" .Values.service.type }}
export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app={{ template "name" . }},release={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}")
echo http://127.0.0.1:{{ .Values.elasticsearchPortNumber }}/
kubectl port-forward $POD_NAME {{ .Values.elasticsearchPortNumber }}:{{ .Values.elasticsearchPortNumber }}
export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app={{ template "name" . }},release={{ .Release.Name }},component=master" -o jsonpath="{.items[0].metadata.name}")
echo http://127.0.0.1:{{ .Values.cluster.port.http }}/
kubectl port-forward $POD_NAME {{ .Values.cluster.port.http }}:9200
{{- end }}
@@ -14,3 +14,22 @@ We truncate at 63 chars because some Kubernetes name fields are limited to this
{{- $name := default .Chart.Name .Values.nameOverride -}}
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/*
Create a default fully qualified master name.
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
*/}}
{{- define "master.fullname" -}}
{{- $name := default .Chart.Name .Values.nameOverride -}}
{{- printf "%s-%s-%s" .Release.Name $name .Values.node.master.name | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/*
Create a default fully qualified data name.
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
*/}}
{{- define "data.fullname" -}}
{{- $name := default .Chart.Name .Values.nameOverride -}}
{{- printf "%s-%s-%s" .Release.Name $name .Values.node.data.name | trunc 63 | trimSuffix "-" -}}
{{- end -}}
+33
View File
@@ -0,0 +1,33 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ template "fullname" . }}
labels:
app: {{ template "name" . }}
chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
release: "{{ .Release.Name }}"
heritage: "{{ .Release.Service }}"
data:
elasticsearch_custom.yml: |-
node:
name: ${HOSTNAME}
master: ${NODE_MASTER:true}
data: ${NODE_DATA:true}
cloud:
kubernetes:
service: ${SERVICE}
namespace: ${KUBERNETES_NAMESPACE}
discovery:
zen:
hosts_provider: kubernetes
minimum_master_nodes: 2
plugin:
mandatory: discovery-kubernetes
{{- if .Values.cluster.config }}
{{ toYaml .Values.node.config | indent 4 }}
{{- end }}
@@ -0,0 +1,103 @@
apiVersion: apps/v1beta1
kind: StatefulSet
metadata:
name: "{{ template "data.fullname" . }}"
labels:
app: "{{ template "name" . }}"
chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
component: "data"
release: "{{ .Release.Name }}"
heritage: "{{ .Release.Service }}"
spec:
serviceName: "{{ template "data.fullname" . }}"
replicas: {{ .Values.node.data.replicas }}
template:
metadata:
labels:
app: "{{ template "name" . }}"
component: "data"
release: "{{ .Release.Name }}"
spec:
serviceAccountName: "{{ .Values.node.serviceAccountName }}"
initContainers:
- name: sysctl
image: "{{ .Values.image.name }}:{{ .Values.image.tag }}"
imagePullPolicy: "{{ .Values.image.pullPolicy }}"
command: ["sysctl", "-w", "vm.max_map_count=262144"]
securityContext:
privileged: true
containers:
- name: "{{ template "fullname" . }}"
image: "{{ .Values.image.name }}:{{ .Values.image.tag }}"
imagePullPolicy: "{{ .Values.image.pullPolicy }}"
env:
- name: SERVICE
value: "{{ template "fullname" . }}-transport"
- name: KUBERNETES_NAMESPACE
value: "{{ .Release.Namespace }}"
- name: NODE_MASTER
value: "false"
- name: NODE_DATA
value: "true"
- name: ELASTICSEARCH_CLUSTER_NAME
value: "{{ .Values.cluster.name }}"
- name: ELASTICSEARCH_PORT_NUMBER
value: "9200"
- name: ELASTICSEARCH_NODE_PORT_NUMBER
value: "9300"
- name: ELASTICSEARCH_PLUGINS
value: "{{ .Values.node.plugins }}"
- name: ES_JAVA_OPTS
value: "-Djava.net.preferIPv4Stack=true -Xms{{ .Values.node.data.heapSize }} -Xmx{{ .Values.node.data.heapSize }}"
ports:
- name: "http"
containerPort: 9200
- name: transport
containerPort: 9300
livenessProbe:
httpGet:
path: /_cluster/health?local=true
port: "http"
initialDelaySeconds: 30
readinessProbe:
httpGet:
path: /_cluster/health?local=true
port: "http"
initialDelaySeconds: 5
resources:
{{ toYaml .Values.node.data.resources | indent 10 }}
volumeMounts:
- mountPath: /bitnami/elasticsearch/conf/elasticsearch_custom.yml
name: "config"
subPath: elasticsearch_custom.yml
- name: "data"
mountPath: "/bitnami"
volumes:
- name: "config"
configMap:
name: "{{ template "fullname" . }}"
{{- if .Values.node.data.persistence.enabled }}
volumeClaimTemplates:
- metadata:
name: "data"
{{- if .Values.node.data.persistence.annotations }}
annotations:
{{ toYaml .Values.node.data.persistence.annotations | indent 6 }}
{{- end }}
spec:
accessModes:
{{ toYaml .Values.node.data.persistence.accessModes | indent 6 }}
{{- if .Values.node.data.persistence.storageClass }}
{{- if (eq "-" .Values.node.data.persistence.storageClass) }}
storageClassName: ""
{{- else }}
storageClassName: "{{ .Values.node.data.persistence.storageClass }}"
{{- end }}
{{- end }}
resources:
requests:
storage: "{{ .Values.node.data.persistence.size }}"
{{- else }}
- name: "data"
emptyDir: {}
{{- end }}
@@ -1,72 +0,0 @@
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: "{{ template "fullname" . }}"
labels:
app: "{{ template "name" . }}"
chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
release: "{{ .Release.Name }}"
heritage: "{{ .Release.Service }}"
spec:
template:
metadata:
labels:
app: "{{ template "name" . }}"
release: "{{ .Release.Name }}"
spec:
initContainers:
- name: sysctl
image: "{{ .Values.image }}"
imagePullPolicy: "{{ .Values.imagePullPolicy }}"
command:
- bash
- -c
- |
sysctl -w vm.max_map_count=262144
securityContext:
privileged: true
containers:
- name: "{{ template "fullname" . }}"
image: "{{ .Values.image }}"
imagePullPolicy: "{{ .Values.imagePullPolicy }}"
env:
- name: ELASTICSEARCH_CLUSTER_NAME
value: "{{ .Values.elasticsearchClusterName }}"
- name: ELASTICSEARCH_NODE_NAME
value: "{{ .Values.elasticsearchNodeName }}"
- name: ELASTICSEARCH_PORT_NUMBER
value: "{{ .Values.elasticsearchPortNumber }}"
- name: ELASTICSEARCH_NODE_PORT_NUMBER
value: "{{ .Values.elasticsearchNodePortNumber }}"
- name: ELASTICSEARCH_CLUSTER_HOSTS
value: "{{ .Values.elasticsearchClusterHosts }}"
- name: ELASTICSEARCH_CLIENT_NODE
value: "{{ .Values.elasticsearchClientNode }}"
ports:
- name: "rest"
containerPort: {{ .Values.elasticsearchPortNumber }}
- name: transport
containerPort: {{ .Values.elasticsearchNodePortNumber }}
livenessProbe:
httpGet:
path: /_cluster/health?local=true
port: "rest"
initialDelaySeconds: 30
readinessProbe:
httpGet:
path: /_cluster/health?local=true
port: "rest"
initialDelaySeconds: 5
resources:
{{ toYaml .Values.resources | indent 10 }}
volumeMounts:
- name: "data"
mountPath: "/bitnami"
volumes:
- name: "data"
{{- if .Values.persistence.enabled }}
persistentVolumeClaim:
claimName: "{{ if .Values.persistence.existingClaim }}{{ .Values.persistence.existingClaim }}{{- else }}{{ template "fullname" . }}{{- end }}"
{{- else }}
emptyDir: {}
{{- end -}}
@@ -0,0 +1,79 @@
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: "{{ template "master.fullname" . }}"
labels:
app: "{{ template "name" . }}"
chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
component: "master"
release: "{{ .Release.Name }}"
heritage: "{{ .Release.Service }}"
spec:
replicas: {{ .Values.node.master.replicas }}
template:
metadata:
labels:
app: "{{ template "name" . }}"
component: "master"
release: "{{ .Release.Name }}"
spec:
serviceAccountName: "{{ .Values.node.serviceAccountName }}"
initContainers:
- name: sysctl
image: "{{ .Values.image.name }}:{{ .Values.image.tag }}"
imagePullPolicy: "{{ .Values.image.pullPolicy }}"
command: ["sysctl", "-w", "vm.max_map_count=262144"]
securityContext:
privileged: true
containers:
- name: "{{ template "fullname" . }}"
image: "{{ .Values.image.name }}:{{ .Values.image.tag }}"
imagePullPolicy: "{{ .Values.image.pullPolicy }}"
env:
- name: SERVICE
value: "{{ template "fullname" . }}-transport"
- name: KUBERNETES_NAMESPACE
value: "{{ .Release.Namespace }}"
- name: NODE_MASTER
value: "true"
- name: NODE_DATA
value: "false"
- name: ELASTICSEARCH_CLUSTER_NAME
value: "{{ .Values.cluster.name }}"
- name: ELASTICSEARCH_PORT_NUMBER
value: "9200"
- name: ELASTICSEARCH_NODE_PORT_NUMBER
value: "9300"
- name: ELASTICSEARCH_PLUGINS
value: "{{ .Values.node.plugins }}"
- name: ES_JAVA_OPTS
value: "-Djava.net.preferIPv4Stack=true -Xms{{ .Values.node.master.heapSize }} -Xmx{{ .Values.node.master.heapSize }}"
ports:
- name: "http"
containerPort: 9200
- name: transport
containerPort: 9300
livenessProbe:
httpGet:
path: /_cluster/health?local=true
port: "http"
initialDelaySeconds: 30
readinessProbe:
httpGet:
path: /_cluster/health?local=true
port: "http"
initialDelaySeconds: 5
resources:
{{ toYaml .Values.node.master.resources | indent 10 }}
volumeMounts:
- mountPath: /bitnami/elasticsearch/conf/elasticsearch_custom.yml
name: "config"
subPath: elasticsearch_custom.yml
- name: "data"
mountPath: "/bitnami"
volumes:
- name: "config"
configMap:
name: "{{ template "fullname" . }}"
- name: "data"
emptyDir: {}
@@ -1,30 +0,0 @@
{{- if .Values.persistence.enabled -}}
{{- if not .Values.persistence.existingClaim -}}
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: "{{ template "fullname" . }}"
labels:
app: "{{ template "name" . }}"
chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
release: "{{ .Release.Name }}"
heritage: "{{ .Release.Service }}"
{{- if .Values.persistence.annotations }}
annotations:
{{ toYaml .Values.persistence.annotations | indent 4 }}
{{- end }}
spec:
accessModes:
{{ toYaml .Values.persistence.accessModes | indent 4 }}
{{- if .Values.persistence.storageClass }}
{{- if (eq "-" .Values.persistence.storageClass) }}
storageClassName: ""
{{- else }}
storageClassName: "{{ .Values.persistence.storageClass }}"
{{- end }}
{{- end }}
resources:
requests:
storage: "{{ .Values.persistence.size }}"
{{- end -}}
{{- end -}}
+23 -6
View File
@@ -1,21 +1,38 @@
apiVersion: v1
kind: Service
metadata:
name: "{{ template "fullname" . }}"
name: "{{ template "fullname" . }}-transport"
labels:
app: "{{ template "name" . }}"
chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
release: "{{ .Release.Name }}"
heritage: "{{ .Release.Service }}"
spec:
type: "{{ .Values.serviceType }}"
ports:
- name: "rest"
port: {{ .Values.elasticsearchPortNumber }}
targetPort: "rest"
- name: "transport"
port: {{ .Values.elasticsearchNodePortNumber }}
port: 9300
targetPort: "transport"
selector:
app: "{{ template "name" . }}"
release: "{{ .Release.Name }}"
component: "master"
---
apiVersion: v1
kind: Service
metadata:
name: "{{ template "fullname" . }}-http"
labels:
app: "{{ template "name" . }}"
chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
release: "{{ .Release.Name }}"
heritage: "{{ .Release.Service }}"
spec:
type: "{{ .Values.service.type }}"
ports:
- name: "http"
port: {{ .Values.cluster.port.http }}
targetPort: "http"
selector:
app: "{{ template "name" . }}"
release: "{{ .Release.Name }}"
component: "master"
+79 -74
View File
@@ -1,81 +1,86 @@
## Bitnami Elasticsearch image version
## ref: https://hub.docker.com/r/bitnami/elasticsearch/tags/
##
image: bitnami/elasticsearch:5.5.1-r0
## Specify a imagePullPolicy
## ref: http://kubernetes.io/docs/user-guide/images/#pre-pulling-images
##
imagePullPolicy: IfNotPresent
## Elasticsearch cluster name
## ref: https://github.com/bitnami/bitnami-docker-elasticsearch#environment-variables
##
elasticsearchClusterName: elasticsearch-cluster
## Elasticsearch node name
## ref: https://github.com/bitnami/bitnami-docker-elasticsearch#environment-variables
##
# elasticsearchNodeName:
## Elasticsearch port
## ref: https://github.com/bitnami/bitnami-docker-elasticsearch#environment-variables
##
elasticsearchPortNumber: 9200
## Elasticsearch Node to Node port
## ref: https://github.com/bitnami/bitnami-docker-elasticsearch#environment-variables
##
elasticsearchNodePortNumber: 9300
## Elasticsearch hosts list (comma/colon seperated)
## ref: https://github.com/bitnami/bitnami-docker-elasticsearch#environment-variables
##
# elasticsearchClusterHosts:
## Elasticsearch node to behave as a 'smart router' for Kibana app
## ref: https://github.com/bitnami/bitnami-docker-elasticsearch#environment-variables
##
elasticsearchClientNode: false
## Kubernetes configuration
## For minikube, set this to NodePort, elsewhere use LoadBalancer
##
serviceType: ClusterIP
## Enable persistence using Persistent Volume Claims
## ref: http://kubernetes.io/docs/user-guide/persistent-volumes/
##
persistence:
## If true, use a Persistent Volume Claim, If false, use emptyDir
image:
## Elasticsearch image
## ref: https://hub.docker.com/r/bitnami/elasticsearch/tags/
name: bitnami/elasticsearch
tag: 5.5.2-r1
## Specify a imagePullPolicy
## ref: http://kubernetes.io/docs/user-guide/images/#pre-pulling-images
##
enabled: true
pullPolicy: IfNotPresent
## Persistent Volume Claim annotations
service:
## For minikube, set this to NodePort, elsewhere use LoadBalancer
##
annotations: {}
type: ClusterIP
## Persistent Volume existing claim name
# existingClaim:
## Persistent Volume Storage Class
## If defined, storageClassName: <storageClass>
## If set to "-", storageClassName: "", which disables dynamic provisioning
## If undefined (the default) or set to null, no storageClassName spec is
## set, choosing the default provisioner. (gp2 on AWS, standard on
## GKE, AWS & OpenStack)
cluster:
## Elasticsearch cluster name
## ref: https://github.com/bitnami/bitnami-docker-elasticsearch#environment-variables
##
# storageClass: "-"
## Persistent Volume Access Mode
accessModes:
- ReadWriteOnce
## Persistent Volume size
name: elasticsearch-cluster
## Elasticsearch REST port
## ref: https://github.com/bitnami/bitnami-docker-elasticsearch#environment-variables
##
size: 8Gi
port:
http: 9200
## Configure resource requests and limits
## ref: http://kubernetes.io/docs/user-guide/compute-resources/
##
resources: {}
node:
## The serviceAccountName to be used, required by the elasticsearch-cloud-kubernetes plugin
serviceAccountName: default
## Comma seperated list of plugins
## ref: https://github.com/bitnami/bitnami-docker-elasticsearch#environment-variables
##
plugins: io.fabric8:elasticsearch-cloud-kubernetes:5.5.2
## Customize elasticsearch configuration
## ref: https://www.elastic.co/guide/en/elasticsearch/reference/current/settings.html
config:
master:
name: master
replicas: 2
heapSize: 128m
## Configure resource requests and limits
## ref: http://kubernetes.io/docs/user-guide/compute-resources/
##
resources:
requests:
memory: "256Mi"
data:
name: data
replicas: 3
heapSize: 1024m
## Configure resource requests and limits
## ref: http://kubernetes.io/docs/user-guide/compute-resources/
##
resources:
requests:
memory: "512Mi"
## Enable persistence using Persistent Volume Claims
## ref: http://kubernetes.io/docs/user-guide/persistent-volumes/
##
persistence:
## If true, use a Persistent Volume Claim, If false, use emptyDir
##
enabled: true
## Persistent Volume Claim annotations
##
annotations: {}
## Persistent Volume Storage Class
## If defined, storageClassName: <storageClass>
## If set to "-", storageClassName: "", which disables dynamic provisioning
## If undefined (the default) or set to null, no storageClassName spec is
## set, choosing the default provisioner. (gp2 on AWS, standard on
## GKE, AWS & OpenStack)
##
# storageClass: "-"
## Persistent Volume Access Mode
accessModes:
- ReadWriteOnce
## Persistent Volume size
##
size: 8Gi