| AI2 AI Agent | `oop` | Natural language interface backed by Groq |
| Portal | `oop` | Next.js web frontend for the OOP platform |
@@ -44,6 +45,53 @@ ai2:
If the file is absent, `helm-deploy.sh` will warn and continue — AI2 deploys with an empty key.
PostgreSQL needs no entries: its passwords are generated on first install and kept in the
`postgres-credentials` Secret across upgrades. To pin a value instead, add it to the same file:
```yaml
postgresql:
auth:
postgresPassword:"<postgres-superuser-password>"
```
Read a generated value back with, for example:
```bash
kubectl -n oop get secret postgres-credentials -ojsonpath='{.data.postgres-password}' | base64-d
```
---
## PostgreSQL
A single shared instance (`charts/postgresql`) with one database and role per component. Not a replacement for a managed database or an operator such as CloudNativePG.
Pick volume sizes and storage classes (`postgresql.persistence`, `postgresql.backup.persistence`)
before the first install: they come from StatefulSet claim templates, which Kubernetes does not change
in place.
Give a component a database: add an entry to `postgresql.databases`, read its password from
`postgres-credentials` → `<user>-password`, and let its pods through the NetworkPolicy by labelling
them `postgres-client: "true"` or adding a selector to `postgresql.networkPolicy.allowFrom`.
Backups are off by default. Turn them on with `postgresql.backup.enabled: true` (schedule,
retention and volume size sit next to it), then take a backup now, and restore one database from it: