@@ -72,14 +72,30 @@ func ValidateService(ctx context.Context, k8sClient client.Client, service *infe
7272 models = append (models , model )
7373 }
7474
75+ // Fetch global configuration.
76+ cm := corev1.ConfigMap {}
77+ if err := k8sClient .Get (ctx , types.NamespacedName {Name : "llmaz-global-config" , Namespace : "llmaz-system" }, & cm ); err != nil {
78+ return err
79+ }
80+
81+ data , err := helper .ParseGlobalConfigmap (& cm )
82+ if err != nil {
83+ return fmt .Errorf ("failed to parse global configmap: %v" , err )
84+ }
85+
86+ initContainerImage := data .InitContainerImage
87+ if initContainerImage == "" {
88+ initContainerImage = pkg .LOADER_IMAGE
89+ }
90+
7591 for index , model := range models {
7692 // Validate injecting modelLoaders
7793 if service .Spec .WorkloadTemplate .LeaderTemplate != nil {
78- if err := ValidateModelLoader (model , index , * workload .Spec .LeaderWorkerTemplate .LeaderTemplate , service ); err != nil {
94+ if err := ValidateModelLoader (model , index , * workload .Spec .LeaderWorkerTemplate .LeaderTemplate , service , initContainerImage ); err != nil {
7995 return err
8096 }
8197 }
82- if err := ValidateModelLoader (model , index , workload .Spec .LeaderWorkerTemplate .WorkerTemplate , service ); err != nil {
98+ if err := ValidateModelLoader (model , index , workload .Spec .LeaderWorkerTemplate .WorkerTemplate , service , initContainerImage ); err != nil {
8399 return err
84100 }
85101 }
@@ -103,15 +119,15 @@ func ValidateService(ctx context.Context, k8sClient client.Client, service *infe
103119 return err
104120 }
105121
106- if err := ValidateConfigmap ( ctx , k8sClient , service ); err != nil {
122+ if err := ValidateSchedulerName ( data . SchedulerName , service ); err != nil {
107123 return err
108124 }
109125
110126 return nil
111127 }, util .IntegrationTimeout , util .Interval ).Should (gomega .Succeed ())
112128}
113129
114- func ValidateModelLoader (model * coreapi.OpenModel , index int , template corev1.PodTemplateSpec , service * inferenceapi.Service ) error {
130+ func ValidateModelLoader (model * coreapi.OpenModel , index int , template corev1.PodTemplateSpec , service * inferenceapi.Service , initContainerImage string ) error {
115131 if model .Spec .Source .URI != nil {
116132 protocol , _ , _ := pkgUtil .ParseURI (string (* model .Spec .Source .URI ))
117133 if protocol == modelSource .Ollama {
@@ -132,8 +148,9 @@ func ValidateModelLoader(model *coreapi.OpenModel, index int, template corev1.Po
132148 if initContainer .Name != containerName {
133149 return fmt .Errorf ("unexpected initContainer name, want %s, got %s" , modelSource .MODEL_LOADER_CONTAINER_NAME , initContainer .Name )
134150 }
135- if initContainer .Image != pkg .LOADER_IMAGE {
136- return fmt .Errorf ("unexpected initContainer image, want %s, got %s" , pkg .LOADER_IMAGE , initContainer .Image )
151+
152+ if initContainer .Image != initContainerImage {
153+ return fmt .Errorf ("unexpected initContainer image, want %s, got %s" , initContainerImage , initContainer .Image )
137154 }
138155
139156 var envStrings []string
@@ -356,25 +373,15 @@ func CheckServiceAvaliable() error {
356373 return nil
357374}
358375
359- func ValidateConfigmap (ctx context.Context , k8sClient client.Client , service * inferenceapi.Service ) error {
360- cm := corev1.ConfigMap {}
361- if err := k8sClient .Get (ctx , types.NamespacedName {Name : "llmaz-global-config" , Namespace : "llmaz-system" }, & cm ); err != nil {
362- return err
363- }
364-
365- data , err := helper .ParseGlobalConfigmap (& cm )
366- if err != nil {
367- return fmt .Errorf ("failed to parse global configmap: %v" , err )
368- }
369-
376+ func ValidateSchedulerName (schedulerName string , service * inferenceapi.Service ) error {
370377 if service .Spec .WorkloadTemplate .LeaderTemplate != nil {
371- if service .Spec .WorkloadTemplate .LeaderTemplate .Spec .SchedulerName != data . SchedulerName {
372- return fmt .Errorf ("unexpected scheduler name %s, want %s" , service .Spec .WorkloadTemplate .LeaderTemplate .Spec .SchedulerName , data . SchedulerName )
378+ if service .Spec .WorkloadTemplate .LeaderTemplate .Spec .SchedulerName != schedulerName {
379+ return fmt .Errorf ("unexpected scheduler name %s, want %s" , service .Spec .WorkloadTemplate .LeaderTemplate .Spec .SchedulerName , schedulerName )
373380 }
374381 }
375382
376- if service .Spec .WorkloadTemplate .WorkerTemplate .Spec .SchedulerName != data . SchedulerName {
377- return fmt .Errorf ("unexpected scheduler name %s, want %s" , service .Spec .WorkloadTemplate .WorkerTemplate .Spec .SchedulerName , data . SchedulerName )
383+ if service .Spec .WorkloadTemplate .WorkerTemplate .Spec .SchedulerName != schedulerName {
384+ return fmt .Errorf ("unexpected scheduler name %s, want %s" , service .Spec .WorkloadTemplate .WorkerTemplate .Spec .SchedulerName , schedulerName )
378385 }
379386
380387 return nil
0 commit comments