You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/content/en/open_source/upgrading/2.53.md
+37-2Lines changed: 37 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,9 +2,44 @@
2
2
title: 'Upgrading to DefectDojo Version 2.53.x'
3
3
toc_hide: true
4
4
weight: -20251103
5
-
description: No special instructions.
5
+
description: Replaced Redis with Valkey in Helm chart.
6
6
---
7
-
There are no special instructions for upgrading to 2.53.x. Check the [Release Notes](https://github.com/DefectDojo/django-DefectDojo/releases/tag/2.53.0) for the contents of the release.
7
+
8
+
## Helm Chart Changes
9
+
10
+
DefectDojo `2.52.0` replaced Redis with Valkey in `docker-compose` deployment. DefectDojo `2.53.0` (chart `1.9.0`) is replacing it in HELM charts.
11
+
12
+
### Renamed values
13
+
14
+
HELM values had been based on following:
15
+
-`createRedisSecret` → `createValkeySecret` (`createRedisSecret` is still in place to be able to correctly show error message but it will be removed in the future)
16
+
-`redis.enabled` → `valkey.enabled`
17
+
-`redis.auth.existingSecret` → `valkey.auth.existingSecret`, plus value pointing to secret `defectdojo-valkey-specific` now
18
+
-`redis.auth.existingSecretPasswordKey` → `valkey.auth.existingSecretPasswordKey`, plus value pointing to secret `valkey-password` now
Whole subchart is using based on [`cloudpirates-valkey`](https://artifacthub.io/packages/helm/cloudpirates-valkey/valkey) so all additional values can be found there.
25
+
26
+
### How to migrate
27
+
28
+
0. As always, perform backup of your instance
29
+
1. If you would like to be 100% sure that do not miss any async event (triggered deduplication, email notification, ...) it is recommended to perform following substeps (if your system is not in production and/or you are willing to miss some notifications or postpone deduplication to later time, feel free to skip these substep)
30
+
0. Perform following steps with your previous version of HELM chart (not with upgraded one - you might loose you data)
31
+
1. Downscale all producers of async tasks:
32
+
- Set `django.replicas` to 0 (if you used HPA, adjust it based on your needs)
33
+
- Set `celery.beat.replicas` to 0 (if you used HPA, adjust it based on your needs)
34
+
- Do not change `celery.worker.replicas` (they are responsible to process your async tasks)
35
+
2. Wait until processing queue is empty (choose one of following methods):
36
+
-``kubectl exec statefulset/defectdojo-redis-master -c redis -- redis-cli -a `kubectl get secret defectdojo-redis-specific -o go-template='{{index .data "redis-password" | base64decode}}'` llen celery`` -- should output 0 (if your HELM chart used different name, adjust command based on your enviroment)
37
+
-`kubectl logs deployment/defectdojo-celery-worker -c celery --all-pods=true --follow` -- should stop outputting new task logs
38
+
2. Replace values based on _Renamed values_ part, update chart version, set number of replicas back. Be aware that Valkey is using password from new location and if you use `createRedisSecret`/`createValkeySecret` will be regenerated. If you stored this password somewhere else, it will not be valid anymore.
39
+
3. Enjoy DefectDojo
40
+
8
41
9
42
## Reimport updates fields fix_available and fix_version
10
43
Reimport will update existing findings `fix_available` and `fix_version` fields based on the incoming scan report.
44
+
45
+
There are other special instructions for upgrading to 2.53.x. Check the [Release Notes](https://github.com/DefectDojo/django-DefectDojo/releases/tag/2.53.0) for the contents of the release.
# For high availability deploy multiple instances of Django, Celery and Redis
286
+
# For high availability deploy multiple instances of Django, Celery and Valkey
287
287
helm install \
288
288
defectdojo \
289
289
./helm/defectdojo \
@@ -292,9 +292,10 @@ helm install \
292
292
--set django.ingress.secretName="minikube-tls" \
293
293
--set django.replicas=3 \
294
294
--set celery.worker.replicas=3 \
295
-
--set redis.replicas=3 \
295
+
--set valkey.architecture=replication \
296
+
--set valkey.replicaCount=3 \
296
297
--set createSecret=true \
297
-
--set createRedisSecret=true \
298
+
--set createValkeySecret=true \
298
299
--set createPostgresqlSecret=true
299
300
300
301
# Run highly available PostgreSQL cluster
@@ -306,13 +307,14 @@ helm install \
306
307
--set host="defectdojo.${TLS_CERT_DOMAIN}" \
307
308
--set django.replicas=3 \
308
309
--set celery.worker.replicas=3 \
309
-
--set redis.replicas=3 \
310
+
--set valkey.architecture=replication \
311
+
--set valkey.replicaCount=3 \
310
312
--set django.ingress.secretName="minikube-tls" \
311
313
--set postgresql.enabled=true \
312
314
--set postgresql.replication.enabled=true \
313
315
--set postgresql.replication.slaveReplicas=3 \
314
316
--set createSecret=true \
315
-
--set createRedisSecret=true \
317
+
--set createValkeySecret=true \
316
318
--set createPostgresqlSecret=true
317
319
318
320
# Note: If you run `helm install defectdojo before, you will get an error
@@ -359,16 +361,13 @@ You will still need to set a host value as well.
359
361
360
362
If you want to use a redis-sentinel setup as the Celery broker, you will need to set the following.
361
363
362
-
1. Set redis.scheme to "sentinel" in values.yaml
364
+
1. Set valkey.scheme to "sentinel" in values.yaml
363
365
2. Set two additional extraEnv vars specifying the sentinel master name and port in values.yaml
364
366
365
367
```yaml
366
-
celery:
367
-
broker: 'redis'
368
-
369
-
redis:
370
-
redisServer: 'PutYourRedisSentinelAddress'
368
+
valkey:
371
369
scheme: 'sentinel'
370
+
redisServer: 'PutYourRedisSentinelAddress'
372
371
373
372
extraEnv:
374
373
- name: DD_CELERY_BROKER_TRANSPORT_OPTIONS
@@ -451,10 +450,10 @@ extraEnv:
451
450
452
451
#### Step 4: Deploy DefectDojo
453
452
454
-
After modifying the `values.yaml` file as needed, deploy DefectDojo using Helm. This command also generates the required secrets for the DefectDojo admin UI and Redis:
453
+
After modifying the `values.yaml` file as needed, deploy DefectDojo using Helm. This command also generates the required secrets for the DefectDojo admin UI and Valkey:
**NOTE**: It is important to highlight that this setup can also be utilized for achieving high availability (HA) in PostgreSQL. By placing a load balancer in front of the PostgreSQL cluster, read and write requests can be efficiently routed to the appropriate primary or standby servers as needed.
@@ -509,8 +508,8 @@ A Helm chart for Kubernetes to install DefectDojo
| createValkeySecret | bool | `false` | create valkey secret in defectdojo chart, outside of valkey chart |
588
587
| dbMigrationChecker.containerSecurityContext | object | `{}` | Container security context for the DB migration checker. |
589
588
| dbMigrationChecker.enabled | bool | `true` | Enable/disable the DB migration checker. |
590
589
| dbMigrationChecker.extraEnv | list | `[]` | Additional environment variables for DB migration checker. |
@@ -727,9 +726,6 @@ A Helm chart for Kubernetes to install DefectDojo
727
726
| postgresql.primary.podSecurityContext.enabled | bool | `true` | Default is true for K8s. Enabled needs to false for OpenShift restricted SCC and true for anyuid SCC |
728
727
| postgresql.primary.podSecurityContext.fsGroup | int | `1001` | fsGroup specification below is not applied if enabled=false. enabled=false is the required setting for OpenShift "restricted SCC" to work successfully. |
729
728
| postgresql.volumePermissions.containerSecurityContext | object | `{"runAsUser":1001}` | if using restricted SCC set runAsUser: "auto" and if running under anyuid SCC - runAsUser needs to match the line above |
730
-
| redis | object | `{"architecture":"standalone","auth":{"existingSecret":"defectdojo-redis-specific","existingSecretPasswordKey":"redis-password","password":""},"enabled":true,"sentinel":{"enabled":false},"tls":{"enabled":false}}` | For more advance options check the bitnami chart documentation: https://github.com/bitnami/charts/tree/main/bitnami/redis |
731
-
| redis.enabled | bool | `true` | To use an external instance, switch enabled to `false`` and set the address in `redisServer` below |
732
-
| redis.tls.enabled | bool | `false` | If TLS is enabled, the Redis broker will use the redis:// and optionally mount the certificates from an existing secret. |
733
729
| redisParams | string | `""` | Parameters attached to the redis connection string, defaults to "ssl_cert_reqs=optional" if `redis.tls.enabled` |
734
730
| redisServer | string | `nil` | To use an external Redis instance, set `redis.enabled` to false and set the address here: |
735
731
| revisionHistoryLimit | int | `10` | Allow overriding of revisionHistoryLimit across all deployments. |
@@ -747,6 +743,10 @@ A Helm chart for Kubernetes to install DefectDojo
| trackConfig | string | `"disabled"` | Track configuration (trackConfig): will automatically respin application pods in case of config changes detection can be: 1. disabled (default) 2. enabled, enables tracking configuration changes based on SHA256 |
746
+
| valkey | object | `{"auth":{"existingSecret":"defectdojo-valkey-specific","existingSecretPasswordKey":"valkey-password","password":""},"enabled":true,"sentinel":{"enabled":false},"service":{"port":6379},"tls":{"enabled":false}}` | For more advance options check the bitnami chart documentation: https://artifacthub.io/packages/helm/cloudpirates-valkey/valkey |
747
+
| valkey.enabled | bool | `true` | To use an external instance, switch enabled to `false` and set the address in `redisServer` below |
748
+
| valkey.service | object | `{"port":6379}` | To use a different port for Redis (default: 6379) |
749
+
| valkey.tls.enabled | bool | `false` | If TLS is enabled, the Redis broker will use the redis:// and optionally mount the certificates from an existing secret. |
750
750
751
751
----------------------------------------------
752
752
Autogenerated from chart metadata using [helm-docs v1.14.2](https://github.com/norwoodj/helm-docs/releases/v1.14.2)
# For high availability deploy multiple instances of Django, Celery and Redis
286
+
# For high availability deploy multiple instances of Django, Celery and Valkey
287
287
helm install \
288
288
defectdojo \
289
289
./helm/defectdojo \
@@ -292,9 +292,10 @@ helm install \
292
292
--set django.ingress.secretName="minikube-tls" \
293
293
--set django.replicas=3 \
294
294
--set celery.worker.replicas=3 \
295
-
--set redis.replicas=3 \
295
+
--set valkey.architecture=replication \
296
+
--set valkey.replicaCount=3 \
296
297
--set createSecret=true \
297
-
--set createRedisSecret=true \
298
+
--set createValkeySecret=true \
298
299
--set createPostgresqlSecret=true
299
300
300
301
# Run highly available PostgreSQL cluster
@@ -306,13 +307,14 @@ helm install \
306
307
--set host="defectdojo.${TLS_CERT_DOMAIN}" \
307
308
--set django.replicas=3 \
308
309
--set celery.worker.replicas=3 \
309
-
--set redis.replicas=3 \
310
+
--set valkey.architecture=replication \
311
+
--set valkey.replicaCount=3 \
310
312
--set django.ingress.secretName="minikube-tls" \
311
313
--set postgresql.enabled=true \
312
314
--set postgresql.replication.enabled=true \
313
315
--set postgresql.replication.slaveReplicas=3 \
314
316
--set createSecret=true \
315
-
--set createRedisSecret=true \
317
+
--set createValkeySecret=true \
316
318
--set createPostgresqlSecret=true
317
319
318
320
# Note: If you run `helm install defectdojo before, you will get an error
@@ -359,16 +361,13 @@ You will still need to set a host value as well.
359
361
360
362
If you want to use a redis-sentinel setup as the Celery broker, you will need to set the following.
361
363
362
-
1. Set redis.scheme to "sentinel" in values.yaml
364
+
1. Set valkey.scheme to "sentinel" in values.yaml
363
365
2. Set two additional extraEnv vars specifying the sentinel master name and port in values.yaml
364
366
365
367
```yaml
366
-
celery:
367
-
broker: 'redis'
368
-
369
-
redis:
370
-
redisServer: 'PutYourRedisSentinelAddress'
368
+
valkey:
371
369
scheme: 'sentinel'
370
+
redisServer: 'PutYourRedisSentinelAddress'
372
371
373
372
extraEnv:
374
373
- name: DD_CELERY_BROKER_TRANSPORT_OPTIONS
@@ -451,10 +450,10 @@ extraEnv:
451
450
452
451
#### Step 4: Deploy DefectDojo
453
452
454
-
After modifying the `values.yaml` file as needed, deploy DefectDojo using Helm. This command also generates the required secrets for the DefectDojo admin UI and Redis:
453
+
After modifying the `values.yaml` file as needed, deploy DefectDojo using Helm. This command also generates the required secrets for the DefectDojo admin UI and Valkey:
0 commit comments