Skip to content

Commit ba9c2f3

Browse files
antoinecowych42
andcommitted
Enable TLS in Elasticsearch
Co-authored-by: wych42 <wych101010@gmail.com>
1 parent 370ebbf commit ba9c2f3

37 files changed

Lines changed: 489 additions & 170 deletions

.github/workflows/ci.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@ name: CI
22

33
on:
44
push:
5-
branches: [ main ]
5+
branches: [ tls ]
66
pull_request:
7-
branches: [ main ]
7+
branches: [ tls ]
88

99
jobs:
1010

@@ -77,7 +77,7 @@ jobs:
7777
7878
docker compose up -d elasticsearch
7979
source .github/workflows/scripts/lib/testing.sh
80-
poll_ready "$(container_id elasticsearch)" "http://$(service_ip elasticsearch):9200/" -u 'elastic:changeme'
80+
poll_ready "$(container_id elasticsearch)" "https://elasticsearch:9200/" --resolve "elasticsearch:9200:$(service_ip elasticsearch)" --cacert "$(realpath tls/kibana/elasticsearch-ca.pem)" -u 'elastic:changeme'
8181
8282
# Set passwords
8383
@@ -295,7 +295,7 @@ jobs:
295295
docker stack deploy -c ./docker-stack.yml elk
296296
docker service scale elk_logstash=0 elk_kibana=0
297297
source .github/workflows/scripts/lib/testing.sh
298-
poll_ready "$(container_id elasticsearch)" "http://$(service_ip elasticsearch):9200/" -u 'elastic:changeme'
298+
poll_ready "$(container_id elasticsearch)" "https://elasticsearch:9200/" --resolve "elasticsearch:9200:$(service_ip elasticsearch)" --cacert "$(realpath tls/kibana/elasticsearch-ca.pem)" -u 'elastic:changeme'
299299
300300
# Set passwords
301301

.github/workflows/docs.yml

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,10 @@
11
name: Documentation
22

33
on:
4-
schedule:
5-
- cron: '0 0 * * 0' # At 00:00 every Sunday
64
push:
7-
branches: [ main ]
5+
branches: [ tls ]
86
pull_request:
9-
branches: [ main ]
7+
branches: [ tls ]
108

119
jobs:
1210

.github/workflows/scripts/elasticsearch-setup-passwords.exp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ if { [string match "swarm" $MODE] } {
1313
}
1414

