Skip to content

Commit e2e0d13

Browse files
authored
Merge pull request #19 from jumpstarter-dev/fix-service-parameters
Handle Service Parameters properly when having multiple jumpstarter instances
2 parents 753eb2d + 327eed6 commit e2e0d13

File tree

3 files changed

+15
-6
lines changed

3 files changed

+15
-6
lines changed

cmd/apply.go

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,8 @@ var applyCmd = &cobra.Command{
9090
fmt.Println("Applying changes:")
9191
fmt.Println()
9292
}
93-
var serviceParametersMap map[string]template.ServiceParameters
93+
// create a serviceParametersMap to store the service parameters for the exporters in the jumpstarter instances
94+
serviceParametersMap := make(map[string]template.ServiceParameters)
9495

9596
for _, inst := range cfg.Loaded.JumpstarterInstances {
9697
instanceCopy := inst.DeepCopy()
@@ -109,9 +110,14 @@ var applyCmd = &cobra.Command{
109110
return fmt.Errorf("error syncing clients for %s: %w", inst.Name, err)
110111
}
111112

112-
serviceParametersMap, err = instanceClient.SyncExporters(context.Background(), cfg, exporterFilter)
113+
instanceServiceParametersMap, err := instanceClient.SyncExporters(context.Background(), cfg, exporterFilter)
113114
if err != nil {
114115
return fmt.Errorf("error syncing exporters for %s: %w", inst.Name, err)
116+
} else {
117+
// merge instanceServiceParametersMap into serviceParametersMap
118+
for k, v := range instanceServiceParametersMap {
119+
serviceParametersMap[k] = v
120+
}
115121
}
116122
}
117123

internal/exporter/host/host.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -142,9 +142,10 @@ func (e *ExporterHostSyncer) processExporterInstance(exporterInstance *api.Expor
142142
return fmt.Errorf("error creating ExporterInstanceTemplater for %s : %w", errName, err)
143143
}
144144

145-
serviceParameters, ok := e.serviceParametersMap[exporterInstance.Name]
145+
spRef := exporterInstance.Spec.JumpstarterInstanceRef.Name + ":" + exporterInstance.Name
146+
serviceParameters, ok := e.serviceParametersMap[spRef]
146147
if !ok {
147-
return fmt.Errorf("service parameters not found for %s", exporterInstance.Name)
148+
return fmt.Errorf("service parameters not found for %s", spRef)
148149
}
149150
et.SetServiceParameters(serviceParameters)
150151

internal/instance/exporter_sync.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -342,7 +342,8 @@ func (i *Instance) SyncExporters(ctx context.Context, cfg *config.Config, filter
342342
fmt.Printf("🔍 [%s] Exporter connection details snippet for exporter %s:\n%s\n", i.config.Name, cfgExporter.Name, yamlOutput)
343343
}
344344

345-
serviceParametersMap[cfgExporter.Name] = *serviceParameters
345+
svcParamRef := i.config.Name + ":" + cfgExporter.Name
346+
serviceParametersMap[svcParamRef] = *serviceParameters
346347
}
347348
}
348349

@@ -366,7 +367,8 @@ func (i *Instance) SyncExporters(ctx context.Context, cfg *config.Config, filter
366367
}
367368
fmt.Printf("🔍 [%s] Exporter connection details snippet for exporter %s:\n%s\n", i.config.Name, exporterObj.Name, yamlOutput)
368369
}
369-
serviceParametersMap[exporterObj.Name] = *serviceParameters
370+
svcParamRef := i.config.Name + ":" + exporterObj.Name
371+
serviceParametersMap[svcParamRef] = *serviceParameters
370372
}
371373
}
372374

0 commit comments

Comments
 (0)