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 README.md +23 −4 Original line number Diff line number Diff line Loading @@ -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 | --- Loading @@ -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 Loading Loading @@ -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 | --- Loading Loading @@ -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) | --- Loading environments/kind/cluster.yaml +9 −1 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -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 Loading environments/kind/values.yaml +19 −2 Original line number Diff line number Diff line Loading @@ -24,8 +24,8 @@ srm: image: pullPolicy: IfNotPresent env: networkAdapterName: open5gs networkAdapterBaseUrl: http://open5gs-webui:3000 networkAdapterName: "oai" networkAdapterBaseUrl: "" scsAsId: "" artifactManager: service: Loading Loading @@ -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 oop-platform-chart/Chart.yaml +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 Loading @@ -12,6 +12,9 @@ keywords: - srm - oeg - federation-manager - ai2 - mcp - ai-agent maintainers: - name: Open Operator Platform Team Loading @@ -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
.gitignore 0 → 100644 +2 −0 Original line number Diff line number Diff line # Secret values files — never commit real secrets environments/**/secrets.values.yaml
README.md +23 −4 Original line number Diff line number Diff line Loading @@ -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 | --- Loading @@ -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 Loading Loading @@ -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 | --- Loading Loading @@ -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) | --- Loading
environments/kind/cluster.yaml +9 −1 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -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 Loading
environments/kind/values.yaml +19 −2 Original line number Diff line number Diff line Loading @@ -24,8 +24,8 @@ srm: image: pullPolicy: IfNotPresent env: networkAdapterName: open5gs networkAdapterBaseUrl: http://open5gs-webui:3000 networkAdapterName: "oai" networkAdapterBaseUrl: "" scsAsId: "" artifactManager: service: Loading Loading @@ -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
oop-platform-chart/Chart.yaml +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 Loading @@ -12,6 +12,9 @@ keywords: - srm - oeg - federation-manager - ai2 - mcp - ai-agent maintainers: - name: Open Operator Platform Team Loading @@ -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