From 5a8f94cb307fb0f9fcf1505b9e2425ee1840d5a6 Mon Sep 17 00:00:00 2001 From: wojtekt Date: Fri, 30 Oct 2020 16:09:29 +0100 Subject: [PATCH] Disable watchcache for events --- cmd/kube-apiserver/app/server.go | 11 ++++++++++- pkg/kubeapiserver/default_storage_factory_builder.go | 9 +++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/cmd/kube-apiserver/app/server.go b/cmd/kube-apiserver/app/server.go index ef1b9fa2d45..c28b5540f77 100644 --- a/cmd/kube-apiserver/app/server.go +++ b/cmd/kube-apiserver/app/server.go @@ -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 } } diff --git a/pkg/kubeapiserver/default_storage_factory_builder.go b/pkg/kubeapiserver/default_storage_factory_builder.go index eaf38a5fe38..03e7437474c 100644 --- a/pkg/kubeapiserver/default_storage_factory_builder.go +++ b/pkg/kubeapiserver/default_storage_factory_builder.go @@ -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 {