Skip to content

Commit bab2548

Browse files
committed
refactor: use detach workergroup to simplify the code
1 parent d21e6c7 commit bab2548

File tree

1 file changed

+12
-42
lines changed

1 file changed

+12
-42
lines changed

kubectl-plugin/pkg/util/generation/generation.go

Lines changed: 12 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -449,57 +449,27 @@ func ParseConfigFile(filePath string) (*RayClusterConfig, error) {
449449
if err := yaml.UnmarshalStrict(data, &overrideConfig); err != nil {
450450
return nil, fmt.Errorf("failed to parse YAML: %w", err)
451451
}
452-
config, err := mergeWithDefaultConfig(&overrideConfig)
453-
if err != nil {
454-
return nil, fmt.Errorf("failed to merge config with defaults: %w", err)
455-
}
456-
return config, nil
457-
}
452+
// detach worker groups from default config
453+
overrideConfigWG := overrideConfig.WorkerGroups
454+
overrideConfig.WorkerGroups = nil
458455

459-
func mergeWithDefaultConfig(overrideConfig *RayClusterConfig) (*RayClusterConfig, error) {
460456
config := newRayClusterConfigWithDefaults()
461-
462-
// The defaults are not set in the default raycluster config,
463-
// so we directly copy the values from overrideConfig
464-
config.Namespace = overrideConfig.Namespace
465-
config.Name = overrideConfig.Name
466-
config.ServiceAccount = overrideConfig.ServiceAccount
467-
config.GKE = overrideConfig.GKE
468-
config.Autoscaler = overrideConfig.Autoscaler
469-
470-
if overrideConfig.RayVersion != nil {
471-
config.RayVersion = overrideConfig.RayVersion
472-
}
473-
474-
if overrideConfig.Labels != nil {
475-
config.Labels = make(map[string]string)
476-
maps.Copy(config.Labels, overrideConfig.Labels)
477-
}
478-
if overrideConfig.Annotations != nil {
479-
config.Annotations = make(map[string]string)
480-
maps.Copy(config.Annotations, overrideConfig.Annotations)
481-
}
482-
483-
if overrideConfig.Image != nil {
484-
config.Image = overrideConfig.Image
485-
}
486-
487-
if overrideConfig.Head != nil {
488-
err := mergo.Merge(config.Head, overrideConfig.Head, mergo.WithOverride)
489-
if err != nil {
490-
return nil, fmt.Errorf("failed to merge head config: %w", err)
491-
}
457+
err = mergo.Merge(config, &overrideConfig, mergo.WithOverride)
458+
if err != nil {
459+
return nil, fmt.Errorf("failed to merge config with defaults: %w", err)
492460
}
493-
494-
if overrideConfig.WorkerGroups != nil {
495-
for len(config.WorkerGroups) < len(overrideConfig.WorkerGroups) {
461+
// merge WorkerGroups and keep the default values for missing fields
462+
// if overrideConfigWG is not nil, we will merge the worker groups from the config file
463+
// and keep the default values for missing fields
464+
if overrideConfigWG != nil {
465+
for len(config.WorkerGroups) < len(overrideConfigWG) {
496466
config.WorkerGroups = append(config.WorkerGroups, WorkerGroup{
497467
Replicas: util.DefaultWorkerReplicas,
498468
CPU: ptr.To(util.DefaultWorkerCPU),
499469
Memory: ptr.To(util.DefaultWorkerMemory),
500470
})
501471
}
502-
for i, workerGroup := range overrideConfig.WorkerGroups {
472+
for i, workerGroup := range overrideConfigWG {
503473
err := mergo.Merge(&config.WorkerGroups[i], workerGroup, mergo.WithOverride)
504474
if err != nil {
505475
return nil, fmt.Errorf("failed to merge worker group %d: %w", i, err)

0 commit comments

Comments
 (0)