Skip to content

Commit dfbb049

Browse files
committed
CAPI: Stop panicking in newMachineController
1 parent c8cfd38 commit dfbb049

File tree

1 file changed

+25
-21
lines changed

1 file changed

+25
-21
lines changed

cluster-autoscaler/cloudprovider/clusterapi/clusterapi_controller.go

Lines changed: 25 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,10 @@ const (
4242
nodeProviderIDIndex = "nodeProviderIDIndex"
4343
defaultCAPIGroup = "cluster.x-k8s.io"
4444
// CAPIGroupEnvVar contains the environment variable name which allows overriding defaultCAPIGroup.
45-
CAPIGroupEnvVar = "CAPI_GROUP"
45+
CAPIGroupEnvVar = "CAPI_GROUP"
46+
resourceNameMachine = "machines"
47+
resourceNameMachineSet = "machinesets"
48+
resourceNameMachineDeployment = "machinedeployments"
4649
)
4750

4851
// machineController watches for Nodes, Machines, MachineSets and
@@ -301,32 +304,33 @@ func newMachineController(
301304
CAPIGroup := getCAPIGroup()
302305
CAPIVersion, err := getAPIGroupPreferredVersion(discoveryclient, CAPIGroup)
303306
if err != nil {
304-
panic("CAPIVersion")
307+
return nil, fmt.Errorf("could not find preferred version for CAPI group %q: %v", CAPIGroup, err)
305308
}
306309
klog.Infof("Using version %q for API group %q", CAPIVersion, CAPIGroup)
307310

308-
machineDeploymentResource, _ := schema.ParseResourceArg(fmt.Sprintf("machinedeployments.%v.%v", CAPIVersion, CAPIGroup))
309-
if machineDeploymentResource == nil {
310-
panic("MachineDeployment")
311+
gvrMachineDeployment := &schema.GroupVersionResource{
312+
Group: CAPIGroup,
313+
Version: CAPIVersion,
314+
Resource: resourceNameMachineDeployment,
311315
}
316+
machineDeploymentInformer := informerFactory.ForResource(*gvrMachineDeployment)
317+
machineDeploymentInformer.Informer().AddEventHandler(cache.ResourceEventHandlerFuncs{})
312318

313-
machineSetResource, _ := schema.ParseResourceArg(fmt.Sprintf("machinesets.%v.%v", CAPIVersion, CAPIGroup))
314-
if machineSetResource == nil {
315-
panic("MachineSetResource")
319+
gvrMachineSet := &schema.GroupVersionResource{
320+
Group: CAPIGroup,
321+
Version: CAPIVersion,
322+
Resource: resourceNameMachineSet,
316323
}
324+
machineSetInformer := informerFactory.ForResource(*gvrMachineSet)
325+
machineSetInformer.Informer().AddEventHandler(cache.ResourceEventHandlerFuncs{})
317326

318-
machineResource, _ := schema.ParseResourceArg(fmt.Sprintf("machines.%v.%v", CAPIVersion, CAPIGroup))
319-
if machineResource == nil {
320-
panic("machineResource")
327+
gvrMachine := &schema.GroupVersionResource{
328+
Group: CAPIGroup,
329+
Version: CAPIVersion,
330+
Resource: resourceNameMachine,
321331
}
322-
323-
machineInformer := informerFactory.ForResource(*machineResource)
324-
machineSetInformer := informerFactory.ForResource(*machineSetResource)
325-
machineDeploymentInformer := informerFactory.ForResource(*machineDeploymentResource)
326-
332+
machineInformer := informerFactory.ForResource(*gvrMachine)
327333
machineInformer.Informer().AddEventHandler(cache.ResourceEventHandlerFuncs{})
328-
machineSetInformer.Informer().AddEventHandler(cache.ResourceEventHandlerFuncs{})
329-
machineDeploymentInformer.Informer().AddEventHandler(cache.ResourceEventHandlerFuncs{})
330334

331335
nodeInformer := kubeInformerFactory.Core().V1().Nodes().Informer()
332336
nodeInformer.AddEventHandler(cache.ResourceEventHandlerFuncs{})
@@ -351,9 +355,9 @@ func newMachineController(
351355
machineSetInformer: machineSetInformer,
352356
nodeInformer: nodeInformer,
353357
dynamicclient: dynamicclient,
354-
machineSetResource: machineSetResource,
355-
machineResource: machineResource,
356-
machineDeploymentResource: machineDeploymentResource,
358+
machineSetResource: gvrMachineSet,
359+
machineResource: gvrMachine,
360+
machineDeploymentResource: gvrMachineDeployment,
357361
}, nil
358362
}
359363

0 commit comments

Comments
 (0)