diff --git a/internal/controller/child_resources.go b/internal/controller/child_resources.go index 10cf4fd..3e5620f 100644 --- a/internal/controller/child_resources.go +++ b/internal/controller/child_resources.go @@ -392,6 +392,21 @@ func sanitizeModelName(msvc *msv1alpha1.ModelService) string { return sanitizedModelName } +// pickLoadFormat returns the arg following "--load-format" +func pickLoadFormat(pd *msv1alpha1.PDSpec) string { + if pd == nil { + return "" + } + for _, c := range append(pd.Containers, pd.InitContainers...) { + for i := 0; i+1 < len(c.Args); i++ { + if c.Args[i] == "--load-format" { + return c.Args[i+1] + } + } + } + return "" +} + // mergePDService uses msvc fields to update childResource P/D Service func (childResource *BaseConfig) mergePDService(ctx context.Context, msvc *msv1alpha1.ModelService, role string, scheme *runtime.Scheme) *BaseConfig { diff --git a/internal/controller/modelservice_controller.go b/internal/controller/modelservice_controller.go index 223fcd8..36c1b60 100644 --- a/internal/controller/modelservice_controller.go +++ b/internal/controller/modelservice_controller.go @@ -86,6 +86,7 @@ type TemplateVars struct { DecodeServiceName string `json:"decodeServiceName,omitempty"` InferencePoolName string `json:"inferencePoolName,omitempty"` InferenceModelName string `json:"inferenceModelName,omitempty"` + LoadFormat string `json:"loadFormat,omitempty"` } // from populates the field values for TemplateVars from the model service @@ -113,6 +114,10 @@ func (t *TemplateVars) from(ctx context.Context, msvc *msv1alpha1.ModelService) t.InferenceModelName = infModelName(msvc) t.ModelName = msvc.Spec.Routing.ModelName t.SanitizedModelName = sanitizeModelName(msvc) + t.LoadFormat = pickLoadFormat(msvc.Spec.Decode) + if t.LoadFormat == "" { + t.LoadFormat = pickLoadFormat(msvc.Spec.Prefill) + } if msvc.Spec.ModelArtifacts.AuthSecretName != nil { t.AuthSecretName = *msvc.Spec.ModelArtifacts.AuthSecretName