Installation Guide
This guide provides quickstart instructions for deploying the MaaS Platform infrastructure.
Note
For more detailed instructions, please refer to Installation under the Install Guide.
Prerequisites
- OpenShift cluster (4.19.9+) with kubectl/oc access
- Recommended 16 vCPUs, 32GB RAM, 100GB storage
- Cluster admin or equivalent permissions
- Required tools:
oc(OpenShift CLI)kubectljqkustomize(v5.7.0+)gsed(GNU sed) - macOS only:brew install gnu-sed
Quick Start
Automated OpenShift Deployment
For OpenShift clusters, use the unified automated deployment script. Choose your deployment method:
Deploy MaaS through the RHOAI or ODH operator. This is the recommended approach for production deployments.
export MAAS_REF="v0.1.1" # Use the latest release tag, or "main" for development
# Deploy using RHOAI operator (default)
./scripts/deploy.sh
# Or deploy using ODH operator
./scripts/deploy.sh --operator-type odh
Using Release Tags
The MAAS_REF environment variable should reference a release tag (e.g., v1.0.0) for production deployments.
The release workflow automatically updates all MAAS_REF="v0.1.1" references in documentation and scripts
to use the new release tag when a release is created. Use "main" only for development/testing.
Development Use Only
Kustomize deployment is intended for development and testing purposes only. For production deployments, use the Operator install tab above instead.
Prerequisites: Run hack scripts first
Before deploying with kustomize, you must run the two hack scripts to install cert-manager, LeaderWorkerSet (LWS), and the ODH operator. Run them in order:
- cert-manager and LWS:
./.github/hack/install-cert-manager-and-lws.sh - ODH operator:
./.github/hack/install-odh.sh
export MAAS_REF="v0.1.1" # Use the latest release tag, or "main" for development
./scripts/deploy.sh --deployment-mode kustomize
Using Release Tags
The MAAS_REF environment variable should reference a release tag (e.g., v1.0.0) for production deployments.
The release workflow automatically updates all MAAS_REF="v0.1.1" references in documentation and scripts
to use the new release tag when a release is created. Use "main" only for development/testing.
Verify Deployment
The deployment script creates the following core resources:
- Gateway:
maas-default-gatewayinopenshift-ingressnamespace - HTTPRoutes:
maas-api-routein the application namespace (deployed by Tenant reconciler) - Policies:
maas-api-auth-policy(deployed by Tenant reconciler) - Protects MaaS APIgateway-default-auth(deployed by Tenant reconciler) - Denies unauthenticated trafficgateway-default-deny(deployed by Tenant reconciler) - Denies unsubscribed traffic- MaaS API: Deployment and service in the application namespace (deployed by Tenant reconciler)
- Tenant CR:
default-tenantinmodels-as-a-servicenamespace (self-bootstrapped by maas-controller) - Operators: Cert-manager, LWS, Red Hat Connectivity Link and Red Hat OpenShift AI.
Check deployment status:
# Check all namespaces
kubectl get ns | grep -E "kuadrant-system|kserve|opendatahub|redhat-ods-applications|llm"
# Check Gateway status
kubectl get gateway -n openshift-ingress maas-default-gateway
# Check policies
kubectl get authpolicy -A
kubectl get tokenratelimitpolicy -A
kubectl get ratelimitpolicy -A
# Check MaaS API (deployed by Tenant reconciler in the application namespace)
# APP_NS is "opendatahub" for ODH or "redhat-ods-applications" for RHOAI
kubectl get pods -n ${APP_NS} -l app.kubernetes.io/name=maas-api
kubectl get svc -n ${APP_NS} maas-api
# Check Kuadrant operators
kubectl get pods -n kuadrant-system
# Check Tenant CR
kubectl get tenant default-tenant -n models-as-a-service
# Check RHOAI/KServe
kubectl get pods -n kserve
kubectl get pods -n ${APP_NS}
For detailed validation and troubleshooting, see the Validation Guide.
Next Steps
After deployment, proceed to Model Setup (On Cluster) to deploy sample models, then Validation to test and verify your deployment.