in readers/apiserver/watchlist/internal/watchlist/watchlist.go [130:162]
func New(ctx context.Context, clientset *kubernetes.Clientset, retrieveTypes RetrieveType, opts ...Option) (*Reader, error) {
if clientset == nil {
return nil, fmt.Errorf("clientset is nil")
}
r := &Reader{
clientset: clientset,
log: slog.Default(),
retrieveTypes: retrieveTypes,
relist: -1, // This indicates never.
}
for _, opt := range opts {
if err := opt(r); err != nil {
return nil, err
}
}
r.filterOpts = append(r.filterOpts, watchlist.WithLogger(r.log))
// Make sure they passed a valid retrieveTypes.
found := false
for rt := range rtMap {
if retrieveTypes&rt == rt {
found = true
break
}
}
if !found {
return nil, fmt.Errorf("no data types to retrieve")
}
return r, nil
}