[Controller] Prometheus resources are created if `monitoring.coreos.com/v1` exists, rather than `prometheus.monitoring.coreos.com/v1`

Summary

If a CRD exists within the GroupVersion monitoring.coreos.com/v1, then reconcileServiceMonitor will be executed. That method tries to reconcile Prometheus resources that are within that GroupVersion.

The problem is that the monitoring.coreos.com/v1 GV can be too vague. For example, in my GKE cluster I had servicemonitor.monitoring.coreos.com available as a CRD, but not prometheus.monitoring.coreos.com. Therefore I got this error:

2021-09-22T15:42:36.916Z        ERROR   controller-runtime.manager.controller.gitlab    Reconciler error       {"reconciler group": "apps.gitlab.com", "reconciler kind": "GitLab", "name": "gitlab", "namespace": "gitlab-system", "error": "no matches for kind \"Prometheus\" in version \"monitoring.coreos.com/v1\""}

Relevant portion of code: https://gitlab.com/gitlab-org/cloud-native/gitlab-operator/blob/de456d53d040d9d363c14545d17fddaa79b8e19c/controllers/gitlab_controller.go#L490

The impact is that it never gets to reconcileGitLabStatus - it's not a blocker per se, because the app starts completely, but the CR Status is never set.