Commit 1b7ec6cc authored by Dimitrios Gogos's avatar Dimitrios Gogos
Browse files

Merge branch 'feat/add-ai2-helm-chart' into 'main'

feat: add helm chart for AI2 components

See merge request !4
parents 8e3657c7 03c07854
Loading
Loading
Loading
Loading

.gitignore

0 → 100644
+2 −0
Original line number Diff line number Diff line
# Secret values files — never commit real secrets
environments/**/secrets.values.yaml
+23 −4
Original line number Diff line number Diff line
@@ -12,8 +12,10 @@ Intended for local development, integration testing, and demos. **Not for produc
| SRM (Service Resource Manager) | `oop` | Manages application artefacts and lifecycle |
| Artifact Manager | `oop` | Stores and serves artefacts |
| OEG (Open Exposure Gateway) | `oop` | Northbound API entry point for tenants |
| Federation Manager | `federation-manager` | Inter-operator federation workflows |
| Keycloak | `federation-manager` | OAuth2/OIDC authentication for FM |
| Federation Manager | `oop` | Inter-operator federation workflows |
| Keycloak | `oop` | OAuth2/OIDC authentication for FM |
| AI2 MCP | `oop` | MCP server exposing CAMARA-compliant tools |
| AI2 AI Agent | `oop` | Natural language interface backed by Groq |

---

@@ -28,6 +30,21 @@ Intended for local development, integration testing, and demos. **Not for produc

---

## Secrets

Some components require secrets that must not be committed to git.
Create `environments/kind/secrets.values.yaml` (gitignored) before deploying:

```yaml
ai2:
  secrets:
    groqApiKey: "<your-groq-api-key>"
```

If the file is absent, `helm-deploy.sh` will warn and continue — AI2 deploys with an empty key.

---

## Deploy on kind (one command)

```bash
@@ -60,6 +77,8 @@ The scripts can also be run individually from any directory.
| Keycloak | http://localhost:30081 |
| Keycloak Admin | http://localhost:30081/admin — `admin / admin` |
| Federation Manager | http://localhost:30989 |
| AI2 MCP | http://localhost:32004 |
| AI2 AI Agent | http://localhost:32013 |

---

@@ -95,8 +114,8 @@ kind delete cluster --name oop-cluster
| File | Purpose |
|---|---|
| `oop-platform-chart/values.yaml` | Base defaults for all components |
| `environments/kind/values.yaml` | kind overrides for `oop-platform` (NodePorts, hostPath, storageClass) |
| `environments/kind/values.fm.yaml` | kind overrides for `federation-manager` subchart |
| `environments/kind/values.yaml` | kind overrides (NodePorts, hostPath, storageClass, pullPolicy) |
| `environments/kind/secrets.values.yaml` | **Gitignored.** Per-environment secrets (see [Secrets](#secrets)) |
| `environments/kind/cluster.yaml` | kind cluster definition (port mappings, host mounts) |

---
+9 −1
Original line number Diff line number Diff line
@@ -18,7 +18,7 @@ nodes:
    hostPort: 32263
    protocol: TCP
  
  # Federation Services (federation-manager namespace)
  # Federation Services (oop namespace)
  - containerPort: 30081    # Keycloak
    hostPort: 30081
    protocol: TCP
@@ -26,6 +26,14 @@ nodes:
    hostPort: 30989
    protocol: TCP

  # AI2 Services (oop namespace)
  - containerPort: 32004    # AI2 MCP
    hostPort: 32004
    protocol: TCP
  - containerPort: 32013    # AI2 AI Agent
    hostPort: 32013
    protocol: TCP
  
  # Storage volumes for MongoDB persistence
  extraMounts:
  - hostPath: /tmp/kind-oop/mongodb_srm
+19 −2
Original line number Diff line number Diff line
@@ -24,8 +24,8 @@ srm:
    image:
      pullPolicy: IfNotPresent
    env:
      networkAdapterName: open5gs
      networkAdapterBaseUrl: http://open5gs-webui:3000
      networkAdapterName: "oai"
      networkAdapterBaseUrl: ""
      scsAsId: ""
  artifactManager:
    service:
@@ -79,3 +79,20 @@ federationManager:
      nodePort: 30081
    image:
      pullPolicy: IfNotPresent

ai2:
  images:
    mcp:
      pullPolicy: IfNotPresent
    aiAgent:
      pullPolicy: IfNotPresent
  service:
    mcp:
      type: NodePort
      nodePort: 32004
    aiAgent:
      type: NodePort
      nodePort: 32013
  secrets:
    # Required for AI2 to function. Override via environments/kind/secrets.values.yaml — do not set here.
    groqApiKey: ""
 No newline at end of file
+7 −1
Original line number Diff line number Diff line
apiVersion: v2
name: oop-platform
description: Open Operator Platform - Complete platform deployment (SRM, OEG, and Federation Manager)
description: Open Operator Platform - Complete platform deployment (SRM, OEG, Federation Manager and AI2)
type: application
version: 1.0.0

@@ -12,6 +12,9 @@ keywords:
  - srm
  - oeg
  - federation-manager
  - ai2
  - mcp
  - ai-agent

maintainers:
  - name: Open Operator Platform Team
@@ -33,3 +36,6 @@ dependencies:
  - name: federation-manager
    version: "1.0.0"
    condition: federationManager.enabled
  - name: ai2
    version: "1.0.0"
    condition: ai2.enabled
 No newline at end of file
Loading