CAPI: Stop panicking in newMachineController

This commit is contained in:
Enxebre 2020-03-18 13:05:44 +01:00
parent c8cfd38298
commit dfbb0491df
1 changed files with 29 additions and 25 deletions

View File

@ -43,6 +43,9 @@ const (
defaultCAPIGroup = "cluster.x-k8s.io"
// CAPIGroupEnvVar contains the environment variable name which allows overriding defaultCAPIGroup.
CAPIGroupEnvVar = "CAPI_GROUP"
resourceNameMachine = "machines"
resourceNameMachineSet = "machinesets"
resourceNameMachineDeployment = "machinedeployments"
)
// machineController watches for Nodes, Machines, MachineSets and
@ -301,33 +304,34 @@ func newMachineController(
CAPIGroup := getCAPIGroup()
CAPIVersion, err := getAPIGroupPreferredVersion(discoveryclient, CAPIGroup)
if err != nil {
panic("CAPIVersion")
return nil, fmt.Errorf("could not find preferred version for CAPI group %q: %v", CAPIGroup, err)
}
klog.Infof("Using version %q for API group %q", CAPIVersion, CAPIGroup)
machineDeploymentResource, _ := schema.ParseResourceArg(fmt.Sprintf("machinedeployments.%v.%v", CAPIVersion, CAPIGroup))
if machineDeploymentResource == nil {
panic("MachineDeployment")
gvrMachineDeployment := &schema.GroupVersionResource{
Group: CAPIGroup,
Version: CAPIVersion,
Resource: resourceNameMachineDeployment,
}
machineSetResource, _ := schema.ParseResourceArg(fmt.Sprintf("machinesets.%v.%v", CAPIVersion, CAPIGroup))
if machineSetResource == nil {
panic("MachineSetResource")
}
machineResource, _ := schema.ParseResourceArg(fmt.Sprintf("machines.%v.%v", CAPIVersion, CAPIGroup))
if machineResource == nil {
panic("machineResource")
}
machineInformer := informerFactory.ForResource(*machineResource)
machineSetInformer := informerFactory.ForResource(*machineSetResource)
machineDeploymentInformer := informerFactory.ForResource(*machineDeploymentResource)
machineInformer.Informer().AddEventHandler(cache.ResourceEventHandlerFuncs{})
machineSetInformer.Informer().AddEventHandler(cache.ResourceEventHandlerFuncs{})
machineDeploymentInformer := informerFactory.ForResource(*gvrMachineDeployment)
machineDeploymentInformer.Informer().AddEventHandler(cache.ResourceEventHandlerFuncs{})
gvrMachineSet := &schema.GroupVersionResource{
Group: CAPIGroup,
Version: CAPIVersion,
Resource: resourceNameMachineSet,
}
machineSetInformer := informerFactory.ForResource(*gvrMachineSet)
machineSetInformer.Informer().AddEventHandler(cache.ResourceEventHandlerFuncs{})
gvrMachine := &schema.GroupVersionResource{
Group: CAPIGroup,
Version: CAPIVersion,
Resource: resourceNameMachine,
}
machineInformer := informerFactory.ForResource(*gvrMachine)
machineInformer.Informer().AddEventHandler(cache.ResourceEventHandlerFuncs{})
nodeInformer := kubeInformerFactory.Core().V1().Nodes().Informer()
nodeInformer.AddEventHandler(cache.ResourceEventHandlerFuncs{})
@ -351,9 +355,9 @@ func newMachineController(
machineSetInformer: machineSetInformer,
nodeInformer: nodeInformer,
dynamicclient: dynamicclient,
machineSetResource: machineSetResource,
machineResource: machineResource,
machineDeploymentResource: machineDeploymentResource,
machineSetResource: gvrMachineSet,
machineResource: gvrMachine,
machineDeploymentResource: gvrMachineDeployment,
}, nil
}