Skip to content

Commit 2c332ff

Browse files
author
Atanas Chuchev
committed
Improve error handling for label selector parsing in newDataGathererWithClient
1 parent ad73686 commit 2c332ff

1 file changed

Lines changed: 7 additions & 5 deletions

File tree

pkg/datagatherer/k8sdynamic/dynamic.go

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -226,16 +226,18 @@ func (c *ConfigDynamic) newDataGathererWithClient(ctx context.Context, cl dynami
226226
fieldSelector = fields.AndSelectors(fieldSelector, fields.ParseSelectorOrDie(fieldSelectorString))
227227
}
228228

229+
// Add any custom label selectors
230+
// The selectors have already been validated, so it is safe to use
231+
// MustParse here (Parse errors would indicate a programming error).
229232
labelSelector := labels.Everything()
230233
for _, labelSelectorString := range c.LabelSelectors {
231234
selector, err := labels.Parse(labelSelectorString)
232235
if err != nil {
233-
return nil, err
234-
}
235-
reqs, selectable := selector.Requirements()
236-
if !selectable {
237-
return nil, fmt.Errorf("invalid label selector %q: not selectable", labelSelectorString)
236+
// This should never happen since validation already passed
237+
log.Error(err, "failed to parse validated label selector", "selector", labelSelectorString)
238+
panic(fmt.Sprintf("failed to parse validated label selector %q: %v", labelSelectorString, err))
238239
}
240+
reqs, _ := selector.Requirements()
239241
labelSelector = labelSelector.Add(reqs...)
240242
}
241243

0 commit comments

Comments
 (0)