Skip to content

Commit e32e707

Browse files
authored
Upgrade ES to 8.x (#10771)
* Upgrade ES to 8.x We need to wait for django-es/django-elasticsearch-dsl#458 or #10730. There are no breaking changes in the API, so this can be deployed without any downtime. The only change is that it now has authentication enabled by default, so our docker image now uses a password. How to deploy: - Deploy web extra - The new packages will continue working with the old ES, but we can make sure by searching from web-extra. - Finish the deploy - Upgrade the ES cluster from cloud.elastic.co * Forgot about this * Fix tests * Upgrade dependencies
1 parent 3499743 commit e32e707

File tree

9 files changed

+59
-46
lines changed

9 files changed

+59
-46
lines changed

.circleci/config.yml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,14 @@ jobs:
1111
environment:
1212
TOX_POSARGS: ''
1313
PYTEST_COVERAGE: --cov-report=xml --cov-config .coveragerc --cov=. --cov-append
14-
- image: 'docker.elastic.co/elasticsearch/elasticsearch:7.17.13'
14+
- image: 'docker.elastic.co/elasticsearch/elasticsearch:8.10.2'
1515
name: search
1616
environment:
1717
discovery.type: single-node
1818
ES_JAVA_OPTS: -Xms750m -Xmx750m
19+
ELASTIC_PASSWORD: password
20+
# Disabled SSL for testing.
21+
xpack.security.transport.ssl.enabled: 'false'
1922
steps:
2023
- checkout
2124
- run: git submodule sync

readthedocs/search/tests/test_faceted_search.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,11 +26,11 @@ def test_search_exact_match(self, client, project, case):
2626
assert len(results) == 2
2727
assert results[0]["project"] == "kuma"
2828
assert results[0]["path"] == "testdocumentation"
29-
assert results[0]["version"] == "stable"
29+
assert results[0]["version"] == "latest"
3030

3131
assert results[1]["project"] == "kuma"
3232
assert results[1]["path"] == "testdocumentation"
33-
assert results[1]["version"] == "latest"
33+
assert results[1]["version"] == "stable"
3434

3535
def test_search_combined_result(self, client, project):
3636
"""Check search result are combined of both `AND` and `OR` operator

readthedocs/search/tests/test_views.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -260,8 +260,8 @@ def test_file_search_exact_match(self, client, project):
260260
# There are two results,
261261
# one from each version of the "kuma" project.
262262
assert len(results) == 2
263-
assert results[0]["version"] == {"slug": "stable"}
264-
assert results[1]["version"] == {"slug": "latest"}
263+
assert results[0]["version"] == {"slug": "latest"}
264+
assert results[1]["version"] == {"slug": "stable"}
265265
for result in results:
266266
assert result["project"] == {"alias": None, "slug": "kuma"}
267267
assert result["domain"] == "http://readthedocs.org"

readthedocs/settings/base.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -795,10 +795,9 @@ def DOCKER_LIMITS(self):
795795
RTD_ORG_TRIAL_PERIOD_DAYS = 30
796796

797797
# Elasticsearch settings.
798-
ES_HOSTS = ['search:9200']
799798
ELASTICSEARCH_DSL = {
800799
'default': {
801-
'hosts': 'search:9200'
800+
'hosts': 'http://elastic:password@search:9200',
802801
},
803802
}
804803
# Chunk size for elasticsearch reindex celery tasks

requirements/deploy.txt

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ celery==5.2.7
4040
certifi==2023.7.22
4141
# via
4242
# -r requirements/pip.txt
43-
# elasticsearch
43+
# elastic-transport
4444
# requests
4545
# sentry-sdk
4646
cffi==1.16.0
@@ -135,7 +135,7 @@ django-csp==3.7
135135
# via -r requirements/pip.txt
136136
django-debug-toolbar==4.2.0
137137
# via -r requirements/pip.txt
138-
django-elasticsearch-dsl==7.4
138+
django-elasticsearch-dsl==8.0
139139
# via -r requirements/pip.txt
140140
django-extensions==3.2.3
141141
# via -r requirements/pip.txt
@@ -155,7 +155,7 @@ django-polymorphic==3.1.0
155155
# via -r requirements/pip.txt
156156
django-simple-history==3.0.0
157157
# via -r requirements/pip.txt
158-
django-storages[boto3]==1.14.1
158+
django-storages[boto3]==1.14.2
159159
# via -r requirements/pip.txt
160160
django-structlog==2.2.0
161161
# via -r requirements/pip.txt
@@ -185,11 +185,15 @@ drf-extensions==0.7.1
185185
# via -r requirements/pip.txt
186186
drf-flex-fields==1.0.2
187187
# via -r requirements/pip.txt
188-
elasticsearch==7.17.9
188+
elastic-transport==8.4.1
189+
# via
190+
# -r requirements/pip.txt
191+
# elasticsearch
192+
elasticsearch==8.10.0
189193
# via
190194
# -r requirements/pip.txt
191195
# elasticsearch-dsl
192-
elasticsearch-dsl==7.4.1
196+
elasticsearch-dsl==8.9.0
193197
# via
194198
# -r requirements/pip.txt
195199
# django-elasticsearch-dsl
@@ -341,7 +345,6 @@ six==1.16.0
341345
# asttokens
342346
# django-annoying
343347
# django-elasticsearch-dsl
344-
# elasticsearch-dsl
345348
# python-dateutil
346349
# unicode-slugify
347350
slumber==0.7.1
@@ -357,7 +360,7 @@ stripe==4.2.0
357360
# via
358361
# -r requirements/pip.txt
359362
# dj-stripe
360-
structlog==23.1.0
363+
structlog==23.2.0
361364
# via
362365
# -r requirements/pip.txt
363366
# django-structlog
@@ -395,7 +398,7 @@ urllib3==1.26.17
395398
# -r requirements/pip.txt
396399
# botocore
397400
# docker
398-
# elasticsearch
401+
# elastic-transport
399402
# requests
400403
# sentry-sdk
401404
user-agents==2.2.0
@@ -412,7 +415,7 @@ wcwidth==0.2.8
412415
# via
413416
# -r requirements/pip.txt
414417
# prompt-toolkit
415-
websocket-client==1.6.3
418+
websocket-client==1.6.4
416419
# via
417420
# -r requirements/pip.txt
418421
# docker

requirements/docker.txt

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ celery==5.2.7
4444
certifi==2023.7.22
4545
# via
4646
# -r requirements/pip.txt
47-
# elasticsearch
47+
# elastic-transport
4848
# requests
4949
cffi==1.16.0
5050
# via
@@ -146,7 +146,7 @@ django-csp==3.7
146146
# via -r requirements/pip.txt
147147
django-debug-toolbar==4.2.0
148148
# via -r requirements/pip.txt
149-
django-elasticsearch-dsl==7.4
149+
django-elasticsearch-dsl==8.0
150150
# via -r requirements/pip.txt
151151
django-extensions==3.2.3
152152
# via -r requirements/pip.txt
@@ -166,7 +166,7 @@ django-polymorphic==3.1.0
166166
# via -r requirements/pip.txt
167167
django-simple-history==3.0.0
168168
# via -r requirements/pip.txt
169-
django-storages[boto3]==1.14.1
169+
django-storages[boto3]==1.14.2
170170
# via -r requirements/pip.txt
171171
django-structlog==2.2.0
172172
# via -r requirements/pip.txt
@@ -196,11 +196,15 @@ drf-extensions==0.7.1
196196
# via -r requirements/pip.txt
197197
drf-flex-fields==1.0.2
198198
# via -r requirements/pip.txt
199-
elasticsearch==7.17.9
199+
elastic-transport==8.4.1
200+
# via
201+
# -r requirements/pip.txt
202+
# elasticsearch
203+
elasticsearch==8.10.0
200204
# via
201205
# -r requirements/pip.txt
202206
# elasticsearch-dsl
203-
elasticsearch-dsl==7.4.1
207+
elasticsearch-dsl==8.9.0
204208
# via
205209
# -r requirements/pip.txt
206210
# django-elasticsearch-dsl
@@ -374,7 +378,6 @@ six==1.16.0
374378
# asttokens
375379
# django-annoying
376380
# django-elasticsearch-dsl
377-
# elasticsearch-dsl
378381
# python-dateutil
379382
# unicode-slugify
380383
slumber==0.7.1
@@ -390,7 +393,7 @@ stripe==4.2.0
390393
# via
391394
# -r requirements/pip.txt
392395
# dj-stripe
393-
structlog==23.1.0
396+
structlog==23.2.0
394397
# via
395398
# -r requirements/pip.txt
396399
# django-structlog
@@ -430,7 +433,7 @@ urllib3==1.26.17
430433
# -r requirements/pip.txt
431434
# botocore
432435
# docker
433-
# elasticsearch
436+
# elastic-transport
434437
# requests
435438
user-agents==2.2.0
436439
# via -r requirements/pip.txt
@@ -448,7 +451,7 @@ wcwidth==0.2.8
448451
# via
449452
# -r requirements/pip.txt
450453
# prompt-toolkit
451-
websocket-client==1.6.3
454+
websocket-client==1.6.4
452455
# via
453456
# -r requirements/pip.txt
454457
# docker

requirements/pip.in

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -87,9 +87,10 @@ django-allauth==0.51.0
8787
requests-oauthlib
8888

8989
# Search
90-
elasticsearch<8.0
91-
elasticsearch-dsl<8.0
92-
django-elasticsearch-dsl<8.0
90+
elasticsearch~=8.0
91+
elasticsearch-dsl~=8.0
92+
django-elasticsearch-dsl~=8.0
93+
9394
selectolax
9495

9596
# embed

requirements/pip.txt

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ celery==5.2.7
2424
# django-celery-beat
2525
certifi==2023.7.22
2626
# via
27-
# elasticsearch
27+
# elastic-transport
2828
# requests
2929
cffi==1.16.0
3030
# via cryptography
@@ -95,7 +95,7 @@ django-csp==3.7
9595
# via -r requirements/pip.in
9696
django-debug-toolbar==4.2.0
9797
# via -r requirements/pip.in
98-
django-elasticsearch-dsl==7.4
98+
django-elasticsearch-dsl==8.0
9999
# via -r requirements/pip.in
100100
django-extensions==3.2.3
101101
# via -r requirements/pip.in
@@ -113,7 +113,7 @@ django-polymorphic==3.1.0
113113
# via -r requirements/pip.in
114114
django-simple-history==3.0.0
115115
# via -r requirements/pip.in
116-
django-storages[boto3]==1.14.1
116+
django-storages[boto3]==1.14.2
117117
# via -r requirements/pip.in
118118
django-structlog==2.2.0
119119
# via -r requirements/pip.in
@@ -141,11 +141,13 @@ drf-extensions==0.7.1
141141
# via -r requirements/pip.in
142142
drf-flex-fields==1.0.2
143143
# via -r requirements/pip.in
144-
elasticsearch==7.17.9
144+
elastic-transport==8.4.1
145+
# via elasticsearch
146+
elasticsearch==8.10.0
145147
# via
146148
# -r requirements/pip.in
147149
# elasticsearch-dsl
148-
elasticsearch-dsl==7.4.1
150+
elasticsearch-dsl==8.9.0
149151
# via
150152
# -r requirements/pip.in
151153
# django-elasticsearch-dsl
@@ -241,7 +243,6 @@ six==1.16.0
241243
# via
242244
# django-annoying
243245
# django-elasticsearch-dsl
244-
# elasticsearch-dsl
245246
# python-dateutil
246247
# unicode-slugify
247248
slumber==0.7.1
@@ -254,7 +255,7 @@ stripe==4.2.0
254255
# via
255256
# -r requirements/pip.in
256257
# dj-stripe
257-
structlog==23.1.0
258+
structlog==23.2.0
258259
# via
259260
# -r requirements/pip.in
260261
# django-structlog
@@ -276,7 +277,7 @@ urllib3==1.26.17
276277
# via
277278
# botocore
278279
# docker
279-
# elasticsearch
280+
# elastic-transport
280281
# requests
281282
user-agents==2.2.0
282283
# via -r requirements/pip.in
@@ -289,7 +290,7 @@ virtualenv==20.24.5
289290
# via -r requirements/pip.in
290291
wcwidth==0.2.8
291292
# via prompt-toolkit
292-
websocket-client==1.6.3
293+
websocket-client==1.6.4
293294
# via docker
294295

295296
# The following packages are considered to be unsafe in a requirements file:

requirements/testing.txt

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ celery==5.2.7
4040
certifi==2023.7.22
4141
# via
4242
# -r requirements/pip.txt
43-
# elasticsearch
43+
# elastic-transport
4444
# requests
4545
cffi==1.16.0
4646
# via
@@ -136,7 +136,7 @@ django-debug-toolbar==4.2.0
136136
# via -r requirements/pip.txt
137137
django-dynamic-fixture==4.0.1
138138
# via -r requirements/testing.in
139-
django-elasticsearch-dsl==7.4
139+
django-elasticsearch-dsl==8.0
140140
# via -r requirements/pip.txt
141141
django-extensions==3.2.3
142142
# via -r requirements/pip.txt
@@ -156,7 +156,7 @@ django-polymorphic==3.1.0
156156
# via -r requirements/pip.txt
157157
django-simple-history==3.0.0
158158
# via -r requirements/pip.txt
159-
django-storages[boto3]==1.14.1
159+
django-storages[boto3]==1.14.2
160160
# via -r requirements/pip.txt
161161
django-structlog==2.2.0
162162
# via -r requirements/pip.txt
@@ -188,11 +188,15 @@ drf-extensions==0.7.1
188188
# via -r requirements/pip.txt
189189
drf-flex-fields==1.0.2
190190
# via -r requirements/pip.txt
191-
elasticsearch==7.17.9
191+
elastic-transport==8.4.1
192+
# via
193+
# -r requirements/pip.txt
194+
# elasticsearch
195+
elasticsearch==8.10.0
192196
# via
193197
# -r requirements/pip.txt
194198
# elasticsearch-dsl
195-
elasticsearch-dsl==7.4.1
199+
elasticsearch-dsl==8.9.0
196200
# via
197201
# -r requirements/pip.txt
198202
# django-elasticsearch-dsl
@@ -355,7 +359,6 @@ six==1.16.0
355359
# -r requirements/pip.txt
356360
# django-annoying
357361
# django-elasticsearch-dsl
358-
# elasticsearch-dsl
359362
# python-dateutil
360363
# requests-mock
361364
# unicode-slugify
@@ -392,7 +395,7 @@ stripe==4.2.0
392395
# via
393396
# -r requirements/pip.txt
394397
# dj-stripe
395-
structlog==23.1.0
398+
structlog==23.2.0
396399
# via
397400
# -r requirements/pip.txt
398401
# django-structlog
@@ -425,7 +428,7 @@ urllib3==1.26.17
425428
# -r requirements/pip.txt
426429
# botocore
427430
# docker
428-
# elasticsearch
431+
# elastic-transport
429432
# requests
430433
user-agents==2.2.0
431434
# via -r requirements/pip.txt
@@ -441,7 +444,7 @@ wcwidth==0.2.8
441444
# via
442445
# -r requirements/pip.txt
443446
# prompt-toolkit
444-
websocket-client==1.6.3
447+
websocket-client==1.6.4
445448
# via
446449
# -r requirements/pip.txt
447450
# docker

0 commit comments

Comments
 (0)