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
<h2id="1-what-is-the-maas-controller">1. What Is the MaaS Controller?</h2>
1580
1580
<p>The <strong>MaaS Controller</strong> is a Kubernetes controller that provides a <strong>subscription-style control plane</strong> for Models-as-a-Service. It lets platform operators define:</p>
1581
1581
<ul>
1582
-
<li><strong>Which models</strong> are exposed through MaaS (via <strong>MaaSModel</strong>).</li>
1582
+
<li><strong>Which models</strong> are exposed through MaaS (via <strong>MaaSModelRef</strong>).</li>
1583
1583
<li><strong>Who can access</strong> those models (via <strong>MaaSAuthPolicy</strong>).</li>
1584
1584
<li><strong>Per-user/per-group token rate limits</strong> for those models (via <strong>MaaSSubscription</strong>).</li>
1585
1585
</ul>
@@ -1588,13 +1588,13 @@ <h2 id="1-what-is-the-maas-controller">1. What Is the MaaS Controller?</h2>
<p><strong>Summary:</strong> You declare intent with MaaS CRs; the controller turns that into Gateway/Kuadrant resources that attach to the same HTTPRoute and backend (e.g. KServe LLMInferenceService).</p>
1624
-
<p>The <strong>MaaS API</strong> GET /v1/models endpoint uses MaaSModel CRs as its primary source: it lists them in the API namespace, then <strong>validates access</strong> by probing each model’s <code>/v1/models</code> endpoint with the client’s <strong>Authorization header</strong> (passed through as-is). Only models that return 2xx or 405 are included. So the catalogue returned to the client is the set of MaaSModel objects the controller reconciles, filtered to those the client can actually access. No token exchange is performed; the header is forwarded as-is. (Once minting is in place, this may be revisited.)</p>
1624
+
<p>The <strong>MaaS API</strong> GET /v1/models endpoint uses MaaSModelRef CRs as its primary source: it lists them in the API namespace, then <strong>validates access</strong> by probing each model’s <code>/v1/models</code> endpoint with the client’s <strong>Authorization header</strong> (passed through as-is). Only models that return 2xx or 405 are included. So the catalogue returned to the client is the set of MaaSModelRef objects the controller reconciles, filtered to those the client can actually access. No token exchange is performed; the header is forwarded as-is. (Once minting is in place, this may be revisited.)</p>
<li><strong>MaaSModel</strong>: <code>spec.modelRef</code> = llmisvc or ExternalModel (name, namespace).</li>
1751
+
<li><strong>MaaSModelRef</strong>: <code>spec.modelRef</code> = llmisvc or ExternalModel (name, namespace).</li>
1752
1752
<li><strong>MaaSAuthPolicy</strong>: <code>spec.modelRefs</code> (list of model names), <code>spec.subjects</code> (groups, users).</li>
1753
1753
<li><strong>MaaSSubscription</strong>: <code>spec.owner</code> (groups, users), <code>spec.modelRefs</code> (model name + token rate limits per model).</li>
1754
1754
</ul>
@@ -1771,7 +1771,7 @@ <h2 id="8-deployment-and-prerequisites">8. Deployment and Prerequisites</h2>
1771
1771
Deploy --> Examples</code></pre>
1772
1772
<ul>
1773
1773
<li><strong>Namespace</strong>: Controller and default MaaS CRs live in <strong>opendatahub</strong> (configurable).</li>
1774
-
<li><strong>Install</strong>: <code>./scripts/deploy.sh</code> installs the full stack including the controller. Optionally run <code>./scripts/install-examples.sh</code> for sample MaaSModel, MaaSAuthPolicy, and MaaSSubscription.</li>
1774
+
<li><strong>Install</strong>: <code>./scripts/deploy.sh</code> installs the full stack including the controller. Optionally run <code>./scripts/install-examples.sh</code> for sample MaaSModelRef, MaaSAuthPolicy, and MaaSSubscription.</li>
0 commit comments