1515
foreach user $users {
16-
set cmd "docker exec -it $cid bin/elasticsearch-reset-password --batch --user $user -i"
16+
set cmd "docker exec -it $cid bin/elasticsearch-reset-password --batch --user $user -i --url https://localhost:9200"
1717

1818
spawn {*}$cmd
1919

.github/workflows/scripts/run-tests-core.sh

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,10 @@ ip_es="$(service_ip elasticsearch)"
1515
ip_ls="$(service_ip logstash)"
1616
ip_kb="$(service_ip kibana)"
1717

18+
es_ca_cert="$(realpath $(dirname ${BASH_SOURCE[0]})/../../../tls/kibana/elasticsearch-ca.pem)"
19+
1820
log 'Waiting for readiness of Elasticsearch'
19-
poll_ready "$cid_es" "http://${ip_es}:9200/" -u 'elastic:testpasswd'
21+
poll_ready "$cid_es" 'https://elasticsearch:9200/' --resolve "elasticsearch:9200:${ip_es}" --cacert "$es_ca_cert" -u 'elastic:testpasswd'
2022

2123
log 'Waiting for readiness of Logstash'
2224
poll_ready "$cid_ls" "http://${ip_ls}:9600/_node/pipelines/main?pretty"
@@ -44,11 +46,11 @@ if ((was_retried)); then
4446
fi
4547

4648
sleep 5
47-
curl -X POST "http://${ip_es}:9200/logs-generic-default/_refresh" -u elastic:testpasswd \
48-
-s -w '\n'
49+
curl -X POST "https://elasticsearch:9200/logs-generic-default/_refresh" -u elastic:testpasswd \
50+
-s -w '\n' --resolve "elasticsearch:9200:${ip_es}" --cacert "$es_ca_cert"
4951

5052
log 'Searching message in Elasticsearch'
51-
response="$(curl "http://${ip_es}:9200/logs-generic-default/_search?q=message:dockerelk&pretty" -s -u elastic:testpasswd)"
53+
response="$(curl "https://elasticsearch:9200/logs-generic-default/_search?q=message:dockerelk&pretty" -s --resolve "elasticsearch:9200:${ip_es}" --cacert "$es_ca_cert" -u elastic:testpasswd)"
5254
echo "$response"
5355
declare -i count
5456
count="$(jq -rn --argjson data "${response}" '$data.hits.total.value')"

.github/workflows/scripts/run-tests-enterprise-search.sh

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,16 @@ cid_en="$(container_id enterprise-search)"
1313
ip_es="$(service_ip elasticsearch)"
1414
ip_en="$(service_ip enterprise-search)"
1515

16+
es_ca_cert="$(realpath $(dirname ${BASH_SOURCE[0]})/../../../tls/kibana/elasticsearch-ca.pem)"
17+
1618
log 'Waiting for readiness of Elasticsearch'
17-
poll_ready "$cid_es" "http://${ip_es}:9200/" -u 'elastic:testpasswd'
19+
poll_ready "$cid_es" 'https://elasticsearch:9200/' --resolve "elasticsearch:9200:${ip_es}" --cacert "$es_ca_cert" -u 'elastic:testpasswd'
1820

1921
log 'Waiting for readiness of Enterprise Search'
2022
poll_ready "$cid_en" "http://${ip_en}:3002/api/ent/v1/internal/health" -u 'elastic:testpasswd'
2123

2224
log 'Ensuring that App Search API keys were created in Elasticsearch'
23-
response="$(curl "http://${ip_es}:9200/.ent-search-actastic-app_search_api_tokens_v3/_search?q=*:*&pretty" -s -u elastic:testpasswd)"
25+
response="$(curl 'https://elasticsearch:9200/.ent-search-actastic-app_search_api_tokens_v3/_search?q=*:*&pretty' -s --resolve "elasticsearch:9200:${ip_es}" --cacert "$es_ca_cert" -u elastic:testpasswd)"
2426
echo "$response"
2527
declare -i count
2628
count="$(jq -rn --argjson data "${response}" '$data.hits.total.value')"

.github/workflows/scripts/run-tests-filebeat.sh

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,10 @@ cid_mb="$(container_id filebeat)"
1313
ip_es="$(service_ip elasticsearch)"
1414
ip_mb="$(service_ip filebeat)"
1515

16+
es_ca_cert="$(realpath $(dirname ${BASH_SOURCE[0]})/../../../tls/kibana/elasticsearch-ca.pem)"
17+
1618
log 'Waiting for readiness of Elasticsearch'
17-
poll_ready "$cid_es" "http://${ip_es}:9200/" -u 'elastic:testpasswd'
19+
poll_ready "$cid_es" 'https://elasticsearch:9200/' --resolve "elasticsearch:9200:${ip_es}" --cacert "$es_ca_cert" -u 'elastic:testpasswd'
1820

1921
log 'Waiting for readiness of Filebeat'
2022
poll_ready "$cid_mb" "http://${ip_mb}:5066/?pretty"
@@ -35,7 +37,7 @@ declare -i was_retried=0
3537

3638
# retry for max 60s (30*2s)
3739
for _ in $(seq 1 30); do
38-
response="$(curl "http://${ip_es}:9200/filebeat-*/_search?q=agent.type:%22filebeat%22%20AND%20input.type:%22container%22%20AND%20container.name:%22docker-elk-elasticsearch-1%22&pretty" -s -u elastic:testpasswd)"
40+
response="$(curl "https://elasticsearch:9200/filebeat-*/_search?q=agent.type:%22filebeat%22%20AND%20input.type:%22container%22%20AND%20container.name:%22docker-elk-elasticsearch-1%22&pretty" -s --resolve "elasticsearch:9200:${ip_es}" --cacert "$es_ca_cert" -u elastic:testpasswd)"
3941

4042
set +u # prevent "unbound variable" if assigned value is not an integer
4143
count="$(jq -rn --argjson data "${response}" '$data.hits.total.value')"

.github/workflows/scripts/run-tests-logspout.sh

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,10 @@ ip_es="$(service_ip elasticsearch)"
1515
ip_ls="$(service_ip logstash)"
1616
ip_lsp="$(service_ip logspout)"
1717

18+
es_ca_cert="$(realpath $(dirname ${BASH_SOURCE[0]})/../../../tls/kibana/elasticsearch-ca.pem)"
19+
1820
log 'Waiting for readiness of Elasticsearch'
19-
poll_ready "$cid_es" "http://${ip_es}:9200/" -u 'elastic:testpasswd'
21+
poll_ready "$cid_es" 'https://elasticsearch:9200/' --resolve "elasticsearch:9200:${ip_es}" --cacert "$es_ca_cert" -u 'elastic:testpasswd'
2022

2123
log 'Waiting for readiness of Logstash'
2224
poll_ready "$cid_ls" "http://${ip_ls}:9600/_node/pipelines/main?pretty"
@@ -39,7 +41,7 @@ declare -i was_retried=0
3941

4042
# retry for max 60s (30*2s)
4143
for _ in $(seq 1 30); do
42-
response="$(curl "http://${ip_es}:9200/logs-generic-default/_search?q=docker.image:%22docker-elk_logspout%22%20AND%20message:%22logspout%20gliderlabs%22~3&pretty" -s -u elastic:testpasswd)"
44+
response="$(curl "https://elasticsearch:9200/logs-generic-default/_search?q=docker.image:%22docker-elk_logspout%22%20AND%20message:%22logspout%20gliderlabs%22~3&pretty" -s --resolve "elasticsearch:9200:${ip_es}" --cacert "$es_ca_cert" -u elastic:testpasswd)"
4345

4446
set +u # prevent "unbound variable" if assigned value is not an integer
4547
count="$(jq -rn --argjson data "${response}" '$data.hits.total.value')"

.github/workflows/scripts/run-tests-metricbeat.sh

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,10 @@ cid_mb="$(container_id metricbeat)"
1313
ip_es="$(service_ip elasticsearch)"
1414
ip_mb="$(service_ip metricbeat)"
1515

16+
es_ca_cert="$(realpath $(dirname ${BASH_SOURCE[0]})/../../../tls/kibana/elasticsearch-ca.pem)"
17+
1618
log 'Waiting for readiness of Elasticsearch'
17-
poll_ready "$cid_es" "http://${ip_es}:9200/" -u 'elastic:testpasswd'
19+
poll_ready "$cid_es" 'https://elasticsearch:9200/' --resolve "elasticsearch:9200:${ip_es}" --cacert "$es_ca_cert" -u 'elastic:testpasswd'
1820

1921
log 'Waiting for readiness of Metricbeat'
2022
poll_ready "$cid_mb" "http://${ip_mb}:5066/?pretty"
@@ -36,7 +38,7 @@ declare -i was_retried=0
3638

3739
# retry for max 60s (30*2s)
3840
for _ in $(seq 1 30); do
39-
response="$(curl "http://${ip_es}:9200/metricbeat-*/_search?q=agent.type:%22metricbeat%22%20AND%20event.module:%22docker%22%20AND%20event.dataset:%22docker.container%22%20AND%20container.name:%22docker-elk-elasticsearch-1%22&pretty" -s -u elastic:testpasswd)"
41+
response="$(curl 'https://elasticsearch:9200/metricbeat-*/_search?q=agent.type:%22metricbeat%22%20AND%20event.module:%22docker%22%20AND%20event.dataset:%22docker.container%22%20AND%20container.name:%22docker-elk-elasticsearch-1%22&pretty' -s --resolve "elasticsearch:9200:${ip_es}" --cacert "$es_ca_cert" -u elastic:testpasswd)"
4042

4143
set +u # prevent "unbound variable" if assigned value is not an integer
4244
count="$(jq -rn --argjson data "${response}" '$data.hits.total.value')"

.github/workflows/update-merge.yml

Lines changed: 0 additions & 34 deletions
This file was deleted.

.github/workflows/update.yml

Lines changed: 0 additions & 101 deletions
This file was deleted.

0 commit comments

Comments
 (0)