You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat: add MaaS (Models as a Service) Helm chart and integration (#61)
* feat: add MaaS (Models as a Service) Helm chart and integration
Add charts/maas — a Helm chart for deploying the MaaS platform on xKS,
providing API key management, tiered subscriptions, and authenticated
model serving via Kuadrant/RHCL gateway policies.
Components:
- maas-controller: watches MaaSSubscription/MaaSAuthPolicy CRs,
auto-generates per-model AuthPolicy and TokenRateLimitPolicy
- maas-api: REST API for API keys, subscriptions, model discovery
- PostgreSQL: persistent storage (PVC-backed by default)
- Gateway + HTTPRoute: Istio-based ingress for /v1/models and /maas-api
- AuthPolicy: API key callback + optional Azure AD JWT authentication
- RateLimitPolicy: configurable request-based rate limiting
- 4 CRDs: ExternalModel, MaaSAuthPolicy, MaaSModelRef, MaaSSubscription
Security:
- No anonymous access — API key or Azure AD JWT required
- Scoped RBAC (namespace Role for secrets, ClusterRole read-only)
- PostgreSQL credentials auto-generated and persisted in Secrets
- Azure AD tenantId/clientId validated at template render time
- NetworkPolicy allows only Authorino, Istio gateway, and sidecar traffic
- Container security contexts with dropped capabilities
Integration:
- Helmfile orchestration with presync (CRD apply, dependency checks)
and postsync (rollout validation, gateway SA patching) hooks
- MAAS=true requires RHCL=true (Makefile guard)
- Kuadrant CR readiness check before deploy
- make deploy-all RHCL=true MAAS=true for full stack
Made-with: Cursor
* fix: MaaS chart fixes for xKS deployment
- Add --force-conflicts to CRD server-side apply to fix ownership
conflicts on redeployment
- Fix maas-api AuthPolicy: replace broken api-key callback with
anonymous auth when Azure AD is disabled (per-model auth is handled
by maas-controller-generated AuthPolicies)
- Add fsGroup: 26 to PostgreSQL pod security context for file
permission issues on xKS
- Add demo Makefile targets (demo-setup, demo-run, demo-cleanup)
Made-with: Cursor
* fix: MaaS TLS + HTTPS gateway + NetworkPolicy alignment
- Enable TLS for maas-api via cert-manager (opendatahub-ca-issuer)
- Add maas-api certificate.yaml and destination-rule.yaml templates
- Fix maas-api deployment env vars (TLS_CERT/TLS_KEY, TLS_SELF_SIGNED=false)
- Enable HTTPS listener on gateway (port 443) with gateway-certificate.yaml
- Fix NetworkPolicy to use port 8443 when TLS is enabled (was hardcoded 8080)
- Fix maas-api-auth policy headers for anonymous auth (X-MaaS-Group/Username)
- Document existingSecret path for PostgreSQL in secret.yaml
- Extend setup-maas-tls.sh: Authorino CA trust + gateway CA bundle mount
Made-with: Cursor
0 commit comments