// NewSimpleModeler returns a new SimpleModeler. // queuedPods: a PodLister that will return pods that have not been scheduled yet. // scheduledPods: a PodLister that will return pods that we know for sure have been scheduled. func NewSimpleModeler(queuedPods, scheduledPods ExtendedPodLister) *SimpleModeler { return &SimpleModeler{ queuedPods: queuedPods, scheduledPods: scheduledPods, assumedPods: &cache.StoreToPodLister{ cache.NewTTLStore(cache.MetaNamespaceKeyFunc, 30*time.Second), }, } }
func CreateStore(kind string, c cache.Getter, sel Selector, resync time.Duration, ctx context.Context) (cache.Store, error) { obj, ok := resources[kind] if !ok { return nil, fmt.Errorf("Object type %q not supported", kind) } store := cache.NewTTLStore(framework.DeletionHandlingMetaNamespaceKeyFunc, cacheTTL) selector := selectorFromMap(sel) lw := getListWatch(kind, c, selector) cache.NewReflector(lw, obj, store, resync).RunUntil(ctx.Done()) return store, nil }
// NewObjectCache creates ObjectCache with an updater. // updater returns an object to cache. func NewObjectCache(f func() (interface{}, error), ttl time.Duration) *ObjectCache { return &ObjectCache{ updater: f, cache: expirationCache.NewTTLStore(stringKeyFunc, ttl), } }
// NewControllerExpectations returns a store for ControlleeExpectations. func NewControllerExpectations() *ControllerExpectations { return &ControllerExpectations{cache.NewTTLStore(ExpKeyFunc, ExpectationsTimeout)} }
// newProjectObjectListCache creates a cache to hold object list objects that will expire with the given ttl. func newProjectObjectListCache(ttl time.Duration) projectObjectListStore { return &projectObjectListCache{ store: cache.NewTTLStore(metaProjectObjectListKeyFunc, ttl), } }