func (i *Tracker) Track(ref metav1.ObjectMetaAccessor, obj types.NamespacedName) error {
	i.m.Lock()
	defer i.m.Unlock()
	if i.mapping == nil {
		i.mapping = make(map[types.UID]set)
	}
	l, ok := i.mapping[ref.GetObjectMeta().GetUID()]
	if !ok {
		l = set{}
	}
	l[obj] = time.Now().Add(i.leaseDuration)
	i.mapping[ref.GetObjectMeta().GetUID()] = l
	return nil
}
Track implements Interface.
package tracker
import (
	"sync"
	"time"
	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
	"k8s.io/apimachinery/pkg/types"
)
func New(callback func(types.NamespacedName), lease time.Duration) *Tracker {
	return &Tracker{
		leaseDuration: lease,
		cb:            callback,
	}
}
type Tracker struct {
	m sync.Mutex
	mapping map[types.UID]set
	leaseDuration time.Duration
	cb func(types.NamespacedName)
}
type set map[types.NamespacedName]time.Time