Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions charts/modeldeployment/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
Helm chart that deploys a complete set of GAIE (Gateway API Inference
Extension) artifacts for a single model:

- `kaito.sh/v1alpha1` `InferenceSet`
- `kaito.sh/v1beta1` `InferenceSet`
- `inference.networking.k8s.io/v1` `InferencePool` (normally provisioned by KAITO via Flux; rendered inline here)
- Endpoint Picker (EPP) `Deployment` + `Service` + `ServiceAccount` + `Role` + `RoleBinding` + `ConfigMap`
- `gateway.networking.k8s.io/v1` `HTTPRoute` matching `X-Gateway-Model-Name: <name>`
Expand Down Expand Up @@ -41,7 +41,7 @@ over plaintext gRPC and **no `DestinationRule` is required**.
| `model` | required | `""` | Preset model name. Used only as `spec.template.inference.preset.name`. |
| `config` | optional | `""` | Name of a ConfigMap in the deployment namespace containing custom inference arguments. Rendered as `spec.template.inference.config`. |
| `modelAccessSecret` | optional | `""` | Name of a Secret containing Hugging Face model access credentials. Rendered as `spec.template.inference.preset.presetOptions.modelAccessSecret`. |
| `instanceType` | required | `Standard_NV36ads_A10_v5` | VM instance type for the underlying nodes. |
| `instanceType` | optional | `Standard_NV36ads_A10_v5` | VM instance type for the underlying nodes. Set `""` to omit `spec.template.resource.instanceType`, as required on BYO-node clusters (KAITO `nodeProvisioner=byo`). |
| `replicas` | optional | _empty_ | InferenceSet replicas (`spec.replicas`). Empty leaves `spec.replicas` unset (CRD default `1`; with `enableScaling=true`, KEDA moves it into `[minReplicas, maxReplicas]`). When set with `enableScaling=true` it must lie within `[minReplicas, maxReplicas]` and is re-applied only when its value changes (see [Replica ownership](#replica-ownership)). |
| `minReplicas` | required when `enableScaling=true` | _empty_ | Autoscaling lower bound, wired to `scaledobject.kaito.sh/min-replicas`. Ignored when `enableScaling=false`. `0` enables [scale to zero](#scale-to-zero). |
| `enableScaling` | optional | `false` | Wired to `scaledobject.kaito.sh/auto-provision`. Gates `minReplicas`, `maxReplicas` and the entire `scaling` block. |
Expand Down
11 changes: 9 additions & 2 deletions charts/modeldeployment/templates/inferenceset.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,7 @@ install time instead of surfacing as a skipped ScaledObject.
{{- end }}
{{- end }}
{{- end }}
apiVersion: kaito.sh/v1alpha1
apiVersion: kaito.sh/v1beta1
kind: InferenceSet
metadata:
name: {{ $name }}
Expand Down Expand Up @@ -232,8 +232,15 @@ spec:
inference.kaito.sh/stream-source-type: {{ .Values.streaming.sourceType | quote }}
{{- end }}
{{- end }}
{{- /*
Empty instanceType omits the field, which KAITO requires on BYO
(nodeProvisioner=byo) clusters where nodes are not auto-provisioned.
*/}}
resource:
instanceType: {{ .Values.instanceType | quote }}
{{- with .Values.instanceType }}
instanceType: {{ . | quote }}
{{- else }} {}
{{- end }}
inference:
preset:
name: {{ .Values.model | quote }}
Expand Down
3 changes: 1 addition & 2 deletions charts/modeldeployment/values.schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -85,8 +85,7 @@
},
"instanceType": {
"type": "string",
"minLength": 1,
"description": "VM instance type used for the underlying GPU nodes."
"description": "VM instance type used for the underlying GPU nodes. Empty omits spec.template.resource.instanceType, as required on BYO-node clusters (KAITO nodeProvisioner=byo)."
},
"replicas": {
"anyOf": [
Expand Down
2 changes: 1 addition & 1 deletion charts/modeldeployment/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ config: ""
# modelAccessSecret names the Secret holding the Hugging Face access credentials.
modelAccessSecret: ""

# instanceType is the VM instance type of the GPU nodes.
# instanceType is the VM instance type of the GPU nodes; set "" on BYO-node clusters to omit it.
instanceType: "Standard_NV36ads_A10_v5"

# replicas sets spec.replicas when not empty (otherwise the CRD default of 1); with enableScaling it must lie
Expand Down
6 changes: 3 additions & 3 deletions test/e2e/modeldeployment_chart_spec.go
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@ var _ = Describe("ModelDeployment Chart", utils.GinkgoLabelInferenceSet, utils.G
is := &unstructured.Unstructured{}
is.SetGroupVersionKind(schema.GroupVersionKind{
Group: "kaito.sh",
Version: "v1alpha1",
Version: "v1beta1",
Kind: "InferenceSet",
})
err := cl.Get(ctx, types.NamespacedName{Name: deploymentName, Namespace: namespace}, is)
Expand Down Expand Up @@ -187,7 +187,7 @@ var _ = Describe("ModelDeployment Chart", utils.GinkgoLabelInferenceSet, utils.G
is := &unstructured.Unstructured{}
is.SetGroupVersionKind(schema.GroupVersionKind{
Group: "kaito.sh",
Version: "v1alpha1",
Version: "v1beta1",
Kind: "InferenceSet",
})
err := cl.Get(ctx, types.NamespacedName{Name: deploymentName, Namespace: namespace}, is)
Expand Down Expand Up @@ -246,7 +246,7 @@ var _ = Describe("ModelDeployment Chart", utils.GinkgoLabelInferenceSet, utils.G
is := &unstructured.Unstructured{}
is.SetGroupVersionKind(schema.GroupVersionKind{
Group: "kaito.sh",
Version: "v1alpha1",
Version: "v1beta1",
Kind: "InferenceSet",
})
err := cl.Get(ctx, types.NamespacedName{Name: deploymentName, Namespace: namespace}, is)
Expand Down
2 changes: 1 addition & 1 deletion test/e2e/utils/dynamic.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ var (
// InferenceSetGVR is the GroupVersionResource for KAITO InferenceSet objects.
InferenceSetGVR = schema.GroupVersionResource{
Group: "kaito.sh",
Version: "v1alpha1",
Version: "v1beta1",
Resource: "inferencesets",
}

Expand Down
Loading