INNER CODE UNIT · Go
dynamicCrdChecker
kubermatic/kubermatic · cmd/http-prober/main.go:239
func dynamicCrdChecker(kind, apiVersion string, cfg *rest.Config) func() error {
list := &unstructured.UnstructuredList{}
list.SetKind(kind)
list.SetAPIVersion(apiVersion)
listOpts := &ctrlruntimeclient.ListOptions{Raw: &metav1.ListOptions{Limit: 1}}
return func() error {
// Client creation does discovery calls, so do not attempt to do it initially
// when the API may not be up yet.
client, err := ctrlruntimeclient.New(cfg, ctrlruntimeclient.Options{})
if err != nil {
return fmt.Errorf("failed to create kube client: %w", err)
}
if err := client.List(context.Background(), list, listOpts); err != nil {
return fmt.Errorf("failed to list %s.%s: %w", kind, apiVersion, err)
}