Disable watchcache for events

This commit is contained in:
wojtekt 2020-10-30 16:09:29 +01:00
parent 518b826b1d
commit 5a8f94cb30
2 changed files with 19 additions and 1 deletions

View File

@ -673,8 +673,17 @@ func Complete(s *options.ServerRunOptions) (completedServerRunOptions, error) {
}
if s.Etcd.EnableWatchCache {
sizes := kubeapiserver.DefaultWatchCacheSizes()
// Ensure that overrides parse correctly.
if _, err := serveroptions.ParseWatchCacheSizes(s.Etcd.WatchCacheSizes); err != nil {
userSpecified, err := serveroptions.ParseWatchCacheSizes(s.Etcd.WatchCacheSizes)
if err != nil {
return options, err
}
for resource, size := range userSpecified {
sizes[resource] = size
}
s.Etcd.WatchCacheSizes, err = serveroptions.WriteWatchCacheSizes(sizes)
if err != nil {
return options, err
}
}

View File

@ -49,6 +49,15 @@ var SpecialDefaultResourcePrefixes = map[schema.GroupResource]string{
{Group: "policy", Resource: "podsecuritypolicies"}: "podsecuritypolicy",
}
// DefaultWatchCacheSizes defines default resources for which watchcache
// should be disabled.
func DefaultWatchCacheSizes() map[schema.GroupResource]int {
return map[schema.GroupResource]int{
{Resource: "events"}: 0,
{Group: "events.k8s.io", Resource: "events"}: 0,
}
}
// NewStorageFactoryConfig returns a new StorageFactoryConfig set up with necessary resource overrides.
func NewStorageFactoryConfig() *StorageFactoryConfig {