Skip to content

Commit dad7083

Browse files
committed
Fix panic when replacing services configmap
Removes the dereferencing of a nil error
1 parent 9b2b0d0 commit dad7083

File tree

1 file changed

+18
-8
lines changed

1 file changed

+18
-8
lines changed

controllers/configmap_controller.go

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -209,17 +209,27 @@ func (r *ConfigMapReconciler) reconcileServices(ctx context.Context, windowsServ
209209

210210
// If a ConfigMap with invalid values is found, WMCO will delete and recreate it with proper values
211211
data, err := servicescm.Parse(windowsServices.Data)
212-
if err != nil || data.ValidateExpectedContent(r.servicesManifest) != nil {
213-
// Deleting will trigger an event for the configmap_controller, which will re-create a proper ConfigMap
214-
if err = r.client.Delete(ctx, windowsServices); err != nil {
215-
return err
212+
if err == nil {
213+
validateErr := data.ValidateExpectedContent(r.servicesManifest)
214+
if validateErr == nil {
215+
return nil
216216
}
217-
r.log.Info("Deleted invalid resource", "ConfigMap",
218-
kubeTypes.NamespacedName{Namespace: r.watchNamespace, Name: windowsServices.Name}, "Error", err.Error())
219-
return nil
217+
r.log.V(1).Info("Invalid content",
218+
"ConfigMap", kubeTypes.NamespacedName{Namespace: r.watchNamespace, Name: windowsServices.Name},
219+
"Error", validateErr)
220+
} else {
221+
r.log.V(1).Info("Parse error",
222+
"ConfigMap", kubeTypes.NamespacedName{Namespace: r.watchNamespace, Name: windowsServices.Name},
223+
"Error", err)
224+
}
225+
// Deleting will trigger an event for the configmap_controller, which will re-create a proper ConfigMap
226+
if err = r.client.Delete(ctx, windowsServices); err != nil {
227+
return err
220228
}
221-
// TODO: actually react to changes to the services ConfigMap
229+
r.log.Info("Deleted invalid resource", "ConfigMap",
230+
kubeTypes.NamespacedName{Namespace: r.watchNamespace, Name: windowsServices.Name})
222231
return nil
232+
// TODO: actually react to changes to the services ConfigMap
223233
}
224234

225235
// removeOutdatedServicesConfigMaps deletes any outdated services ConfigMaps, if all nodes have moved past that version

0 commit comments

Comments
 (0)