@@ -72,6 +72,22 @@ 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 if helper .SkipModelLoader (service ) {
7793 if service .Spec .WorkloadTemplate .LeaderTemplate != nil {
@@ -85,11 +101,11 @@ func ValidateService(ctx context.Context, k8sClient client.Client, service *infe
85101 } else {
86102 // Validate injecting modelLoaders
87103 if service .Spec .WorkloadTemplate .LeaderTemplate != nil {
88- if err := ValidateModelLoader (model , index , * workload .Spec .LeaderWorkerTemplate .LeaderTemplate , service ); err != nil {
104+ if err := ValidateModelLoader (model , index , * workload .Spec .LeaderWorkerTemplate .LeaderTemplate , service , initContainerImage ); err != nil {
89105 return err
90106 }
91107 }
92- if err := ValidateModelLoader (model , index , workload .Spec .LeaderWorkerTemplate .WorkerTemplate , service ); err != nil {
108+ if err := ValidateModelLoader (model , index , workload .Spec .LeaderWorkerTemplate .WorkerTemplate , service , initContainerImage ); err != nil {
93109 return err
94110 }
95111 }
@@ -114,15 +130,15 @@ func ValidateService(ctx context.Context, k8sClient client.Client, service *infe
114130 return err
115131 }
116132
117- if err := ValidateConfigmap ( ctx , k8sClient , service ); err != nil {
133+ if err := ValidateSchedulerName ( data . SchedulerName , service ); err != nil {
118134 return err
119135 }
120136
121137 return nil
122138 }, util .IntegrationTimeout , util .Interval ).Should (gomega .Succeed ())
123139}
124140
125- func ValidateModelLoader (model * coreapi.OpenModel , index int , template corev1.PodTemplateSpec , service * inferenceapi.Service ) error {
141+ func ValidateModelLoader (model * coreapi.OpenModel , index int , template corev1.PodTemplateSpec , service * inferenceapi.Service , initContainerImage string ) error {
126142 if model .Spec .Source .URI != nil {
127143 protocol , _ , _ := pkgUtil .ParseURI (string (* model .Spec .Source .URI ))
128144 if protocol == modelSource .Ollama {
@@ -143,8 +159,9 @@ func ValidateModelLoader(model *coreapi.OpenModel, index int, template corev1.Po
143159 if initContainer .Name != containerName {
144160 return fmt .Errorf ("unexpected initContainer name, want %s, got %s" , modelSource .MODEL_LOADER_CONTAINER_NAME , initContainer .Name )
145161 }
146- if initContainer .Image != pkg .LOADER_IMAGE {
147- return fmt .Errorf ("unexpected initContainer image, want %s, got %s" , pkg .LOADER_IMAGE , initContainer .Image )
162+
163+ if initContainer .Image != initContainerImage {
164+ return fmt .Errorf ("unexpected initContainer image, want %s, got %s" , initContainerImage , initContainer .Image )
148165 }
149166
150167 var envStrings []string
@@ -437,25 +454,15 @@ func CheckServiceAvaliable() error {
437454 return nil
438455}
439456
440- func ValidateConfigmap (ctx context.Context , k8sClient client.Client , service * inferenceapi.Service ) error {
441- cm := corev1.ConfigMap {}
442- if err := k8sClient .Get (ctx , types.NamespacedName {Name : "llmaz-global-config" , Namespace : "llmaz-system" }, & cm ); err != nil {
443- return err
444- }
445-
446- data , err := helper .ParseGlobalConfigmap (& cm )
447- if err != nil {
448- return fmt .Errorf ("failed to parse global configmap: %v" , err )
449- }
450-
457+ func ValidateSchedulerName (schedulerName string , service * inferenceapi.Service ) error {
451458 if service .Spec .WorkloadTemplate .LeaderTemplate != nil {
452- if service .Spec .WorkloadTemplate .LeaderTemplate .Spec .SchedulerName != data . SchedulerName {
453- return fmt .Errorf ("unexpected scheduler name %s, want %s" , service .Spec .WorkloadTemplate .LeaderTemplate .Spec .SchedulerName , data . SchedulerName )
459+ if service .Spec .WorkloadTemplate .LeaderTemplate .Spec .SchedulerName != schedulerName {
460+ return fmt .Errorf ("unexpected scheduler name %s, want %s" , service .Spec .WorkloadTemplate .LeaderTemplate .Spec .SchedulerName , schedulerName )
454461 }
455462 }
456463
457- if service .Spec .WorkloadTemplate .WorkerTemplate .Spec .SchedulerName != data . SchedulerName {
458- return fmt .Errorf ("unexpected scheduler name %s, want %s" , service .Spec .WorkloadTemplate .WorkerTemplate .Spec .SchedulerName , data . SchedulerName )
464+ if service .Spec .WorkloadTemplate .WorkerTemplate .Spec .SchedulerName != schedulerName {
465+ return fmt .Errorf ("unexpected scheduler name %s, want %s" , service .Spec .WorkloadTemplate .WorkerTemplate .Spec .SchedulerName , schedulerName )
459466 }
460467
461468 return nil
0 commit comments