1. no kind is registered for the type v1.ServiceMonitor in scheme \“pkg/runtime/scheme.go:101\”

    [[email protected]]# make run
    2019-07-09T11:04:03.844+0800    ERROR   controllers.OctopusServiceMonitor       Failed to find service monitor  {"error": "no kind is registered for the type v1.ServiceMonitor in scheme \"pkg/runtime/scheme.go:101\""}
    github.com/go-logr/zapr.(*zapLogger).Error
    		/home/liuliqiang/soft/installed/dev/go/gopath/pkg/mod/github.com/go-logr/[email protected]/zapr.go:128
    github.smartx.com/smartx/kubebuild-octopus-operator/controllers.(*OctopusServiceMonitorReconciler).Reconcile
    		/home/liuliqiang/soft/installed/dev/go/gopath/src/github.smartx.com/smartx/kubebuild-octopus-operator/controllers/octopusservicemonitor_controller.go:77
    sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).reconcileHandler
    		/home/liuliqiang/soft/installed/dev/go/gopath/pkg/mod/sigs.k8s.io/[email protected]/pkg/internal/controller/controller.go:216
    sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).processNextWorkItem
    		/home/liuliqiang/soft/installed/dev/go/gopath/pkg/mod/sigs.k8s.io/[email protected]/pkg/internal/controller/controller.go:192
    sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).worker
    		/home/liuliqiang/soft/installed/dev/go/gopath/pkg/mod/sigs.k8s.io/[email protected]/pkg/internal/controller/controller.go:171
    k8s.io/apimachinery/pkg/util/wait.JitterUntil.func1
    		/home/liuliqiang/soft/installed/dev/go/gopath/pkg/mod/k8s.io/[email protected]/pkg/util/wait/wait.go:152
    k8s.io/apimachinery/pkg/util/wait.JitterUntil
    		/home/liuliqiang/soft/installed/dev/go/gopath/pkg/mod/k8s.io/[email protected]/pkg/util/wait/wait.go:153
    k8s.io/apimachinery/pkg/util/wait.Until
    		/home/liuliqiang/soft/installed/dev/go/gopath/pkg/mod/k8s.io/[email protected]/pkg/util/wait/wait.go:88
    2019-07-09T11:04:03.844+0800    ERROR   controller-runtime.controller   Reconciler error        {"controller": "octopusservicemonitor", "request": "default/elf-exporter", "error": "no kind is registered for the type v1.ServiceMonitor in scheme \"pkg/runtime/scheme.go:101\""}
    github.com/go-logr/zapr.(*zapLogger).Error
    

    这个问题应该是没有在代码里面注册 Schema 导致的,解决方式就是添加 Schema,例如我是在 main.go 中添加:

    [[email protected]]# cat main.go
    import "github.com/coreos/prometheus-operator/pkg/apis/monitoring/v1"
    
    
    var scheme   = runtime.NewScheme()
    
    
    func init() {
    	v1.AddToScheme(scheme)
    }
    

    即可。