diff --git a/kibana/README.md b/kibana/README.md
index 2d2415922..535dc5c83 100644
--- a/kibana/README.md
+++ b/kibana/README.md
@@ -50,6 +50,7 @@ helm install --name kibana elastic/kibana --version 7.1.1 --set imageTag=7.1.1
| `imagePullPolicy` | The Kubernetes [imagePullPolicy](https://kubernetes.io/docs/concepts/containers/images/#updating-images) value | `IfNotPresent` |
| `resources` | Allows you to set the [resources](https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/) for the statefulset | `requests.cpu: 100m`
`requests.memory: 2Gi`
`limits.cpu: 1000m`
`limits.memory: 2Gi` |
| `protocol` | The protocol that will be used for the readinessProbe. Change this to `https` if you have `server.ssl.enabled: true` set | `http` |
+| `serverHost` | The [`server.host`](https://www.elastic.co/guide/en/kibana/current/settings.html) Kibana setting. This is set explicitly so that the default always matches what comes with the docker image. | `0.0.0.0` |
| `healthCheckPath` | The path used for the readinessProbe to check that Kibana is ready | `/app/kibana` |
| `kibanaConfig` | Allows you to add any config files in `/usr/share/kibana/config/` such as `kibana.yml`. See [values.yaml](./values.yaml) for an example of the formatting. | `{}` |
| `podSecurityContext` | Allows you to set the [securityContext](https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod) for the pod | `{}` |
diff --git a/kibana/examples/default/test/goss.yaml b/kibana/examples/default/test/goss.yaml
index 5710496ce..9c36edb4d 100644
--- a/kibana/examples/default/test/goss.yaml
+++ b/kibana/examples/default/test/goss.yaml
@@ -12,3 +12,9 @@ http:
http://helm-kibana-default-kibana:5601/app/kibana:
status: 200
timeout: 2000
+
+port:
+ tcp:5601:
+ listening: true
+ ip:
+ - '0.0.0.0'
diff --git a/kibana/examples/security/security.yml b/kibana/examples/security/security.yml
index 3517ed8e3..9ce3bccc5 100644
--- a/kibana/examples/security/security.yml
+++ b/kibana/examples/security/security.yml
@@ -34,3 +34,9 @@ secretMounts:
- name: kibana-certificates
secretName: kibana-certificates
path: /usr/share/kibana/config/certs/kibana
+
+port:
+ tcp:5601:
+ listening: true
+ ip:
+ - '0.0.0.0'
diff --git a/kibana/templates/deployment.yaml b/kibana/templates/deployment.yaml
index 52a473d67..ce7b01eac 100644
--- a/kibana/templates/deployment.yaml
+++ b/kibana/templates/deployment.yaml
@@ -72,6 +72,8 @@ spec:
- name: ELASTICSEARCH_HOSTS
value: "{{ .Values.elasticsearchHosts }}"
{{- end }}
+ - name: SERVER_HOST
+ value: "{{ .Values.serverHost }}"
{{- if .Values.extraEnvs }}
{{ toYaml .Values.extraEnvs | indent 10 }}
{{- end }}
diff --git a/kibana/tests/kibana_test.py b/kibana/tests/kibana_test.py
index fd07c3fc6..b802445f7 100644
--- a/kibana/tests/kibana_test.py
+++ b/kibana/tests/kibana_test.py
@@ -31,6 +31,9 @@ def test_defaults():
assert c['env'][0]['name'] == 'ELASTICSEARCH_HOSTS'
assert c['env'][0]['value'] == elasticsearchHosts
+ assert c['env'][1]['name'] == 'SERVER_HOST'
+ assert c['env'][1]['value'] == '0.0.0.0'
+
assert 'http "/app/kibana"' in c['readinessProbe']['exec']['command'][-1]
# Empty customizable defaults
@@ -291,3 +294,14 @@ def test_adding_a_nodePort():
r = helm_template(config)
assert r['service'][name]['spec']['ports'][0]['nodePort'] == 30001
+
+def test_override_the_serverHost():
+ config = '''
+ serverHost: "localhost"
+ '''
+
+ r = helm_template(config)
+
+ c = r['deployment'][name]['spec']['template']['spec']['containers'][0]
+ assert c['env'][1]['name'] == 'SERVER_HOST'
+ assert c['env'][1]['value'] == 'localhost'
diff --git a/kibana/values.yaml b/kibana/values.yaml
index 6cf1bb47e..4075f7efd 100755
--- a/kibana/values.yaml
+++ b/kibana/values.yaml
@@ -34,6 +34,8 @@ resources:
protocol: http
+serverHost: "0.0.0.0"
+
healthCheckPath: "/app/kibana"
# Allows you to add any config files in /usr/share/kibana/config/