Skip to content

opendatahub-io/models-as-a-service

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

364 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

ODH - Models as a Service with Policy Management

Our goal is to create a comprehensive platform for Models as a Service with real-time policy management.

Important

This project is a work in progress and is not yet ready for production.

πŸ“¦ Technology Stack

  • OpenShift: Kubernetes platform
  • Gateway API: Traffic routing and management (OpenShift native implementation)
  • Kuadrant/Authorino/Limitador: API gateway and policy engine
  • KServe: Model serving platform
  • React: Frontend framework
  • Go: Backend frameworks

πŸ“‹ Prerequisites

  • Openshift cluster (4.19.9+) with kubectl/oc access
  • PostgreSQL database (for production ODH/RHOAI deployments)

!!! warning "Database Required for Production" MaaS requires a PostgreSQL database for API key management. For production ODH/RHOAI deployments, you must create a Secret with the database connection URL before enabling modelsAsService.

See [Database Prerequisites](docs/content/install/prerequisites.md#database-prerequisite) for details.

Note: The `scripts/deploy.sh` script creates a development PostgreSQL instance automatically.

πŸš€ Quick Start

Deploy Infrastructure

Use the unified deployment script for all deployment scenarios:

# Deploy RHOAI (default)
./scripts/deploy.sh

# Deploy ODH
./scripts/deploy.sh --operator-type odh

# Deploy via Kustomize
./scripts/deploy.sh --deployment-mode kustomize

For detailed instructions, see the Deployment Guide or the Deployment Options section below.

πŸ› οΈ Deployment Options

Basic Deployment

./scripts/deploy.sh [OPTIONS]

Key Options

Flag Values Default Description
--deployment-mode operator, kustomize operator Deployment method
--operator-type rhoai, odh rhoai Which operator to install
--policy-engine rhcl, kuadrant auto Gateway policy engine (rhcl for operators, kuadrant for kustomize)
--enable-tls-backend flag enabled TLS for Authorino ↔ MaaS API
--skip-certmanager flag auto-detect Skip cert-manager installation
--skip-lws flag auto-detect Skip LeaderWorkerSet installation
--namespace string auto Target namespace
--timeout seconds 300 Operation timeout
--verbose flag false Enable debug logging
--dry-run flag false Show plan without executing
--help flag - Display full help

Advanced Options (PR Testing)

Flag Description Example
--operator-catalog Custom operator catalog/index image quay.io/opendatahub/catalog:pr-456
--operator-image Custom operator image (patches CSV) quay.io/opendatahub/operator:pr-456
--channel Operator channel override fast, fast-3

Environment Variables

Variable Description Example
MAAS_API_IMAGE Custom MaaS API container image (works in both operator and kustomize modes) quay.io/user/maas-api:pr-123
OPERATOR_CATALOG Custom operator catalog quay.io/opendatahub/catalog:pr-456
OPERATOR_IMAGE Custom operator image quay.io/opendatahub/operator:pr-456
OPERATOR_TYPE Operator type (rhoai/odh) odh
POLICY_ENGINE Policy engine (rhcl/kuadrant) kuadrant
LOG_LEVEL Logging verbosity DEBUG, INFO, WARN, ERROR

Note: TLS backend is enabled by default. Use --disable-tls-backend to disable.

Deployment Examples

Standard Deployments

# Deploy RHOAI
./scripts/deploy.sh --operator-type rhoai

# Deploy ODH
./scripts/deploy.sh --operator-type odh

Testing PRs

# Test MaaS API PR #123
MAAS_API_IMAGE=quay.io/myuser/maas-api:pr-123 \
  ./scripts/deploy.sh --operator-type odh

# Test ODH operator PR #456 with custom manifests
./scripts/deploy.sh \
  --operator-type odh \
  --operator-catalog quay.io/opendatahub/opendatahub-operator-catalog:pr-456 \
  --operator-image quay.io/opendatahub/opendatahub-operator:pr-456

Minimal Deployments

# Skip optional operators (if already installed)
./scripts/deploy.sh --skip-certmanager --skip-lws

# Deploy without TLS backend (HTTP tier lookup)
./scripts/deploy.sh --disable-tls-backend

πŸ“š Documentation

Online Documentation: https://opendatahub-io.github.io/models-as-a-service/

🀝 Contributing

We welcome contributions! Please:

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Submit a pull request

πŸ“ License

This project is licensed under the Apache 2.0 License.

πŸ“ž Support

For questions or issues:

Packages

 
 
 

Contributors