Skip to content

Commit f939b71

Browse files
authored
Revert "feat: [AAP-59028] cleanup old redis artifacts (#321)" (#327)
This reverts commit 4c9fd0c.
1 parent eec54a7 commit f939b71

File tree

7 files changed

+39
-107
lines changed

7 files changed

+39
-107
lines changed

README.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -268,7 +268,6 @@ spec:
268268
- [Deploy a Specific Version of EDA](./docs/user-guide/advanced-configuration/deploying-a-specific-version.md)
269269
- [Trusting a Custom Certificate Authority](./docs/user-guide/advanced-configuration/trusting-a-custom-certificate-authority.md)
270270
- [Database Configuration](./docs/user-guide/database-configuration.md)
271-
- [Redis Removal Notice](./docs/user-guide/redis-configuration.md)
272271

273272
## Maintainers Docs
274273

docs/upgrade/upgrading.md

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -48,23 +48,6 @@ In the event you need to recover the backup see the [restore role documentation]
4848
**Note**: Do not delete the namespace/project, as that will delete the backup and the backup's PVC as well.
4949

5050

51-
#### Redis Removal
52-
53-
Starting with this version, the EDA operator **no longer deploys or supports Redis**. EDA now uses [dispatcherd](https://github.com/ansible/dispatcherd), a PostgreSQL `pg_notify`-based task queuing system that eliminates the need for a separate Redis instance.
54-
55-
**What happens automatically during the upgrade:**
56-
57-
- The operator deletes any existing managed Redis Deployment (`<name>-redis`), Service (`<name>-redis-svc`), and Secret (`<name>-redis-configuration`).
58-
- No data migration is required — Redis was used only for transient message queuing (`emptyDir` storage), and all durable task state is persisted in PostgreSQL.
59-
60-
**What you need to do:**
61-
62-
- **Remove the `redis` section from your EDA CR spec when convenient.** If your CR still contains a `redis` section, the operator will log a deprecation warning and ignore it — the upgrade will proceed normally. You should remove the `redis:` block at your earliest convenience.
63-
- **Decommission any external Redis instance** that was dedicated to EDA. No EDA component connects to Redis anymore.
64-
- The `redis_image` and `redis_image_version` CR fields have also been removed.
65-
66-
For more details, see the [Redis Removal Notice](../user-guide/redis-configuration.md).
67-
6851
#### PostgreSQL Upgrade Considerations
6952

7053
If there is a PostgreSQL major version upgrade, after the data directory on the PVC is migrated to the new version, the old PVC is kept by default.

docs/user-guide/advanced-configuration/assigning-eda-pods-to-specific-nodes.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
You can constrain the EDA pods created by the operator to run on a certain subset of nodes. `node_selector` and `tolerations` contrain the EDA pods to run only on the nodes that match the specified key/value pairs.
44

5-
Each component of EDA has its own `node_selector` and `tolerations` values. The supported components are `ui`, `api`, `default_worker`, `activation_worker`, `worker` and `database`.
5+
Each component of EDA has its own `node_selector` and `tolerations` values. The supported components are `ui`, `api`, `default_worker`, `activation_worker`, `worker`, `redis` and `database`.
66

77
| Name | Description | Type | Default |
88
|---|---|---|---|

docs/user-guide/advanced-configuration/deploying-a-specific-version.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ There are a few variables that are customizable for eda the image management.
1010
| image_web_version | Image version to pull | value of DEFAULT_EDA_UI_VERSION or main |
1111
| image_pull_policy | The pull policy to adopt | IfNotPresent |
1212
| image_pull_secrets | The pull secrets to use | None |
13+
| redis_image | Path of the image to pull | redis |
14+
| redis_image_version | Image version to pull | c9s |
1315
| postgres_image | Path of the image to pull | postgres |
1416
| postgres_image_version | Image version to pull | latest |
1517

Lines changed: 36 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -1,61 +1,48 @@
1-
### Redis Removal Notice
1+
### Redis Configuration
22

3-
> **Important:** Starting with this version of the EDA operator, Redis is **no longer deployed or supported**.
4-
> EDA now uses [dispatcherd](https://github.com/ansible/dispatcherd), a PostgreSQL `pg_notify`-based task queuing system, which eliminates the need for a separate Redis instance entirely.
3+
#### Redis Version
54

6-
#### Background
5+
The default Redis version for the version of EDA bundled with the latest version of the eda-server-operator is Redis 6.
76

8-
Previous versions of the EDA operator deployed a managed Redis instance (or accepted a user-provided one via `redis.redis_secret`) for task queuing through [RQ (Redis Queue)](https://python-rq.org/). With the introduction of dispatcherd, all task orchestration is now handled natively through PostgreSQL, which EDA already requires for its database.
7+
#### External Redis Service
98

10-
#### What Changed
9+
EDA can be configured to use an external redis cache by creating a secret which holds the configuration values for the external Redis instance.
1110

12-
| Before (Redis) | After (Dispatcherd) |
13-
|---------------------------------------------|--------------------------------------------------|
14-
| Managed Redis Deployment provisioned | No Redis resources created |
15-
| `spec.redis` and `spec.redis.redis_secret` | Removed from the CRD; ignored if still present |
16-
| `redis_image` / `redis_image_version` | Removed from the CRD |
17-
| `EDA_MQ_*` environment variables | Removed from all deployment templates |
18-
| RQ-based task queuing (`rqworker`) | Dispatcherd (`aap-eda-manage dispatcherd`) |
19-
| External Redis (BYO) supported | Not supported; use PostgreSQL |
11+
The secret should be formatted as follows:
2012

21-
#### Upgrading from a Previous Version
13+
```yaml
14+
---
15+
apiVersion: v1
16+
kind: Secret
17+
metadata:
18+
name: <resourcename>-redis-configuration
19+
namespace: <target namespace>
20+
stringData:
21+
host: <external ip or url resolvable by the cluster>
22+
port: <external port, this usually defaults to 6370>
23+
redis_tls: <true / false to enable TLS>
24+
database: <desired database name>
25+
cluster_endpoint: <optional - see Redis Cluster section>
26+
username: <username to connect as>
27+
password: <password to connect with>
28+
type: unmanaged
29+
type: Opaque
30+
```
2231

23-
When upgrading from an operator version that included Redis:
32+
The secret should be specified on the EDA customer resource using the following:
2433

25-
1. **No data migration is required.** Redis was used only for transient message queuing (with `emptyDir` storage). All durable task state has always been persisted in PostgreSQL.
34+
```yaml
35+
---
36+
spec:
37+
...
38+
redis:
39+
redis_secret: <name-of-your-secret>
40+
```
2641

27-
2. **Legacy Redis resources are cleaned up automatically.** The operator will delete any existing Redis Deployment, Service, and managed Secret (`<name>-redis-configuration`) during the upgrade reconciliation.
42+
#### Redis Cluster
2843

29-
3. **Remove `redis` from your EDA Custom Resource when convenient.** If your CR spec still contains a `redis` section (e.g. `redis.redis_secret`), the operator will **log a deprecation warning** and ignore the configuration entirely. The upgrade will proceed normally. You should remove the `redis:` block from your CR at your earliest convenience:
44+
The format of the cluster_endpoint field is:
3045

31-
```yaml
32-
# Before (deprecated — ignored by the operator)
33-
spec:
34-
redis:
35-
redis_secret: my-redis-secret
46+
"<host>:<port>[,<host>:<port>]*"
3647

37-
# After (recommended)
38-
spec:
39-
# redis section removed — no replacement needed
40-
```
41-
42-
4. **External (BYO) Redis is no longer used.** If you were providing your own Redis via a secret, you can safely decommission that Redis instance once the EDA operator upgrade is complete. No EDA component connects to Redis anymore.
43-
44-
#### Task Queuing Architecture
45-
46-
EDA's background task processing is now powered entirely by **dispatcherd**:
47-
48-
- **Message broker:** PostgreSQL [`pg_notify` / `LISTEN`](https://www.postgresql.org/docs/current/sql-notify.html) channels replace the Redis pub/sub layer.
49-
- **Task workers:** The `aap-eda-manage dispatcherd` management command replaces `aap-eda-manage rqworker`. A backward-compatible `rqworker` wrapper exists in eda-server that forwards to dispatcherd.
50-
- **Scheduler:** Periodic task scheduling is integrated into the dispatcherd workers; the separate scheduler pod has been removed.
51-
- **Health checks:** Dispatcherd exposes worker health checks through the EDA status API endpoint.
52-
53-
No additional configuration is needed — dispatcherd uses the same PostgreSQL database that EDA already requires, with connection details sourced from `database.database_secret`.
54-
55-
#### Q&A
56-
57-
**Q: Can I still use Redis with EDA?**
58-
A: No. The `spec.redis` CRD fields have been removed. If they are still present in your CR (e.g. from a previous version), the operator will ignore them and log a deprecation warning.
59-
60-
**Q: Do I need to change my PostgreSQL sizing?**
61-
A: In most deployments, no. Dispatcherd's use of `pg_notify` adds negligible overhead.
48+
This field is required if the external redis service is a cluster.

roles/eda/tasks/deploy_eda.yml

Lines changed: 0 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -94,30 +94,6 @@
9494
namespace: "{{ ansible_operator_meta.namespace }}"
9595
state: absent
9696

97-
- name: Remove legacy Redis deployment
98-
k8s:
99-
api_version: apps/v1
100-
kind: Deployment
101-
name: "{{ ansible_operator_meta.name }}-redis"
102-
namespace: "{{ ansible_operator_meta.namespace }}"
103-
state: absent
104-
105-
- name: Remove legacy Redis service
106-
k8s:
107-
api_version: v1
108-
kind: Service
109-
name: "{{ ansible_operator_meta.name }}-redis-svc"
110-
namespace: "{{ ansible_operator_meta.namespace }}"
111-
state: absent
112-
113-
- name: Remove legacy Redis secret
114-
k8s:
115-
api_version: v1
116-
kind: Secret
117-
name: "{{ ansible_operator_meta.name }}-redis-configuration"
118-
namespace: "{{ ansible_operator_meta.namespace }}"
119-
state: absent
120-
12197
- name: Check for API Pod
12298
k8s_info:
12399
kind: Pod

roles/eda/tasks/main.yml

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -4,21 +4,6 @@
44
- name: Combine default and custom vars for each component
55
include_tasks: combine_defaults.yml
66

7-
- name: Warn if user still references redis configuration
8-
ansible.builtin.debug:
9-
msg: >-
10-
[DEPRECATION WARNING] Redis configuration detected in the EDA custom
11-
resource spec but Redis is no longer used by EDA. The 'redis' section
12-
(including 'redis.redis_secret') will be ignored. EDA now uses
13-
dispatcherd (backed by PostgreSQL) for task queuing. Please remove
14-
the 'redis' section from your EDA custom resource spec at your
15-
earliest convenience. No data migration from Redis is required as
16-
task state is persisted in PostgreSQL.
17-
when:
18-
- redis is defined
19-
- redis is mapping
20-
- redis | length > 0
21-
227
- name: Configure cluster
238
include_role:
249
name: common

0 commit comments

Comments
 (0)