elastic-enterprise-search 8.5.0 → 8.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|