@@ -7,181 +7,29 @@ Our goal is to create a comprehensive platform for **Models as a Service** with
77
88## 📦 Technology Stack
99
10- - ** Kuadrant/Authorino/Limitador ** : API gateway and policy engine
10+ - ** OpenShift ** : Kubernetes platform
1111- ** Gateway API** : Traffic routing and management (OpenShift native implementation)
12- - ** OpenShift Service Mesh** : Automatically provisioned when Gateway API is enabled (includes Istio)
12+ - ** Kuadrant/Authorino/Limitador** : API gateway and policy engine
13+ - ** KServe** : Model serving platform
1314- ** React** : Frontend framework
1415- ** Go** : Backend frameworks
1516
16- ## 🚀 Features
17-
18- - ** 🎯 Policy Management** : Drag-and-drop interface for creating and managing authentication and rate-limiting policies
19- - ** 📊 Real-time Metrics** : Live dashboard showing policy enforcement decisions with filtering and analytics
20- - ** 🧪 Request Simulation** : Test policies before deployment with comprehensive simulation tools
21- - ** 🔐 Authentication** : API key-based auth with team-based access control
22- - ** ⚡ Rate Limiting** : Configurable request quotas with time-based restrictions
23- - ** 📈 Observability** : Prometheus metrics and real-time monitoring
24- - ** 🌐 Domain Routing** : Model-specific subdomains for clean API organization
25-
26- ## 🏗️ Architecture
27-
28- ### Backend Components
29- - ** API Gateway** : OpenShift Gateway API implementation with Envoy proxy and Kuadrant integration
30- - ** Policy Engine** : Real-time policy enforcement through Kuadrant (Authorino + Limitador)
31- - ** Model Serving** : KServe-based AI model deployment with vLLM runtime
32- - ** Model Discovery** : Automatic model listing model resources
33- - ** Key Manager** : API key management and authentication
34- - ** Metrics Collection** : Live data from Kuadrant components
35-
36- ### Frontend Components
37- - ** Policy Manager** : Create, edit, and manage policies with intuitive drag-and-drop interface
38- - ** Live Metrics Dashboard** : Real-time view of policy enforcement with filtering capabilities
39- - ** Request Simulator** : Test policies against simulated traffic patterns
40-
4117## 📋 Prerequisites
4218
43- - ** Kubernetes cluster** (1.25+) with kubectl access
44- - ** Node.js** (18+) and npm
45- - ** Docker** (for local development)
19+ - ** Openshift cluster** (4.19.9+) with kubectl/oc access
4620
4721## 🚀 Quick Start
4822
4923### Deploy Infrastructure
5024
5125See the comprehensive [ Deployment Guide] ( deployment/README.md ) for detailed instructions.
5226
53- Quick deployment for OpenShift:
54- ``` bash
55- export CLUSTER_DOMAIN=" apps.your-openshift-cluster.com"
56- kustomize build deployment/overlays/openshift | envsubst | kubectl apply -f -
57- ```
58-
59- Quick deployment for Kubernetes:
60- ``` bash
61- export CLUSTER_DOMAIN=" your-kubernetes-domain.com"
62- kustomize build deployment/overlays/kubernetes | envsubst | kubectl apply -f -
63- ```
64-
65- ### Start Development Environment
66-
67- After deploying the infrastructure:
68-
69- #### Option A: One-Command Start (Recommended)
70- ``` bash
71- # From the repository root
72- ./start-dev.sh
73- ```
74-
75- This will:
76- - Check prerequisites (infrastructure deployment)
77- - Start backend API server on http://localhost:3001
78- - Start frontend UI on http://localhost:3000
79- - Provide monitoring and logging
80-
81- #### Option B: Manual Start
82- ``` bash
83- # Terminal 1: Start Backend
84- ./start-backend.sh
85-
86- # Terminal 2: Start Frontend
87- ./start-frontend.sh
88- ```
89-
90- ## Access the Platform
91-
92- - ** Frontend UI** : http://localhost:3000
93- - ** Backend API** : http://localhost:3001
94- - ** API Health** : http://localhost:3001/health
95- - ** Live Metrics** : http://localhost:3001/api/v1/metrics/live-requests
96-
97- ## 🖥️ Using the Platform
98-
99- ### Policy Manager
100- 1 . Navigate to ** Policy Manager** in the sidebar
101- 2 . Click ** Create Policy** to open the policy builder
102- 3 . Use drag-and-drop to add teams and models
103- 4 . Configure rate limits and time restrictions
104- 5 . Save to apply policies to Kuadrant
105-
106- ### Live Metrics Dashboard
107- 1 . Go to ** Live Metrics** to see real-time enforcement
108- 2 . Filter by decision type (Accept/Reject) or policy type
109- 3 . View detailed policy enforcement reasons
110- 4 . Monitor request patterns and policy effectiveness
111-
112- ### Request Simulator
113- 1 . Access ** Request Simulator** to test policies
114- 2 . Select team, model, and configure request parameters
115- 3 . Run simulations to see how policies would handle traffic
116- 4 . Validate policy configurations before deployment
117-
118- ## 🔧 Development
119-
120- ### Project Structure
121-
122- | Directory | Description | Documentation |
123- | -----------| -------------| ---------------|
124- | ` apps/frontend/ ` | React frontend with Material-UI | [ Frontend Guide] ( apps/frontend/README.md ) |
125- | ` apps/backend/ ` | Node.js/Express API server | [ Backend Guide] ( apps/backend/README.md ) |
126- | ` maas-api/ ` | Go API for key management | [ MaaS API Guide] ( maas-api/README.md ) |
127- | ` deployment/ ` | Kubernetes/OpenShift deployments | [ Deployment Guide] ( deployment/README.md ) |
128- | ` scripts/ ` | Automation and utility scripts | - |
129-
130- ### Available Scripts
131-
132- From the repository root:
133- - ` ./start-dev.sh ` - Start full development environment
134- - ` ./stop-dev.sh ` - Stop all development services
135- - ` ./start-backend.sh ` - Start backend only
136- - ` ./start-frontend.sh ` - Start frontend only
137- - ` ./scripts/test-gateway.sh ` - Test gateway endpoints
138-
139- ### Backend API Endpoints
140-
141- The backend provides these key endpoints:
142- - ` GET /api/v1/models ` - List available models
143- - ` GET /api/v1/policies ` - Retrieve current policies
144- - ` POST /api/v1/policies ` - Create/update policies
145- - ` GET /api/v1/metrics/live-requests ` - Live metrics stream
146- - ` POST /api/v1/simulator/run ` - Run policy simulation
147-
148- ### Frontend Components
149-
150- Key React components:
151- - ` PolicyBuilder ` - Drag-and-drop policy editor
152- - ` MetricsDashboard ` - Real-time metrics visualization
153- - ` RequestSimulator ` - Policy testing interface
154- - ` TokenManagement ` - API key management
155-
156- ## 🧪 Testing
157-
158- ### Test Infrastructure
159- ``` bash
160- # Use the test script
161- ./scripts/test-gateway.sh
162-
163- # Or manually test endpoints
164- curl http://localhost:3001/health
165- ```
166-
167- ### Run Frontend Tests
168- ``` bash
169- cd apps/frontend
170- npm test
171- ```
172-
173- ### Run Backend Tests
174- ``` bash
175- cd apps/backend
176- npm test
177- ```
178-
17927## 📚 Documentation
18028
18129- [ Deployment Guide] ( deployment/README.md ) - Complete deployment instructions
182- - [ Platform-Specific Overlays ] ( deployment/overlays/README .md) - OpenShift vs Kubernetes
30+ - [ Local Deployment ] ( docs/LOCAL_DEPLOYMENT .md) - Deployment guide for local development
18331- [ MaaS API Documentation] ( maas-api/README.md ) - Go API for key management
184- - [ OAuth Setup Guide] ( OAUTH_SETUP.md ) - Configure OAuth authentication
32+ - [ OAuth Setup Guide] ( docs/ OAUTH_SETUP.md) - Configure OAuth authentication
18533
18634## 🤝 Contributing
18735
@@ -195,14 +43,6 @@ We welcome contributions! Please:
19543
19644This project is licensed under the Apache 2.0 License.
19745
198- ## 🙏 Acknowledgments
199-
200- Built with:
201- - [ Kuadrant] ( https://kuadrant.io/ ) for API management
202- - [ KServe] ( https://kserve.github.io/ ) for model serving
203- - [ OpenShift] ( https://www.openshift.com/ ) with Service Mesh for infrastructure
204- - [ React] ( https://react.dev/ ) and [ Material-UI] ( https://mui.com/ )
205-
20646## 📞 Support
20747
20848For questions or issues:
0 commit comments