Skip to content
This repository has been archived by the owner on May 16, 2023. It is now read-only.

[elasticsearch] SSL by default #1519

Merged
merged 49 commits into from
Feb 8, 2022
Merged
Show file tree
Hide file tree
Changes from 21 commits
Commits
Show all changes
49 commits
Select commit Hold shift + click to select a range
3219977
Adding support to Ingress networking.k8s.io/v1
framsouza Oct 11, 2021
ca298fd
Adjusting ES service name
framsouza Oct 11, 2021
1caaa02
Removing ingress typo & adjusting python test
framsouza Oct 11, 2021
4b2b7bf
Adjusting python tests to use the new ingress version
framsouza Oct 11, 2021
2611e28
fixing conflict
framsouza Oct 12, 2021
3843441
fixing conflict
framsouza Oct 12, 2021
1391790
Merge branch 'elastic-master'
framsouza Oct 12, 2021
af7de17
Adding support to kubernetes ingress v1 & ClassName
framsouza Oct 12, 2021
10ee16d
Adding reformatted files
framsouza Oct 12, 2021
6407ff9
Merge branch 'elastic:master' into master
framsouza Oct 12, 2021
aefb05e
fixing conflict
framsouza Oct 12, 2021
eb96b28
Adding ClassName & Pathtype on ingress settings
framsouza Oct 13, 2021
027448f
Merge branch 'elastic:master' into master
framsouza Oct 13, 2021
a6be99c
Performing syntax adjustments and removing comments
framsouza Oct 13, 2021
795095a
Merge branch 'elastic:main' into main
framsouza Oct 14, 2021
851231c
Merge branch 'elastic:main' into main
framsouza Nov 5, 2021
bdd089b
Merge branch 'elastic:main' into main
framsouza Dec 13, 2021
2ec90eb
Merge branch 'elastic:main' into main
framsouza Dec 16, 2021
5134bfa
Merge branch 'elastic:main' into main
framsouza Dec 21, 2021
3178450
Merge branch 'main' of github.com:elastic/helm-charts into main
framsouza Dec 21, 2021
45b00b4
Adding ssl to be used by default
framsouza Dec 22, 2021
979ed7c
Adjusting protocol to perform tests
framsouza Dec 22, 2021
d2ae922
Chaging ssl settings to be used as environment variable
framsouza Dec 22, 2021
5e2fb12
Adjusting python tests and README.md
framsouza Dec 22, 2021
da28d75
fixing typo
framsouza Dec 22, 2021
c662788
Adjusting examples to use https
framsouza Dec 22, 2021
d993718
Fix as per the comments
framsouza Dec 22, 2021
26fbac1
Adding allow-insecure: true in the examples
framsouza Dec 22, 2021
2bb0cae
fixing typo
framsouza Dec 22, 2021
f21ac9c
Adjusting security tests
framsouza Dec 22, 2021
74bff48
[elasticsearch] fix upgrade test
jmlrt Jan 4, 2022
24333b2
Adjusting tests and secret-cert
framsouza Jan 5, 2022
ab7da71
Merge branch 'elastic:main' into main
framsouza Jan 5, 2022
e91e90e
Merge branch 'main' of github.com:elastic/helm-charts into main
framsouza Jan 5, 2022
ffba2b1
Adding fixes based on the reviewer comments
framsouza Jan 5, 2022
b2b677c
fixing uname entry
framsouza Jan 5, 2022
e3754d0
Merge branch 'elastic:main' into main
framsouza Jan 6, 2022
15cfb6b
Merge branch 'main' of github.com:elastic/helm-charts into main
framsouza Jan 6, 2022
fb6a767
Adjusting https connection
framsouza Jan 6, 2022
06dcbbd
Merge branch 'elastic:main' into main
framsouza Jan 17, 2022
c6720a5
Merge branch 'main' of github.com:elastic/helm-charts into main
framsouza Jan 17, 2022
04e5f64
Merge branch 'main' into ssl-transport-error
framsouza Jan 17, 2022
d52b008
Adjusting tests
framsouza Jan 18, 2022
bb75c11
Merge branch 'elastic:main' into main
framsouza Feb 8, 2022
2c82de1
Merge branch 'main' of github.com:framsouza/helm-charts into main
framsouza Feb 8, 2022
a086b87
Merge branch 'main' into ssl-transport-error
framsouza Feb 8, 2022
1ccf6fc
reverting beats, ls and kibana configuration
framsouza Feb 8, 2022
eef74c4
reverting beats, ls and kibana configuration
framsouza Feb 8, 2022
58cc04f
adding back contains for logstash tests
framsouza Feb 8, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions elasticsearch/templates/_helpers.tpl
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,18 @@ We truncate at 63 chars because some Kubernetes name fields are limited to this
{{- end -}}
{{- end -}}

{{/*
Generate certificates
*/}}
{{- define "elasticsearch.gen-certs" -}}
{{- $altNames := list ( printf "%s.%s" (include "elasticsearch.name" .) .Release.Namespace ) ( printf "%s.%s.svc" (include "elasticsearch.name" .) .Release.Namespace ) -}}
{{- $ca := genCA "elasticsearch-ca" 365 -}}
{{- $cert := genSignedCert ( include "elasticsearch.name" . ) nil $altNames 365 $ca -}}
tls.crt: {{ $cert.Cert | toString | b64enc }}
tls.key: {{ $cert.Key | toString | b64enc }}
ca.crt: {{ $ca.Cert | toString | b64enc }}
{{- end -}}

