func ResyncPeriod(s *options.Options) func() time.Duration {
	return func() time.Duration {
		factor := rand.Float64() + 1
		return time.Duration(float64(s.MinResyncPeriod.Nanoseconds()) * factor)
	}
}
ResyncPeriod returns a function which generates a duration each time it is
invoked; this is so that multiple controllers don't get into lock-step and all
hammer the apiserver with list requests simultaneously.
package app
import (
	"math/rand"
	"time"
	"github.com/golang/glog"
	coreinformers "k8s.io/client-go/informers"
	"k8s.io/client-go/kubernetes"
	restclient "k8s.io/client-go/rest"
	"k8s.io/client-go/tools/clientcmd"
	"github.com/kube-node/nodeset/cmd/nodeset-controller/app/options"
	nodesetclientset "github.com/kube-node/nodeset/pkg/client/clientset/versioned"
	nodesetinformers "github.com/kube-node/nodeset/pkg/client/informers/externalversions"
	gkenodeset "github.com/kube-node/nodeset/pkg/controller/nodeset/gke"
	nodenodeset "github.com/kube-node/nodeset/pkg/controller/nodeset/node"
)