Commit 045dfa27 authored by Kostas Chartsias's avatar Kostas Chartsias
Browse files

build: updated helm charts for redis

parent ab075fb4
Loading
Loading
Loading
Loading
+22 −0
Original line number Diff line number Diff line
@@ -20,6 +20,12 @@ The ai-agent waits for the MCP server to be healthy before starting (via initCon

## Install

Fetch the Bitnami Redis dependency before installing:

```bash
helm dependency update ./deployment/helm/ai2
```

```bash
helm install ai2 ./helm/ai2 \
  --namespace oop \
@@ -53,6 +59,12 @@ helm uninstall ai2 --namespace oop
| `service.mcp.type`              | Kubernetes service type for MCP  | `NodePort`               |
| `service.mcp.nodePort`          | NodePort for MCP                 | `32004`                  |
| `service.aiAgent.nodePort`      | NodePort for ai-agent            | `32013`                  |
| `redis.enabled`                 | Deploy Redis for agent memory    | `true`                   |
| `redis.master.service.ports.redis` | Bitnami Redis service port     | `6379`                   |
| `redis.memory.database`         | Redis database index for AI memory | `0`                    |
| `config.aiAgent.memoryWindowTurns` | Recent turns retained in memory | `10`                    |
| `config.aiAgent.memoryTtlSeconds` | Session memory TTL in seconds   | `3600`                  |
| `config.aiAgent.memoryKeyPrefix` | Redis key prefix                 | `ai_agent:session`       |
| `images.mcp.tag`                | MCP image tag                    | `latest`                 |
| `images.aiAgent.tag`            | AI Agent image tag               | `latest`                 |

@@ -80,6 +92,16 @@ helm install ai2 ./helm/ai2 \
  --set images.aiAgent.pullPolicy=IfNotPresent
```

## Redis Memory

Redis is deployed through the Bitnami Redis Helm chart dependency as an in-cluster service and is used by the AI agent for optional short-term session memory. The generated agent value is:

```bash
REDIS_URL=redis://<redis-service>:6379/0
```

This mirrors the Docker Compose Redis container port `6379`; the chart disables Redis auth and persistence by default to match the local cache/session-store behavior. The Compose host mapping `6385:6379` is not represented as a Kubernetes NodePort because Kubernetes NodePorts must normally be in the cluster NodePort range, commonly `30000-32767`.

## Test the Deployment

```bash
+6 −0
Original line number Diff line number Diff line
dependencies:
- name: redis
  repository: oci://registry-1.docker.io/bitnamicharts
  version: 25.5.3
digest: sha256:b680f268339ce6899da9e632b2839d21e8391886211d57f7bcc735c73ffa6e1c
generated: "2026-06-04T11:48:21.792172108+03:00"
+6 −0
Original line number Diff line number Diff line
@@ -12,3 +12,9 @@ keywords:
home: https://labs.etsi.org/rep/oop/code/ai2
maintainers:
  - name: OOP Team

dependencies:
  - name: redis
    version: 25.5.3
    repository: oci://registry-1.docker.io/bitnamicharts
    condition: redis.enabled
+8 −0
Original line number Diff line number Diff line
@@ -48,3 +48,11 @@ app.kubernetes.io/instance: {{ .Release.Name }}
{{- define "ai2.aiAgentServiceName" -}}
{{- include "ai2.fullname" . }}-ai-agent
{{- end }}

{{- define "ai2.redisServiceName" -}}
{{- if .Values.redis.fullnameOverride -}}
{{- printf "%s-master" .Values.redis.fullnameOverride -}}
{{- else -}}
{{- printf "%s-redis-master" .Release.Name -}}
{{- end -}}
{{- end }}
+33 −0
Original line number Diff line number Diff line
@@ -30,6 +30,19 @@ spec:
              done
              echo ""
              echo "MCP is ready."
        {{- if .Values.redis.enabled }}
        - name: wait-for-redis
          image: "{{ .Values.redis.image.registry }}/{{ .Values.redis.image.repository }}:{{ .Values.redis.image.tag }}"
          imagePullPolicy: {{ .Values.redis.image.pullPolicy }}
          command: ['sh', '-c']
          args:
            - |
              until redis-cli -h {{ include "ai2.redisServiceName" . }} -p {{ .Values.redis.master.service.ports.redis }} ping | grep -q PONG; do
                echo "Waiting for Redis to be ready..."
                sleep 3
              done
              echo "Redis is ready."
        {{- end }}
      containers:
        - name: ai-agent
          image: "{{ .Values.images.aiAgent.repository }}:{{ .Values.images.aiAgent.tag }}"
@@ -54,6 +67,26 @@ spec:
                configMapKeyRef:
                  name: {{ include "ai2.configMapName" . }}
                  key: GROQ_MODEL_NAME
            - name: REDIS_URL
              valueFrom:
                configMapKeyRef:
                  name: {{ include "ai2.configMapName" . }}
                  key: REDIS_URL
            - name: MEMORY_WINDOW_TURNS
              valueFrom:
                configMapKeyRef:
                  name: {{ include "ai2.configMapName" . }}
                  key: MEMORY_WINDOW_TURNS
            - name: MEMORY_TTL_SECONDS
              valueFrom:
                configMapKeyRef:
                  name: {{ include "ai2.configMapName" . }}
                  key: MEMORY_TTL_SECONDS
            - name: MEMORY_KEY_PREFIX
              valueFrom:
                configMapKeyRef:
                  name: {{ include "ai2.configMapName" . }}
                  key: MEMORY_KEY_PREFIX
            - name: GROQ_API_KEY
              valueFrom:
                secretKeyRef:
Loading