mirror of
https://github.com/wahyd4/charts.git
synced 2026-08-19 18:16:12 +10:00
Merge branch 'elastic-multinode'
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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 -}}
|
||||
|
||||
|
||||
@@ -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 -}}
|
||||
@@ -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"
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user