Skip to content

Commit a353f38

Browse files
committed
Add Redis SSL support via environment variables
This commit adds SSL support for Redis connections in SortingHat. It allows configuring secure connections using environment variables that define SSL behavior and certificate files. New environment variables: - SORTINGHAT_REDIS_SSL: enables or disables SSL (yes/no) - SORTINGHAT_REDIS_SSL_CERT_REQS: certificate verification (none/required) - SORTINGHAT_REDIS_SSL_CA_CERTS: path to the root CA certificates - SORTINGHAT_REDIS_SSL_CERTFILE: path to the client certificate file - SORTINGHAT_REDIS_SSL_KEYFILE: path to the private key file Signed-off-by: Jose Javier Merchante <[email protected]>
1 parent 13b9d13 commit a353f38

File tree

2 files changed

+35
-14
lines changed

2 files changed

+35
-14
lines changed
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
---
2+
title: Redis SSL support via environment variables
3+
category: added
4+
author: Jose Javier Merchante <[email protected]>
5+
issue: 985
6+
notes: >
7+
Adds support for secure Redis connections over SSL. It can
8+
be configured using the following environment variables.
9+
SORTINGHAT_REDIS_SSL, SORTINGHAT_REDIS_SSL_CERT_REQS,
10+
SORTINGHAT_REDIS_SSL_CA_CERTS, SORTINGHAT_REDIS_SSL_CERTFILE,
11+
SORTINGHAT_REDIS_SSL_KEYFILE.

sortinghat/config/settings.py

Lines changed: 24 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -269,6 +269,28 @@
269269
}
270270
}
271271

272+
#
273+
# Redis configuration
274+
#
275+
# You MUST set the Redis parameters in order to run
276+
# SortingHat jobs and workers.
277+
#
278+
279+
REDIS_CONFIG = {
280+
'HOST': os.environ.get('SORTINGHAT_REDIS_HOST', '127.0.0.1'),
281+
'PORT': os.environ.get('SORTINGHAT_REDIS_PORT', 6379),
282+
'PASSWORD': os.environ.get('SORTINGHAT_REDIS_PASSWORD', ''),
283+
'ASYNC': os.environ.get('SORTINGHAT_WORKERS_ASYNC', True),
284+
'DB': os.environ.get('SORTINGHAT_REDIS_DB', 0),
285+
'SSL': os.environ.get('SORTINGHAT_REDIS_SSL', False),
286+
'SSL_CERT_REQS': os.environ.get('SORTINGHAT_REDIS_SSL_CERT_REQS', "none"),
287+
'REDIS_CLIENT_KWARGS': {
288+
'ssl_ca_certs': os.environ.get('SORTINGHAT_REDIS_SSL_CA_CERTS', None),
289+
'ssl_certfile': os.environ.get('SORTINGHAT_REDIS_SSL_CERTFILE', None),
290+
'ssl_keyfile': os.environ.get('SORTINGHAT_REDIS_SSL_KEYFILE', None),
291+
}
292+
}
293+
272294
#
273295
# SortingHat workers
274296
#
@@ -283,13 +305,7 @@
283305
#
284306

285307
RQ_QUEUES = {
286-
'default': {
287-
'HOST': os.environ.get('SORTINGHAT_REDIS_HOST', '127.0.0.1'),
288-
'PORT': os.environ.get('SORTINGHAT_REDIS_PORT', 6379),
289-
'PASSWORD': os.environ.get('SORTINGHAT_REDIS_PASSWORD', ''),
290-
'ASYNC': os.environ.get('SORTINGHAT_WORKERS_ASYNC', True),
291-
'DB': os.environ.get('SORTINGHAT_REDIS_DB', 0),
292-
}
308+
'default': REDIS_CONFIG
293309
}
294310

295311
RQ = {
@@ -339,13 +355,7 @@
339355
})
340356

341357
RQ_QUEUES.update({
342-
tenant: {
343-
'HOST': os.environ.get('SORTINGHAT_REDIS_HOST', '127.0.0.1'),
344-
'PORT': os.environ.get('SORTINGHAT_REDIS_PORT', 6379),
345-
'PASSWORD': os.environ.get('SORTINGHAT_REDIS_PASSWORD', ''),
346-
'ASYNC': os.environ.get('SORTINGHAT_WORKERS_ASYNC', True),
347-
'DB': os.environ.get('SORTINGHAT_REDIS_DB', 0),
348-
}
358+
tenant: REDIS_CONFIG
349359
for tenant in TENANTS_DEDICATED_QUEUES
350360
})
351361

0 commit comments

Comments
 (0)