diff --git a/incubator/elasticsearch/Chart.yaml b/incubator/elasticsearch/Chart.yaml index b48e24856..e5cd4cbb5 100644 --- a/incubator/elasticsearch/Chart.yaml +++ b/incubator/elasticsearch/Chart.yaml @@ -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 diff --git a/incubator/elasticsearch/README.md b/incubator/elasticsearch/README.md index 7fa335065..34771d6ac 100644 --- a/incubator/elasticsearch/README.md +++ b/incubator/elasticsearch/README.md @@ -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. diff --git a/incubator/elasticsearch/templates/NOTES.txt b/incubator/elasticsearch/templates/NOTES.txt index cfeccb35c..d8ded42c6 100644 --- a/incubator/elasticsearch/templates/NOTES.txt +++ b/incubator/elasticsearch/templates/NOTES.txt @@ -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 }} diff --git a/incubator/elasticsearch/templates/_helpers.tpl b/incubator/elasticsearch/templates/_helpers.tpl index f0d83d2ed..0e40fa7b2 100644 --- a/incubator/elasticsearch/templates/_helpers.tpl +++ b/incubator/elasticsearch/templates/_helpers.tpl @@ -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 -}} + diff --git a/incubator/elasticsearch/templates/cm.yaml b/incubator/elasticsearch/templates/cm.yaml new file mode 100644 index 000000000..6af9df8e9 --- /dev/null +++ b/incubator/elasticsearch/templates/cm.yaml @@ -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 }} diff --git a/incubator/elasticsearch/templates/data-statefulset.yaml b/incubator/elasticsearch/templates/data-statefulset.yaml new file mode 100644 index 000000000..c07451a9a --- /dev/null +++ b/incubator/elasticsearch/templates/data-statefulset.yaml @@ -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 }} diff --git a/incubator/elasticsearch/templates/deployment.yaml b/incubator/elasticsearch/templates/deployment.yaml deleted file mode 100644 index 9e5f7eb9a..000000000 --- a/incubator/elasticsearch/templates/deployment.yaml +++ /dev/null @@ -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 -}} diff --git a/incubator/elasticsearch/templates/master-deploy.yaml b/incubator/elasticsearch/templates/master-deploy.yaml new file mode 100644 index 000000000..58cecf333 --- /dev/null +++ b/incubator/elasticsearch/templates/master-deploy.yaml @@ -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: {} diff --git a/incubator/elasticsearch/templates/pvc.yaml b/incubator/elasticsearch/templates/pvc.yaml deleted file mode 100644 index 855fc2b67..000000000 --- a/incubator/elasticsearch/templates/pvc.yaml +++ /dev/null @@ -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 -}} diff --git a/incubator/elasticsearch/templates/svc.yaml b/incubator/elasticsearch/templates/svc.yaml index 85709e2bf..acfc25327 100644 --- a/incubator/elasticsearch/templates/svc.yaml +++ b/incubator/elasticsearch/templates/svc.yaml @@ -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" diff --git a/incubator/elasticsearch/values.yaml b/incubator/elasticsearch/values.yaml index 37666e58b..dd649852d 100644 --- a/incubator/elasticsearch/values.yaml +++ b/incubator/elasticsearch/values.yaml @@ -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: - ## 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: + ## 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