elastic-enterprise-search 8.5.0 → 8.6.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.buildkite/Dockerfile +13 -0
- data/.buildkite/certs/README.md +50 -0
- data/.buildkite/certs/ca.crt +20 -0
- data/.buildkite/certs/ca.key +27 -0
- data/.buildkite/certs/testnode.crt +21 -0
- data/.buildkite/certs/testnode.key +27 -0
- data/.buildkite/certs/testnode_no_san.crt +19 -0
- data/.buildkite/certs/testnode_no_san.key +27 -0
- data/.buildkite/functions/cleanup.sh +67 -0
- data/.buildkite/functions/imports.sh +60 -0
- data/.buildkite/functions/wait-for-container.sh +36 -0
- data/.buildkite/log-results.sh +15 -0
- data/.buildkite/pipeline.yml +25 -0
- data/.buildkite/run-client.sh +35 -0
- data/.buildkite/run-elasticsearch.sh +150 -0
- data/.buildkite/run-enterprise-search.sh +72 -0
- data/.buildkite/run-tests.sh +24 -0
- data/.ci/.env +9 -0
- data/.ci/docker-compose.yml +166 -0
- data/.ci/jobs/{elastic+enterprise-search-ruby+8.2.yml → elastic+enterprise-search-ruby+8.5.yml} +4 -4
- data/.ci/run-kibana.sh +22 -0
- data/.ci/run-stack.sh +1 -0
- data/.ci/test-matrix.yml +1 -1
- data/.github/workflows/testing.yml +1 -1
- data/.gitignore +2 -1
- data/README.md +1 -1
- data/docs/guide/release_notes/717.asciidoc +12 -0
- data/docs/guide/release_notes/86.asciidoc +9 -0
- data/docs/guide/release_notes/index.asciidoc +2 -0
- data/elastic-enterprise-search.gemspec +1 -1
- data/lib/elastic/enterprise-search/version.rb +1 -1
- data/spec/enterprise-search/client_spec.rb +1 -1
- data/spec/spec_helper.rb +4 -0
- metadata +29 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 39e7df6602a80c776dda6da6ca3bc760170d0f7cee394e5e9ab805093851f054
|
4
|
+
data.tar.gz: 06be17689a9957f56f41a5547f1a475d30b6f7ae2db0771b3a9becd5f1cdb9b2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 36994506a1019e7a84134c9e2116e9299d6a14e9b1ef34b6044a63efaf4d587b7026c61b0d8edaecb59d1936f883b44593fb8df0ae4417544a0396d319f33aff
|
7
|
+
data.tar.gz: 50c34b6d1fb5d9671b568d464c5be690c924ace7c6e32e1daa7b703f0e1f75c259a34d47db8f5b572c816260f2ef2433b82f2623e31fd477e63c3b9cca25b722
|
@@ -0,0 +1,13 @@
|
|
1
|
+
ARG RUBY_VERSION=${RUBY_VERSION:-3.1}
|
2
|
+
FROM ruby:$RUBY_VERSION
|
3
|
+
|
4
|
+
ENV QUIET=true
|
5
|
+
ENV CI=true
|
6
|
+
|
7
|
+
# Install required tools
|
8
|
+
RUN apt-get -q update && apt-get -y install zip curl
|
9
|
+
|
10
|
+
WORKDIR /code/enterprise-search-ruby
|
11
|
+
COPY . .
|
12
|
+
|
13
|
+
RUN bundle install
|
@@ -0,0 +1,50 @@
|
|
1
|
+
# CI certificates
|
2
|
+
|
3
|
+
This directory contains certificates that can be used to test against Elasticsearch in CI
|
4
|
+
|
5
|
+
## Generating new certificates using the Certificate Authority cert and key
|
6
|
+
|
7
|
+
The `ca.crt` and `ca.key` can be used to generate any other certificates that may be needed
|
8
|
+
for CI. Perhaps the easiest way to do so is using
|
9
|
+
[`elasticsearch-certutil`](https://www.elastic.co/guide/en/elasticsearch/reference/current/certutil.html)
|
10
|
+
|
11
|
+
Using the elasticsearch docker container, run the following from the `.ci/certs` directory
|
12
|
+
|
13
|
+
```sh
|
14
|
+
docker run \
|
15
|
+
-v "$PWD:/var/tmp" \
|
16
|
+
--rm docker.elastic.co/elasticsearch/elasticsearch:7.6.1 \
|
17
|
+
./bin/elasticsearch-certutil cert \
|
18
|
+
--ca-cert /var/tmp/ca.crt --ca-key /var/tmp/ca.key --pem \
|
19
|
+
--out /var/tmp/bundle.zip
|
20
|
+
```
|
21
|
+
|
22
|
+
This will output a `bundle.zip` file containing a directory named `instance` containing
|
23
|
+
`instance.crt` and `instance.key` in PEM format.
|
24
|
+
|
25
|
+
The CN Subject name can be changed using
|
26
|
+
|
27
|
+
```sh
|
28
|
+
docker run \
|
29
|
+
-v "$PWD:/var/tmp" \
|
30
|
+
--rm docker.elastic.co/elasticsearch/elasticsearch:7.6.1 \
|
31
|
+
./bin/elasticsearch-certutil cert \
|
32
|
+
--ca-cert /var/tmp/ca.crt --ca-key /var/tmp/ca.key --pem \
|
33
|
+
--out /var/tmp/bundle.zip \
|
34
|
+
--name foo
|
35
|
+
```
|
36
|
+
|
37
|
+
The directory in `bundle.zip` will now be named `foo` and contain
|
38
|
+
`foo.crt` and `foo.key` in PEM format.
|
39
|
+
|
40
|
+
Additional DNS and IP SAN entries can be added with `--dns` and `--ip`, respectively.
|
41
|
+
|
42
|
+
```sh
|
43
|
+
docker run \
|
44
|
+
-v "$PWD:/var/tmp" \
|
45
|
+
--rm docker.elastic.co/elasticsearch/elasticsearch:7.6.1 \
|
46
|
+
./bin/elasticsearch-certutil cert \
|
47
|
+
--ca-cert /var/tmp/ca.crt --ca-key /var/tmp/ca.key --pem \
|
48
|
+
--out /var/tmp/bundle.zip \
|
49
|
+
--dns instance --dns localhost --dns es1 --ip 127.0.0.1 --ip ::1
|
50
|
+
```
|
@@ -0,0 +1,20 @@
|
|
1
|
+
-----BEGIN CERTIFICATE-----
|
2
|
+
MIIDSjCCAjKgAwIBAgIVAJQLm8V2LcaCTHUcoIfO+KL63nG3MA0GCSqGSIb3DQEB
|
3
|
+
CwUAMDQxMjAwBgNVBAMTKUVsYXN0aWMgQ2VydGlmaWNhdGUgVG9vbCBBdXRvZ2Vu
|
4
|
+
ZXJhdGVkIENBMB4XDTIwMDIyNjA1NTA1N1oXDTIzMDIyNTA1NTA1N1owNDEyMDAG
|
5
|
+
A1UEAxMpRWxhc3RpYyBDZXJ0aWZpY2F0ZSBUb29sIEF1dG9nZW5lcmF0ZWQgQ0Ew
|
6
|
+
ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDYyajkPvGtUOE5M1OowQfB
|
7
|
+
kWVrWjo1+LIxzgCeRHp0YztLtdVJ0sk2xoSrt2uZpxcPepdyOseLTjFJex1D2yCR
|
8
|
+
AEniIqcFif4G72nDih2LlbhpUe/+/MTryj8ZTkFTzI+eMmbQi5FFMaH+kwufmdt/
|
9
|
+
5/w8YazO18SxxJUlzMqzfNUrhM8vvvVdxgboU7PWhk28wZHCMHQovomHmzclhRpF
|
10
|
+
N0FMktA98vHHeRjH19P7rNhifSd7hZzoH3H148HVAKoPgqnZ6vW2O2YfAWOP6ulq
|
11
|
+
cyszr57p8fS9B2wSdlWW7nVHU1JuKcYD67CxbBS23BeGFgCj4tiNrmxO8S5Yf85v
|
12
|
+
AgMBAAGjUzBRMB0GA1UdDgQWBBSWAlip9eoPmnG4p4OFZeOUBlAbNDAfBgNVHSME
|
13
|
+
GDAWgBSWAlip9eoPmnG4p4OFZeOUBlAbNDAPBgNVHRMBAf8EBTADAQH/MA0GCSqG
|
14
|
+
SIb3DQEBCwUAA4IBAQA19qqrMTWl7YyId+LR/QIHDrP4jfxmrEELrAL58q5Epc1k
|
15
|
+
XxZLzOBSXoBfBrPdv+3XklWqXrZjKWfdkux0Xmjnl4qul+srrZDLJVZG3I7IrITh
|
16
|
+
AmQUmL9MuPiMnAcxoGZp1xpijtW8Qmd2qnambbljWfkuVaa4hcVRfrAX6TciIQ21
|
17
|
+
bS5aeLGrPqR14h30YzDp0RMmTujEa1o6ExN0+RSTkE9m89Q6WdM69az8JW7YkWqm
|
18
|
+
I+UCG3TcLd3TXmN1zNQkq4y2ObDK4Sxy/2p6yFPI1Fds5w/zLfBOvvPQY61vEqs8
|
19
|
+
SCCcQIe7f6NDpIRIBlty1C9IaEHj7edyHjF6rtYb
|
20
|
+
-----END CERTIFICATE-----
|
@@ -0,0 +1,27 @@
|
|
1
|
+
-----BEGIN RSA PRIVATE KEY-----
|
2
|
+
MIIEpgIBAAKCAQEA2Mmo5D7xrVDhOTNTqMEHwZFla1o6NfiyMc4AnkR6dGM7S7XV
|
3
|
+
SdLJNsaEq7drmacXD3qXcjrHi04xSXsdQ9sgkQBJ4iKnBYn+Bu9pw4odi5W4aVHv
|
4
|
+
/vzE68o/GU5BU8yPnjJm0IuRRTGh/pMLn5nbf+f8PGGsztfEscSVJczKs3zVK4TP
|
5
|
+
L771XcYG6FOz1oZNvMGRwjB0KL6Jh5s3JYUaRTdBTJLQPfLxx3kYx9fT+6zYYn0n
|
6
|
+
e4Wc6B9x9ePB1QCqD4Kp2er1tjtmHwFjj+rpanMrM6+e6fH0vQdsEnZVlu51R1NS
|
7
|
+
binGA+uwsWwUttwXhhYAo+LYja5sTvEuWH/ObwIDAQABAoIBAQC8QDGnMnmPdWJ+
|
8
|
+
13FYY3cmwel+FXXjFDk5QpgK15A2rUz6a8XxO1d7d1wR+U84uH4v9Na6XQyWjaoD
|
9
|
+
EyPQnuJiyAtgkZLUHoY244PGR5NsePEQlBSCKmGeF5w/j1LvP/2e9EmP4wKdQYJY
|
10
|
+
nLxFNcgEBCFnFbKIU5n8fKa/klybCrwlBokenyBro02tqH4LL7h1YMRRrl97fv1V
|
11
|
+
e/y/0WcMN+KnMglfz6haimBRV2yamCCHHmBImC+wzOgT/quqlxPfI+a3ScHxuA65
|
12
|
+
3QyCavaqlPh+T3lXnN/Na4UWqFtzMmwgJX2x1zM5qiln46/JoDiXtagvV43L3rNs
|
13
|
+
LhPRFeIRAoGBAPhEB7nNpEDNjIRUL6WpebWS9brKAVY7gYn7YQrKGhhCyftyaiBZ
|
14
|
+
zYgxPaJdqYXf+DmkWlANGoYiwEs40QwkR/FZrvO4+Xh3n3dgtl59ZmieuoQvDsG+
|
15
|
+
RYIj+TfBaqhewhZNMMl7dxz7DeyQhyRCdsvl3VqJM0RuOsIrzrhCIEItAoGBAN+K
|
16
|
+
lgWI7swDpOEaLmu+IWMkGImh1LswXoZqIgi/ywZ7htZjPzidOIeUsMi+lrYsKojG
|
17
|
+
uU3sBxASsf9kYXDnuUuUbGT5M/N2ipXERt7klUAA/f5sg1IKlTrabaN/HGs/uNtf
|
18
|
+
Efa8v/h2VyTurdPCJ17TNpbOMDwX1qGM62tyt2CLAoGBAIHCnP8iWq18QeuQTO8b
|
19
|
+
a3/Z9hHRL22w4H4MI6aOB6GSlxuTq6CJD4IVqo9IwSg17fnCy2l3z9s4IqWuZqUf
|
20
|
+
+XJOW8ELd2jdrT2qEOfGR1Z7UCVyqxXcq1vgDYx0zZh/HpalddB5dcJx/c8do2Ty
|
21
|
+
UEE2PcHqYB9uNcvzNbLc7RtpAoGBALbuU0yePUTI6qGnajuTcQEPpeDjhRHWSFRZ
|
22
|
+
ABcG1N8uMS66Mx9iUcNp462zgeP8iqY5caUZtMHreqxT+gWKK7F0+as7386pwElF
|
23
|
+
QPXgO18QMMqHBIQb0vlBjJ1SRPBjSiSDTVEML1DljvTTOX7kEJHh6HdKrmBO5b54
|
24
|
+
cqMQUo53AoGBAPVWRPUXCqlBz914xKna0ZUh2aesRBg5BvOoq9ey9c52EIU5PXL5
|
25
|
+
0Isk8sWSsvhl3tjDPBH5WuL5piKgnCTqkVbEHmWu9s1T57Mw6NuxlPMLBWvyv4c6
|
26
|
+
tB9brOxv0ui3qGMuBsBoDKbkNnwXyOXLyFg7O+H4l016A3mLQzJM+NGV
|
27
|
+
-----END RSA PRIVATE KEY-----
|
@@ -0,0 +1,21 @@
|
|
1
|
+
-----BEGIN CERTIFICATE-----
|
2
|
+
MIIDYjCCAkqgAwIBAgIVAIZQH0fe5U+bGQ6m1JUBO/AQkQ/9MA0GCSqGSIb3DQEB
|
3
|
+
CwUAMDQxMjAwBgNVBAMTKUVsYXN0aWMgQ2VydGlmaWNhdGUgVG9vbCBBdXRvZ2Vu
|
4
|
+
ZXJhdGVkIENBMB4XDTIwMDMyNzE5MTcxMVoXDTIzMDMyNzE5MTcxMVowEzERMA8G
|
5
|
+
A1UEAxMIaW5zdGFuY2UwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDB
|
6
|
+
fco1t1+sE1gTwTVGcXKZqJTP2GjMHM0cfJE5KKfwC5B+pHADRT6FZxvepgKjEBDt
|
7
|
+
CK+2Rmotyeb15XXMSKguNhyT+2PuKvT5r05L7P91XRYXrwxG2swJPtct7A87xdFa
|
8
|
+
Ek+YRpqGGmTaux2jOELMiAmqEzoj6w/xFq+LF4SolTW4wOL2eLFkEFHBX2oCwU5T
|
9
|
+
Q+B+7E9zL45nFWlkeRGJ+ZQTnRNZ/1r4N9A9Gtj4x/H1/y4inWndikdxAb5QiEYJ
|
10
|
+
T+vbQWzHYWjz13ttHJsz+6T8rvA1jK+buHgVh4K8lV13X9k54soBqHB8va7/KIJP
|
11
|
+
g8gvd6vusEI7Bmfl1as7AgMBAAGjgYswgYgwHQYDVR0OBBYEFKnnpvuVYwtFSUis
|
12
|
+
WwN9OHLyExzJMB8GA1UdIwQYMBaAFJYCWKn16g+acbing4Vl45QGUBs0MDsGA1Ud
|
13
|
+
EQQ0MDKCCWxvY2FsaG9zdIIIaW5zdGFuY2WHBH8AAAGHEAAAAAAAAAAAAAAAAAAA
|
14
|
+
AAGCA2VzMTAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQAPNsIoD4GBrTgR
|
15
|
+
jfvBuHS6eU16P95m16O8Mdpr4SMQgWLQUhs8aoVgfwpg2TkbCWxOe6khJOyNm7bf
|
16
|
+
fW4aFQ/OHcQV4Czz3c7eOHTWSyMlCOv+nRXd4giJZ5TOHw1zKGmKXOIvhvE6RfdF
|
17
|
+
uBBfrusk164H4iykm0Bbr/wo4d6wuebp3ZYLPw5zV0D08rsaR+3VJ9VxWuFpdm/r
|
18
|
+
2onYOohyuX9DRjAczasC+CRRQN4eHJlRfSQB8WfTKw3EloRJJDAg6SJyGiAJ++BF
|
19
|
+
hnqfNcEyKes2AWagFF9aTbEJMrzMhH+YB5F+S/PWvMUlFzcoocVKqc4pIrjKUNWO
|
20
|
+
6nbTxeAB
|
21
|
+
-----END CERTIFICATE-----
|
@@ -0,0 +1,27 @@
|
|
1
|
+
-----BEGIN RSA PRIVATE KEY-----
|
2
|
+
MIIEowIBAAKCAQEAwX3KNbdfrBNYE8E1RnFymaiUz9hozBzNHHyROSin8AuQfqRw
|
3
|
+
A0U+hWcb3qYCoxAQ7QivtkZqLcnm9eV1zEioLjYck/tj7ir0+a9OS+z/dV0WF68M
|
4
|
+
RtrMCT7XLewPO8XRWhJPmEaahhpk2rsdozhCzIgJqhM6I+sP8RavixeEqJU1uMDi
|
5
|
+
9nixZBBRwV9qAsFOU0PgfuxPcy+OZxVpZHkRifmUE50TWf9a+DfQPRrY+Mfx9f8u
|
6
|
+
Ip1p3YpHcQG+UIhGCU/r20Fsx2Fo89d7bRybM/uk/K7wNYyvm7h4FYeCvJVdd1/Z
|
7
|
+
OeLKAahwfL2u/yiCT4PIL3er7rBCOwZn5dWrOwIDAQABAoIBAFcm4ICnculf4Sks
|
8
|
+
umFbUiISA81GjZV6V4zAMu1K+bGuk8vnJyjh9JJD6hK0NbXa07TgV7zDJKoxKd2S
|
9
|
+
GCgGhfIin2asMcuh/6vDIYIjYsErR3stdlsnzAVSD7v4ergSlwR6AO32xz0mAE1h
|
10
|
+
QK029yeHEstPU72/7/NIo5MD6dXAbut1MzgijZD8RQo1z21D6qmLcPTVTfkn7a3W
|
11
|
+
MY3y7XUIkA1TOyIRsH3k6F6NBWkvtXbwOUeLCJ14EvS8T9BqhIhPDZv8mQTRLDOD
|
12
|
+
tQRyC4Cnw+UhYmnMFJhj6N2jpTBv/AdoKcRC56uBJyPW+dxj6i4e7n3pQuxqRvpI
|
13
|
+
LLJJsskCgYEA4QQxzuJizLKV75rE+Qxg0Ej0Gid1aj3H5eeTZOUhm9KC8KDfPdpk
|
14
|
+
msKaNzJq/VDcqHPluGS1jYZVgZlal1nk5xKBcbQ4n297VPVd+sLtlf0bj4atlDUO
|
15
|
+
+iOVo0H7k5yWvj+TzVRlc5zjDLcnQh8i+22o3+65hIrb2zpzg/cCZJ8CgYEA3CJX
|
16
|
+
bjmWPQ0uZVIa8Wz8cJFtKT9uVl7Z3/f6HjN9I0b/9MmVlNxQVAilVwhDkzR/UawG
|
17
|
+
QeRFBJ6XWRwX0aoMq+O9VSNu/R2rtEMpIYt3LwbI3yw6GRoCdB5qeL820O+KX5Fl
|
18
|
+
/z+ZNgrHgA1yKPVf+8ke2ZtLEqPHMN+BMuq8t+UCgYEAy0MfvzQPbbuw55WWcyb0
|
19
|
+
WZJdNzcHwKX4ajzrj4vP9VOPRtD7eINMt+QsrMnVjei6u0yeahhHTIXZvc2K4Qeq
|
20
|
+
V/YGinDzaUqqTU+synXFauUOPXO6XxQi6GC2rphPKsOcBFWoLSYc0vgYvgbA5uD7
|
21
|
+
l8Yyc77RROKuwfWmHcJHHh8CgYBurGFSjGdJWHgr/oSHPqkIG0VLiJV7nQJjBPRd
|
22
|
+
/Lr8YnTK6BJpHf7Q0Ov3frMirjEYqakXtaExel5TMbmT8q+eN8h3pnHlleY+oclr
|
23
|
+
EQghv4J8GWs4NYhoQuZ6wH/ZuaTS+XHTS3FG51J3wcrUZtET8ICvHNE4lNjPbH8z
|
24
|
+
TysENQKBgHER1RtDFdz+O7mlWibrHk8JDgcVdZV/pBF+9cb7r/orkH9RLAHDlsAO
|
25
|
+
tuSVaQmm5eqgaAxMamBXSyw1lir07byemyuEDg0mJ1rNUGsAY8P+LWr579gvKMme
|
26
|
+
5gvrJr99JkBTV3z+TiL7dZa52eW00Ijqg2qcbHGpq3kXWWkbd8Tn
|
27
|
+
-----END RSA PRIVATE KEY-----
|
@@ -0,0 +1,19 @@
|
|
1
|
+
-----BEGIN CERTIFICATE-----
|
2
|
+
MIIDIzCCAgugAwIBAgIVAMTO6uVx9dLox2t0lY4IcBKZXb5WMA0GCSqGSIb3DQEB
|
3
|
+
CwUAMDQxMjAwBgNVBAMTKUVsYXN0aWMgQ2VydGlmaWNhdGUgVG9vbCBBdXRvZ2Vu
|
4
|
+
ZXJhdGVkIENBMB4XDTIwMDIyNjA1NTA1OVoXDTIzMDIyNTA1NTA1OVowEzERMA8G
|
5
|
+
A1UEAxMIaW5zdGFuY2UwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDK
|
6
|
+
YLTOikVENiN/qYupOsoXd7VYYnryyfCC/dK4FC2aozkbqjFzBdvPGAasoc4yEiH5
|
7
|
+
CGeXMgJuOjk1maqetmdIsw00j4oHJviYsnGXzxxS5swhD7spcW4Uk4V4tAUzrbfT
|
8
|
+
vW/2WW/yYCLe5phVb2chz0jL+WYb4bBmdfs/t6RtP9RqsplYAmVp3gZ6lt2YNtvE
|
9
|
+
k9gz0TVk3DuO1TquIClfRYUjuywS6xDSvxJ8Jl91EfDWM8QU+9F+YAtiv74xl2U3
|
10
|
+
P0wwMqNvMxf9/3ak3lTQGsgO4L6cwbKpVLMMzxSVunZz/sgl19xy3qHHz1Qr2MjJ
|
11
|
+
/2c2J7vahUL4NPRkjJClAgMBAAGjTTBLMB0GA1UdDgQWBBS2Wn8E2VZv4oenY+pR
|
12
|
+
O8G3zfQXhzAfBgNVHSMEGDAWgBSWAlip9eoPmnG4p4OFZeOUBlAbNDAJBgNVHRME
|
13
|
+
AjAAMA0GCSqGSIb3DQEBCwUAA4IBAQAvwPvCiJJ6v9jYcyvYY8I3gP0oCwrylpRL
|
14
|
+
n91UlgRSHUmuAObyOoVN5518gSV/bTU2SDrstcLkLFxHvnfpoGJoxsQEHuGxwDRI
|
15
|
+
nhYNd62EKLerehNM/F9ILKmvTh8f6QPCzjUuExTXv+63l2Sr6dBS7FHsGs6UKUYO
|
16
|
+
llM/y9wMZ1LCuZuBg9RhtgpFXRSgDM9Z7Begu0d/BPX9od/qAeZg9Arz4rwUiCN4
|
17
|
+
IJOMEBEPi5q1tgeS0Fb1Grpqd0Uz5tZKtEHNKzLG+zSMmkneL62Nk2HsmEFZKwzg
|
18
|
+
u2pU42UaUE596G6o78s1aLn9ICcElPHTjiuZNSiyuu9IzvFDjGQw
|
19
|
+
-----END CERTIFICATE-----
|
@@ -0,0 +1,27 @@
|
|
1
|
+
-----BEGIN RSA PRIVATE KEY-----
|
2
|
+
MIIEogIBAAKCAQEAymC0zopFRDYjf6mLqTrKF3e1WGJ68snwgv3SuBQtmqM5G6ox
|
3
|
+
cwXbzxgGrKHOMhIh+QhnlzICbjo5NZmqnrZnSLMNNI+KByb4mLJxl88cUubMIQ+7
|
4
|
+
KXFuFJOFeLQFM623071v9llv8mAi3uaYVW9nIc9Iy/lmG+GwZnX7P7ekbT/UarKZ
|
5
|
+
WAJlad4GepbdmDbbxJPYM9E1ZNw7jtU6riApX0WFI7ssEusQ0r8SfCZfdRHw1jPE
|
6
|
+
FPvRfmALYr++MZdlNz9MMDKjbzMX/f92pN5U0BrIDuC+nMGyqVSzDM8Ulbp2c/7I
|
7
|
+
Jdfcct6hx89UK9jIyf9nNie72oVC+DT0ZIyQpQIDAQABAoIBADAh7f7NjgnaInlD
|
8
|
+
ds8KB3SraPsbeQhzlPtiqRJU4j/MIFH/GYG03AGWQkget67a9y+GmzSvlTpoKKEh
|
9
|
+
6h2TXl9BDpv4o6ht0WRn1HJ5tM/Wyqf2WNpTew3zxCPgFPikkXsPrChYPzLTQJfp
|
10
|
+
GkP/mfTFmxfAOlPZSp4j41zVLYs53eDkAegFPVfKSr1XNNJ3QODLPcIBfxBYsiC9
|
11
|
+
oU+jRW8xYuj31cEl5k5UqrChJ1rm3mt6cguqXKbISuoSvi13gXI6DccqhuLAU+Kr
|
12
|
+
ib2XYrRP+pWocZo/pM9WUVoNGtFxfY88sAQtvG6gDKo2AURtFyq84Ow0h9mdixV/
|
13
|
+
gRIDPcECgYEA5nEqE3OKuG9WuUFGXvjtn4C0F6JjflYWh7AbX51S4F6LKrW6/XHL
|
14
|
+
Rg4BtF+XReT7OQ6llsV8kZeUxsUckkgDLzSaA8lysNDV5KkhAWHfRqH//QKFbqZi
|
15
|
+
JL9t3x63Qt81US8s2hQk3khPYTRM8ZB3xHiXvZYSGC/0x/DxfEO3QJECgYEA4NK5
|
16
|
+
sxtrat8sFz6SK9nWEKimPjDVzxJ0hxdX4tRq/JdOO5RncawVqt6TNP9gTuxfBvhW
|
17
|
+
MhJYEsQj8iUoL1dxo9d1eP8HEANNV0iX5OBvJNmgBp+2OyRSyr+PA55+wAxYuAE7
|
18
|
+
QKaitOjW57fpArNRt2hQyiSzTuqUFRWTWJHCWNUCgYAEurPTXF6vdFGCUc2g61jt
|
19
|
+
GhYYGhQSpq+lrz6Qksj9o9MVWE9zHh++21C7o+6V16I0RJGva3QoBMVf4vG4KtQt
|
20
|
+
5tV2WG8LI+4P2Ey+G4UajP6U8bVNVQrUmD0oBBhcvfn5JY+1Fg6/pRpD82/U0VMz
|
21
|
+
7AmpMWhDqNBMPiymkTk0kQKBgCuWb05cSI0ly4SOKwS5bRk5uVFhYnKNH255hh6C
|
22
|
+
FGP4acB/WzbcqC7CjEPAJ0nl5d6SExQOHmk1AcsWjR3wlCWxxiK5PwNJwJrlhh1n
|
23
|
+
reS1FKN0H36D4lFQpkeLWQOe4Sx7gKNeKzlr0w6Fx3Uwku0+Gju2tdTdAey8jB6l
|
24
|
+
08opAoGAEe1AuR/OFp2xw6V8TH9UHkkpGxy+OrXI6PX6tgk29PgB+uiMu4RwbjVz
|
25
|
+
1di1KKq2XecAilVbnyqY+edADxYGbSnci9x5wQRIebfMi3VXKtV8NQBv2as6qwtW
|
26
|
+
JDcQUWotOHjpdvmfJWWkcBhbAKrgX8ukww00ZI/lC3/rmkGnBBg=
|
27
|
+
-----END RSA PRIVATE KEY-----
|
@@ -0,0 +1,67 @@
|
|
1
|
+
#!/usr/bin/env bash
|
2
|
+
#
|
3
|
+
# Shared cleanup routines between different steps
|
4
|
+
#
|
5
|
+
# Please source .ci/functions/imports.sh as a whole not just this file
|
6
|
+
#
|
7
|
+
# Version 1.0.0
|
8
|
+
# - Initial version after refactor
|
9
|
+
|
10
|
+
function cleanup_volume {
|
11
|
+
if [[ "$(docker volume ls -q -f name=$1)" ]]; then
|
12
|
+
echo -e "\033[34;1mINFO:\033[0m Removing volume $1\033[0m"
|
13
|
+
(docker volume rm "$1") || true
|
14
|
+
fi
|
15
|
+
}
|
16
|
+
function container_running {
|
17
|
+
if [[ "$(docker ps -q -f name=$1)" ]]; then
|
18
|
+
return 0;
|
19
|
+
else return 1;
|
20
|
+
fi
|
21
|
+
}
|
22
|
+
function cleanup_node {
|
23
|
+
if container_running "$1"; then
|
24
|
+
echo -e "\033[34;1mINFO:\033[0m Removing container $1\033[0m"
|
25
|
+
(docker container rm --force --volumes "$1") || true
|
26
|
+
fi
|
27
|
+
if [[ -n "$1" ]]; then
|
28
|
+
echo -e "\033[34;1mINFO:\033[0m Removing volume $1-${suffix}-data\033[0m"
|
29
|
+
cleanup_volume "$1-${suffix}-data"
|
30
|
+
fi
|
31
|
+
}
|
32
|
+
function cleanup_network {
|
33
|
+
if [[ "$(docker network ls -q -f name=$1)" ]]; then
|
34
|
+
echo -e "\033[34;1mINFO:\033[0m Removing network $1\033[0m"
|
35
|
+
(docker network rm "$1") || true
|
36
|
+
fi
|
37
|
+
}
|
38
|
+
|
39
|
+
function cleanup_trap {
|
40
|
+
status=$?
|
41
|
+
set +x
|
42
|
+
if [[ "$DETACH" != "true" ]]; then
|
43
|
+
echo -e "\033[34;1mINFO:\033[0m clean the network if not detached (start and exit)\033[0m"
|
44
|
+
cleanup_all_in_network "$1"
|
45
|
+
fi
|
46
|
+
# status is 0 or SIGINT
|
47
|
+
if [[ "$status" == "0" || "$status" == "130" ]]; then
|
48
|
+
echo -e "\n\033[32;1mSUCCESS run-tests\033[0m"
|
49
|
+
exit 0
|
50
|
+
else
|
51
|
+
echo -e "\n\033[31;1mFAILURE during run-tests\033[0m"
|
52
|
+
exit ${status}
|
53
|
+
fi
|
54
|
+
};
|
55
|
+
function cleanup_all_in_network {
|
56
|
+
|
57
|
+
if [[ -z "$(docker network ls -q -f name="^$1\$")" ]]; then
|
58
|
+
echo -e "\033[34;1mINFO:\033[0m $1 is already deleted\033[0m"
|
59
|
+
return 0
|
60
|
+
fi
|
61
|
+
containers=$(docker network inspect -f '{{ range $key, $value := .Containers }}{{ printf "%s\n" .Name}}{{ end }}' $1)
|
62
|
+
while read -r container; do
|
63
|
+
cleanup_node "$container"
|
64
|
+
done <<< "$containers"
|
65
|
+
cleanup_network $1
|
66
|
+
echo -e "\033[32;1mSUCCESS:\033[0m Cleaned up and exiting\033[0m"
|
67
|
+
};
|
@@ -0,0 +1,60 @@
|
|
1
|
+
#!/usr/bin/env bash
|
2
|
+
#
|
3
|
+
# Sets up all the common variables and imports relevant functions
|
4
|
+
#
|
5
|
+
# Version 1.0.1
|
6
|
+
# - Initial version after refactor
|
7
|
+
# - Validate STACK_VERSION asap
|
8
|
+
|
9
|
+
function require_stack_version() {
|
10
|
+
if [[ -z $STACK_VERSION ]]; then
|
11
|
+
echo -e "\033[31;1mERROR:\033[0m Required environment variable [STACK_VERSION] not set\033[0m"
|
12
|
+
exit 1
|
13
|
+
fi
|
14
|
+
}
|
15
|
+
|
16
|
+
require_stack_version
|
17
|
+
|
18
|
+
if [[ -z $es_node_name ]]; then
|
19
|
+
# only set these once
|
20
|
+
set -euo pipefail
|
21
|
+
export TEST_SUITE=${TEST_SUITE-free}
|
22
|
+
export SERVICE=${SERVICE-}
|
23
|
+
export RUNSCRIPTS=${RUNSCRIPTS-}
|
24
|
+
export DETACH=${DETACH-false}
|
25
|
+
export CLEANUP=${CLEANUP-false}
|
26
|
+
|
27
|
+
export es_node_name=instance
|
28
|
+
export elastic_password=changeme
|
29
|
+
export elasticsearch_image=elasticsearch
|
30
|
+
export elasticsearch_url=https://elastic:${elastic_password}@${es_node_name}:9200
|
31
|
+
if [[ $TEST_SUITE != "platinum" ]]; then
|
32
|
+
export elasticsearch_url=http://${es_node_name}:9200
|
33
|
+
fi
|
34
|
+
export external_elasticsearch_url=${elasticsearch_url/$es_node_name/localhost}
|
35
|
+
export elasticsearch_container="${elasticsearch_image}:${STACK_VERSION}"
|
36
|
+
|
37
|
+
export suffix=rest-test
|
38
|
+
export moniker=$(echo "$elasticsearch_container" | tr -C "[:alnum:]" '-')
|
39
|
+
export network_name=${moniker}${suffix}
|
40
|
+
|
41
|
+
export ssl_cert="${script_path}/certs/testnode.crt"
|
42
|
+
export ssl_key="${script_path}/certs/testnode.key"
|
43
|
+
export ssl_ca="${script_path}/certs/ca.crt"
|
44
|
+
|
45
|
+
fi
|
46
|
+
|
47
|
+
export script_path=$(dirname $(realpath -s $0))
|
48
|
+
source $script_path/functions/cleanup.sh
|
49
|
+
source $script_path/functions/wait-for-container.sh
|
50
|
+
trap "cleanup_trap ${network_name}" EXIT
|
51
|
+
|
52
|
+
|
53
|
+
if [[ "$CLEANUP" == "true" ]]; then
|
54
|
+
cleanup_all_in_network $network_name
|
55
|
+
exit 0
|
56
|
+
fi
|
57
|
+
|
58
|
+
echo -e "\033[34;1mINFO:\033[0m Creating network $network_name if it does not exist already \033[0m"
|
59
|
+
docker network inspect "$network_name" > /dev/null 2>&1 || docker network create "$network_name"
|
60
|
+
|
@@ -0,0 +1,36 @@
|
|
1
|
+
#!/usr/bin/env bash
|
2
|
+
#
|
3
|
+
# Exposes a routine scripts can call to wait for a container if that container set up a health command
|
4
|
+
#
|
5
|
+
# Please source .ci/functions/imports.sh as a whole not just this file
|
6
|
+
#
|
7
|
+
# Version 1.0.1
|
8
|
+
# - Initial version after refactor
|
9
|
+
# - Make sure wait_for_contiainer is silent
|
10
|
+
|
11
|
+
function wait_for_container {
|
12
|
+
set +x
|
13
|
+
until ! container_running "$1" || (container_running "$1" && [[ "$(docker inspect -f "{{.State.Health.Status}}" ${1})" != "starting" ]]); do
|
14
|
+
echo ""
|
15
|
+
docker inspect -f "{{range .State.Health.Log}}{{.Output}}{{end}}" ${1}
|
16
|
+
echo -e "\033[34;1mINFO:\033[0m waiting for node $1 to be up\033[0m"
|
17
|
+
sleep 20;
|
18
|
+
done;
|
19
|
+
|
20
|
+
# Always show logs if the container is running, this is very useful both on CI as well as while developing
|
21
|
+
if container_running $1; then
|
22
|
+
docker logs $1
|
23
|
+
fi
|
24
|
+
|
25
|
+
if ! container_running $1 || [[ "$(docker inspect -f "{{.State.Health.Status}}" ${1})" != "healthy" ]]; then
|
26
|
+
cleanup_all_in_network $2
|
27
|
+
echo
|
28
|
+
echo -e "\033[31;1mERROR:\033[0m Failed to start $1 in detached mode beyond health checks\033[0m"
|
29
|
+
echo -e "\033[31;1mERROR:\033[0m dumped the docker log before shutting the node down\033[0m"
|
30
|
+
return 1
|
31
|
+
else
|
32
|
+
echo
|
33
|
+
echo -e "\033[32;1mSUCCESS:\033[0m Detached and healthy: ${1} on docker network: ${network_name}\033[0m"
|
34
|
+
return 0
|
35
|
+
fi
|
36
|
+
}
|
@@ -0,0 +1,15 @@
|
|
1
|
+
#!/usr/bin/env bash
|
2
|
+
#
|
3
|
+
# This script is intended to be run after the build in a Buildkite pipeline
|
4
|
+
echo "--- Test summary"
|
5
|
+
buildkite-agent artifact download "tmp/*.html" .
|
6
|
+
|
7
|
+
files="tmp/*.html"
|
8
|
+
for f in $files; do
|
9
|
+
SERVICE=`echo $f | grep -o "\(appsearch\|enterprisesearch\|workplacesearch\)"`
|
10
|
+
RUBY_VERSION=`echo $f | grep -Po "(\d+\.)+\d+"`
|
11
|
+
EXAMPLES=`cat $f | grep -o "[0-9]\+ example" | tail -1`
|
12
|
+
FAILURES=`cat $f | grep -o "[0-9]\+ failure" | tail -1`
|
13
|
+
PENDING=`cat $f | grep -o "[0-9]\+ pending" | tail -1`
|
14
|
+
echo "--- :rspec: $EXAMPLES - :x: $FAILURES - :pinched_fingers: $PENDING :test_tube: $SERVICE :ruby: $RUBY_VERSION"
|
15
|
+
done
|
@@ -0,0 +1,25 @@
|
|
1
|
+
steps:
|
2
|
+
- label: ":elastic-enterprise-search: Enterprise Search :rspec: {{ matrix.service }} :ruby: v{{ matrix.ruby }}"
|
3
|
+
agents:
|
4
|
+
provider: "gcp"
|
5
|
+
env:
|
6
|
+
RUBY_VERSION: "{{ matrix.ruby }}"
|
7
|
+
SERVICE: "{{ matrix.service }}"
|
8
|
+
STACK_VERSION: 8.6-SNAPSHOT
|
9
|
+
matrix:
|
10
|
+
setup:
|
11
|
+
ruby:
|
12
|
+
- "3.2"
|
13
|
+
- "3.1"
|
14
|
+
- "3.0"
|
15
|
+
- "2.7"
|
16
|
+
service:
|
17
|
+
- enterprisesearch
|
18
|
+
- appsearch
|
19
|
+
- workplacesearch
|
20
|
+
command: ./.buildkite/run-tests.sh
|
21
|
+
artifact_paths: "tmp/*"
|
22
|
+
- wait: ~
|
23
|
+
continue_on_failure: true
|
24
|
+
- label: "Log Results"
|
25
|
+
command: ./.buildkite/log-results.sh
|
@@ -0,0 +1,35 @@
|
|
1
|
+
#!/usr/bin/env bash
|
2
|
+
#
|
3
|
+
# Once called Elasticsearch and Enteprise Search should be up and running
|
4
|
+
#
|
5
|
+
script_path=$(dirname $(realpath -s $0))
|
6
|
+
source $script_path/functions/imports.sh
|
7
|
+
set -euo pipefail
|
8
|
+
|
9
|
+
export RUBY_VERSION=${RUBY_VERSION:-3.1}
|
10
|
+
|
11
|
+
echo "--- Pinging Elasticsearch :elasticsearch:"
|
12
|
+
curl --insecure --fail $external_elasticsearch_url/_cluster/health?pretty
|
13
|
+
|
14
|
+
enterprise_search_url="http://localhost:3002"
|
15
|
+
echo "--- Pinging Enterprise Search :elastic-enterprise-search:"
|
16
|
+
curl -I --fail $enterprise_search_url
|
17
|
+
|
18
|
+
echo "--- :ruby: Building Docker image"
|
19
|
+
docker build \
|
20
|
+
--file $script_path/Dockerfile \
|
21
|
+
--tag elastic/enterprise-search-ruby \
|
22
|
+
--build-arg RUBY_VERSION=${RUBY_VERSION} \
|
23
|
+
.
|
24
|
+
|
25
|
+
echo "--- :ruby: Running $SERVICE tests"
|
26
|
+
docker run \
|
27
|
+
--network ${network_name} \
|
28
|
+
--name enterprise-search-ruby \
|
29
|
+
--env "ELASTIC_ENTERPRISE_HOST=http://${CONTAINER_NAME}:3002" \
|
30
|
+
--env "SERVICE=${SERVICE}" \
|
31
|
+
--rm \
|
32
|
+
--volume `pwd`:/code/enterprise-search-ruby \
|
33
|
+
elastic/enterprise-search-ruby \
|
34
|
+
rake spec:integration:${SERVICE}
|
35
|
+
|
@@ -0,0 +1,150 @@
|
|
1
|
+
#!/usr/bin/env bash
|
2
|
+
#
|
3
|
+
# Launch one or more Elasticsearch nodes via the Docker image,
|
4
|
+
# to form a cluster suitable for running the REST API tests.
|
5
|
+
#
|
6
|
+
# Export the STACK_VERSION variable, eg. '8.0.0-SNAPSHOT'.
|
7
|
+
# Export the TEST_SUITE variable, eg. 'free' or 'platinum' defaults to 'free'.
|
8
|
+
# Export the NUMBER_OF_NODES variable to start more than 1 node
|
9
|
+
|
10
|
+
# Version 1.6.1
|
11
|
+
# - Initial version of the run-elasticsearch.sh script
|
12
|
+
# - Deleting the volume should not dependent on the container still running
|
13
|
+
# - Fixed `ES_JAVA_OPTS` config
|
14
|
+
# - Moved to STACK_VERSION and TEST_VERSION
|
15
|
+
# - Refactored into functions and imports
|
16
|
+
# - Support NUMBER_OF_NODES
|
17
|
+
# - Added 5 retries on docker pull for fixing transient network errors
|
18
|
+
# - Added flags to make local CCR configurations work
|
19
|
+
# - Added action.destructive_requires_name=false as the default will be true in v8
|
20
|
+
# - Added ingest.geoip.downloader.enabled=false as it causes false positives in testing
|
21
|
+
# - Moved ELASTIC_PASSWORD and xpack.security.enabled to the base arguments for "Security On by default"
|
22
|
+
# - Use https only when TEST_SUITE is "platinum", when "free" use http
|
23
|
+
# - Set xpack.security.enabled=false for "free" and xpack.security.enabled=true for "platinum"
|
24
|
+
|
25
|
+
script_path=$(dirname $(realpath -s $0))
|
26
|
+
source $script_path/functions/imports.sh
|
27
|
+
set -euo pipefail
|
28
|
+
|
29
|
+
echo -e "\033[34;1mINFO:\033[0m Take down node if called twice with the same arguments (DETACH=true) or on seperate terminals \033[0m"
|
30
|
+
cleanup_node $es_node_name
|
31
|
+
|
32
|
+
master_node_name=${es_node_name}
|
33
|
+
cluster_name=${moniker}${suffix}
|
34
|
+
|
35
|
+
declare -a volumes
|
36
|
+
environment=($(cat <<-END
|
37
|
+
--env ELASTIC_PASSWORD=$elastic_password
|
38
|
+
--env node.name=$es_node_name
|
39
|
+
--env cluster.name=$cluster_name
|
40
|
+
--env cluster.initial_master_nodes=$master_node_name
|
41
|
+
--env discovery.seed_hosts=$master_node_name
|
42
|
+
--env cluster.routing.allocation.disk.threshold_enabled=false
|
43
|
+
--env bootstrap.memory_lock=true
|
44
|
+
--env node.attr.testattr=test
|
45
|
+
--env path.repo=/tmp
|
46
|
+
--env repositories.url.allowed_urls=http://snapshot.test*
|
47
|
+
--env action.destructive_requires_name=false
|
48
|
+
--env ingest.geoip.downloader.enabled=false
|
49
|
+
--env cluster.deprecation_indexing.enabled=false
|
50
|
+
END
|
51
|
+
))
|
52
|
+
if [[ "$TEST_SUITE" == "platinum" ]]; then
|
53
|
+
environment+=($(cat <<-END
|
54
|
+
--env xpack.security.enabled=true
|
55
|
+
--env xpack.license.self_generated.type=trial
|
56
|
+
--env xpack.security.http.ssl.enabled=true
|
57
|
+
--env xpack.security.http.ssl.verification_mode=certificate
|
58
|
+
--env xpack.security.http.ssl.key=certs/testnode.key
|
59
|
+
--env xpack.security.http.ssl.certificate=certs/testnode.crt
|
60
|
+
--env xpack.security.http.ssl.certificate_authorities=certs/ca.crt
|
61
|
+
--env xpack.security.transport.ssl.enabled=true
|
62
|
+
--env xpack.security.transport.ssl.verification_mode=certificate
|
63
|
+
--env xpack.security.transport.ssl.key=certs/testnode.key
|
64
|
+
--env xpack.security.transport.ssl.certificate=certs/testnode.crt
|
65
|
+
--env xpack.security.transport.ssl.certificate_authorities=certs/ca.crt
|
66
|
+
END
|
67
|
+
))
|
68
|
+
volumes+=($(cat <<-END
|
69
|
+
--volume $ssl_cert:/usr/share/elasticsearch/config/certs/testnode.crt
|
70
|
+
--volume $ssl_key:/usr/share/elasticsearch/config/certs/testnode.key
|
71
|
+
--volume $ssl_ca:/usr/share/elasticsearch/config/certs/ca.crt
|
72
|
+
END
|
73
|
+
))
|
74
|
+
else
|
75
|
+
environment+=($(cat <<-END
|
76
|
+
--env node.roles=data,data_cold,data_content,data_frozen,data_hot,data_warm,ingest,master,ml,remote_cluster_client,transform
|
77
|
+
--env xpack.security.enabled=false
|
78
|
+
--env xpack.security.http.ssl.enabled=false
|
79
|
+
END
|
80
|
+
))
|
81
|
+
fi
|
82
|
+
|
83
|
+
cert_validation_flags=""
|
84
|
+
if [[ "$TEST_SUITE" == "platinum" ]]; then
|
85
|
+
cert_validation_flags="--insecure --cacert /usr/share/elasticsearch/config/certs/ca.crt --resolve ${es_node_name}:443:127.0.0.1"
|
86
|
+
fi
|
87
|
+
|
88
|
+
echo "--- :elasticsearch: Environment setup"
|
89
|
+
echo "TEST_SUITE: $TEST_SUITE"
|
90
|
+
echo "Elasticsearch URL: $elasticsearch_url"
|
91
|
+
echo "Elasticsearch External URL: $external_elasticsearch_url"
|
92
|
+
|
93
|
+
|
94
|
+
echo "--- :elasticsearch: Running container"
|
95
|
+
# Pull the container, retry on failures up to 5 times with
|
96
|
+
# short delays between each attempt. Fixes most transient network errors.
|
97
|
+
docker_pull_attempts=0
|
98
|
+
until [ "$docker_pull_attempts" -ge 5 ]
|
99
|
+
do
|
100
|
+
docker pull docker.elastic.co/elasticsearch/"$elasticsearch_container" && break
|
101
|
+
docker_pull_attempts=$((docker_pull_attempts+1))
|
102
|
+
echo "Failed to pull image, retrying in 10 seconds (retry $docker_pull_attempts/5)..."
|
103
|
+
sleep 10
|
104
|
+
done
|
105
|
+
|
106
|
+
NUMBER_OF_NODES=${NUMBER_OF_NODES-1}
|
107
|
+
http_port=9200
|
108
|
+
for (( i=0; i<$NUMBER_OF_NODES; i++, http_port++ )); do
|
109
|
+
node_name=${es_node_name}$i
|
110
|
+
node_url=${external_elasticsearch_url/9200/${http_port}}$i
|
111
|
+
if [[ "$i" == "0" ]]; then node_name=$es_node_name; fi
|
112
|
+
environment+=($(cat <<-END
|
113
|
+
--env node.name=$node_name
|
114
|
+
END
|
115
|
+
))
|
116
|
+
echo "$i: $http_port $node_url "
|
117
|
+
volume_name=${node_name}-${suffix}-data
|
118
|
+
volumes+=($(cat <<-END
|
119
|
+
--volume $volume_name:/usr/share/elasticsearch/data${i}
|
120
|
+
END
|
121
|
+
))
|
122
|
+
|
123
|
+
# make sure we detach for all but the last node if DETACH=false (default) so all nodes are started
|
124
|
+
local_detach="true"
|
125
|
+
if [[ "$i" == "$((NUMBER_OF_NODES-1))" ]]; then local_detach=$DETACH; fi
|
126
|
+
echo -e "\033[34;1mINFO:\033[0m Starting container $node_name \033[0m"
|
127
|
+
set -x
|
128
|
+
docker run \
|
129
|
+
--name "$node_name" \
|
130
|
+
--network "$network_name" \
|
131
|
+
--env "ES_JAVA_OPTS=-Xms1g -Xmx1g -da:org.elasticsearch.xpack.ccr.index.engine.FollowingEngineAssertions" \
|
132
|
+
"${environment[@]}" \
|
133
|
+
"${volumes[@]}" \
|
134
|
+
--publish "$http_port":9200 \
|
135
|
+
--ulimit nofile=65536:65536 \
|
136
|
+
--ulimit memlock=-1:-1 \
|
137
|
+
--detach="$local_detach" \
|
138
|
+
--health-cmd="curl $cert_validation_flags --fail $elasticsearch_url/_cluster/health || exit 1" \
|
139
|
+
--health-interval=2s \
|
140
|
+
--health-retries=20 \
|
141
|
+
--health-timeout=2s \
|
142
|
+
--rm \
|
143
|
+
docker.elastic.co/elasticsearch/"$elasticsearch_container";
|
144
|
+
|
145
|
+
set +x
|
146
|
+
if wait_for_container "$es_node_name" "$network_name"; then
|
147
|
+
echo -e "\033[32;1mSUCCESS:\033[0m Running on: $node_url\033[0m"
|
148
|
+
fi
|
149
|
+
|
150
|
+
done
|
@@ -0,0 +1,72 @@
|
|
1
|
+
#!/usr/bin/env bash
|
2
|
+
#
|
3
|
+
# Launch one App Search node via the Docker image,
|
4
|
+
# to form a cluster suitable for running the REST API tests.
|
5
|
+
#
|
6
|
+
# Export the STACK_VERSION variable, eg. '8.0.0-SNAPSHOT'.
|
7
|
+
|
8
|
+
# Version 1.1.0
|
9
|
+
# - Initial version of the run-app-search.sh script
|
10
|
+
# - Refactored .ci version
|
11
|
+
|
12
|
+
script_path=$(dirname $(realpath -s $0))
|
13
|
+
source $script_path/functions/imports.sh
|
14
|
+
set -euo pipefail
|
15
|
+
|
16
|
+
CONTAINER_NAME=${CONTAINER_NAME-enterprise-search}
|
17
|
+
APP_SEARCH_SECRET_SESSION_KEY=${APP_SEARCH_SECRET_SESSION_KEY-int_test_secret}
|
18
|
+
|
19
|
+
echo -e "\033[34;1mINFO:\033[0m Take down node if called twice with the same arguments (DETACH=true) or on seperate terminals \033[0m"
|
20
|
+
cleanup_node $CONTAINER_NAME
|
21
|
+
|
22
|
+
http_port=3002
|
23
|
+
url=http://127.0.0.1:${http_port}
|
24
|
+
|
25
|
+
# Pull the container, retry on failures up to 5 times with
|
26
|
+
# short delays between each attempt. Fixes most transient network errors.
|
27
|
+
docker_pull_attempts=0
|
28
|
+
until [ "$docker_pull_attempts" -ge 5 ]
|
29
|
+
do
|
30
|
+
docker pull docker.elastic.co/enterprise-search/enterprise-search:"$STACK_VERSION" && break
|
31
|
+
docker_pull_attempts=$((docker_pull_attempts+1))
|
32
|
+
echo "Failed to pull image, retrying in 10 seconds (retry $docker_pull_attempts/5)..."
|
33
|
+
sleep 10
|
34
|
+
done
|
35
|
+
|
36
|
+
echo -e "\033[34;1mINFO:\033[0m Starting container $CONTAINER_NAME \033[0m"
|
37
|
+
set -x
|
38
|
+
docker run \
|
39
|
+
--name "$CONTAINER_NAME" \
|
40
|
+
--network "$network_name" \
|
41
|
+
--env "elasticsearch.host=$elasticsearch_url" \
|
42
|
+
--env "elasticsearch.username=elastic" \
|
43
|
+
--env "elasticsearch.password=$elastic_password" \
|
44
|
+
--env "ENT_SEARCH_DEFAULT_PASSWORD=$elastic_password" \
|
45
|
+
--env "secret_management.encryption_keys=[$APP_SEARCH_SECRET_SESSION_KEY]" \
|
46
|
+
--env "enterprise_search.listen_port=$http_port" \
|
47
|
+
--env "log_level=info" \
|
48
|
+
--env "hide_version_info=false" \
|
49
|
+
--env "worker.threads=2" \
|
50
|
+
--env "allow_es_settings_modification=true" \
|
51
|
+
--env "JAVA_OPTS=-Xms1g -Xmx2g" \
|
52
|
+
--env "elasticsearch.ssl.enabled=true" \
|
53
|
+
--env "elasticsearch.ssl.verify=true" \
|
54
|
+
--env "elasticsearch.ssl.certificate=/usr/share/app-search/config/certs/testnode.crt" \
|
55
|
+
--env "elasticsearch.ssl.certificate_authority=/usr/share/app-search/config/certs/ca.crt" \
|
56
|
+
--env "elasticsearch.ssl.key=/usr/share/app-search/config/certs/testnode.key" \
|
57
|
+
--env "ELASTICSEARCH_SEARCH_API=true" \
|
58
|
+
--volume $ssl_cert:/usr/share/app-search/config/certs/testnode.crt \
|
59
|
+
--volume $ssl_key:/usr/share/app-search/config/certs/testnode.key \
|
60
|
+
--volume $ssl_ca:/usr/share/app-search/config/certs/ca.crt \
|
61
|
+
--publish "$http_port":3002 \
|
62
|
+
--detach="$DETACH" \
|
63
|
+
--health-cmd="curl --insecure --fail ${url} || exit 1" \
|
64
|
+
--health-interval=30s \
|
65
|
+
--health-retries=50 \
|
66
|
+
--health-timeout=10s \
|
67
|
+
--rm \
|
68
|
+
docker.elastic.co/enterprise-search/enterprise-search:"$STACK_VERSION";
|
69
|
+
|
70
|
+
if wait_for_container "$CONTAINER_NAME" "$network_name"; then
|
71
|
+
echo -e "\033[32;1mSUCCESS:\033[0m Running on: ${url}\033[0m"
|
72
|
+
fi
|
@@ -0,0 +1,24 @@
|
|
1
|
+
#!/usr/bin/env bash
|
2
|
+
#
|
3
|
+
# Script to run Enterprise Search container and Enterprise Search client integration tests on Buildkite
|
4
|
+
#
|
5
|
+
# Version 0.1
|
6
|
+
#
|
7
|
+
export TEST_SUITE=platinum
|
8
|
+
export CONTAINER_NAME=enterprise-search
|
9
|
+
|
10
|
+
script_path=$(dirname $(realpath -s $0))
|
11
|
+
source $script_path/functions/imports.sh
|
12
|
+
set -euo pipefail
|
13
|
+
|
14
|
+
echo "--- Create the elastic network"
|
15
|
+
docker network create elastic
|
16
|
+
|
17
|
+
echo "--- :elasticsearch: Starting Elasticsearch"
|
18
|
+
DETACH=true bash $script_path/run-elasticsearch.sh
|
19
|
+
|
20
|
+
echo "--- :elastic-enterprise-search: Starting Enterprise Search"
|
21
|
+
DETACH=true bash $script_path/run-enterprise-search.sh
|
22
|
+
|
23
|
+
echo "+++ :ruby: Run Client"
|
24
|
+
bash $script_path/run-client.sh
|
data/.ci/.env
ADDED
@@ -0,0 +1,166 @@
|
|
1
|
+
|
2
|
+
version: "2.2"
|
3
|
+
|
4
|
+
services:
|
5
|
+
setup:
|
6
|
+
image: docker.elastic.co/elasticsearch/elasticsearch:${STACK_VERSION}
|
7
|
+
volumes:
|
8
|
+
- certs:/usr/share/elasticsearch/config/certs
|
9
|
+
user: "0"
|
10
|
+
command: >
|
11
|
+
bash -c '
|
12
|
+
if [ x${ELASTIC_PASSWORD} == x ]; then
|
13
|
+
echo "Set the ELASTIC_PASSWORD environment variable in the .env file";
|
14
|
+
exit 1;
|
15
|
+
elif [ x${KIBANA_PASSWORD} == x ]; then
|
16
|
+
echo "Set the KIBANA_PASSWORD environment variable in the .env file";
|
17
|
+
exit 1;
|
18
|
+
fi;
|
19
|
+
if [ ! -f certs/ca.zip ]; then
|
20
|
+
echo "Creating CA";
|
21
|
+
bin/elasticsearch-certutil ca --silent --pem -out config/certs/ca.zip;
|
22
|
+
unzip config/certs/ca.zip -d config/certs;
|
23
|
+
fi;
|
24
|
+
if [ ! -f certs/certs.zip ]; then
|
25
|
+
echo "Creating certs";
|
26
|
+
echo -ne \
|
27
|
+
"instances:\n"\
|
28
|
+
" - name: es01\n"\
|
29
|
+
" dns:\n"\
|
30
|
+
" - es01\n"\
|
31
|
+
" - localhost\n"\
|
32
|
+
" ip:\n"\
|
33
|
+
" - 127.0.0.1\n"\
|
34
|
+
> config/certs/instances.yml;
|
35
|
+
bin/elasticsearch-certutil cert --silent --pem -out config/certs/certs.zip --in config/certs/instances.yml --ca-cert config/certs/ca/ca.crt --ca-key config/certs/ca/ca.key;
|
36
|
+
unzip config/certs/certs.zip -d config/certs;
|
37
|
+
fi;
|
38
|
+
echo "Setting file permissions"
|
39
|
+
chown -R root:root config/certs;
|
40
|
+
find . -type d -exec chmod 750 \{\} \;;
|
41
|
+
find . -type f -exec chmod 640 \{\} \;;
|
42
|
+
echo "Waiting for Elasticsearch availability";
|
43
|
+
until curl -s --cacert config/certs/ca/ca.crt https://es01:9200 | grep -q "missing authentication credentials"; do sleep 30; done;
|
44
|
+
echo "Setting kibana_system password";
|
45
|
+
until curl -s -X POST --cacert config/certs/ca/ca.crt -u elastic:${ELASTIC_PASSWORD} -H "Content-Type: application/json" https://es01:9200/_security/user/kibana_system/_password -d "{\"password\":\"${KIBANA_PASSWORD}\"}" | grep -q "^{}"; do sleep 10; done;
|
46
|
+
echo "All done!";
|
47
|
+
'
|
48
|
+
healthcheck:
|
49
|
+
test: ["CMD-SHELL", "[ -f config/certs/es01/es01.crt ]"]
|
50
|
+
interval: 1s
|
51
|
+
timeout: 5s
|
52
|
+
retries: 120
|
53
|
+
|
54
|
+
es01:
|
55
|
+
depends_on:
|
56
|
+
setup:
|
57
|
+
condition: service_healthy
|
58
|
+
image: docker.elastic.co/elasticsearch/elasticsearch:${STACK_VERSION}
|
59
|
+
volumes:
|
60
|
+
- certs:/usr/share/elasticsearch/config/certs
|
61
|
+
- esdata01:/usr/share/elasticsearch/data
|
62
|
+
ports:
|
63
|
+
- ${ES_PORT}:9200
|
64
|
+
environment:
|
65
|
+
- node.name=es01
|
66
|
+
- cluster.name=${CLUSTER_NAME}
|
67
|
+
- cluster.initial_master_nodes=es01
|
68
|
+
- ELASTIC_PASSWORD=${ELASTIC_PASSWORD}
|
69
|
+
- bootstrap.memory_lock=true
|
70
|
+
- xpack.security.enabled=true
|
71
|
+
- xpack.security.http.ssl.enabled=true
|
72
|
+
- xpack.security.http.ssl.key=certs/es01/es01.key
|
73
|
+
- xpack.security.http.ssl.certificate=certs/es01/es01.crt
|
74
|
+
- xpack.security.http.ssl.certificate_authorities=certs/ca/ca.crt
|
75
|
+
- xpack.security.http.ssl.verification_mode=certificate
|
76
|
+
- xpack.security.transport.ssl.enabled=true
|
77
|
+
- xpack.security.transport.ssl.key=certs/es01/es01.key
|
78
|
+
- xpack.security.transport.ssl.certificate=certs/es01/es01.crt
|
79
|
+
- xpack.security.transport.ssl.certificate_authorities=certs/ca/ca.crt
|
80
|
+
- xpack.security.transport.ssl.verification_mode=certificate
|
81
|
+
- xpack.license.self_generated.type=trial
|
82
|
+
mem_limit: ${MEM_LIMIT}
|
83
|
+
ulimits:
|
84
|
+
memlock:
|
85
|
+
soft: -1
|
86
|
+
hard: -1
|
87
|
+
healthcheck:
|
88
|
+
test:
|
89
|
+
[
|
90
|
+
"CMD-SHELL",
|
91
|
+
"curl -s --cacert config/certs/ca/ca.crt https://localhost:9200 | grep -q 'missing authentication credentials'",
|
92
|
+
]
|
93
|
+
interval: 10s
|
94
|
+
timeout: 10s
|
95
|
+
retries: 120
|
96
|
+
|
97
|
+
kibana:
|
98
|
+
depends_on:
|
99
|
+
es01:
|
100
|
+
condition: service_healthy
|
101
|
+
image: docker.elastic.co/kibana/kibana:${STACK_VERSION}
|
102
|
+
volumes:
|
103
|
+
- certs:/usr/share/kibana/config/certs
|
104
|
+
- kibanadata:/usr/share/kibana/data
|
105
|
+
ports:
|
106
|
+
- ${KIBANA_PORT}:5601
|
107
|
+
environment:
|
108
|
+
- SERVERNAME=kibana
|
109
|
+
- ELASTICSEARCH_HOSTS=https://es01:9200
|
110
|
+
- ELASTICSEARCH_USERNAME=kibana_system
|
111
|
+
- ELASTICSEARCH_PASSWORD=${KIBANA_PASSWORD}
|
112
|
+
- ELASTICSEARCH_SSL_CERTIFICATEAUTHORITIES=config/certs/ca/ca.crt
|
113
|
+
- ENTERPRISESEARCH_HOST=http://enterprisesearch:${ENTERPRISE_SEARCH_PORT}
|
114
|
+
mem_limit: ${MEM_LIMIT}
|
115
|
+
healthcheck:
|
116
|
+
test:
|
117
|
+
[
|
118
|
+
"CMD-SHELL",
|
119
|
+
"curl -s -I http://localhost:5601 | grep -q 'HTTP/1.1 302 Found'",
|
120
|
+
]
|
121
|
+
interval: 10s
|
122
|
+
timeout: 10s
|
123
|
+
retries: 120
|
124
|
+
|
125
|
+
enterprisesearch:
|
126
|
+
depends_on:
|
127
|
+
es01:
|
128
|
+
condition: service_healthy
|
129
|
+
kibana:
|
130
|
+
condition: service_healthy
|
131
|
+
image: docker.elastic.co/enterprise-search/enterprise-search:${STACK_VERSION}
|
132
|
+
volumes:
|
133
|
+
- certs:/usr/share/enterprise-search/config/certs
|
134
|
+
- enterprisesearchdata:/usr/share/enterprise-search/config
|
135
|
+
ports:
|
136
|
+
- ${ENTERPRISE_SEARCH_PORT}:3002
|
137
|
+
environment:
|
138
|
+
- SERVERNAME=enterprisesearch
|
139
|
+
- secret_management.encryption_keys=[${ENCRYPTION_KEYS}]
|
140
|
+
- allow_es_settings_modification=true
|
141
|
+
- elasticsearch.host=https://es01:9200
|
142
|
+
- elasticsearch.username=elastic
|
143
|
+
- elasticsearch.password=${ELASTIC_PASSWORD}
|
144
|
+
- elasticsearch.ssl.enabled=true
|
145
|
+
- elasticsearch.ssl.certificate_authority=/usr/share/enterprise-search/config/certs/ca/ca.crt
|
146
|
+
- kibana.external_url=http://kibana:5601
|
147
|
+
mem_limit: ${MEM_LIMIT}
|
148
|
+
healthcheck:
|
149
|
+
test:
|
150
|
+
[
|
151
|
+
"CMD-SHELL",
|
152
|
+
"curl -s -I http://localhost:3002 | grep -q 'HTTP/1.1 302 Found'",
|
153
|
+
]
|
154
|
+
interval: 10s
|
155
|
+
timeout: 10s
|
156
|
+
retries: 120
|
157
|
+
|
158
|
+
volumes:
|
159
|
+
certs:
|
160
|
+
driver: local
|
161
|
+
enterprisesearchdata:
|
162
|
+
driver: local
|
163
|
+
esdata01:
|
164
|
+
driver: local
|
165
|
+
kibanadata:
|
166
|
+
driver: local
|
data/.ci/jobs/{elastic+enterprise-search-ruby+8.2.yml → elastic+enterprise-search-ruby+8.5.yml}
RENAMED
@@ -1,12 +1,12 @@
|
|
1
1
|
---
|
2
2
|
- job:
|
3
|
-
name: elastic+enterprise-search-ruby+8.
|
4
|
-
display-name: 'elastic / enterprise-search-ruby # 8.
|
5
|
-
description: Testing the enterprise-search-ruby 8.
|
3
|
+
name: elastic+enterprise-search-ruby+8.5
|
4
|
+
display-name: 'elastic / enterprise-search-ruby # 8.5'
|
5
|
+
description: Testing the enterprise-search-ruby 8.5 branch.
|
6
6
|
junit_results: "*-junit.xml"
|
7
7
|
parameters:
|
8
8
|
- string:
|
9
9
|
name: branch_specifier
|
10
|
-
default: refs/heads/8.
|
10
|
+
default: refs/heads/8.5
|
11
11
|
description: the Git branch specifier to build (<branchName>, <tagName>,
|
12
12
|
<commitId>, etc.)
|
data/.ci/run-kibana.sh
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
#!/usr/bin/env bash
|
2
|
+
|
3
|
+
script_path=$(dirname $(realpath -s $0))
|
4
|
+
source $script_path/functions/imports.sh
|
5
|
+
set -euo pipefail
|
6
|
+
|
7
|
+
docker run \
|
8
|
+
--name "kibana" \
|
9
|
+
--network "$network_name" \
|
10
|
+
--publish "5601:5601" \
|
11
|
+
--interactive \
|
12
|
+
--tty \
|
13
|
+
--rm \
|
14
|
+
--env "ENTERPRISESEARCH_HOST=http://localhost:3002" \
|
15
|
+
"docker.elastic.co/kibana/kibana:${STACK_VERSION}"
|
16
|
+
|
17
|
+
# --volume $ssl_ca:/usr/share/elasticsearch/config/certs/ca.crt \
|
18
|
+
|
19
|
+
# --env "ELASTICSEARCH_HOSTS=${elasticsearch_url}" \
|
20
|
+
# --env "ELASTICSEARCH_USERNAME=enterprise_search" \
|
21
|
+
# --env "ELASTICSEARCH_PASSWORD=${elastic_password}" \
|
22
|
+
# --env "ELASTICSEARCH_SSL_CERTIFICATEAUTHORITIES=${ssl_ca}" \
|
data/.ci/run-stack.sh
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
STACK_VERSION=${STACK_VERSION} docker-compose up --remove-orphans
|
data/.ci/test-matrix.yml
CHANGED
data/.gitignore
CHANGED
data/README.md
CHANGED
@@ -20,7 +20,7 @@ Or add it to your project's Gemfile:
|
|
20
20
|
gem 'elastic-enterprise-search', 'VERSION'
|
21
21
|
```
|
22
22
|
|
23
|
-
The Enterprise Search client is implemented with [`elastic-transport`](https://github.com/elastic/elastic-transport-ruby/) as the HTTP layer, which uses [Faraday](https://rubygems.org/gems/faraday). Faraday supports several [adapters](https://lostisland.github.io/faraday/adapters/) and will use `Net::HTTP` by default. For optimal performance with the Enterprise Search API, we suggest using an HTTP library which supports persistent ("keep-alive") connections. For the standard Ruby implementation, this could be https://github.com/drbrain/net-http-persistent
|
23
|
+
The Enterprise Search client is implemented with [`elastic-transport`](https://github.com/elastic/elastic-transport-ruby/) as the HTTP layer, which uses [Faraday](https://rubygems.org/gems/faraday). Faraday supports several [adapters](https://lostisland.github.io/faraday/adapters/) and will use `Net::HTTP` by default. For optimal performance with the Enterprise Search API, we suggest using an HTTP library which supports persistent ("keep-alive") connections. For the standard Ruby implementation, this could be [Net::HTTP::Persistent](https://github.com/drbrain/net-http-persistent), [patron](https://github.com/toland/patron) or [Typhoeus](https://github.com/typhoeus/typhoeus). For JRuby, [Manticore](https://github.com/cheald/manticore) is a great option as well. Require the library for the adapter in your code and then pass in the `:adapter` parameter to the client when you initialize it:
|
24
24
|
|
25
25
|
```ruby
|
26
26
|
require 'elastic-enterprise-search'
|
@@ -1,6 +1,18 @@
|
|
1
1
|
[[release_notes_717]]
|
2
2
|
=== 7.17 Release notes
|
3
3
|
|
4
|
+
[discrete]
|
5
|
+
[[release_notes_7171]]
|
6
|
+
=== 7.17.1 Release notes
|
7
|
+
|
8
|
+
- Updates in Documentation: CHANGELOG, CODE_OF_CONDUCT, CONTRIBUTING, NOTICE, README
|
9
|
+
- Adds the option to specify an adapter for Faraday when initializing a client. See https://github.com/elastic/enterprise-search-ruby/blob/main/README.md#elastic-enterprise-search-client[README]
|
10
|
+
- Fixes typo in meta data for CLIENT_NAME.
|
11
|
+
|
12
|
+
[discrete]
|
13
|
+
[[release_notes_7170]]
|
14
|
+
=== 7.17.0 Release notes
|
15
|
+
|
4
16
|
[discrete]
|
5
17
|
==== General
|
6
18
|
|
@@ -0,0 +1,9 @@
|
|
1
|
+
[[release_notes_86]]
|
2
|
+
=== 8.6 Release notes
|
3
|
+
|
4
|
+
[discrete]
|
5
|
+
[[release_notes_860]]
|
6
|
+
=== 8.6.0 Release notes
|
7
|
+
|
8
|
+
- Tested versions of Ruby for 8.6.0: Ruby (MRI) 2.7, 3.0 and 3.1, JRuby 9.3 and JRuby 9.4.
|
9
|
+
- Updated for compatibility with Elastic Enterprise Search 8.6's API.
|
@@ -4,6 +4,7 @@
|
|
4
4
|
[discrete]
|
5
5
|
=== 8.x
|
6
6
|
|
7
|
+
* <<release_notes_86, 8.6.0 Release Notes>>
|
7
8
|
* <<release_notes_85, 8.5.0 Release Notes>>
|
8
9
|
* <<release_notes_84, 8.4.0 Release Notes>>
|
9
10
|
* <<release_notes_83, 8.3.0 Release Notes>>
|
@@ -23,6 +24,7 @@
|
|
23
24
|
* <<release_notes_711, 7.11.0 Release Notes>>
|
24
25
|
* <<release_notes_710, 7.10.0.beta.1 Release Notes>>
|
25
26
|
|
27
|
+
include::86.asciidoc[]
|
26
28
|
include::85.asciidoc[]
|
27
29
|
include::84.asciidoc[]
|
28
30
|
include::83.asciidoc[]
|
@@ -54,7 +54,7 @@ Gem::Specification.new do |s|
|
|
54
54
|
s.add_development_dependency 'rspec', '~> 3.9.0'
|
55
55
|
s.add_development_dependency 'rspec_junit_formatter'
|
56
56
|
s.add_development_dependency 'rubocop', '~> 1'
|
57
|
-
s.add_development_dependency 'vcr'
|
57
|
+
s.add_development_dependency 'vcr'
|
58
58
|
s.add_development_dependency 'webmock'
|
59
59
|
# Adapters
|
60
60
|
s.add_development_dependency 'faraday-httpclient'
|
@@ -96,7 +96,7 @@ describe Elastic::EnterpriseSearch::Client do
|
|
96
96
|
context 'meta-header' do
|
97
97
|
let(:transport) { Elastic::EnterpriseSearch::Client.new.instance_variable_get('@transport') }
|
98
98
|
let(:subject) { transport.transport.connections.first.connection.headers }
|
99
|
-
let(:regexp) { /^[a-z]{1,}=[a-z0-9
|
99
|
+
let(:regexp) { /^[a-z]{1,}=[a-z0-9.-]{1,}(?:,[a-z]{1,}=[a-z0-9._-]+)*$/ }
|
100
100
|
|
101
101
|
it 'sends the correct meta header to transport' do
|
102
102
|
expect(subject['x-elastic-client-meta']).to match(regexp)
|
data/spec/spec_helper.rb
CHANGED
@@ -32,6 +32,10 @@ RSpec.configure do |config|
|
|
32
32
|
|
33
33
|
config.add_formatter('documentation')
|
34
34
|
config.add_formatter('RspecJunitFormatter', 'enterprise-search-junit.xml')
|
35
|
+
config.add_formatter(
|
36
|
+
'RSpec::Core::Formatters::HtmlFormatter',
|
37
|
+
"tmp/enterprise-search-#{ENV['SERVICE']}-#{RUBY_VERSION}.html"
|
38
|
+
)
|
35
39
|
|
36
40
|
VCR.configure do |c|
|
37
41
|
c.cassette_library_dir = 'spec/fixtures/vcr'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: elastic-enterprise-search
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 8.
|
4
|
+
version: 8.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Fernando Briano
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-01-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: elastic-transport
|
@@ -118,16 +118,16 @@ dependencies:
|
|
118
118
|
name: vcr
|
119
119
|
requirement: !ruby/object:Gem::Requirement
|
120
120
|
requirements:
|
121
|
-
- - "
|
121
|
+
- - ">="
|
122
122
|
- !ruby/object:Gem::Version
|
123
|
-
version:
|
123
|
+
version: '0'
|
124
124
|
type: :development
|
125
125
|
prerelease: false
|
126
126
|
version_requirements: !ruby/object:Gem::Requirement
|
127
127
|
requirements:
|
128
|
-
- - "
|
128
|
+
- - ">="
|
129
129
|
- !ruby/object:Gem::Version
|
130
|
-
version:
|
130
|
+
version: '0'
|
131
131
|
- !ruby/object:Gem::Dependency
|
132
132
|
name: webmock
|
133
133
|
requirement: !ruby/object:Gem::Requirement
|
@@ -207,6 +207,24 @@ executables: []
|
|
207
207
|
extensions: []
|
208
208
|
extra_rdoc_files: []
|
209
209
|
files:
|
210
|
+
- ".buildkite/Dockerfile"
|
211
|
+
- ".buildkite/certs/README.md"
|
212
|
+
- ".buildkite/certs/ca.crt"
|
213
|
+
- ".buildkite/certs/ca.key"
|
214
|
+
- ".buildkite/certs/testnode.crt"
|
215
|
+
- ".buildkite/certs/testnode.key"
|
216
|
+
- ".buildkite/certs/testnode_no_san.crt"
|
217
|
+
- ".buildkite/certs/testnode_no_san.key"
|
218
|
+
- ".buildkite/functions/cleanup.sh"
|
219
|
+
- ".buildkite/functions/imports.sh"
|
220
|
+
- ".buildkite/functions/wait-for-container.sh"
|
221
|
+
- ".buildkite/log-results.sh"
|
222
|
+
- ".buildkite/pipeline.yml"
|
223
|
+
- ".buildkite/run-client.sh"
|
224
|
+
- ".buildkite/run-elasticsearch.sh"
|
225
|
+
- ".buildkite/run-enterprise-search.sh"
|
226
|
+
- ".buildkite/run-tests.sh"
|
227
|
+
- ".ci/.env"
|
210
228
|
- ".ci/.gitignore"
|
211
229
|
- ".ci/Dockerfile"
|
212
230
|
- ".ci/certs/README.md"
|
@@ -216,21 +234,24 @@ files:
|
|
216
234
|
- ".ci/certs/testnode.key"
|
217
235
|
- ".ci/certs/testnode_no_san.crt"
|
218
236
|
- ".ci/certs/testnode_no_san.key"
|
237
|
+
- ".ci/docker-compose.yml"
|
219
238
|
- ".ci/functions/cleanup.sh"
|
220
239
|
- ".ci/functions/imports.sh"
|
221
240
|
- ".ci/functions/wait-for-container.sh"
|
222
241
|
- ".ci/jobs/defaults.yml"
|
223
242
|
- ".ci/jobs/elastic+enterprise-search-ruby+7.17.yml"
|
224
|
-
- ".ci/jobs/elastic+enterprise-search-ruby+8.2.yml"
|
225
243
|
- ".ci/jobs/elastic+enterprise-search-ruby+8.3.yml"
|
226
244
|
- ".ci/jobs/elastic+enterprise-search-ruby+8.4.yml"
|
245
|
+
- ".ci/jobs/elastic+enterprise-search-ruby+8.5.yml"
|
227
246
|
- ".ci/jobs/elastic+enterprise-search-ruby+main.yml"
|
228
247
|
- ".ci/jobs/elastic+enterprise-search-ruby+pull-request.yml"
|
229
248
|
- ".ci/make.sh"
|
230
249
|
- ".ci/run-elasticsearch.sh"
|
231
250
|
- ".ci/run-enterprise-search.sh"
|
251
|
+
- ".ci/run-kibana.sh"
|
232
252
|
- ".ci/run-local.sh"
|
233
253
|
- ".ci/run-repository.sh"
|
254
|
+
- ".ci/run-stack.sh"
|
234
255
|
- ".ci/run-tests"
|
235
256
|
- ".ci/test-matrix.yml"
|
236
257
|
- ".github/check_license_headers.rb"
|
@@ -269,6 +290,7 @@ files:
|
|
269
290
|
- docs/guide/release_notes/83.asciidoc
|
270
291
|
- docs/guide/release_notes/84.asciidoc
|
271
292
|
- docs/guide/release_notes/85.asciidoc
|
293
|
+
- docs/guide/release_notes/86.asciidoc
|
272
294
|
- docs/guide/release_notes/index.asciidoc
|
273
295
|
- docs/guide/workplace-search-api.asciidoc
|
274
296
|
- elastic-enterprise-search.gemspec
|