{{- define "elasticsearch.masterService" -}}
{{- if empty .Values.masterService -}}
{{- if empty .Values.fullnameOverride -}}
Expand Down
16 changes: 16 additions & 0 deletions elasticsearch/templates/secret-cert.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@

framsouza marked this conversation as resolved.
Show resolved Hide resolved
apiVersion: v1
kind: Secret
type: kubernetes.io/tls
metadata:
name: {{ template "elasticsearch.name" . }}-certs
framsouza marked this conversation as resolved.
Show resolved Hide resolved
labels:
app: {{ template "elasticsearch.name" . }}
framsouza marked this conversation as resolved.
Show resolved Hide resolved
chart: "{{ .Chart.Name }}"
heritage: {{ .Release.Service }}
release: {{ .Release.Name }}
annotations:
"helm.sh/hook": "pre-install"
"helm.sh/hook-delete-policy": "before-hook-creation"
data:
{{ ( include "elasticsearch.gen-certs" . ) | indent 2 }}
28 changes: 28 additions & 0 deletions elasticsearch/templates/statefulset.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -136,6 +136,9 @@ spec:
configMap:
name: {{ template "elasticsearch.uname" . }}-jvm-options
{{- end }}
- name: elasticsearch-certs
secret:
secretName: {{ template "elasticsearch.name" . }}-certs
framsouza marked this conversation as resolved.
Show resolved Hide resolved
framsouza marked this conversation as resolved.
Show resolved Hide resolved
{{- if .Values.keystore }}
- name: keystore
emptyDir: {}
Expand Down Expand Up @@ -333,6 +336,28 @@ spec:
- name: ES_JAVA_OPTS
value: "{{ .Values.esJavaOpts }}"
{{- end }}
{{- if .Values.createCert }}
- name: xpack.security.enabled
value: "true"
- name: xpack.security.transport.ssl.enabled
value: "true"
- name: xpack.security.http.ssl.enabled
value: "true"
- name: xpack.security.transport.ssl.verification_mode
value: "certificate"
- name: xpack.security.transport.ssl.key
value: "/usr/share/elasticsearch/config/certs/tls.key"
- name: xpack.security.transport.ssl.certificate
value: "/usr/share/elasticsearch/config/certs/tls.crt"
- name: xpack.security.transport.ssl.certificate_authorities
value: "/usr/share/elasticsearch/config/certs/ca.crt"
- name: xpack.security.http.ssl.key
value: "/usr/share/elasticsearch/config/certs/tls.key"
- name: xpack.security.http.ssl.certificate
value: "/usr/share/elasticsearch/config/certs/tls.crt"
- name: xpack.security.http.ssl.certificate_authorities
value: "/usr/share/elasticsearch/config/certs/ca.crt"
{{- end }}
{{- if .Values.extraEnvs }}
{{ toYaml .Values.extraEnvs | indent 10 }}
{{- end }}
Expand All @@ -345,6 +370,9 @@ spec:
- name: "{{ template "elasticsearch.uname" . }}"
mountPath: /usr/share/elasticsearch/data
{{- end }}
- name: elasticsearch-certs
mountPath: /usr/share/elasticsearch/config/certs
readOnly: true
framsouza marked this conversation as resolved.
Show resolved Hide resolved
{{ if .Values.keystore }}
- name: keystore
mountPath: /usr/share/elasticsearch/config/elasticsearch.keystore
Expand Down
2 changes: 1 addition & 1 deletion elasticsearch/tests/elasticsearch_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ def test_defaults():
assert c["readinessProbe"]["timeoutSeconds"] == 5

assert "curl" in c["readinessProbe"]["exec"]["command"][-1]
assert "http://127.0.0.1:9200" in c["readinessProbe"]["exec"]["command"][-1]
assert "https://127.0.0.1:9200" in c["readinessProbe"]["exec"]["command"][-1]

# Resources
assert c["resources"] == {
Expand Down
16 changes: 14 additions & 2 deletions elasticsearch/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -28,13 +28,25 @@ esMajorVersion: ""

# Allows you to add any config files in /usr/share/elasticsearch/config/
# such as elasticsearch.yml and log4j2.properties
esConfig: {}
esConfig: {}
framsouza marked this conversation as resolved.
Show resolved Hide resolved
# elasticsearch.yml: |
# xpack.security.enabled: true
# xpack.security.transport.ssl.enabled: true
# xpack.security.transport.ssl.verification_mode: certificate
# xpack.security.transport.ssl.key: /usr/share/elasticsearch/config/certs/tls.key
# xpack.security.transport.ssl.certificate: /usr/share/elasticsearch/config/certs/tls.crt
# xpack.security.transport.ssl.certificate_authorities: /usr/share/elasticsearch/config/certs/ca.crt
# xpack.security.http.ssl.enabled: true
# xpack.security.http.ssl.key: /usr/share/elasticsearch/config/certs/tls.key
# xpack.security.http.ssl.certificate: /usr/share/elasticsearch/config/certs/tls.crt
# xpack.security.http.ssl.certificate_authorities: /usr/share/elasticsearch/config/certs/ca.crt
# key:
# nestedkey: value
# log4j2.properties: |
# key = value

createCert: true
framsouza marked this conversation as resolved.
Show resolved Hide resolved

esJvmOptions: {}
# processors.options: |
# -XX:ActiveProcessorCount=3
Expand Down Expand Up @@ -185,7 +197,7 @@ podManagementPolicy: "Parallel"
# If you experience slow pod startups you probably want to set this to `false`.
enableServiceLinks: true

protocol: http
protocol: https
httpPort: 9200
transportPort: 9300

Expand Down