Commit 62c9cb46 authored by Kubernetes Submit Queue's avatar Kubernetes Submit Queue Committed by GitHub

Merge pull request #40853 from sttts/sttts-more-cutoffs-7

Automatic merge from submit-queue (batch tested with PRs 35782, 35831, 39279, 40853, 40867) genericapiserver: cut off more dependencies – episode 7 Follow-up of https://github.com/kubernetes/kubernetes/pull/40822 approved based on #40363
parents 97214595 de2eee39
...@@ -24,6 +24,7 @@ import ( ...@@ -24,6 +24,7 @@ import (
"k8s.io/apimachinery/pkg/util/wait" "k8s.io/apimachinery/pkg/util/wait"
genericapirequest "k8s.io/apiserver/pkg/endpoints/request" genericapirequest "k8s.io/apiserver/pkg/endpoints/request"
genericfilters "k8s.io/apiserver/pkg/server/filters" genericfilters "k8s.io/apiserver/pkg/server/filters"
"k8s.io/kubernetes/pkg/api"
kubeclientset "k8s.io/kubernetes/pkg/client/clientset_generated/clientset" kubeclientset "k8s.io/kubernetes/pkg/client/clientset_generated/clientset"
kubeinformers "k8s.io/kubernetes/pkg/client/informers/informers_generated" kubeinformers "k8s.io/kubernetes/pkg/client/informers/informers_generated"
v1listers "k8s.io/kubernetes/pkg/client/listers/core/v1" v1listers "k8s.io/kubernetes/pkg/client/listers/core/v1"
...@@ -140,7 +141,7 @@ func (c completedConfig) New() (*APIDiscoveryServer, error) { ...@@ -140,7 +141,7 @@ func (c completedConfig) New() (*APIDiscoveryServer, error) {
proxyMux: proxyMux, proxyMux: proxyMux,
} }
apiGroupInfo := genericapiserver.NewDefaultAPIGroupInfo(apiregistration.GroupName) apiGroupInfo := genericapiserver.NewDefaultAPIGroupInfo(apiregistration.GroupName, api.Registry, api.Scheme, api.ParameterCodec, api.Codecs)
apiGroupInfo.GroupMeta.GroupVersion = v1alpha1.SchemeGroupVersion apiGroupInfo.GroupMeta.GroupVersion = v1alpha1.SchemeGroupVersion
v1alpha1storage := map[string]rest.Storage{} v1alpha1storage := map[string]rest.Storage{}
v1alpha1storage["apiservices"] = apiservicestorage.NewREST(c.RESTOptionsGetter) v1alpha1storage["apiservices"] = apiservicestorage.NewREST(c.RESTOptionsGetter)
......
...@@ -116,7 +116,8 @@ func (o DiscoveryServerOptions) RunDiscoveryServer() error { ...@@ -116,7 +116,8 @@ func (o DiscoveryServerOptions) RunDiscoveryServer() error {
return fmt.Errorf("error creating self-signed certificates: %v", err) return fmt.Errorf("error creating self-signed certificates: %v", err)
} }
genericAPIServerConfig := genericapiserver.NewConfig() genericAPIServerConfig := genericapiserver.NewConfig().
WithSerializer(api.Codecs)
if _, err := genericAPIServerConfig.ApplySecureServingOptions(o.SecureServing); err != nil { if _, err := genericAPIServerConfig.ApplySecureServingOptions(o.SecureServing); err != nil {
return err return err
} }
......
...@@ -17,6 +17,7 @@ go_library( ...@@ -17,6 +17,7 @@ go_library(
"//pkg/api:go_default_library", "//pkg/api:go_default_library",
"//pkg/genericapiserver/registry/generic:go_default_library", "//pkg/genericapiserver/registry/generic:go_default_library",
"//pkg/genericapiserver/registry/generic/registry:go_default_library", "//pkg/genericapiserver/registry/generic/registry:go_default_library",
"//pkg/registry/cachesize:go_default_library",
"//vendor:k8s.io/apimachinery/pkg/runtime", "//vendor:k8s.io/apimachinery/pkg/runtime",
], ],
) )
......
...@@ -23,6 +23,7 @@ import ( ...@@ -23,6 +23,7 @@ import (
"k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/genericapiserver/registry/generic" "k8s.io/kubernetes/pkg/genericapiserver/registry/generic"
genericregistry "k8s.io/kubernetes/pkg/genericapiserver/registry/generic/registry" genericregistry "k8s.io/kubernetes/pkg/genericapiserver/registry/generic/registry"
"k8s.io/kubernetes/pkg/registry/cachesize"
) )
// rest implements a RESTStorage for API services against etcd // rest implements a RESTStorage for API services against etcd
...@@ -41,6 +42,7 @@ func NewREST(optsGetter generic.RESTOptionsGetter) *REST { ...@@ -41,6 +42,7 @@ func NewREST(optsGetter generic.RESTOptionsGetter) *REST {
}, },
PredicateFunc: apiservice.MatchAPIService, PredicateFunc: apiservice.MatchAPIService,
QualifiedResource: apiregistration.Resource("apiservices"), QualifiedResource: apiregistration.Resource("apiservices"),
WatchCacheSize: cachesize.GetWatchCacheSizeByResource("apiservices"),
CreateStrategy: apiservice.Strategy, CreateStrategy: apiservice.Strategy,
UpdateStrategy: apiservice.Strategy, UpdateStrategy: apiservice.Strategy,
......
...@@ -106,6 +106,7 @@ func Run(s *options.ServerRunOptions) error { ...@@ -106,6 +106,7 @@ func Run(s *options.ServerRunOptions) error {
// create config from options // create config from options
genericConfig := genericapiserver.NewConfig(). genericConfig := genericapiserver.NewConfig().
WithSerializer(api.Codecs).
ApplyOptions(s.GenericServerRunOptions). ApplyOptions(s.GenericServerRunOptions).
ApplyInsecureServingOptions(s.InsecureServing) ApplyInsecureServingOptions(s.InsecureServing)
...@@ -195,7 +196,7 @@ func Run(s *options.ServerRunOptions) error { ...@@ -195,7 +196,7 @@ func Run(s *options.ServerRunOptions) error {
} }
storageFactory, err := kubeapiserver.BuildDefaultStorageFactory( storageFactory, err := kubeapiserver.BuildDefaultStorageFactory(
s.Etcd.StorageConfig, s.GenericServerRunOptions.DefaultStorageMediaType, api.Codecs, s.Etcd.StorageConfig, s.GenericServerRunOptions.DefaultStorageMediaType, api.Codecs,
genericapiserver.NewDefaultResourceEncodingConfig(), storageGroupsToEncodingVersion, genericapiserver.NewDefaultResourceEncodingConfig(api.Registry), storageGroupsToEncodingVersion,
// FIXME: this GroupVersionResource override should be configurable // FIXME: this GroupVersionResource override should be configurable
[]schema.GroupVersionResource{batch.Resource("cronjobs").WithVersion("v2alpha1")}, []schema.GroupVersionResource{batch.Resource("cronjobs").WithVersion("v2alpha1")},
master.DefaultAPIResourceConfigSource(), s.GenericServerRunOptions.RuntimeConfig) master.DefaultAPIResourceConfigSource(), s.GenericServerRunOptions.RuntimeConfig)
...@@ -294,7 +295,7 @@ func Run(s *options.ServerRunOptions) error { ...@@ -294,7 +295,7 @@ func Run(s *options.ServerRunOptions) error {
genericConfig.Authenticator = apiAuthenticator genericConfig.Authenticator = apiAuthenticator
genericConfig.Authorizer = apiAuthorizer genericConfig.Authorizer = apiAuthorizer
genericConfig.AdmissionControl = admissionController genericConfig.AdmissionControl = admissionController
genericConfig.OpenAPIConfig = genericapiserver.DefaultOpenAPIConfig(generatedopenapi.GetOpenAPIDefinitions) genericConfig.OpenAPIConfig = genericapiserver.DefaultOpenAPIConfig(generatedopenapi.GetOpenAPIDefinitions, api.Scheme)
genericConfig.OpenAPIConfig.PostProcessSpec = postProcessOpenAPISpecForBackwardCompatibility genericConfig.OpenAPIConfig.PostProcessSpec = postProcessOpenAPISpecForBackwardCompatibility
genericConfig.OpenAPIConfig.SecurityDefinitions = securityDefinitions genericConfig.OpenAPIConfig.SecurityDefinitions = securityDefinitions
genericConfig.OpenAPIConfig.Info.Title = "Kubernetes" genericConfig.OpenAPIConfig.Info.Title = "Kubernetes"
......
...@@ -51,7 +51,7 @@ func newStorageFactory() genericapiserver.StorageFactory { ...@@ -51,7 +51,7 @@ func newStorageFactory() genericapiserver.StorageFactory {
ServerList: []string{"http://127.0.0.1:2379"}, ServerList: []string{"http://127.0.0.1:2379"},
Copier: api.Scheme, Copier: api.Scheme,
} }
storageFactory := genericapiserver.NewDefaultStorageFactory(config, "application/json", api.Codecs, genericapiserver.NewDefaultResourceEncodingConfig(), genericapiserver.NewResourceConfig()) storageFactory := genericapiserver.NewDefaultStorageFactory(config, "application/json", api.Codecs, genericapiserver.NewDefaultResourceEncodingConfig(api.Registry), genericapiserver.NewResourceConfig())
return storageFactory return storageFactory
} }
...@@ -104,6 +104,7 @@ func (serverOptions *ServerRunOptions) Run(stopCh <-chan struct{}) error { ...@@ -104,6 +104,7 @@ func (serverOptions *ServerRunOptions) Run(stopCh <-chan struct{}) error {
// create config from options // create config from options
config := genericapiserver.NewConfig(). config := genericapiserver.NewConfig().
WithSerializer(api.Codecs).
ApplyOptions(serverOptions.GenericServerRunOptions). ApplyOptions(serverOptions.GenericServerRunOptions).
ApplyInsecureServingOptions(serverOptions.InsecureServing) ApplyInsecureServingOptions(serverOptions.InsecureServing)
......
...@@ -88,9 +88,10 @@ func Run(s *options.ServerRunOptions) error { ...@@ -88,9 +88,10 @@ func Run(s *options.ServerRunOptions) error {
return utilerrors.NewAggregate(errs) return utilerrors.NewAggregate(errs)
} }
genericConfig := genericapiserver.NewConfig(). // create the new config genericConfig := genericapiserver.NewConfig().
ApplyOptions(s.GenericServerRunOptions). // apply the options selected WithSerializer(api.Codecs).
ApplyInsecureServingOptions(s.InsecureServing) ApplyOptions(s.GenericServerRunOptions).
ApplyInsecureServingOptions(s.InsecureServing)
if _, err := genericConfig.ApplySecureServingOptions(s.SecureServing); err != nil { if _, err := genericConfig.ApplySecureServingOptions(s.SecureServing); err != nil {
return fmt.Errorf("failed to configure https: %s", err) return fmt.Errorf("failed to configure https: %s", err)
...@@ -112,7 +113,7 @@ func Run(s *options.ServerRunOptions) error { ...@@ -112,7 +113,7 @@ func Run(s *options.ServerRunOptions) error {
} }
storageFactory, err := kubeapiserver.BuildDefaultStorageFactory( storageFactory, err := kubeapiserver.BuildDefaultStorageFactory(
s.Etcd.StorageConfig, s.GenericServerRunOptions.DefaultStorageMediaType, api.Codecs, s.Etcd.StorageConfig, s.GenericServerRunOptions.DefaultStorageMediaType, api.Codecs,
genericapiserver.NewDefaultResourceEncodingConfig(), storageGroupsToEncodingVersion, genericapiserver.NewDefaultResourceEncodingConfig(api.Registry), storageGroupsToEncodingVersion,
[]schema.GroupVersionResource{}, resourceConfig, s.GenericServerRunOptions.RuntimeConfig) []schema.GroupVersionResource{}, resourceConfig, s.GenericServerRunOptions.RuntimeConfig)
if err != nil { if err != nil {
return fmt.Errorf("error in initializing storage factory: %s", err) return fmt.Errorf("error in initializing storage factory: %s", err)
...@@ -177,7 +178,7 @@ func Run(s *options.ServerRunOptions) error { ...@@ -177,7 +178,7 @@ func Run(s *options.ServerRunOptions) error {
genericConfig.Authenticator = apiAuthenticator genericConfig.Authenticator = apiAuthenticator
genericConfig.Authorizer = apiAuthorizer genericConfig.Authorizer = apiAuthorizer
genericConfig.AdmissionControl = admissionController genericConfig.AdmissionControl = admissionController
genericConfig.OpenAPIConfig = genericapiserver.DefaultOpenAPIConfig(openapi.GetOpenAPIDefinitions) genericConfig.OpenAPIConfig = genericapiserver.DefaultOpenAPIConfig(openapi.GetOpenAPIDefinitions, api.Scheme)
genericConfig.OpenAPIConfig.PostProcessSpec = postProcessOpenAPISpecForBackwardCompatibility genericConfig.OpenAPIConfig.PostProcessSpec = postProcessOpenAPISpecForBackwardCompatibility
genericConfig.OpenAPIConfig.SecurityDefinitions = securityDefinitions genericConfig.OpenAPIConfig.SecurityDefinitions = securityDefinitions
genericConfig.SwaggerConfig = genericapiserver.DefaultSwaggerConfig() genericConfig.SwaggerConfig = genericapiserver.DefaultSwaggerConfig()
......
...@@ -101,7 +101,7 @@ func TestDaemonSetController(t *testing.T) { ...@@ -101,7 +101,7 @@ func TestDaemonSetController(t *testing.T) {
updatedDaemonSet := GetDaemonSetFromChan(daemonsetUpdateChan) updatedDaemonSet := GetDaemonSetFromChan(daemonsetUpdateChan)
assert.True(t, daemonsetController.hasFinalizerFunc(updatedDaemonSet, deletionhelper.FinalizerDeleteFromUnderlyingClusters)) assert.True(t, daemonsetController.hasFinalizerFunc(updatedDaemonSet, deletionhelper.FinalizerDeleteFromUnderlyingClusters))
updatedDaemonSet = GetDaemonSetFromChan(daemonsetUpdateChan) updatedDaemonSet = GetDaemonSetFromChan(daemonsetUpdateChan)
assert.True(t, daemonsetController.hasFinalizerFunc(updatedDaemonSet, apiv1.FinalizerOrphan)) assert.True(t, daemonsetController.hasFinalizerFunc(updatedDaemonSet, metav1.FinalizerOrphan))
daemonset1 = *updatedDaemonSet daemonset1 = *updatedDaemonSet
createdDaemonSet := GetDaemonSetFromChan(cluster1CreateChan) createdDaemonSet := GetDaemonSetFromChan(cluster1CreateChan)
......
...@@ -144,7 +144,7 @@ func TestIngressController(t *testing.T) { ...@@ -144,7 +144,7 @@ func TestIngressController(t *testing.T) {
updatedIngress := GetIngressFromChan(t, fedIngressUpdateChan) updatedIngress := GetIngressFromChan(t, fedIngressUpdateChan)
assert.True(t, ingressController.hasFinalizerFunc(updatedIngress, deletionhelper.FinalizerDeleteFromUnderlyingClusters)) assert.True(t, ingressController.hasFinalizerFunc(updatedIngress, deletionhelper.FinalizerDeleteFromUnderlyingClusters))
updatedIngress = GetIngressFromChan(t, fedIngressUpdateChan) updatedIngress = GetIngressFromChan(t, fedIngressUpdateChan)
assert.True(t, ingressController.hasFinalizerFunc(updatedIngress, apiv1.FinalizerOrphan), fmt.Sprintf("ingress does not have the orphan finalizer: %v", updatedIngress)) assert.True(t, ingressController.hasFinalizerFunc(updatedIngress, metav1.FinalizerOrphan), fmt.Sprintf("ingress does not have the orphan finalizer: %v", updatedIngress))
fedIngress = *updatedIngress fedIngress = *updatedIngress
t.Log("Checking that Ingress was correctly created in cluster 1") t.Log("Checking that Ingress was correctly created in cluster 1")
...@@ -305,7 +305,7 @@ func WaitForFinalizersInFederationStore(ingressController *IngressController, st ...@@ -305,7 +305,7 @@ func WaitForFinalizersInFederationStore(ingressController *IngressController, st
return false, err return false, err
} }
ingress := obj.(*extensionsv1beta1.Ingress) ingress := obj.(*extensionsv1beta1.Ingress)
if ingressController.hasFinalizerFunc(ingress, apiv1.FinalizerOrphan) && if ingressController.hasFinalizerFunc(ingress, metav1.FinalizerOrphan) &&
ingressController.hasFinalizerFunc(ingress, deletionhelper.FinalizerDeleteFromUnderlyingClusters) { ingressController.hasFinalizerFunc(ingress, deletionhelper.FinalizerDeleteFromUnderlyingClusters) {
return true, nil return true, nil
} }
......
...@@ -149,7 +149,7 @@ func TestNamespaceController(t *testing.T) { ...@@ -149,7 +149,7 @@ func TestNamespaceController(t *testing.T) {
// Delete the namespace with orphan finalizer (let namespaces // Delete the namespace with orphan finalizer (let namespaces
// in underlying clusters be as is). // in underlying clusters be as is).
// TODO: Add a test without orphan finalizer. // TODO: Add a test without orphan finalizer.
ns1.ObjectMeta.Finalizers = append(ns1.ObjectMeta.Finalizers, apiv1.FinalizerOrphan) ns1.ObjectMeta.Finalizers = append(ns1.ObjectMeta.Finalizers, metav1.FinalizerOrphan)
ns1.DeletionTimestamp = &metav1.Time{Time: time.Now()} ns1.DeletionTimestamp = &metav1.Time{Time: time.Now()}
namespaceWatch.Modify(&ns1) namespaceWatch.Modify(&ns1)
assert.Equal(t, ns1.Name, GetStringFromChan(nsDeleteChan)) assert.Equal(t, ns1.Name, GetStringFromChan(nsDeleteChan))
......
...@@ -101,7 +101,7 @@ func TestSecretController(t *testing.T) { ...@@ -101,7 +101,7 @@ func TestSecretController(t *testing.T) {
updatedSecret := GetSecretFromChan(secretUpdateChan) updatedSecret := GetSecretFromChan(secretUpdateChan)
assert.True(t, secretController.hasFinalizerFunc(updatedSecret, deletionhelper.FinalizerDeleteFromUnderlyingClusters)) assert.True(t, secretController.hasFinalizerFunc(updatedSecret, deletionhelper.FinalizerDeleteFromUnderlyingClusters))
updatedSecret = GetSecretFromChan(secretUpdateChan) updatedSecret = GetSecretFromChan(secretUpdateChan)
assert.True(t, secretController.hasFinalizerFunc(updatedSecret, apiv1.FinalizerOrphan)) assert.True(t, secretController.hasFinalizerFunc(updatedSecret, metav1.FinalizerOrphan))
secret1 = *updatedSecret secret1 = *updatedSecret
// Verify that the secret is created in underlying cluster1. // Verify that the secret is created in underlying cluster1.
......
...@@ -14,8 +14,8 @@ go_library( ...@@ -14,8 +14,8 @@ go_library(
deps = [ deps = [
"//federation/pkg/federation-controller/util:go_default_library", "//federation/pkg/federation-controller/util:go_default_library",
"//pkg/api:go_default_library", "//pkg/api:go_default_library",
"//pkg/api/v1:go_default_library",
"//vendor:github.com/golang/glog", "//vendor:github.com/golang/glog",
"//vendor:k8s.io/apimachinery/pkg/apis/meta/v1",
"//vendor:k8s.io/apimachinery/pkg/runtime", "//vendor:k8s.io/apimachinery/pkg/runtime",
"//vendor:k8s.io/client-go/tools/record", "//vendor:k8s.io/client-go/tools/record",
], ],
......
...@@ -24,11 +24,11 @@ import ( ...@@ -24,11 +24,11 @@ import (
"strings" "strings"
"time" "time"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime"
"k8s.io/client-go/tools/record" "k8s.io/client-go/tools/record"
"k8s.io/kubernetes/federation/pkg/federation-controller/util" "k8s.io/kubernetes/federation/pkg/federation-controller/util"
"k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api"
api_v1 "k8s.io/kubernetes/pkg/api/v1"
"github.com/golang/glog" "github.com/golang/glog"
) )
...@@ -96,9 +96,9 @@ func (dh *DeletionHelper) EnsureFinalizers(obj runtime.Object) ( ...@@ -96,9 +96,9 @@ func (dh *DeletionHelper) EnsureFinalizers(obj runtime.Object) (
return obj, err return obj, err
} }
} }
if !dh.hasFinalizerFunc(obj, api_v1.FinalizerOrphan) { if !dh.hasFinalizerFunc(obj, metav1.FinalizerOrphan) {
glog.V(2).Infof("Adding finalizer %s to %s", api_v1.FinalizerOrphan, dh.objNameFunc(obj)) glog.V(2).Infof("Adding finalizer %s to %s", metav1.FinalizerOrphan, dh.objNameFunc(obj))
obj, err := dh.addFinalizerFunc(obj, api_v1.FinalizerOrphan) obj, err := dh.addFinalizerFunc(obj, metav1.FinalizerOrphan)
if err != nil { if err != nil {
return obj, err return obj, err
} }
...@@ -120,7 +120,7 @@ func (dh *DeletionHelper) HandleObjectInUnderlyingClusters(obj runtime.Object) ( ...@@ -120,7 +120,7 @@ func (dh *DeletionHelper) HandleObjectInUnderlyingClusters(obj runtime.Object) (
glog.V(2).Infof("obj does not have %s finalizer. Nothing to do", FinalizerDeleteFromUnderlyingClusters) glog.V(2).Infof("obj does not have %s finalizer. Nothing to do", FinalizerDeleteFromUnderlyingClusters)
return obj, nil return obj, nil
} }
hasOrphanFinalizer := dh.hasFinalizerFunc(obj, api_v1.FinalizerOrphan) hasOrphanFinalizer := dh.hasFinalizerFunc(obj, metav1.FinalizerOrphan)
if hasOrphanFinalizer { if hasOrphanFinalizer {
glog.V(2).Infof("Found finalizer orphan. Nothing to do, just remove the finalizer") glog.V(2).Infof("Found finalizer orphan. Nothing to do, just remove the finalizer")
// If the obj has FinalizerOrphan finalizer, then we need to orphan the // If the obj has FinalizerOrphan finalizer, then we need to orphan the
...@@ -130,7 +130,7 @@ func (dh *DeletionHelper) HandleObjectInUnderlyingClusters(obj runtime.Object) ( ...@@ -130,7 +130,7 @@ func (dh *DeletionHelper) HandleObjectInUnderlyingClusters(obj runtime.Object) (
if err != nil { if err != nil {
return obj, err return obj, err
} }
return dh.removeFinalizerFunc(obj, api_v1.FinalizerOrphan) return dh.removeFinalizerFunc(obj, metav1.FinalizerOrphan)
} }
glog.V(2).Infof("Deleting obj %s from underlying clusters", objName) glog.V(2).Infof("Deleting obj %s from underlying clusters", objName)
......
...@@ -19,6 +19,7 @@ go_library( ...@@ -19,6 +19,7 @@ go_library(
"//pkg/genericapiserver/registry/generic:go_default_library", "//pkg/genericapiserver/registry/generic:go_default_library",
"//pkg/genericapiserver/registry/generic/registry:go_default_library", "//pkg/genericapiserver/registry/generic/registry:go_default_library",
"//pkg/genericapiserver/registry/rest:go_default_library", "//pkg/genericapiserver/registry/rest:go_default_library",
"//pkg/registry/cachesize:go_default_library",
"//vendor:k8s.io/apimachinery/pkg/runtime", "//vendor:k8s.io/apimachinery/pkg/runtime",
"//vendor:k8s.io/apiserver/pkg/endpoints/request", "//vendor:k8s.io/apiserver/pkg/endpoints/request",
], ],
......
...@@ -25,6 +25,7 @@ import ( ...@@ -25,6 +25,7 @@ import (
"k8s.io/kubernetes/pkg/genericapiserver/registry/generic" "k8s.io/kubernetes/pkg/genericapiserver/registry/generic"
genericregistry "k8s.io/kubernetes/pkg/genericapiserver/registry/generic/registry" genericregistry "k8s.io/kubernetes/pkg/genericapiserver/registry/generic/registry"
"k8s.io/kubernetes/pkg/genericapiserver/registry/rest" "k8s.io/kubernetes/pkg/genericapiserver/registry/rest"
"k8s.io/kubernetes/pkg/registry/cachesize"
) )
type REST struct { type REST struct {
...@@ -55,6 +56,7 @@ func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) { ...@@ -55,6 +56,7 @@ func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) {
}, },
PredicateFunc: cluster.MatchCluster, PredicateFunc: cluster.MatchCluster,
QualifiedResource: federation.Resource("clusters"), QualifiedResource: federation.Resource("clusters"),
WatchCacheSize: cachesize.GetWatchCacheSizeByResource("clusters"),
CreateStrategy: cluster.Strategy, CreateStrategy: cluster.Strategy,
UpdateStrategy: cluster.Strategy, UpdateStrategy: cluster.Strategy,
......
...@@ -98,6 +98,7 @@ filegroup( ...@@ -98,6 +98,7 @@ filegroup(
"//pkg/securitycontext:all-srcs", "//pkg/securitycontext:all-srcs",
"//pkg/serviceaccount:all-srcs", "//pkg/serviceaccount:all-srcs",
"//pkg/ssh:all-srcs", "//pkg/ssh:all-srcs",
"//pkg/storage/errors:all-srcs",
"//pkg/storage/etcd:all-srcs", "//pkg/storage/etcd:all-srcs",
"//pkg/storage/etcd3:all-srcs", "//pkg/storage/etcd3:all-srcs",
"//pkg/storage/storagebackend/factory:all-srcs", "//pkg/storage/storagebackend/factory:all-srcs",
......
...@@ -22,9 +22,6 @@ filegroup( ...@@ -22,9 +22,6 @@ filegroup(
filegroup( filegroup(
name = "all-srcs", name = "all-srcs",
srcs = [ srcs = [":package-srcs"],
":package-srcs",
"//pkg/api/errors/storage:all-srcs",
],
tags = ["automanaged"], tags = ["automanaged"],
) )
...@@ -244,7 +244,7 @@ func IsServiceIPRequested(service *Service) bool { ...@@ -244,7 +244,7 @@ func IsServiceIPRequested(service *Service) bool {
var standardFinalizers = sets.NewString( var standardFinalizers = sets.NewString(
string(FinalizerKubernetes), string(FinalizerKubernetes),
FinalizerOrphan, metav1.FinalizerOrphan,
) )
// HasAnnotation returns a bool if passed in annotation exists // HasAnnotation returns a bool if passed in annotation exists
......
...@@ -2798,10 +2798,10 @@ type NamespaceSpec struct { ...@@ -2798,10 +2798,10 @@ type NamespaceSpec struct {
// FinalizerName is the name identifying a finalizer during namespace lifecycle. // FinalizerName is the name identifying a finalizer during namespace lifecycle.
type FinalizerName string type FinalizerName string
// These are internal finalizer values to Kubernetes, must be qualified name unless defined here // These are internal finalizer values to Kubernetes, must be qualified name unless defined here or
// in metav1.
const ( const (
FinalizerKubernetes FinalizerName = "kubernetes" FinalizerKubernetes FinalizerName = "kubernetes"
FinalizerOrphan string = "orphan"
) )
// NamespaceStatus is information about the current status of a Namespace. // NamespaceStatus is information about the current status of a Namespace.
......
...@@ -21,6 +21,7 @@ import ( ...@@ -21,6 +21,7 @@ import (
"fmt" "fmt"
"strings" "strings"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/labels" "k8s.io/apimachinery/pkg/labels"
"k8s.io/apimachinery/pkg/selection" "k8s.io/apimachinery/pkg/selection"
"k8s.io/apimachinery/pkg/types" "k8s.io/apimachinery/pkg/types"
...@@ -82,7 +83,7 @@ func IsServiceIPRequested(service *Service) bool { ...@@ -82,7 +83,7 @@ func IsServiceIPRequested(service *Service) bool {
var standardFinalizers = sets.NewString( var standardFinalizers = sets.NewString(
string(FinalizerKubernetes), string(FinalizerKubernetes),
FinalizerOrphan, metav1.FinalizerOrphan,
) )
func IsStandardFinalizerName(str string) bool { func IsStandardFinalizerName(str string) bool {
......
...@@ -3220,10 +3220,10 @@ type NodeList struct { ...@@ -3220,10 +3220,10 @@ type NodeList struct {
// FinalizerName is the name identifying a finalizer during namespace lifecycle. // FinalizerName is the name identifying a finalizer during namespace lifecycle.
type FinalizerName string type FinalizerName string
// These are internal finalizer values to Kubernetes, must be qualified name unless defined here // These are internal finalizer values to Kubernetes, must be qualified name unless defined here or
// in metav1.
const ( const (
FinalizerKubernetes FinalizerName = "kubernetes" FinalizerKubernetes FinalizerName = "kubernetes"
FinalizerOrphan string = "orphan"
) )
// NamespaceSpec describes the attributes on a Namespace. // NamespaceSpec describes the attributes on a Namespace.
......
...@@ -18,7 +18,6 @@ go_library( ...@@ -18,7 +18,6 @@ go_library(
], ],
tags = ["automanaged"], tags = ["automanaged"],
deps = [ deps = [
"//pkg/api/v1:go_default_library",
"//pkg/controller/garbagecollector/metaonly:go_default_library", "//pkg/controller/garbagecollector/metaonly:go_default_library",
"//pkg/util/metrics:go_default_library", "//pkg/util/metrics:go_default_library",
"//vendor:github.com/golang/glog", "//vendor:github.com/golang/glog",
......
...@@ -39,7 +39,6 @@ import ( ...@@ -39,7 +39,6 @@ import (
"k8s.io/client-go/tools/cache" "k8s.io/client-go/tools/cache"
"k8s.io/client-go/util/clock" "k8s.io/client-go/util/clock"
"k8s.io/client-go/util/workqueue" "k8s.io/client-go/util/workqueue"
"k8s.io/kubernetes/pkg/api/v1"
"k8s.io/kubernetes/pkg/controller/garbagecollector/metaonly" "k8s.io/kubernetes/pkg/controller/garbagecollector/metaonly"
// import known versions // import known versions
...@@ -235,7 +234,7 @@ func shouldOrphanDependents(e *event, accessor metav1.Object) bool { ...@@ -235,7 +234,7 @@ func shouldOrphanDependents(e *event, accessor metav1.Object) bool {
} }
finalizers := accessor.GetFinalizers() finalizers := accessor.GetFinalizers()
for _, finalizer := range finalizers { for _, finalizer := range finalizers {
if finalizer == v1.FinalizerOrphan { if finalizer == metav1.FinalizerOrphan {
return true return true
} }
} }
...@@ -280,7 +279,7 @@ func (gc *GarbageCollector) removeOrphanFinalizer(owner *node) error { ...@@ -280,7 +279,7 @@ func (gc *GarbageCollector) removeOrphanFinalizer(owner *node) error {
var newFinalizers []string var newFinalizers []string
found := false found := false
for _, f := range finalizers { for _, f := range finalizers {
if f == v1.FinalizerOrphan { if f == metav1.FinalizerOrphan {
found = true found = true
break break
} else { } else {
......
...@@ -18,11 +18,9 @@ go_library( ...@@ -18,11 +18,9 @@ go_library(
], ],
tags = ["automanaged"], tags = ["automanaged"],
deps = [ deps = [
"//pkg/api:go_default_library",
"//pkg/api/errors/storage:go_default_library",
"//pkg/genericapiserver/registry/generic:go_default_library", "//pkg/genericapiserver/registry/generic:go_default_library",
"//pkg/genericapiserver/registry/rest:go_default_library", "//pkg/genericapiserver/registry/rest:go_default_library",
"//pkg/registry/cachesize:go_default_library", "//pkg/storage/errors:go_default_library",
"//pkg/storage/etcd:go_default_library", "//pkg/storage/etcd:go_default_library",
"//pkg/storage/storagebackend/factory:go_default_library", "//pkg/storage/storagebackend/factory:go_default_library",
"//vendor:github.com/golang/glog", "//vendor:github.com/golang/glog",
...@@ -54,11 +52,8 @@ go_test( ...@@ -54,11 +52,8 @@ go_test(
library = ":go_default_library", library = ":go_default_library",
tags = ["automanaged"], tags = ["automanaged"],
deps = [ deps = [
"//pkg/api:go_default_library",
"//pkg/api/testapi:go_default_library",
"//pkg/genericapiserver/registry/generic:go_default_library", "//pkg/genericapiserver/registry/generic:go_default_library",
"//pkg/genericapiserver/registry/rest:go_default_library", "//pkg/genericapiserver/registry/rest:go_default_library",
"//pkg/registry/core/pod:go_default_library",
"//pkg/storage/etcd:go_default_library", "//pkg/storage/etcd:go_default_library",
"//pkg/storage/etcd/testing:go_default_library", "//pkg/storage/etcd/testing:go_default_library",
"//pkg/storage/storagebackend/factory:go_default_library", "//pkg/storage/storagebackend/factory:go_default_library",
...@@ -66,15 +61,19 @@ go_test( ...@@ -66,15 +61,19 @@ go_test(
"//vendor:k8s.io/apimachinery/pkg/api/equality", "//vendor:k8s.io/apimachinery/pkg/api/equality",
"//vendor:k8s.io/apimachinery/pkg/api/errors", "//vendor:k8s.io/apimachinery/pkg/api/errors",
"//vendor:k8s.io/apimachinery/pkg/api/meta", "//vendor:k8s.io/apimachinery/pkg/api/meta",
"//vendor:k8s.io/apimachinery/pkg/api/testing",
"//vendor:k8s.io/apimachinery/pkg/apis/meta/internalversion", "//vendor:k8s.io/apimachinery/pkg/apis/meta/internalversion",
"//vendor:k8s.io/apimachinery/pkg/apis/meta/v1", "//vendor:k8s.io/apimachinery/pkg/apis/meta/v1",
"//vendor:k8s.io/apimachinery/pkg/fields", "//vendor:k8s.io/apimachinery/pkg/fields",
"//vendor:k8s.io/apimachinery/pkg/labels", "//vendor:k8s.io/apimachinery/pkg/labels",
"//vendor:k8s.io/apimachinery/pkg/runtime", "//vendor:k8s.io/apimachinery/pkg/runtime",
"//vendor:k8s.io/apimachinery/pkg/runtime/serializer",
"//vendor:k8s.io/apimachinery/pkg/selection", "//vendor:k8s.io/apimachinery/pkg/selection",
"//vendor:k8s.io/apimachinery/pkg/util/validation/field", "//vendor:k8s.io/apimachinery/pkg/util/validation/field",
"//vendor:k8s.io/apimachinery/pkg/util/wait", "//vendor:k8s.io/apimachinery/pkg/util/wait",
"//vendor:k8s.io/apimachinery/pkg/watch", "//vendor:k8s.io/apimachinery/pkg/watch",
"//vendor:k8s.io/apiserver/pkg/apis/example",
"//vendor:k8s.io/apiserver/pkg/apis/example/v1",
"//vendor:k8s.io/apiserver/pkg/endpoints/request", "//vendor:k8s.io/apiserver/pkg/endpoints/request",
"//vendor:k8s.io/apiserver/pkg/storage", "//vendor:k8s.io/apiserver/pkg/storage",
"//vendor:k8s.io/apiserver/pkg/storage/names", "//vendor:k8s.io/apiserver/pkg/storage/names",
......
...@@ -25,23 +25,23 @@ import ( ...@@ -25,23 +25,23 @@ import (
"k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/util/wait" "k8s.io/apimachinery/pkg/util/wait"
"k8s.io/apimachinery/pkg/watch" "k8s.io/apimachinery/pkg/watch"
"k8s.io/kubernetes/pkg/api" "k8s.io/apiserver/pkg/apis/example"
) )
func TestDecoratedWatcher(t *testing.T) { func TestDecoratedWatcher(t *testing.T) {
w := watch.NewFake() w := watch.NewFake()
decorator := func(obj runtime.Object) error { decorator := func(obj runtime.Object) error {
pod := obj.(*api.Pod) pod := obj.(*example.Pod)
pod.Annotations = map[string]string{"decorated": "true"} pod.Annotations = map[string]string{"decorated": "true"}
return nil return nil
} }
dw := newDecoratedWatcher(w, decorator) dw := newDecoratedWatcher(w, decorator)
defer dw.Stop() defer dw.Stop()
go w.Add(&api.Pod{ObjectMeta: metav1.ObjectMeta{Name: "foo"}}) go w.Add(&example.Pod{ObjectMeta: metav1.ObjectMeta{Name: "foo"}})
select { select {
case e := <-dw.ResultChan(): case e := <-dw.ResultChan():
pod, ok := e.Object.(*api.Pod) pod, ok := e.Object.(*example.Pod)
if !ok { if !ok {
t.Errorf("Should received object of type *api.Pod, get type (%T)", e.Object) t.Errorf("Should received object of type *api.Pod, get type (%T)", e.Object)
return return
...@@ -63,7 +63,7 @@ func TestDecoratedWatcherError(t *testing.T) { ...@@ -63,7 +63,7 @@ func TestDecoratedWatcherError(t *testing.T) {
dw := newDecoratedWatcher(w, decorator) dw := newDecoratedWatcher(w, decorator)
defer dw.Stop() defer dw.Stop()
go w.Add(&api.Pod{ObjectMeta: metav1.ObjectMeta{Name: "foo"}}) go w.Add(&example.Pod{ObjectMeta: metav1.ObjectMeta{Name: "foo"}})
select { select {
case e := <-dw.ResultChan(): case e := <-dw.ResultChan():
if e.Type != watch.Error { if e.Type != watch.Error {
......
...@@ -37,15 +37,16 @@ import ( ...@@ -37,15 +37,16 @@ import (
"k8s.io/apimachinery/pkg/watch" "k8s.io/apimachinery/pkg/watch"
genericapirequest "k8s.io/apiserver/pkg/endpoints/request" genericapirequest "k8s.io/apiserver/pkg/endpoints/request"
"k8s.io/apiserver/pkg/storage" "k8s.io/apiserver/pkg/storage"
"k8s.io/kubernetes/pkg/api"
storeerr "k8s.io/kubernetes/pkg/api/errors/storage"
"k8s.io/kubernetes/pkg/genericapiserver/registry/generic" "k8s.io/kubernetes/pkg/genericapiserver/registry/generic"
"k8s.io/kubernetes/pkg/genericapiserver/registry/rest" "k8s.io/kubernetes/pkg/genericapiserver/registry/rest"
"k8s.io/kubernetes/pkg/registry/cachesize" storeerr "k8s.io/kubernetes/pkg/storage/errors"
"github.com/golang/glog" "github.com/golang/glog"
) )
// defaultWatchCacheSize is the default size of a watch catch per resource in number of entries.
const DefaultWatchCacheSize = 100
// ObjectFunc is a function to act on a given object. An error may be returned // ObjectFunc is a function to act on a given object. An error may be returned
// if the hook cannot be completed. An ObjectFunc may transform the provided // if the hook cannot be completed. An ObjectFunc may transform the provided
// object. // object.
...@@ -162,6 +163,10 @@ type Store struct { ...@@ -162,6 +163,10 @@ type Store struct {
Storage storage.Interface Storage storage.Interface
// Called to cleanup clients used by the underlying Storage; optional. // Called to cleanup clients used by the underlying Storage; optional.
DestroyFunc func() DestroyFunc func()
// Maximum size of the watch history cached in memory, in number of entries.
// A zero value here means that a default is used. This value is ignored if
// Storage is non-nil.
WatchCacheSize int
} }
// Note: the rest.StandardStorage interface aggregates the common REST verbs // Note: the rest.StandardStorage interface aggregates the common REST verbs
...@@ -546,7 +551,7 @@ func shouldUpdateFinalizers(e *Store, accessor metav1.Object, options *metav1.De ...@@ -546,7 +551,7 @@ func shouldUpdateFinalizers(e *Store, accessor metav1.Object, options *metav1.De
hasOrphanFinalizer := false hasOrphanFinalizer := false
finalizers := accessor.GetFinalizers() finalizers := accessor.GetFinalizers()
for _, f := range finalizers { for _, f := range finalizers {
if f == api.FinalizerOrphan { if f == metav1.FinalizerOrphan {
shouldOrphan = true shouldOrphan = true
hasOrphanFinalizer = true hasOrphanFinalizer = true
break break
...@@ -558,13 +563,13 @@ func shouldUpdateFinalizers(e *Store, accessor metav1.Object, options *metav1.De ...@@ -558,13 +563,13 @@ func shouldUpdateFinalizers(e *Store, accessor metav1.Object, options *metav1.De
shouldOrphan = *options.OrphanDependents shouldOrphan = *options.OrphanDependents
} }
if shouldOrphan && !hasOrphanFinalizer { if shouldOrphan && !hasOrphanFinalizer {
finalizers = append(finalizers, api.FinalizerOrphan) finalizers = append(finalizers, metav1.FinalizerOrphan)
return true, finalizers return true, finalizers
} }
if !shouldOrphan && hasOrphanFinalizer { if !shouldOrphan && hasOrphanFinalizer {
var newFinalizers []string var newFinalizers []string
for _, f := range finalizers { for _, f := range finalizers {
if f == api.FinalizerOrphan { if f == metav1.FinalizerOrphan {
continue continue
} }
newFinalizers = append(newFinalizers, f) newFinalizers = append(newFinalizers, f)
...@@ -1118,10 +1123,14 @@ func (e *Store) CompleteWithOptions(options *generic.StoreOptions) error { ...@@ -1118,10 +1123,14 @@ func (e *Store) CompleteWithOptions(options *generic.StoreOptions) error {
e.EnableGarbageCollection = opts.EnableGarbageCollection e.EnableGarbageCollection = opts.EnableGarbageCollection
if e.Storage == nil { if e.Storage == nil {
capacity := DefaultWatchCacheSize
if e.WatchCacheSize != 0 {
capacity = DefaultWatchCacheSize
}
e.Storage, e.DestroyFunc = opts.Decorator( e.Storage, e.DestroyFunc = opts.Decorator(
e.Copier, e.Copier,
opts.StorageConfig, opts.StorageConfig,
cachesize.GetWatchCacheSizeByResource(cachesize.Resource(e.QualifiedResource.Resource)), capacity,
e.NewFunc(), e.NewFunc(),
prefix, prefix,
keyFunc, keyFunc,
......
...@@ -19,9 +19,6 @@ go_test( ...@@ -19,9 +19,6 @@ go_test(
library = ":go_default_library", library = ":go_default_library",
tags = ["automanaged"], tags = ["automanaged"],
deps = [ deps = [
"//pkg/api:go_default_library",
"//pkg/api/testapi:go_default_library",
"//pkg/apis/extensions:go_default_library",
"//pkg/client/clientset_generated/clientset:go_default_library", "//pkg/client/clientset_generated/clientset:go_default_library",
"//pkg/generated/openapi:go_default_library", "//pkg/generated/openapi:go_default_library",
"//pkg/genericapiserver/registry/rest:go_default_library", "//pkg/genericapiserver/registry/rest:go_default_library",
...@@ -30,6 +27,8 @@ go_test( ...@@ -30,6 +27,8 @@ go_test(
"//vendor:github.com/stretchr/testify/assert", "//vendor:github.com/stretchr/testify/assert",
"//vendor:k8s.io/apimachinery/pkg/api/meta", "//vendor:k8s.io/apimachinery/pkg/api/meta",
"//vendor:k8s.io/apimachinery/pkg/apimachinery", "//vendor:k8s.io/apimachinery/pkg/apimachinery",
"//vendor:k8s.io/apimachinery/pkg/apimachinery/announced",
"//vendor:k8s.io/apimachinery/pkg/apimachinery/registered",
"//vendor:k8s.io/apimachinery/pkg/apis/meta/v1", "//vendor:k8s.io/apimachinery/pkg/apis/meta/v1",
"//vendor:k8s.io/apimachinery/pkg/runtime", "//vendor:k8s.io/apimachinery/pkg/runtime",
"//vendor:k8s.io/apimachinery/pkg/runtime/schema", "//vendor:k8s.io/apimachinery/pkg/runtime/schema",
...@@ -37,12 +36,16 @@ go_test( ...@@ -37,12 +36,16 @@ go_test(
"//vendor:k8s.io/apimachinery/pkg/util/net", "//vendor:k8s.io/apimachinery/pkg/util/net",
"//vendor:k8s.io/apimachinery/pkg/util/sets", "//vendor:k8s.io/apimachinery/pkg/util/sets",
"//vendor:k8s.io/apimachinery/pkg/version", "//vendor:k8s.io/apimachinery/pkg/version",
"//vendor:k8s.io/apiserver/pkg/apis/example",
"//vendor:k8s.io/apiserver/pkg/apis/example/install",
"//vendor:k8s.io/apiserver/pkg/apis/example/v1",
"//vendor:k8s.io/apiserver/pkg/authentication/user", "//vendor:k8s.io/apiserver/pkg/authentication/user",
"//vendor:k8s.io/apiserver/pkg/authorization/authorizer", "//vendor:k8s.io/apiserver/pkg/authorization/authorizer",
"//vendor:k8s.io/apiserver/pkg/endpoints/request", "//vendor:k8s.io/apiserver/pkg/endpoints/request",
"//vendor:k8s.io/apiserver/pkg/server/options", "//vendor:k8s.io/apiserver/pkg/server/options",
"//vendor:k8s.io/apiserver/pkg/storage/storagebackend", "//vendor:k8s.io/apiserver/pkg/storage/storagebackend",
"//vendor:k8s.io/apiserver/pkg/util/flag", "//vendor:k8s.io/apiserver/pkg/util/flag",
"//vendor:k8s.io/client-go/pkg/api",
"//vendor:k8s.io/client-go/util/cert", "//vendor:k8s.io/client-go/util/cert",
], ],
) )
...@@ -64,7 +67,6 @@ go_library( ...@@ -64,7 +67,6 @@ go_library(
], ],
tags = ["automanaged"], tags = ["automanaged"],
deps = [ deps = [
"//pkg/api:go_default_library",
"//pkg/genericapiserver/endpoints:go_default_library", "//pkg/genericapiserver/endpoints:go_default_library",
"//pkg/genericapiserver/endpoints/filters:go_default_library", "//pkg/genericapiserver/endpoints/filters:go_default_library",
"//pkg/genericapiserver/endpoints/openapi:go_default_library", "//pkg/genericapiserver/endpoints/openapi:go_default_library",
...@@ -80,10 +82,12 @@ go_library( ...@@ -80,10 +82,12 @@ go_library(
"//vendor:github.com/pkg/errors", "//vendor:github.com/pkg/errors",
"//vendor:gopkg.in/natefinch/lumberjack.v2", "//vendor:gopkg.in/natefinch/lumberjack.v2",
"//vendor:k8s.io/apimachinery/pkg/apimachinery", "//vendor:k8s.io/apimachinery/pkg/apimachinery",
"//vendor:k8s.io/apimachinery/pkg/apimachinery/registered",
"//vendor:k8s.io/apimachinery/pkg/apis/meta/v1", "//vendor:k8s.io/apimachinery/pkg/apis/meta/v1",
"//vendor:k8s.io/apimachinery/pkg/openapi", "//vendor:k8s.io/apimachinery/pkg/openapi",
"//vendor:k8s.io/apimachinery/pkg/runtime", "//vendor:k8s.io/apimachinery/pkg/runtime",
"//vendor:k8s.io/apimachinery/pkg/runtime/schema", "//vendor:k8s.io/apimachinery/pkg/runtime/schema",
"//vendor:k8s.io/apimachinery/pkg/runtime/serializer",
"//vendor:k8s.io/apimachinery/pkg/runtime/serializer/recognizer", "//vendor:k8s.io/apimachinery/pkg/runtime/serializer/recognizer",
"//vendor:k8s.io/apimachinery/pkg/util/net", "//vendor:k8s.io/apimachinery/pkg/util/net",
"//vendor:k8s.io/apimachinery/pkg/util/runtime", "//vendor:k8s.io/apimachinery/pkg/util/runtime",
......
...@@ -39,6 +39,7 @@ import ( ...@@ -39,6 +39,7 @@ import (
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
openapicommon "k8s.io/apimachinery/pkg/openapi" openapicommon "k8s.io/apimachinery/pkg/openapi"
"k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/runtime/serializer"
"k8s.io/apimachinery/pkg/util/sets" "k8s.io/apimachinery/pkg/util/sets"
"k8s.io/apimachinery/pkg/version" "k8s.io/apimachinery/pkg/version"
"k8s.io/apiserver/pkg/admission" "k8s.io/apiserver/pkg/admission"
...@@ -55,7 +56,6 @@ import ( ...@@ -55,7 +56,6 @@ import (
"k8s.io/apiserver/pkg/server/options" "k8s.io/apiserver/pkg/server/options"
restclient "k8s.io/client-go/rest" restclient "k8s.io/client-go/rest"
certutil "k8s.io/client-go/util/cert" certutil "k8s.io/client-go/util/cert"
"k8s.io/kubernetes/pkg/api"
genericapifilters "k8s.io/kubernetes/pkg/genericapiserver/endpoints/filters" genericapifilters "k8s.io/kubernetes/pkg/genericapiserver/endpoints/filters"
apiopenapi "k8s.io/kubernetes/pkg/genericapiserver/endpoints/openapi" apiopenapi "k8s.io/kubernetes/pkg/genericapiserver/endpoints/openapi"
"k8s.io/kubernetes/pkg/genericapiserver/server/mux" "k8s.io/kubernetes/pkg/genericapiserver/server/mux"
...@@ -192,7 +192,6 @@ type SecureServingInfo struct { ...@@ -192,7 +192,6 @@ type SecureServingInfo struct {
// NewConfig returns a Config struct with the default values // NewConfig returns a Config struct with the default values
func NewConfig() *Config { func NewConfig() *Config {
config := &Config{ config := &Config{
Serializer: api.Codecs,
ReadWritePort: 6443, ReadWritePort: 6443,
RequestContextMapper: apirequest.NewRequestContextMapper(), RequestContextMapper: apirequest.NewRequestContextMapper(),
BuildHandlerChainsFunc: DefaultBuildHandlerChain, BuildHandlerChainsFunc: DefaultBuildHandlerChain,
...@@ -213,8 +212,13 @@ func NewConfig() *Config { ...@@ -213,8 +212,13 @@ func NewConfig() *Config {
return config.ApplyOptions(defaultOptions) return config.ApplyOptions(defaultOptions)
} }
func DefaultOpenAPIConfig(getDefinitions openapicommon.GetOpenAPIDefinitions) *openapicommon.Config { func (c *Config) WithSerializer(codecs serializer.CodecFactory) *Config {
defNamer := apiopenapi.NewDefinitionNamer(api.Scheme) c.Serializer = codecs
return c
}
func DefaultOpenAPIConfig(getDefinitions openapicommon.GetOpenAPIDefinitions, scheme *runtime.Scheme) *openapicommon.Config {
defNamer := apiopenapi.NewDefinitionNamer(scheme)
return &openapicommon.Config{ return &openapicommon.Config{
ProtocolList: []string{"https"}, ProtocolList: []string{"https"},
IgnorePrefixes: []string{"/swaggerapi"}, IgnorePrefixes: []string{"/swaggerapi"},
......
...@@ -31,17 +31,18 @@ import ( ...@@ -31,17 +31,18 @@ import (
"github.com/golang/glog" "github.com/golang/glog"
"k8s.io/apimachinery/pkg/apimachinery" "k8s.io/apimachinery/pkg/apimachinery"
"k8s.io/apimachinery/pkg/apimachinery/registered"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
openapicommon "k8s.io/apimachinery/pkg/openapi" openapicommon "k8s.io/apimachinery/pkg/openapi"
"k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/runtime/schema"
"k8s.io/apimachinery/pkg/runtime/serializer"
utilnet "k8s.io/apimachinery/pkg/util/net" utilnet "k8s.io/apimachinery/pkg/util/net"
"k8s.io/apimachinery/pkg/util/sets" "k8s.io/apimachinery/pkg/util/sets"
"k8s.io/apiserver/pkg/admission" "k8s.io/apiserver/pkg/admission"
apirequest "k8s.io/apiserver/pkg/endpoints/request" apirequest "k8s.io/apiserver/pkg/endpoints/request"
"k8s.io/apiserver/pkg/server/healthz" "k8s.io/apiserver/pkg/server/healthz"
restclient "k8s.io/client-go/rest" restclient "k8s.io/client-go/rest"
"k8s.io/kubernetes/pkg/api"
genericapi "k8s.io/kubernetes/pkg/genericapiserver/endpoints" genericapi "k8s.io/kubernetes/pkg/genericapiserver/endpoints"
"k8s.io/kubernetes/pkg/genericapiserver/registry/rest" "k8s.io/kubernetes/pkg/genericapiserver/registry/rest"
genericmux "k8s.io/kubernetes/pkg/genericapiserver/server/mux" genericmux "k8s.io/kubernetes/pkg/genericapiserver/server/mux"
...@@ -376,15 +377,15 @@ func (s *GenericAPIServer) DynamicApisDiscovery() *restful.WebService { ...@@ -376,15 +377,15 @@ func (s *GenericAPIServer) DynamicApisDiscovery() *restful.WebService {
// NewDefaultAPIGroupInfo returns an APIGroupInfo stubbed with "normal" values // NewDefaultAPIGroupInfo returns an APIGroupInfo stubbed with "normal" values
// exposed for easier composition from other packages // exposed for easier composition from other packages
func NewDefaultAPIGroupInfo(group string) APIGroupInfo { func NewDefaultAPIGroupInfo(group string, registry *registered.APIRegistrationManager, scheme *runtime.Scheme, parameterCodec runtime.ParameterCodec, codecs serializer.CodecFactory) APIGroupInfo {
groupMeta := api.Registry.GroupOrDie(group) groupMeta := registry.GroupOrDie(group)
return APIGroupInfo{ return APIGroupInfo{
GroupMeta: *groupMeta, GroupMeta: *groupMeta,
VersionedResourcesStorageMap: map[string]map[string]rest.Storage{}, VersionedResourcesStorageMap: map[string]map[string]rest.Storage{},
OptionsExternalVersion: &api.Registry.GroupOrDie(api.GroupName).GroupVersion, OptionsExternalVersion: &registry.GroupOrDie("").GroupVersion,
Scheme: api.Scheme, Scheme: scheme,
ParameterCodec: api.ParameterCodec, ParameterCodec: parameterCodec,
NegotiatedSerializer: api.Codecs, NegotiatedSerializer: codecs,
} }
} }
...@@ -41,10 +41,12 @@ import ( ...@@ -41,10 +41,12 @@ import (
utilnet "k8s.io/apimachinery/pkg/util/net" utilnet "k8s.io/apimachinery/pkg/util/net"
"k8s.io/apimachinery/pkg/util/sets" "k8s.io/apimachinery/pkg/util/sets"
"k8s.io/apimachinery/pkg/version" "k8s.io/apimachinery/pkg/version"
"k8s.io/apiserver/pkg/apis/example"
examplev1 "k8s.io/apiserver/pkg/apis/example/v1"
"k8s.io/apiserver/pkg/authentication/user" "k8s.io/apiserver/pkg/authentication/user"
"k8s.io/apiserver/pkg/authorization/authorizer" "k8s.io/apiserver/pkg/authorization/authorizer"
genericapirequest "k8s.io/apiserver/pkg/endpoints/request" genericapirequest "k8s.io/apiserver/pkg/endpoints/request"
"k8s.io/kubernetes/pkg/api/testapi" "k8s.io/client-go/pkg/api"
openapigen "k8s.io/kubernetes/pkg/generated/openapi" openapigen "k8s.io/kubernetes/pkg/generated/openapi"
"k8s.io/kubernetes/pkg/genericapiserver/registry/rest" "k8s.io/kubernetes/pkg/genericapiserver/registry/rest"
etcdtesting "k8s.io/kubernetes/pkg/storage/etcd/testing" etcdtesting "k8s.io/kubernetes/pkg/storage/etcd/testing"
...@@ -71,18 +73,20 @@ func init() { ...@@ -71,18 +73,20 @@ func init() {
&metav1.APIGroup{}, &metav1.APIGroup{},
&metav1.APIResourceList{}, &metav1.APIResourceList{},
) )
example.AddToScheme(scheme)
examplev1.AddToScheme(scheme)
} }
// setUp is a convience function for setting up for (most) tests. // setUp is a convience function for setting up for (most) tests.
func setUp(t *testing.T) (*etcdtesting.EtcdTestServer, Config, *assert.Assertions) { func setUp(t *testing.T) (*etcdtesting.EtcdTestServer, Config, *assert.Assertions) {
etcdServer, _ := etcdtesting.NewUnsecuredEtcd3TestClientServer(t, scheme) etcdServer, _ := etcdtesting.NewUnsecuredEtcd3TestClientServer(t, scheme)
config := NewConfig() config := NewConfig().WithSerializer(codecs)
config.PublicAddress = net.ParseIP("192.168.10.4") config.PublicAddress = net.ParseIP("192.168.10.4")
config.RequestContextMapper = genericapirequest.NewRequestContextMapper() config.RequestContextMapper = genericapirequest.NewRequestContextMapper()
config.LegacyAPIGroupPrefixes = sets.NewString("/api") config.LegacyAPIGroupPrefixes = sets.NewString("/api")
config.OpenAPIConfig = DefaultOpenAPIConfig(openapigen.GetOpenAPIDefinitions) config.OpenAPIConfig = DefaultOpenAPIConfig(openapigen.GetOpenAPIDefinitions, api.Scheme)
config.OpenAPIConfig.Info = &spec.Info{ config.OpenAPIConfig.Info = &spec.Info{
InfoProps: spec.InfoProps{ InfoProps: spec.InfoProps{
Title: "Kubernetes", Title: "Kubernetes",
...@@ -483,8 +487,8 @@ func TestDiscoveryAtAPIS(t *testing.T) { ...@@ -483,8 +487,8 @@ func TestDiscoveryAtAPIS(t *testing.T) {
// Add a Group. // Add a Group.
extensionsVersions := []metav1.GroupVersionForDiscovery{ extensionsVersions := []metav1.GroupVersionForDiscovery{
{ {
GroupVersion: testapi.Extensions.GroupVersion().String(), GroupVersion: examplev1.SchemeGroupVersion.String(),
Version: testapi.Extensions.GroupVersion().Version, Version: examplev1.SchemeGroupVersion.Version,
}, },
} }
extensionsPreferredVersion := metav1.GroupVersionForDiscovery{ extensionsPreferredVersion := metav1.GroupVersionForDiscovery{
......
...@@ -17,9 +17,9 @@ limitations under the License. ...@@ -17,9 +17,9 @@ limitations under the License.
package server package server
import ( import (
"k8s.io/apimachinery/pkg/apimachinery/registered"
"k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/runtime/schema"
"k8s.io/kubernetes/pkg/api"
) )
type ResourceEncodingConfig interface { type ResourceEncodingConfig interface {
...@@ -33,7 +33,8 @@ type ResourceEncodingConfig interface { ...@@ -33,7 +33,8 @@ type ResourceEncodingConfig interface {
} }
type DefaultResourceEncodingConfig struct { type DefaultResourceEncodingConfig struct {
Groups map[string]*GroupResourceEncodingConfig groups map[string]*GroupResourceEncodingConfig
registry *registered.APIRegistrationManager
} }
type GroupResourceEncodingConfig struct { type GroupResourceEncodingConfig struct {
...@@ -46,8 +47,8 @@ type GroupResourceEncodingConfig struct { ...@@ -46,8 +47,8 @@ type GroupResourceEncodingConfig struct {
var _ ResourceEncodingConfig = &DefaultResourceEncodingConfig{} var _ ResourceEncodingConfig = &DefaultResourceEncodingConfig{}
func NewDefaultResourceEncodingConfig() *DefaultResourceEncodingConfig { func NewDefaultResourceEncodingConfig(registry *registered.APIRegistrationManager) *DefaultResourceEncodingConfig {
return &DefaultResourceEncodingConfig{Groups: map[string]*GroupResourceEncodingConfig{}} return &DefaultResourceEncodingConfig{groups: map[string]*GroupResourceEncodingConfig{}, registry: registry}
} }
func newGroupResourceEncodingConfig(defaultEncoding, defaultInternalVersion schema.GroupVersion) *GroupResourceEncodingConfig { func newGroupResourceEncodingConfig(defaultEncoding, defaultInternalVersion schema.GroupVersion) *GroupResourceEncodingConfig {
...@@ -58,33 +59,33 @@ func newGroupResourceEncodingConfig(defaultEncoding, defaultInternalVersion sche ...@@ -58,33 +59,33 @@ func newGroupResourceEncodingConfig(defaultEncoding, defaultInternalVersion sche
} }
func (o *DefaultResourceEncodingConfig) SetVersionEncoding(group string, externalEncodingVersion, internalVersion schema.GroupVersion) { func (o *DefaultResourceEncodingConfig) SetVersionEncoding(group string, externalEncodingVersion, internalVersion schema.GroupVersion) {
_, groupExists := o.Groups[group] _, groupExists := o.groups[group]
if !groupExists { if !groupExists {
o.Groups[group] = newGroupResourceEncodingConfig(externalEncodingVersion, internalVersion) o.groups[group] = newGroupResourceEncodingConfig(externalEncodingVersion, internalVersion)
} }
o.Groups[group].DefaultExternalEncoding = externalEncodingVersion o.groups[group].DefaultExternalEncoding = externalEncodingVersion
o.Groups[group].DefaultInternalEncoding = internalVersion o.groups[group].DefaultInternalEncoding = internalVersion
} }
func (o *DefaultResourceEncodingConfig) SetResourceEncoding(resourceBeingStored schema.GroupResource, externalEncodingVersion, internalVersion schema.GroupVersion) { func (o *DefaultResourceEncodingConfig) SetResourceEncoding(resourceBeingStored schema.GroupResource, externalEncodingVersion, internalVersion schema.GroupVersion) {
group := resourceBeingStored.Group group := resourceBeingStored.Group
_, groupExists := o.Groups[group] _, groupExists := o.groups[group]
if !groupExists { if !groupExists {
o.Groups[group] = newGroupResourceEncodingConfig(externalEncodingVersion, internalVersion) o.groups[group] = newGroupResourceEncodingConfig(externalEncodingVersion, internalVersion)
} }
o.Groups[group].ExternalResourceEncodings[resourceBeingStored.Resource] = externalEncodingVersion o.groups[group].ExternalResourceEncodings[resourceBeingStored.Resource] = externalEncodingVersion
o.Groups[group].InternalResourceEncodings[resourceBeingStored.Resource] = internalVersion o.groups[group].InternalResourceEncodings[resourceBeingStored.Resource] = internalVersion
} }
func (o *DefaultResourceEncodingConfig) StorageEncodingFor(resource schema.GroupResource) (schema.GroupVersion, error) { func (o *DefaultResourceEncodingConfig) StorageEncodingFor(resource schema.GroupResource) (schema.GroupVersion, error) {
groupMeta, err := api.Registry.Group(resource.Group) groupMeta, err := o.registry.Group(resource.Group)
if err != nil { if err != nil {
return schema.GroupVersion{}, err return schema.GroupVersion{}, err
} }
groupEncoding, groupExists := o.Groups[resource.Group] groupEncoding, groupExists := o.groups[resource.Group]
if !groupExists { if !groupExists {
// return the most preferred external version for the group // return the most preferred external version for the group
...@@ -100,11 +101,11 @@ func (o *DefaultResourceEncodingConfig) StorageEncodingFor(resource schema.Group ...@@ -100,11 +101,11 @@ func (o *DefaultResourceEncodingConfig) StorageEncodingFor(resource schema.Group
} }
func (o *DefaultResourceEncodingConfig) InMemoryEncodingFor(resource schema.GroupResource) (schema.GroupVersion, error) { func (o *DefaultResourceEncodingConfig) InMemoryEncodingFor(resource schema.GroupResource) (schema.GroupVersion, error) {
if _, err := api.Registry.Group(resource.Group); err != nil { if _, err := o.registry.Group(resource.Group); err != nil {
return schema.GroupVersion{}, err return schema.GroupVersion{}, err
} }
groupEncoding, groupExists := o.Groups[resource.Group] groupEncoding, groupExists := o.groups[resource.Group]
if !groupExists { if !groupExists {
return schema.GroupVersion{Group: resource.Group, Version: runtime.APIVersionInternal}, nil return schema.GroupVersion{Group: resource.Group, Version: runtime.APIVersionInternal}, nil
} }
......
...@@ -17,17 +17,30 @@ limitations under the License. ...@@ -17,17 +17,30 @@ limitations under the License.
package server package server
import ( import (
"os"
"reflect" "reflect"
"testing" "testing"
"k8s.io/apimachinery/pkg/apimachinery/announced"
"k8s.io/apimachinery/pkg/apimachinery/registered"
"k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/runtime/schema"
"k8s.io/apiserver/pkg/apis/example"
exampleinstall "k8s.io/apiserver/pkg/apis/example/install"
examplev1 "k8s.io/apiserver/pkg/apis/example/v1"
"k8s.io/apiserver/pkg/server/options" "k8s.io/apiserver/pkg/server/options"
"k8s.io/apiserver/pkg/storage/storagebackend" "k8s.io/apiserver/pkg/storage/storagebackend"
"k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/apis/extensions"
) )
var (
registry = registered.NewOrDie(os.Getenv("KUBE_API_VERSIONS"))
announce = make(announced.APIGroupFactoryRegistry)
)
func init() {
exampleinstall.Install(announce, registry, scheme)
}
type fakeNegotiater struct { type fakeNegotiater struct {
serializer, streamSerializer runtime.Serializer serializer, streamSerializer runtime.Serializer
framer runtime.Framer framer runtime.Framer
...@@ -66,18 +79,18 @@ func (n *fakeNegotiater) DecoderToVersion(serializer runtime.Decoder, gv runtime ...@@ -66,18 +79,18 @@ func (n *fakeNegotiater) DecoderToVersion(serializer runtime.Decoder, gv runtime
func TestDefaultStorageFactory(t *testing.T) { func TestDefaultStorageFactory(t *testing.T) {
ns := &fakeNegotiater{types: []string{"test/test"}} ns := &fakeNegotiater{types: []string{"test/test"}}
f := NewDefaultStorageFactory(storagebackend.Config{}, "test/test", ns, NewDefaultResourceEncodingConfig(), NewResourceConfig()) f := NewDefaultStorageFactory(storagebackend.Config{}, "test/test", ns, NewDefaultResourceEncodingConfig(registry), NewResourceConfig())
f.AddCohabitatingResources(schema.GroupResource{Resource: "test"}, schema.GroupResource{Resource: "test2", Group: "2"}) f.AddCohabitatingResources(example.Resource("test"), schema.GroupResource{Resource: "test2", Group: "2"})
called := false called := false
testEncoderChain := func(e runtime.Encoder) runtime.Encoder { testEncoderChain := func(e runtime.Encoder) runtime.Encoder {
called = true called = true
return e return e
} }
f.AddSerializationChains(testEncoderChain, nil, schema.GroupResource{Resource: "test"}) f.AddSerializationChains(testEncoderChain, nil, example.Resource("test"))
f.SetEtcdLocation(schema.GroupResource{Resource: "*"}, []string{"/server2"}) f.SetEtcdLocation(example.Resource("*"), []string{"/server2"})
f.SetEtcdPrefix(schema.GroupResource{Resource: "test"}, "/prefix_for_test") f.SetEtcdPrefix(example.Resource("test"), "/prefix_for_test")
config, err := f.NewConfig(schema.GroupResource{Resource: "test"}) config, err := f.NewConfig(example.Resource("test"))
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
} }
...@@ -90,20 +103,24 @@ func TestDefaultStorageFactory(t *testing.T) { ...@@ -90,20 +103,24 @@ func TestDefaultStorageFactory(t *testing.T) {
} }
func TestUpdateEtcdOverrides(t *testing.T) { func TestUpdateEtcdOverrides(t *testing.T) {
registry := registered.NewOrDie(os.Getenv("KUBE_API_VERSIONS"))
announced := make(announced.APIGroupFactoryRegistry)
exampleinstall.Install(announced, registry, scheme)
testCases := []struct { testCases := []struct {
resource schema.GroupResource resource schema.GroupResource
servers []string servers []string
}{ }{
{ {
resource: schema.GroupResource{Group: api.GroupName, Resource: "resource"}, resource: schema.GroupResource{Group: example.GroupName, Resource: "resource"},
servers: []string{"http://127.0.0.1:10000"}, servers: []string{"http://127.0.0.1:10000"},
}, },
{ {
resource: schema.GroupResource{Group: api.GroupName, Resource: "resource"}, resource: schema.GroupResource{Group: example.GroupName, Resource: "resource"},
servers: []string{"http://127.0.0.1:10000", "http://127.0.0.1:20000"}, servers: []string{"http://127.0.0.1:10000", "http://127.0.0.1:20000"},
}, },
{ {
resource: schema.GroupResource{Group: extensions.GroupName, Resource: "resource"}, resource: schema.GroupResource{Group: example.GroupName, Resource: "resource"},
servers: []string{"http://127.0.0.1:10000"}, servers: []string{"http://127.0.0.1:10000"},
}, },
} }
...@@ -115,7 +132,7 @@ func TestUpdateEtcdOverrides(t *testing.T) { ...@@ -115,7 +132,7 @@ func TestUpdateEtcdOverrides(t *testing.T) {
ServerList: defaultEtcdLocation, ServerList: defaultEtcdLocation,
Copier: scheme, Copier: scheme,
} }
storageFactory := NewDefaultStorageFactory(defaultConfig, "", api.Codecs, NewDefaultResourceEncodingConfig(), NewResourceConfig()) storageFactory := NewDefaultStorageFactory(defaultConfig, "", codecs, NewDefaultResourceEncodingConfig(registry), NewResourceConfig())
storageFactory.SetEtcdLocation(test.resource, test.servers) storageFactory.SetEtcdLocation(test.resource, test.servers)
var err error var err error
...@@ -129,7 +146,7 @@ func TestUpdateEtcdOverrides(t *testing.T) { ...@@ -129,7 +146,7 @@ func TestUpdateEtcdOverrides(t *testing.T) {
continue continue
} }
config, err = storageFactory.NewConfig(schema.GroupResource{Group: api.GroupName, Resource: "unlikely"}) config, err = storageFactory.NewConfig(schema.GroupResource{Group: examplev1.GroupName, Resource: "unlikely"})
if err != nil { if err != nil {
t.Errorf("%d: unexpected error %v", i, err) t.Errorf("%d: unexpected error %v", i, err)
continue continue
......
...@@ -27,6 +27,7 @@ import ( ...@@ -27,6 +27,7 @@ import (
"net/http/httptest" "net/http/httptest"
"testing" "testing"
"k8s.io/kubernetes/pkg/api"
openapigen "k8s.io/kubernetes/pkg/generated/openapi" openapigen "k8s.io/kubernetes/pkg/generated/openapi"
genericapiserver "k8s.io/kubernetes/pkg/genericapiserver/server" genericapiserver "k8s.io/kubernetes/pkg/genericapiserver/server"
...@@ -43,7 +44,7 @@ func TestValidOpenAPISpec(t *testing.T) { ...@@ -43,7 +44,7 @@ func TestValidOpenAPISpec(t *testing.T) {
defer etcdserver.Terminate(t) defer etcdserver.Terminate(t)
config.GenericConfig.EnableIndex = true config.GenericConfig.EnableIndex = true
config.GenericConfig.OpenAPIConfig = genericapiserver.DefaultOpenAPIConfig(openapigen.GetOpenAPIDefinitions) config.GenericConfig.OpenAPIConfig = genericapiserver.DefaultOpenAPIConfig(openapigen.GetOpenAPIDefinitions, api.Scheme)
config.GenericConfig.OpenAPIConfig.Info = &spec.Info{ config.GenericConfig.OpenAPIConfig.Info = &spec.Info{
InfoProps: spec.InfoProps{ InfoProps: spec.InfoProps{
Title: "Kubernetes", Title: "Kubernetes",
......
...@@ -62,13 +62,13 @@ func setUp(t *testing.T) (*Master, *etcdtesting.EtcdTestServer, Config, *assert. ...@@ -62,13 +62,13 @@ func setUp(t *testing.T) (*Master, *etcdtesting.EtcdTestServer, Config, *assert.
server, storageConfig := etcdtesting.NewUnsecuredEtcd3TestClientServer(t, api.Scheme) server, storageConfig := etcdtesting.NewUnsecuredEtcd3TestClientServer(t, api.Scheme)
config := &Config{ config := &Config{
GenericConfig: genericapiserver.NewConfig(), GenericConfig: genericapiserver.NewConfig().WithSerializer(api.Codecs),
APIResourceConfigSource: DefaultAPIResourceConfigSource(), APIResourceConfigSource: DefaultAPIResourceConfigSource(),
APIServerServicePort: 443, APIServerServicePort: 443,
MasterCount: 1, MasterCount: 1,
} }
resourceEncoding := genericapiserver.NewDefaultResourceEncodingConfig() resourceEncoding := genericapiserver.NewDefaultResourceEncodingConfig(api.Registry)
resourceEncoding.SetVersionEncoding(api.GroupName, api.Registry.GroupOrDie(api.GroupName).GroupVersion, schema.GroupVersion{Group: api.GroupName, Version: runtime.APIVersionInternal}) resourceEncoding.SetVersionEncoding(api.GroupName, api.Registry.GroupOrDie(api.GroupName).GroupVersion, schema.GroupVersion{Group: api.GroupName, Version: runtime.APIVersionInternal})
resourceEncoding.SetVersionEncoding(autoscaling.GroupName, *testapi.Autoscaling.GroupVersion(), schema.GroupVersion{Group: autoscaling.GroupName, Version: runtime.APIVersionInternal}) resourceEncoding.SetVersionEncoding(autoscaling.GroupName, *testapi.Autoscaling.GroupVersion(), schema.GroupVersion{Group: autoscaling.GroupName, Version: runtime.APIVersionInternal})
resourceEncoding.SetVersionEncoding(batch.GroupName, *testapi.Batch.GroupVersion(), schema.GroupVersion{Group: batch.GroupName, Version: runtime.APIVersionInternal}) resourceEncoding.SetVersionEncoding(batch.GroupName, *testapi.Batch.GroupVersion(), schema.GroupVersion{Group: batch.GroupName, Version: runtime.APIVersionInternal})
......
...@@ -38,6 +38,7 @@ go_library( ...@@ -38,6 +38,7 @@ go_library(
"//pkg/genericapiserver/registry/generic/registry:go_default_library", "//pkg/genericapiserver/registry/generic/registry:go_default_library",
"//pkg/genericapiserver/registry/rest:go_default_library", "//pkg/genericapiserver/registry/rest:go_default_library",
"//pkg/registry/apps/petset:go_default_library", "//pkg/registry/apps/petset:go_default_library",
"//pkg/registry/cachesize:go_default_library",
"//vendor:k8s.io/apimachinery/pkg/apis/meta/v1", "//vendor:k8s.io/apimachinery/pkg/apis/meta/v1",
"//vendor:k8s.io/apimachinery/pkg/runtime", "//vendor:k8s.io/apimachinery/pkg/runtime",
"//vendor:k8s.io/apiserver/pkg/endpoints/request", "//vendor:k8s.io/apiserver/pkg/endpoints/request",
......
...@@ -26,6 +26,7 @@ import ( ...@@ -26,6 +26,7 @@ import (
genericregistry "k8s.io/kubernetes/pkg/genericapiserver/registry/generic/registry" genericregistry "k8s.io/kubernetes/pkg/genericapiserver/registry/generic/registry"
"k8s.io/kubernetes/pkg/genericapiserver/registry/rest" "k8s.io/kubernetes/pkg/genericapiserver/registry/rest"
"k8s.io/kubernetes/pkg/registry/apps/petset" "k8s.io/kubernetes/pkg/registry/apps/petset"
"k8s.io/kubernetes/pkg/registry/cachesize"
) )
// rest implements a RESTStorage for replication controllers against etcd // rest implements a RESTStorage for replication controllers against etcd
...@@ -44,6 +45,7 @@ func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) { ...@@ -44,6 +45,7 @@ func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) {
}, },
PredicateFunc: petset.MatchStatefulSet, PredicateFunc: petset.MatchStatefulSet,
QualifiedResource: appsapi.Resource("statefulsets"), QualifiedResource: appsapi.Resource("statefulsets"),
WatchCacheSize: cachesize.GetWatchCacheSizeByResource("statefulsets"),
CreateStrategy: petset.Strategy, CreateStrategy: petset.Strategy,
UpdateStrategy: petset.Strategy, UpdateStrategy: petset.Strategy,
......
...@@ -12,6 +12,7 @@ go_library( ...@@ -12,6 +12,7 @@ go_library(
srcs = ["storage_apps.go"], srcs = ["storage_apps.go"],
tags = ["automanaged"], tags = ["automanaged"],
deps = [ deps = [
"//pkg/api:go_default_library",
"//pkg/apis/apps:go_default_library", "//pkg/apis/apps:go_default_library",
"//pkg/apis/apps/v1beta1:go_default_library", "//pkg/apis/apps/v1beta1:go_default_library",
"//pkg/genericapiserver/registry/generic:go_default_library", "//pkg/genericapiserver/registry/generic:go_default_library",
......
...@@ -17,6 +17,7 @@ limitations under the License. ...@@ -17,6 +17,7 @@ limitations under the License.
package rest package rest
import ( import (
"k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/apis/apps" "k8s.io/kubernetes/pkg/apis/apps"
appsapiv1beta1 "k8s.io/kubernetes/pkg/apis/apps/v1beta1" appsapiv1beta1 "k8s.io/kubernetes/pkg/apis/apps/v1beta1"
"k8s.io/kubernetes/pkg/genericapiserver/registry/generic" "k8s.io/kubernetes/pkg/genericapiserver/registry/generic"
...@@ -28,7 +29,7 @@ import ( ...@@ -28,7 +29,7 @@ import (
type RESTStorageProvider struct{} type RESTStorageProvider struct{}
func (p RESTStorageProvider) NewRESTStorage(apiResourceConfigSource genericapiserver.APIResourceConfigSource, restOptionsGetter generic.RESTOptionsGetter) (genericapiserver.APIGroupInfo, bool) { func (p RESTStorageProvider) NewRESTStorage(apiResourceConfigSource genericapiserver.APIResourceConfigSource, restOptionsGetter generic.RESTOptionsGetter) (genericapiserver.APIGroupInfo, bool) {
apiGroupInfo := genericapiserver.NewDefaultAPIGroupInfo(apps.GroupName) apiGroupInfo := genericapiserver.NewDefaultAPIGroupInfo(apps.GroupName, api.Registry, api.Scheme, api.ParameterCodec, api.Codecs)
if apiResourceConfigSource.AnyResourcesForVersionEnabled(appsapiv1beta1.SchemeGroupVersion) { if apiResourceConfigSource.AnyResourcesForVersionEnabled(appsapiv1beta1.SchemeGroupVersion) {
apiGroupInfo.VersionedResourcesStorageMap[appsapiv1beta1.SchemeGroupVersion.Version] = p.v1beta1Storage(apiResourceConfigSource, restOptionsGetter) apiGroupInfo.VersionedResourcesStorageMap[appsapiv1beta1.SchemeGroupVersion.Version] = p.v1beta1Storage(apiResourceConfigSource, restOptionsGetter)
......
...@@ -12,6 +12,7 @@ go_library( ...@@ -12,6 +12,7 @@ go_library(
srcs = ["storage_authentication.go"], srcs = ["storage_authentication.go"],
tags = ["automanaged"], tags = ["automanaged"],
deps = [ deps = [
"//pkg/api:go_default_library",
"//pkg/apis/authentication:go_default_library", "//pkg/apis/authentication:go_default_library",
"//pkg/apis/authentication/v1beta1:go_default_library", "//pkg/apis/authentication/v1beta1:go_default_library",
"//pkg/genericapiserver/registry/generic:go_default_library", "//pkg/genericapiserver/registry/generic:go_default_library",
......
...@@ -18,6 +18,7 @@ package rest ...@@ -18,6 +18,7 @@ package rest
import ( import (
"k8s.io/apiserver/pkg/authentication/authenticator" "k8s.io/apiserver/pkg/authentication/authenticator"
"k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/apis/authentication" "k8s.io/kubernetes/pkg/apis/authentication"
authenticationv1beta1 "k8s.io/kubernetes/pkg/apis/authentication/v1beta1" authenticationv1beta1 "k8s.io/kubernetes/pkg/apis/authentication/v1beta1"
"k8s.io/kubernetes/pkg/genericapiserver/registry/generic" "k8s.io/kubernetes/pkg/genericapiserver/registry/generic"
...@@ -36,7 +37,7 @@ func (p RESTStorageProvider) NewRESTStorage(apiResourceConfigSource genericapise ...@@ -36,7 +37,7 @@ func (p RESTStorageProvider) NewRESTStorage(apiResourceConfigSource genericapise
// return genericapiserver.APIGroupInfo{}, false // return genericapiserver.APIGroupInfo{}, false
// } // }
apiGroupInfo := genericapiserver.NewDefaultAPIGroupInfo(authentication.GroupName) apiGroupInfo := genericapiserver.NewDefaultAPIGroupInfo(authentication.GroupName, api.Registry, api.Scheme, api.ParameterCodec, api.Codecs)
if apiResourceConfigSource.AnyResourcesForVersionEnabled(authenticationv1beta1.SchemeGroupVersion) { if apiResourceConfigSource.AnyResourcesForVersionEnabled(authenticationv1beta1.SchemeGroupVersion) {
apiGroupInfo.VersionedResourcesStorageMap[authenticationv1beta1.SchemeGroupVersion.Version] = p.v1beta1Storage(apiResourceConfigSource, restOptionsGetter) apiGroupInfo.VersionedResourcesStorageMap[authenticationv1beta1.SchemeGroupVersion.Version] = p.v1beta1Storage(apiResourceConfigSource, restOptionsGetter)
......
...@@ -12,6 +12,7 @@ go_library( ...@@ -12,6 +12,7 @@ go_library(
srcs = ["storage_authorization.go"], srcs = ["storage_authorization.go"],
tags = ["automanaged"], tags = ["automanaged"],
deps = [ deps = [
"//pkg/api:go_default_library",
"//pkg/apis/authorization:go_default_library", "//pkg/apis/authorization:go_default_library",
"//pkg/apis/authorization/v1beta1:go_default_library", "//pkg/apis/authorization/v1beta1:go_default_library",
"//pkg/genericapiserver/registry/generic:go_default_library", "//pkg/genericapiserver/registry/generic:go_default_library",
......
...@@ -18,6 +18,7 @@ package rest ...@@ -18,6 +18,7 @@ package rest
import ( import (
"k8s.io/apiserver/pkg/authorization/authorizer" "k8s.io/apiserver/pkg/authorization/authorizer"
"k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/apis/authorization" "k8s.io/kubernetes/pkg/apis/authorization"
authorizationv1beta1 "k8s.io/kubernetes/pkg/apis/authorization/v1beta1" authorizationv1beta1 "k8s.io/kubernetes/pkg/apis/authorization/v1beta1"
"k8s.io/kubernetes/pkg/genericapiserver/registry/generic" "k8s.io/kubernetes/pkg/genericapiserver/registry/generic"
...@@ -37,7 +38,7 @@ func (p RESTStorageProvider) NewRESTStorage(apiResourceConfigSource genericapise ...@@ -37,7 +38,7 @@ func (p RESTStorageProvider) NewRESTStorage(apiResourceConfigSource genericapise
return genericapiserver.APIGroupInfo{}, false return genericapiserver.APIGroupInfo{}, false
} }
apiGroupInfo := genericapiserver.NewDefaultAPIGroupInfo(authorization.GroupName) apiGroupInfo := genericapiserver.NewDefaultAPIGroupInfo(authorization.GroupName, api.Registry, api.Scheme, api.ParameterCodec, api.Codecs)
if apiResourceConfigSource.AnyResourcesForVersionEnabled(authorizationv1beta1.SchemeGroupVersion) { if apiResourceConfigSource.AnyResourcesForVersionEnabled(authorizationv1beta1.SchemeGroupVersion) {
apiGroupInfo.VersionedResourcesStorageMap[authorizationv1beta1.SchemeGroupVersion.Version] = p.v1beta1Storage(apiResourceConfigSource, restOptionsGetter) apiGroupInfo.VersionedResourcesStorageMap[authorizationv1beta1.SchemeGroupVersion.Version] = p.v1beta1Storage(apiResourceConfigSource, restOptionsGetter)
......
...@@ -37,6 +37,7 @@ go_library( ...@@ -37,6 +37,7 @@ go_library(
"//pkg/genericapiserver/registry/generic/registry:go_default_library", "//pkg/genericapiserver/registry/generic/registry:go_default_library",
"//pkg/genericapiserver/registry/rest:go_default_library", "//pkg/genericapiserver/registry/rest:go_default_library",
"//pkg/registry/autoscaling/horizontalpodautoscaler:go_default_library", "//pkg/registry/autoscaling/horizontalpodautoscaler:go_default_library",
"//pkg/registry/cachesize:go_default_library",
"//vendor:k8s.io/apimachinery/pkg/apis/meta/v1", "//vendor:k8s.io/apimachinery/pkg/apis/meta/v1",
"//vendor:k8s.io/apimachinery/pkg/runtime", "//vendor:k8s.io/apimachinery/pkg/runtime",
"//vendor:k8s.io/apiserver/pkg/endpoints/request", "//vendor:k8s.io/apiserver/pkg/endpoints/request",
......
...@@ -26,6 +26,7 @@ import ( ...@@ -26,6 +26,7 @@ import (
genericregistry "k8s.io/kubernetes/pkg/genericapiserver/registry/generic/registry" genericregistry "k8s.io/kubernetes/pkg/genericapiserver/registry/generic/registry"
"k8s.io/kubernetes/pkg/genericapiserver/registry/rest" "k8s.io/kubernetes/pkg/genericapiserver/registry/rest"
"k8s.io/kubernetes/pkg/registry/autoscaling/horizontalpodautoscaler" "k8s.io/kubernetes/pkg/registry/autoscaling/horizontalpodautoscaler"
"k8s.io/kubernetes/pkg/registry/cachesize"
) )
type REST struct { type REST struct {
...@@ -43,6 +44,7 @@ func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) { ...@@ -43,6 +44,7 @@ func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) {
}, },
PredicateFunc: horizontalpodautoscaler.MatchAutoscaler, PredicateFunc: horizontalpodautoscaler.MatchAutoscaler,
QualifiedResource: autoscaling.Resource("horizontalpodautoscalers"), QualifiedResource: autoscaling.Resource("horizontalpodautoscalers"),
WatchCacheSize: cachesize.GetWatchCacheSizeByResource("horizontalpodautoscalers"),
CreateStrategy: horizontalpodautoscaler.Strategy, CreateStrategy: horizontalpodautoscaler.Strategy,
UpdateStrategy: horizontalpodautoscaler.Strategy, UpdateStrategy: horizontalpodautoscaler.Strategy,
......
...@@ -12,6 +12,7 @@ go_library( ...@@ -12,6 +12,7 @@ go_library(
srcs = ["storage_autoscaling.go"], srcs = ["storage_autoscaling.go"],
tags = ["automanaged"], tags = ["automanaged"],
deps = [ deps = [
"//pkg/api:go_default_library",
"//pkg/apis/autoscaling:go_default_library", "//pkg/apis/autoscaling:go_default_library",
"//pkg/apis/autoscaling/v1:go_default_library", "//pkg/apis/autoscaling/v1:go_default_library",
"//pkg/genericapiserver/registry/generic:go_default_library", "//pkg/genericapiserver/registry/generic:go_default_library",
......
...@@ -17,6 +17,7 @@ limitations under the License. ...@@ -17,6 +17,7 @@ limitations under the License.
package rest package rest
import ( import (
"k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/apis/autoscaling" "k8s.io/kubernetes/pkg/apis/autoscaling"
autoscalingapiv1 "k8s.io/kubernetes/pkg/apis/autoscaling/v1" autoscalingapiv1 "k8s.io/kubernetes/pkg/apis/autoscaling/v1"
"k8s.io/kubernetes/pkg/genericapiserver/registry/generic" "k8s.io/kubernetes/pkg/genericapiserver/registry/generic"
...@@ -28,7 +29,7 @@ import ( ...@@ -28,7 +29,7 @@ import (
type RESTStorageProvider struct{} type RESTStorageProvider struct{}
func (p RESTStorageProvider) NewRESTStorage(apiResourceConfigSource genericapiserver.APIResourceConfigSource, restOptionsGetter generic.RESTOptionsGetter) (genericapiserver.APIGroupInfo, bool) { func (p RESTStorageProvider) NewRESTStorage(apiResourceConfigSource genericapiserver.APIResourceConfigSource, restOptionsGetter generic.RESTOptionsGetter) (genericapiserver.APIGroupInfo, bool) {
apiGroupInfo := genericapiserver.NewDefaultAPIGroupInfo(autoscaling.GroupName) apiGroupInfo := genericapiserver.NewDefaultAPIGroupInfo(autoscaling.GroupName, api.Registry, api.Scheme, api.ParameterCodec, api.Codecs)
if apiResourceConfigSource.AnyResourcesForVersionEnabled(autoscalingapiv1.SchemeGroupVersion) { if apiResourceConfigSource.AnyResourcesForVersionEnabled(autoscalingapiv1.SchemeGroupVersion) {
apiGroupInfo.VersionedResourcesStorageMap[autoscalingapiv1.SchemeGroupVersion.Version] = p.v1Storage(apiResourceConfigSource, restOptionsGetter) apiGroupInfo.VersionedResourcesStorageMap[autoscalingapiv1.SchemeGroupVersion.Version] = p.v1Storage(apiResourceConfigSource, restOptionsGetter)
......
...@@ -39,6 +39,7 @@ go_library( ...@@ -39,6 +39,7 @@ go_library(
"//pkg/genericapiserver/registry/generic/registry:go_default_library", "//pkg/genericapiserver/registry/generic/registry:go_default_library",
"//pkg/genericapiserver/registry/rest:go_default_library", "//pkg/genericapiserver/registry/rest:go_default_library",
"//pkg/registry/batch/cronjob:go_default_library", "//pkg/registry/batch/cronjob:go_default_library",
"//pkg/registry/cachesize:go_default_library",
"//vendor:k8s.io/apimachinery/pkg/apis/meta/v1", "//vendor:k8s.io/apimachinery/pkg/apis/meta/v1",
"//vendor:k8s.io/apimachinery/pkg/runtime", "//vendor:k8s.io/apimachinery/pkg/runtime",
"//vendor:k8s.io/apiserver/pkg/endpoints/request", "//vendor:k8s.io/apiserver/pkg/endpoints/request",
......
...@@ -26,6 +26,7 @@ import ( ...@@ -26,6 +26,7 @@ import (
genericregistry "k8s.io/kubernetes/pkg/genericapiserver/registry/generic/registry" genericregistry "k8s.io/kubernetes/pkg/genericapiserver/registry/generic/registry"
"k8s.io/kubernetes/pkg/genericapiserver/registry/rest" "k8s.io/kubernetes/pkg/genericapiserver/registry/rest"
"k8s.io/kubernetes/pkg/registry/batch/cronjob" "k8s.io/kubernetes/pkg/registry/batch/cronjob"
"k8s.io/kubernetes/pkg/registry/cachesize"
) )
// REST implements a RESTStorage for scheduled jobs against etcd // REST implements a RESTStorage for scheduled jobs against etcd
...@@ -44,6 +45,7 @@ func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) { ...@@ -44,6 +45,7 @@ func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) {
}, },
PredicateFunc: cronjob.MatchCronJob, PredicateFunc: cronjob.MatchCronJob,
QualifiedResource: batch.Resource("cronjobs"), QualifiedResource: batch.Resource("cronjobs"),
WatchCacheSize: cachesize.GetWatchCacheSizeByResource("cronjobs"),
CreateStrategy: cronjob.Strategy, CreateStrategy: cronjob.Strategy,
UpdateStrategy: cronjob.Strategy, UpdateStrategy: cronjob.Strategy,
......
...@@ -37,6 +37,7 @@ go_library( ...@@ -37,6 +37,7 @@ go_library(
"//pkg/genericapiserver/registry/generic/registry:go_default_library", "//pkg/genericapiserver/registry/generic/registry:go_default_library",
"//pkg/genericapiserver/registry/rest:go_default_library", "//pkg/genericapiserver/registry/rest:go_default_library",
"//pkg/registry/batch/job:go_default_library", "//pkg/registry/batch/job:go_default_library",
"//pkg/registry/cachesize:go_default_library",
"//vendor:k8s.io/apimachinery/pkg/apis/meta/v1", "//vendor:k8s.io/apimachinery/pkg/apis/meta/v1",
"//vendor:k8s.io/apimachinery/pkg/runtime", "//vendor:k8s.io/apimachinery/pkg/runtime",
"//vendor:k8s.io/apiserver/pkg/endpoints/request", "//vendor:k8s.io/apiserver/pkg/endpoints/request",
......
...@@ -26,6 +26,7 @@ import ( ...@@ -26,6 +26,7 @@ import (
genericregistry "k8s.io/kubernetes/pkg/genericapiserver/registry/generic/registry" genericregistry "k8s.io/kubernetes/pkg/genericapiserver/registry/generic/registry"
"k8s.io/kubernetes/pkg/genericapiserver/registry/rest" "k8s.io/kubernetes/pkg/genericapiserver/registry/rest"
"k8s.io/kubernetes/pkg/registry/batch/job" "k8s.io/kubernetes/pkg/registry/batch/job"
"k8s.io/kubernetes/pkg/registry/cachesize"
) )
// JobStorage includes dummy storage for Job. // JobStorage includes dummy storage for Job.
...@@ -59,6 +60,7 @@ func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) { ...@@ -59,6 +60,7 @@ func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) {
}, },
PredicateFunc: job.MatchJob, PredicateFunc: job.MatchJob,
QualifiedResource: batch.Resource("jobs"), QualifiedResource: batch.Resource("jobs"),
WatchCacheSize: cachesize.GetWatchCacheSizeByResource("jobs"),
CreateStrategy: job.Strategy, CreateStrategy: job.Strategy,
UpdateStrategy: job.Strategy, UpdateStrategy: job.Strategy,
......
...@@ -12,6 +12,7 @@ go_library( ...@@ -12,6 +12,7 @@ go_library(
srcs = ["storage_batch.go"], srcs = ["storage_batch.go"],
tags = ["automanaged"], tags = ["automanaged"],
deps = [ deps = [
"//pkg/api:go_default_library",
"//pkg/apis/batch:go_default_library", "//pkg/apis/batch:go_default_library",
"//pkg/apis/batch/v1:go_default_library", "//pkg/apis/batch/v1:go_default_library",
"//pkg/apis/batch/v2alpha1:go_default_library", "//pkg/apis/batch/v2alpha1:go_default_library",
......
...@@ -18,6 +18,7 @@ package rest ...@@ -18,6 +18,7 @@ package rest
import ( import (
"k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/runtime/schema"
"k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/apis/batch" "k8s.io/kubernetes/pkg/apis/batch"
batchapiv1 "k8s.io/kubernetes/pkg/apis/batch/v1" batchapiv1 "k8s.io/kubernetes/pkg/apis/batch/v1"
batchapiv2alpha1 "k8s.io/kubernetes/pkg/apis/batch/v2alpha1" batchapiv2alpha1 "k8s.io/kubernetes/pkg/apis/batch/v2alpha1"
...@@ -31,7 +32,7 @@ import ( ...@@ -31,7 +32,7 @@ import (
type RESTStorageProvider struct{} type RESTStorageProvider struct{}
func (p RESTStorageProvider) NewRESTStorage(apiResourceConfigSource genericapiserver.APIResourceConfigSource, restOptionsGetter generic.RESTOptionsGetter) (genericapiserver.APIGroupInfo, bool) { func (p RESTStorageProvider) NewRESTStorage(apiResourceConfigSource genericapiserver.APIResourceConfigSource, restOptionsGetter generic.RESTOptionsGetter) (genericapiserver.APIGroupInfo, bool) {
apiGroupInfo := genericapiserver.NewDefaultAPIGroupInfo(batch.GroupName) apiGroupInfo := genericapiserver.NewDefaultAPIGroupInfo(batch.GroupName, api.Registry, api.Scheme, api.ParameterCodec, api.Codecs)
if apiResourceConfigSource.AnyResourcesForVersionEnabled(batchapiv2alpha1.SchemeGroupVersion) { if apiResourceConfigSource.AnyResourcesForVersionEnabled(batchapiv2alpha1.SchemeGroupVersion) {
apiGroupInfo.VersionedResourcesStorageMap[batchapiv2alpha1.SchemeGroupVersion.Version] = p.v2alpha1Storage(apiResourceConfigSource, restOptionsGetter) apiGroupInfo.VersionedResourcesStorageMap[batchapiv2alpha1.SchemeGroupVersion.Version] = p.v2alpha1Storage(apiResourceConfigSource, restOptionsGetter)
......
...@@ -11,7 +11,10 @@ go_library( ...@@ -11,7 +11,10 @@ go_library(
name = "go_default_library", name = "go_default_library",
srcs = ["cachesize.go"], srcs = ["cachesize.go"],
tags = ["automanaged"], tags = ["automanaged"],
deps = ["//vendor:github.com/golang/glog"], deps = [
"//pkg/genericapiserver/registry/generic/registry:go_default_library",
"//vendor:github.com/golang/glog",
],
) )
filegroup( filegroup(
......
...@@ -23,6 +23,8 @@ import ( ...@@ -23,6 +23,8 @@ import (
"strings" "strings"
"github.com/golang/glog" "github.com/golang/glog"
"k8s.io/kubernetes/pkg/genericapiserver/registry/generic/registry"
) )
type Resource string type Resource string
...@@ -60,9 +62,6 @@ const ( ...@@ -60,9 +62,6 @@ const (
ServiceAccounts Resource = "serviceaccounts" ServiceAccounts Resource = "serviceaccounts"
Services Resource = "services" Services Resource = "services"
StorageClasses Resource = "storageclasses" StorageClasses Resource = "storageclasses"
// Default value of watch cache size for a resource if not specified.
defaultWatchCacheSize = 100
) )
// TODO: This shouldn't be a global variable. // TODO: This shouldn't be a global variable.
...@@ -112,11 +111,11 @@ func SetWatchCacheSizes(cacheSizes []string) { ...@@ -112,11 +111,11 @@ func SetWatchCacheSizes(cacheSizes []string) {
} }
} }
func GetWatchCacheSizeByResource(resource Resource) int { // TODO this should use schema.GroupResource for lookups func GetWatchCacheSizeByResource(resource string) int { // TODO this should use schema.GroupResource for lookups
if value, found := watchCacheSizes[resource]; found { if value, found := watchCacheSizes[Resource(resource)]; found {
return value return value
} }
return defaultWatchCacheSize return registry.DefaultWatchCacheSize
} }
func maxInt(a, b int) int { func maxInt(a, b int) int {
......
...@@ -17,6 +17,7 @@ go_library( ...@@ -17,6 +17,7 @@ go_library(
"//pkg/genericapiserver/registry/generic:go_default_library", "//pkg/genericapiserver/registry/generic:go_default_library",
"//pkg/genericapiserver/registry/generic/registry:go_default_library", "//pkg/genericapiserver/registry/generic/registry:go_default_library",
"//pkg/genericapiserver/registry/rest:go_default_library", "//pkg/genericapiserver/registry/rest:go_default_library",
"//pkg/registry/cachesize:go_default_library",
"//pkg/registry/certificates/certificates:go_default_library", "//pkg/registry/certificates/certificates:go_default_library",
"//vendor:k8s.io/apimachinery/pkg/runtime", "//vendor:k8s.io/apimachinery/pkg/runtime",
"//vendor:k8s.io/apiserver/pkg/endpoints/request", "//vendor:k8s.io/apiserver/pkg/endpoints/request",
......
...@@ -24,6 +24,7 @@ import ( ...@@ -24,6 +24,7 @@ import (
"k8s.io/kubernetes/pkg/genericapiserver/registry/generic" "k8s.io/kubernetes/pkg/genericapiserver/registry/generic"
genericregistry "k8s.io/kubernetes/pkg/genericapiserver/registry/generic/registry" genericregistry "k8s.io/kubernetes/pkg/genericapiserver/registry/generic/registry"
"k8s.io/kubernetes/pkg/genericapiserver/registry/rest" "k8s.io/kubernetes/pkg/genericapiserver/registry/rest"
"k8s.io/kubernetes/pkg/registry/cachesize"
csrregistry "k8s.io/kubernetes/pkg/registry/certificates/certificates" csrregistry "k8s.io/kubernetes/pkg/registry/certificates/certificates"
) )
...@@ -43,6 +44,7 @@ func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST, *Approva ...@@ -43,6 +44,7 @@ func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST, *Approva
}, },
PredicateFunc: csrregistry.Matcher, PredicateFunc: csrregistry.Matcher,
QualifiedResource: certificates.Resource("certificatesigningrequests"), QualifiedResource: certificates.Resource("certificatesigningrequests"),
WatchCacheSize: cachesize.GetWatchCacheSizeByResource("certificatesigningrequests"),
CreateStrategy: csrregistry.Strategy, CreateStrategy: csrregistry.Strategy,
UpdateStrategy: csrregistry.Strategy, UpdateStrategy: csrregistry.Strategy,
......
...@@ -12,6 +12,7 @@ go_library( ...@@ -12,6 +12,7 @@ go_library(
srcs = ["storage_certificates.go"], srcs = ["storage_certificates.go"],
tags = ["automanaged"], tags = ["automanaged"],
deps = [ deps = [
"//pkg/api:go_default_library",
"//pkg/apis/certificates:go_default_library", "//pkg/apis/certificates:go_default_library",
"//pkg/apis/certificates/v1beta1:go_default_library", "//pkg/apis/certificates/v1beta1:go_default_library",
"//pkg/genericapiserver/registry/generic:go_default_library", "//pkg/genericapiserver/registry/generic:go_default_library",
......
...@@ -17,6 +17,7 @@ limitations under the License. ...@@ -17,6 +17,7 @@ limitations under the License.
package rest package rest
import ( import (
"k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/apis/certificates" "k8s.io/kubernetes/pkg/apis/certificates"
certificatesapiv1beta1 "k8s.io/kubernetes/pkg/apis/certificates/v1beta1" certificatesapiv1beta1 "k8s.io/kubernetes/pkg/apis/certificates/v1beta1"
"k8s.io/kubernetes/pkg/genericapiserver/registry/generic" "k8s.io/kubernetes/pkg/genericapiserver/registry/generic"
...@@ -28,7 +29,7 @@ import ( ...@@ -28,7 +29,7 @@ import (
type RESTStorageProvider struct{} type RESTStorageProvider struct{}
func (p RESTStorageProvider) NewRESTStorage(apiResourceConfigSource genericapiserver.APIResourceConfigSource, restOptionsGetter generic.RESTOptionsGetter) (genericapiserver.APIGroupInfo, bool) { func (p RESTStorageProvider) NewRESTStorage(apiResourceConfigSource genericapiserver.APIResourceConfigSource, restOptionsGetter generic.RESTOptionsGetter) (genericapiserver.APIGroupInfo, bool) {
apiGroupInfo := genericapiserver.NewDefaultAPIGroupInfo(certificates.GroupName) apiGroupInfo := genericapiserver.NewDefaultAPIGroupInfo(certificates.GroupName, api.Registry, api.Scheme, api.ParameterCodec, api.Codecs)
if apiResourceConfigSource.AnyResourcesForVersionEnabled(certificatesapiv1beta1.SchemeGroupVersion) { if apiResourceConfigSource.AnyResourcesForVersionEnabled(certificatesapiv1beta1.SchemeGroupVersion) {
apiGroupInfo.VersionedResourcesStorageMap[certificatesapiv1beta1.SchemeGroupVersion.Version] = p.v1beta1Storage(apiResourceConfigSource, restOptionsGetter) apiGroupInfo.VersionedResourcesStorageMap[certificatesapiv1beta1.SchemeGroupVersion.Version] = p.v1beta1Storage(apiResourceConfigSource, restOptionsGetter)
......
...@@ -33,6 +33,7 @@ go_library( ...@@ -33,6 +33,7 @@ go_library(
"//pkg/api:go_default_library", "//pkg/api:go_default_library",
"//pkg/genericapiserver/registry/generic:go_default_library", "//pkg/genericapiserver/registry/generic:go_default_library",
"//pkg/genericapiserver/registry/generic/registry:go_default_library", "//pkg/genericapiserver/registry/generic/registry:go_default_library",
"//pkg/registry/cachesize:go_default_library",
"//pkg/registry/core/configmap:go_default_library", "//pkg/registry/core/configmap:go_default_library",
"//vendor:k8s.io/apimachinery/pkg/runtime", "//vendor:k8s.io/apimachinery/pkg/runtime",
], ],
......
...@@ -21,6 +21,7 @@ import ( ...@@ -21,6 +21,7 @@ import (
"k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/genericapiserver/registry/generic" "k8s.io/kubernetes/pkg/genericapiserver/registry/generic"
genericregistry "k8s.io/kubernetes/pkg/genericapiserver/registry/generic/registry" genericregistry "k8s.io/kubernetes/pkg/genericapiserver/registry/generic/registry"
"k8s.io/kubernetes/pkg/registry/cachesize"
"k8s.io/kubernetes/pkg/registry/core/configmap" "k8s.io/kubernetes/pkg/registry/core/configmap"
) )
...@@ -40,6 +41,7 @@ func NewREST(optsGetter generic.RESTOptionsGetter) *REST { ...@@ -40,6 +41,7 @@ func NewREST(optsGetter generic.RESTOptionsGetter) *REST {
}, },
PredicateFunc: configmap.MatchConfigMap, PredicateFunc: configmap.MatchConfigMap,
QualifiedResource: api.Resource("configmaps"), QualifiedResource: api.Resource("configmaps"),
WatchCacheSize: cachesize.GetWatchCacheSizeByResource("configmaps"),
CreateStrategy: configmap.Strategy, CreateStrategy: configmap.Strategy,
UpdateStrategy: configmap.Strategy, UpdateStrategy: configmap.Strategy,
......
...@@ -33,6 +33,7 @@ go_library( ...@@ -33,6 +33,7 @@ go_library(
"//pkg/api:go_default_library", "//pkg/api:go_default_library",
"//pkg/genericapiserver/registry/generic:go_default_library", "//pkg/genericapiserver/registry/generic:go_default_library",
"//pkg/genericapiserver/registry/generic/registry:go_default_library", "//pkg/genericapiserver/registry/generic/registry:go_default_library",
"//pkg/registry/cachesize:go_default_library",
"//pkg/registry/core/endpoint:go_default_library", "//pkg/registry/core/endpoint:go_default_library",
"//vendor:k8s.io/apimachinery/pkg/runtime", "//vendor:k8s.io/apimachinery/pkg/runtime",
], ],
......
...@@ -21,6 +21,7 @@ import ( ...@@ -21,6 +21,7 @@ import (
"k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/genericapiserver/registry/generic" "k8s.io/kubernetes/pkg/genericapiserver/registry/generic"
genericregistry "k8s.io/kubernetes/pkg/genericapiserver/registry/generic/registry" genericregistry "k8s.io/kubernetes/pkg/genericapiserver/registry/generic/registry"
"k8s.io/kubernetes/pkg/registry/cachesize"
"k8s.io/kubernetes/pkg/registry/core/endpoint" "k8s.io/kubernetes/pkg/registry/core/endpoint"
) )
...@@ -39,6 +40,7 @@ func NewREST(optsGetter generic.RESTOptionsGetter) *REST { ...@@ -39,6 +40,7 @@ func NewREST(optsGetter generic.RESTOptionsGetter) *REST {
}, },
PredicateFunc: endpoint.MatchEndpoints, PredicateFunc: endpoint.MatchEndpoints,
QualifiedResource: api.Resource("endpoints"), QualifiedResource: api.Resource("endpoints"),
WatchCacheSize: cachesize.GetWatchCacheSizeByResource("endpoints"),
CreateStrategy: endpoint.Strategy, CreateStrategy: endpoint.Strategy,
UpdateStrategy: endpoint.Strategy, UpdateStrategy: endpoint.Strategy,
......
...@@ -31,6 +31,7 @@ go_library( ...@@ -31,6 +31,7 @@ go_library(
"//pkg/api:go_default_library", "//pkg/api:go_default_library",
"//pkg/genericapiserver/registry/generic:go_default_library", "//pkg/genericapiserver/registry/generic:go_default_library",
"//pkg/genericapiserver/registry/generic/registry:go_default_library", "//pkg/genericapiserver/registry/generic/registry:go_default_library",
"//pkg/registry/cachesize:go_default_library",
"//pkg/registry/core/event:go_default_library", "//pkg/registry/core/event:go_default_library",
"//vendor:k8s.io/apimachinery/pkg/runtime", "//vendor:k8s.io/apimachinery/pkg/runtime",
], ],
......
...@@ -21,6 +21,7 @@ import ( ...@@ -21,6 +21,7 @@ import (
"k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/genericapiserver/registry/generic" "k8s.io/kubernetes/pkg/genericapiserver/registry/generic"
genericregistry "k8s.io/kubernetes/pkg/genericapiserver/registry/generic/registry" genericregistry "k8s.io/kubernetes/pkg/genericapiserver/registry/generic/registry"
"k8s.io/kubernetes/pkg/registry/cachesize"
"k8s.io/kubernetes/pkg/registry/core/event" "k8s.io/kubernetes/pkg/registry/core/event"
) )
...@@ -52,6 +53,7 @@ func NewREST(optsGetter generic.RESTOptionsGetter, ttl uint64) *REST { ...@@ -52,6 +53,7 @@ func NewREST(optsGetter generic.RESTOptionsGetter, ttl uint64) *REST {
return ttl, nil return ttl, nil
}, },
QualifiedResource: resource, QualifiedResource: resource,
WatchCacheSize: cachesize.GetWatchCacheSizeByResource(resource.Resource),
CreateStrategy: event.Strategy, CreateStrategy: event.Strategy,
UpdateStrategy: event.Strategy, UpdateStrategy: event.Strategy,
......
...@@ -34,6 +34,7 @@ go_library( ...@@ -34,6 +34,7 @@ go_library(
"//pkg/api:go_default_library", "//pkg/api:go_default_library",
"//pkg/genericapiserver/registry/generic:go_default_library", "//pkg/genericapiserver/registry/generic:go_default_library",
"//pkg/genericapiserver/registry/generic/registry:go_default_library", "//pkg/genericapiserver/registry/generic/registry:go_default_library",
"//pkg/registry/cachesize:go_default_library",
"//pkg/registry/core/limitrange:go_default_library", "//pkg/registry/core/limitrange:go_default_library",
"//vendor:k8s.io/apimachinery/pkg/runtime", "//vendor:k8s.io/apimachinery/pkg/runtime",
], ],
......
...@@ -21,6 +21,7 @@ import ( ...@@ -21,6 +21,7 @@ import (
"k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/genericapiserver/registry/generic" "k8s.io/kubernetes/pkg/genericapiserver/registry/generic"
genericregistry "k8s.io/kubernetes/pkg/genericapiserver/registry/generic/registry" genericregistry "k8s.io/kubernetes/pkg/genericapiserver/registry/generic/registry"
"k8s.io/kubernetes/pkg/registry/cachesize"
"k8s.io/kubernetes/pkg/registry/core/limitrange" "k8s.io/kubernetes/pkg/registry/core/limitrange"
) )
...@@ -39,6 +40,7 @@ func NewREST(optsGetter generic.RESTOptionsGetter) *REST { ...@@ -39,6 +40,7 @@ func NewREST(optsGetter generic.RESTOptionsGetter) *REST {
}, },
PredicateFunc: limitrange.MatchLimitRange, PredicateFunc: limitrange.MatchLimitRange,
QualifiedResource: api.Resource("limitranges"), QualifiedResource: api.Resource("limitranges"),
WatchCacheSize: cachesize.GetWatchCacheSizeByResource("limitranges"),
CreateStrategy: limitrange.Strategy, CreateStrategy: limitrange.Strategy,
UpdateStrategy: limitrange.Strategy, UpdateStrategy: limitrange.Strategy,
......
...@@ -31,11 +31,12 @@ go_library( ...@@ -31,11 +31,12 @@ go_library(
tags = ["automanaged"], tags = ["automanaged"],
deps = [ deps = [
"//pkg/api:go_default_library", "//pkg/api:go_default_library",
"//pkg/api/errors/storage:go_default_library",
"//pkg/genericapiserver/registry/generic:go_default_library", "//pkg/genericapiserver/registry/generic:go_default_library",
"//pkg/genericapiserver/registry/generic/registry:go_default_library", "//pkg/genericapiserver/registry/generic/registry:go_default_library",
"//pkg/genericapiserver/registry/rest:go_default_library", "//pkg/genericapiserver/registry/rest:go_default_library",
"//pkg/registry/cachesize:go_default_library",
"//pkg/registry/core/namespace:go_default_library", "//pkg/registry/core/namespace:go_default_library",
"//pkg/storage/errors:go_default_library",
"//vendor:k8s.io/apimachinery/pkg/api/errors", "//vendor:k8s.io/apimachinery/pkg/api/errors",
"//vendor:k8s.io/apimachinery/pkg/apis/meta/v1", "//vendor:k8s.io/apimachinery/pkg/apis/meta/v1",
"//vendor:k8s.io/apimachinery/pkg/runtime", "//vendor:k8s.io/apimachinery/pkg/runtime",
......
...@@ -25,11 +25,12 @@ import ( ...@@ -25,11 +25,12 @@ import (
genericapirequest "k8s.io/apiserver/pkg/endpoints/request" genericapirequest "k8s.io/apiserver/pkg/endpoints/request"
"k8s.io/apiserver/pkg/storage" "k8s.io/apiserver/pkg/storage"
"k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api"
storageerr "k8s.io/kubernetes/pkg/api/errors/storage"
"k8s.io/kubernetes/pkg/genericapiserver/registry/generic" "k8s.io/kubernetes/pkg/genericapiserver/registry/generic"
genericregistry "k8s.io/kubernetes/pkg/genericapiserver/registry/generic/registry" genericregistry "k8s.io/kubernetes/pkg/genericapiserver/registry/generic/registry"
"k8s.io/kubernetes/pkg/genericapiserver/registry/rest" "k8s.io/kubernetes/pkg/genericapiserver/registry/rest"
"k8s.io/kubernetes/pkg/registry/cachesize"
"k8s.io/kubernetes/pkg/registry/core/namespace" "k8s.io/kubernetes/pkg/registry/core/namespace"
storageerr "k8s.io/kubernetes/pkg/storage/errors"
) )
// rest implements a RESTStorage for namespaces // rest implements a RESTStorage for namespaces
...@@ -59,6 +60,7 @@ func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST, *Finaliz ...@@ -59,6 +60,7 @@ func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST, *Finaliz
}, },
PredicateFunc: namespace.MatchNamespace, PredicateFunc: namespace.MatchNamespace,
QualifiedResource: api.Resource("namespaces"), QualifiedResource: api.Resource("namespaces"),
WatchCacheSize: cachesize.GetWatchCacheSizeByResource("namespaces"),
CreateStrategy: namespace.Strategy, CreateStrategy: namespace.Strategy,
UpdateStrategy: namespace.Strategy, UpdateStrategy: namespace.Strategy,
...@@ -141,7 +143,7 @@ func (r *REST) Delete(ctx genericapirequest.Context, name string, options *metav ...@@ -141,7 +143,7 @@ func (r *REST) Delete(ctx genericapirequest.Context, name string, options *metav
newFinalizers := []string{} newFinalizers := []string{}
for i := range existingNamespace.ObjectMeta.Finalizers { for i := range existingNamespace.ObjectMeta.Finalizers {
finalizer := existingNamespace.ObjectMeta.Finalizers[i] finalizer := existingNamespace.ObjectMeta.Finalizers[i]
if string(finalizer) != api.FinalizerOrphan { if string(finalizer) != metav1.FinalizerOrphan {
newFinalizers = append(newFinalizers, finalizer) newFinalizers = append(newFinalizers, finalizer)
} }
} }
......
...@@ -38,6 +38,7 @@ go_library( ...@@ -38,6 +38,7 @@ go_library(
"//pkg/genericapiserver/registry/generic/registry:go_default_library", "//pkg/genericapiserver/registry/generic/registry:go_default_library",
"//pkg/genericapiserver/registry/rest:go_default_library", "//pkg/genericapiserver/registry/rest:go_default_library",
"//pkg/kubelet/client:go_default_library", "//pkg/kubelet/client:go_default_library",
"//pkg/registry/cachesize:go_default_library",
"//pkg/registry/core/node:go_default_library", "//pkg/registry/core/node:go_default_library",
"//pkg/registry/core/node/rest:go_default_library", "//pkg/registry/core/node/rest:go_default_library",
"//vendor:k8s.io/apimachinery/pkg/apis/meta/v1", "//vendor:k8s.io/apimachinery/pkg/apis/meta/v1",
......
...@@ -30,6 +30,7 @@ import ( ...@@ -30,6 +30,7 @@ import (
genericregistry "k8s.io/kubernetes/pkg/genericapiserver/registry/generic/registry" genericregistry "k8s.io/kubernetes/pkg/genericapiserver/registry/generic/registry"
"k8s.io/kubernetes/pkg/genericapiserver/registry/rest" "k8s.io/kubernetes/pkg/genericapiserver/registry/rest"
"k8s.io/kubernetes/pkg/kubelet/client" "k8s.io/kubernetes/pkg/kubelet/client"
"k8s.io/kubernetes/pkg/registry/cachesize"
"k8s.io/kubernetes/pkg/registry/core/node" "k8s.io/kubernetes/pkg/registry/core/node"
noderest "k8s.io/kubernetes/pkg/registry/core/node/rest" noderest "k8s.io/kubernetes/pkg/registry/core/node/rest"
) )
...@@ -79,6 +80,7 @@ func NewStorage(optsGetter generic.RESTOptionsGetter, kubeletClientConfig client ...@@ -79,6 +80,7 @@ func NewStorage(optsGetter generic.RESTOptionsGetter, kubeletClientConfig client
}, },
PredicateFunc: node.MatchNode, PredicateFunc: node.MatchNode,
QualifiedResource: api.Resource("nodes"), QualifiedResource: api.Resource("nodes"),
WatchCacheSize: cachesize.GetWatchCacheSizeByResource("nodes"),
CreateStrategy: node.Strategy, CreateStrategy: node.Strategy,
UpdateStrategy: node.Strategy, UpdateStrategy: node.Strategy,
......
...@@ -39,6 +39,7 @@ go_library( ...@@ -39,6 +39,7 @@ go_library(
"//pkg/genericapiserver/registry/generic:go_default_library", "//pkg/genericapiserver/registry/generic:go_default_library",
"//pkg/genericapiserver/registry/generic/registry:go_default_library", "//pkg/genericapiserver/registry/generic/registry:go_default_library",
"//pkg/genericapiserver/registry/rest:go_default_library", "//pkg/genericapiserver/registry/rest:go_default_library",
"//pkg/registry/cachesize:go_default_library",
"//pkg/registry/core/persistentvolume:go_default_library", "//pkg/registry/core/persistentvolume:go_default_library",
"//vendor:k8s.io/apimachinery/pkg/apis/meta/v1", "//vendor:k8s.io/apimachinery/pkg/apis/meta/v1",
"//vendor:k8s.io/apimachinery/pkg/runtime", "//vendor:k8s.io/apimachinery/pkg/runtime",
......
...@@ -24,6 +24,7 @@ import ( ...@@ -24,6 +24,7 @@ import (
"k8s.io/kubernetes/pkg/genericapiserver/registry/generic" "k8s.io/kubernetes/pkg/genericapiserver/registry/generic"
genericregistry "k8s.io/kubernetes/pkg/genericapiserver/registry/generic/registry" genericregistry "k8s.io/kubernetes/pkg/genericapiserver/registry/generic/registry"
"k8s.io/kubernetes/pkg/genericapiserver/registry/rest" "k8s.io/kubernetes/pkg/genericapiserver/registry/rest"
"k8s.io/kubernetes/pkg/registry/cachesize"
"k8s.io/kubernetes/pkg/registry/core/persistentvolume" "k8s.io/kubernetes/pkg/registry/core/persistentvolume"
) )
...@@ -42,6 +43,7 @@ func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) { ...@@ -42,6 +43,7 @@ func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) {
}, },
PredicateFunc: persistentvolume.MatchPersistentVolumes, PredicateFunc: persistentvolume.MatchPersistentVolumes,
QualifiedResource: api.Resource("persistentvolumes"), QualifiedResource: api.Resource("persistentvolumes"),
WatchCacheSize: cachesize.GetWatchCacheSizeByResource("persistentvolumes"),
CreateStrategy: persistentvolume.Strategy, CreateStrategy: persistentvolume.Strategy,
UpdateStrategy: persistentvolume.Strategy, UpdateStrategy: persistentvolume.Strategy,
......
...@@ -39,6 +39,7 @@ go_library( ...@@ -39,6 +39,7 @@ go_library(
"//pkg/genericapiserver/registry/generic:go_default_library", "//pkg/genericapiserver/registry/generic:go_default_library",
"//pkg/genericapiserver/registry/generic/registry:go_default_library", "//pkg/genericapiserver/registry/generic/registry:go_default_library",
"//pkg/genericapiserver/registry/rest:go_default_library", "//pkg/genericapiserver/registry/rest:go_default_library",
"//pkg/registry/cachesize:go_default_library",
"//pkg/registry/core/persistentvolumeclaim:go_default_library", "//pkg/registry/core/persistentvolumeclaim:go_default_library",
"//vendor:k8s.io/apimachinery/pkg/apis/meta/v1", "//vendor:k8s.io/apimachinery/pkg/apis/meta/v1",
"//vendor:k8s.io/apimachinery/pkg/runtime", "//vendor:k8s.io/apimachinery/pkg/runtime",
......
...@@ -24,6 +24,7 @@ import ( ...@@ -24,6 +24,7 @@ import (
"k8s.io/kubernetes/pkg/genericapiserver/registry/generic" "k8s.io/kubernetes/pkg/genericapiserver/registry/generic"
genericregistry "k8s.io/kubernetes/pkg/genericapiserver/registry/generic/registry" genericregistry "k8s.io/kubernetes/pkg/genericapiserver/registry/generic/registry"
"k8s.io/kubernetes/pkg/genericapiserver/registry/rest" "k8s.io/kubernetes/pkg/genericapiserver/registry/rest"
"k8s.io/kubernetes/pkg/registry/cachesize"
"k8s.io/kubernetes/pkg/registry/core/persistentvolumeclaim" "k8s.io/kubernetes/pkg/registry/core/persistentvolumeclaim"
) )
...@@ -42,6 +43,7 @@ func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) { ...@@ -42,6 +43,7 @@ func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) {
}, },
PredicateFunc: persistentvolumeclaim.MatchPersistentVolumeClaim, PredicateFunc: persistentvolumeclaim.MatchPersistentVolumeClaim,
QualifiedResource: api.Resource("persistentvolumeclaims"), QualifiedResource: api.Resource("persistentvolumeclaims"),
WatchCacheSize: cachesize.GetWatchCacheSizeByResource("persistentvolumeclaims"),
CreateStrategy: persistentvolumeclaim.Strategy, CreateStrategy: persistentvolumeclaim.Strategy,
UpdateStrategy: persistentvolumeclaim.Strategy, UpdateStrategy: persistentvolumeclaim.Strategy,
......
...@@ -15,11 +15,11 @@ go_test( ...@@ -15,11 +15,11 @@ go_test(
tags = ["automanaged"], tags = ["automanaged"],
deps = [ deps = [
"//pkg/api:go_default_library", "//pkg/api:go_default_library",
"//pkg/api/errors/storage:go_default_library",
"//pkg/genericapiserver/registry/generic:go_default_library", "//pkg/genericapiserver/registry/generic:go_default_library",
"//pkg/genericapiserver/registry/rest:go_default_library", "//pkg/genericapiserver/registry/rest:go_default_library",
"//pkg/registry/registrytest:go_default_library", "//pkg/registry/registrytest:go_default_library",
"//pkg/securitycontext:go_default_library", "//pkg/securitycontext:go_default_library",
"//pkg/storage/errors:go_default_library",
"//pkg/storage/etcd/testing:go_default_library", "//pkg/storage/etcd/testing:go_default_library",
"//vendor:golang.org/x/net/context", "//vendor:golang.org/x/net/context",
"//vendor:k8s.io/apimachinery/pkg/api/equality", "//vendor:k8s.io/apimachinery/pkg/api/equality",
...@@ -43,7 +43,6 @@ go_library( ...@@ -43,7 +43,6 @@ go_library(
tags = ["automanaged"], tags = ["automanaged"],
deps = [ deps = [
"//pkg/api:go_default_library", "//pkg/api:go_default_library",
"//pkg/api/errors/storage:go_default_library",
"//pkg/api/validation:go_default_library", "//pkg/api/validation:go_default_library",
"//pkg/apis/policy:go_default_library", "//pkg/apis/policy:go_default_library",
"//pkg/client/clientset_generated/internalclientset/typed/policy/internalversion:go_default_library", "//pkg/client/clientset_generated/internalclientset/typed/policy/internalversion:go_default_library",
...@@ -52,8 +51,10 @@ go_library( ...@@ -52,8 +51,10 @@ go_library(
"//pkg/genericapiserver/registry/generic/registry:go_default_library", "//pkg/genericapiserver/registry/generic/registry:go_default_library",
"//pkg/genericapiserver/registry/rest:go_default_library", "//pkg/genericapiserver/registry/rest:go_default_library",
"//pkg/kubelet/client:go_default_library", "//pkg/kubelet/client:go_default_library",
"//pkg/registry/cachesize:go_default_library",
"//pkg/registry/core/pod:go_default_library", "//pkg/registry/core/pod:go_default_library",
"//pkg/registry/core/pod/rest:go_default_library", "//pkg/registry/core/pod/rest:go_default_library",
"//pkg/storage/errors:go_default_library",
"//vendor:k8s.io/apimachinery/pkg/api/errors", "//vendor:k8s.io/apimachinery/pkg/api/errors",
"//vendor:k8s.io/apimachinery/pkg/apis/meta/v1", "//vendor:k8s.io/apimachinery/pkg/apis/meta/v1",
"//vendor:k8s.io/apimachinery/pkg/labels", "//vendor:k8s.io/apimachinery/pkg/labels",
......
...@@ -27,15 +27,16 @@ import ( ...@@ -27,15 +27,16 @@ import (
genericapirequest "k8s.io/apiserver/pkg/endpoints/request" genericapirequest "k8s.io/apiserver/pkg/endpoints/request"
"k8s.io/apiserver/pkg/storage" "k8s.io/apiserver/pkg/storage"
"k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api"
storeerr "k8s.io/kubernetes/pkg/api/errors/storage"
"k8s.io/kubernetes/pkg/api/validation" "k8s.io/kubernetes/pkg/api/validation"
policyclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/policy/internalversion" policyclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/policy/internalversion"
"k8s.io/kubernetes/pkg/genericapiserver/registry/generic" "k8s.io/kubernetes/pkg/genericapiserver/registry/generic"
genericregistry "k8s.io/kubernetes/pkg/genericapiserver/registry/generic/registry" genericregistry "k8s.io/kubernetes/pkg/genericapiserver/registry/generic/registry"
"k8s.io/kubernetes/pkg/genericapiserver/registry/rest" "k8s.io/kubernetes/pkg/genericapiserver/registry/rest"
"k8s.io/kubernetes/pkg/kubelet/client" "k8s.io/kubernetes/pkg/kubelet/client"
"k8s.io/kubernetes/pkg/registry/cachesize"
"k8s.io/kubernetes/pkg/registry/core/pod" "k8s.io/kubernetes/pkg/registry/core/pod"
podrest "k8s.io/kubernetes/pkg/registry/core/pod/rest" podrest "k8s.io/kubernetes/pkg/registry/core/pod/rest"
storeerr "k8s.io/kubernetes/pkg/storage/errors"
) )
// PodStorage includes storage for pods and all sub resources // PodStorage includes storage for pods and all sub resources
...@@ -68,6 +69,7 @@ func NewStorage(optsGetter generic.RESTOptionsGetter, k client.ConnectionInfoGet ...@@ -68,6 +69,7 @@ func NewStorage(optsGetter generic.RESTOptionsGetter, k client.ConnectionInfoGet
}, },
PredicateFunc: pod.MatchPod, PredicateFunc: pod.MatchPod,
QualifiedResource: api.Resource("pods"), QualifiedResource: api.Resource("pods"),
WatchCacheSize: cachesize.GetWatchCacheSizeByResource("pods"),
CreateStrategy: pod.Strategy, CreateStrategy: pod.Strategy,
UpdateStrategy: pod.Strategy, UpdateStrategy: pod.Strategy,
......
...@@ -31,11 +31,11 @@ import ( ...@@ -31,11 +31,11 @@ import (
genericapirequest "k8s.io/apiserver/pkg/endpoints/request" genericapirequest "k8s.io/apiserver/pkg/endpoints/request"
"k8s.io/apiserver/pkg/storage" "k8s.io/apiserver/pkg/storage"
"k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api"
storeerr "k8s.io/kubernetes/pkg/api/errors/storage"
"k8s.io/kubernetes/pkg/genericapiserver/registry/generic" "k8s.io/kubernetes/pkg/genericapiserver/registry/generic"
"k8s.io/kubernetes/pkg/genericapiserver/registry/rest" "k8s.io/kubernetes/pkg/genericapiserver/registry/rest"
"k8s.io/kubernetes/pkg/registry/registrytest" "k8s.io/kubernetes/pkg/registry/registrytest"
"k8s.io/kubernetes/pkg/securitycontext" "k8s.io/kubernetes/pkg/securitycontext"
storeerr "k8s.io/kubernetes/pkg/storage/errors"
etcdtesting "k8s.io/kubernetes/pkg/storage/etcd/testing" etcdtesting "k8s.io/kubernetes/pkg/storage/etcd/testing"
) )
......
...@@ -33,6 +33,7 @@ go_library( ...@@ -33,6 +33,7 @@ go_library(
"//pkg/api:go_default_library", "//pkg/api:go_default_library",
"//pkg/genericapiserver/registry/generic:go_default_library", "//pkg/genericapiserver/registry/generic:go_default_library",
"//pkg/genericapiserver/registry/generic/registry:go_default_library", "//pkg/genericapiserver/registry/generic/registry:go_default_library",
"//pkg/registry/cachesize:go_default_library",
"//pkg/registry/core/podtemplate:go_default_library", "//pkg/registry/core/podtemplate:go_default_library",
"//vendor:k8s.io/apimachinery/pkg/runtime", "//vendor:k8s.io/apimachinery/pkg/runtime",
], ],
......
...@@ -21,6 +21,7 @@ import ( ...@@ -21,6 +21,7 @@ import (
"k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/genericapiserver/registry/generic" "k8s.io/kubernetes/pkg/genericapiserver/registry/generic"
genericregistry "k8s.io/kubernetes/pkg/genericapiserver/registry/generic/registry" genericregistry "k8s.io/kubernetes/pkg/genericapiserver/registry/generic/registry"
"k8s.io/kubernetes/pkg/registry/cachesize"
"k8s.io/kubernetes/pkg/registry/core/podtemplate" "k8s.io/kubernetes/pkg/registry/core/podtemplate"
) )
...@@ -39,6 +40,7 @@ func NewREST(optsGetter generic.RESTOptionsGetter) *REST { ...@@ -39,6 +40,7 @@ func NewREST(optsGetter generic.RESTOptionsGetter) *REST {
}, },
PredicateFunc: podtemplate.MatchPodTemplate, PredicateFunc: podtemplate.MatchPodTemplate,
QualifiedResource: api.Resource("podtemplates"), QualifiedResource: api.Resource("podtemplates"),
WatchCacheSize: cachesize.GetWatchCacheSizeByResource("podtemplates"),
CreateStrategy: podtemplate.Strategy, CreateStrategy: podtemplate.Strategy,
UpdateStrategy: podtemplate.Strategy, UpdateStrategy: podtemplate.Strategy,
......
...@@ -42,6 +42,7 @@ go_library( ...@@ -42,6 +42,7 @@ go_library(
"//pkg/genericapiserver/registry/generic:go_default_library", "//pkg/genericapiserver/registry/generic:go_default_library",
"//pkg/genericapiserver/registry/generic/registry:go_default_library", "//pkg/genericapiserver/registry/generic/registry:go_default_library",
"//pkg/genericapiserver/registry/rest:go_default_library", "//pkg/genericapiserver/registry/rest:go_default_library",
"//pkg/registry/cachesize:go_default_library",
"//pkg/registry/core/replicationcontroller:go_default_library", "//pkg/registry/core/replicationcontroller:go_default_library",
"//vendor:k8s.io/apimachinery/pkg/api/errors", "//vendor:k8s.io/apimachinery/pkg/api/errors",
"//vendor:k8s.io/apimachinery/pkg/apis/meta/v1", "//vendor:k8s.io/apimachinery/pkg/apis/meta/v1",
......
...@@ -32,6 +32,7 @@ import ( ...@@ -32,6 +32,7 @@ import (
"k8s.io/kubernetes/pkg/genericapiserver/registry/generic" "k8s.io/kubernetes/pkg/genericapiserver/registry/generic"
genericregistry "k8s.io/kubernetes/pkg/genericapiserver/registry/generic/registry" genericregistry "k8s.io/kubernetes/pkg/genericapiserver/registry/generic/registry"
"k8s.io/kubernetes/pkg/genericapiserver/registry/rest" "k8s.io/kubernetes/pkg/genericapiserver/registry/rest"
"k8s.io/kubernetes/pkg/registry/cachesize"
"k8s.io/kubernetes/pkg/registry/core/replicationcontroller" "k8s.io/kubernetes/pkg/registry/core/replicationcontroller"
) )
...@@ -68,6 +69,7 @@ func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) { ...@@ -68,6 +69,7 @@ func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) {
}, },
PredicateFunc: replicationcontroller.MatchController, PredicateFunc: replicationcontroller.MatchController,
QualifiedResource: api.Resource("replicationcontrollers"), QualifiedResource: api.Resource("replicationcontrollers"),
WatchCacheSize: cachesize.GetWatchCacheSizeByResource("replicationcontrollers"),
CreateStrategy: replicationcontroller.Strategy, CreateStrategy: replicationcontroller.Strategy,
UpdateStrategy: replicationcontroller.Strategy, UpdateStrategy: replicationcontroller.Strategy,
......
...@@ -38,6 +38,7 @@ go_library( ...@@ -38,6 +38,7 @@ go_library(
"//pkg/genericapiserver/registry/generic:go_default_library", "//pkg/genericapiserver/registry/generic:go_default_library",
"//pkg/genericapiserver/registry/generic/registry:go_default_library", "//pkg/genericapiserver/registry/generic/registry:go_default_library",
"//pkg/genericapiserver/registry/rest:go_default_library", "//pkg/genericapiserver/registry/rest:go_default_library",
"//pkg/registry/cachesize:go_default_library",
"//pkg/registry/core/resourcequota:go_default_library", "//pkg/registry/core/resourcequota:go_default_library",
"//vendor:k8s.io/apimachinery/pkg/apis/meta/v1", "//vendor:k8s.io/apimachinery/pkg/apis/meta/v1",
"//vendor:k8s.io/apimachinery/pkg/runtime", "//vendor:k8s.io/apimachinery/pkg/runtime",
......
...@@ -24,6 +24,7 @@ import ( ...@@ -24,6 +24,7 @@ import (
"k8s.io/kubernetes/pkg/genericapiserver/registry/generic" "k8s.io/kubernetes/pkg/genericapiserver/registry/generic"
genericregistry "k8s.io/kubernetes/pkg/genericapiserver/registry/generic/registry" genericregistry "k8s.io/kubernetes/pkg/genericapiserver/registry/generic/registry"
"k8s.io/kubernetes/pkg/genericapiserver/registry/rest" "k8s.io/kubernetes/pkg/genericapiserver/registry/rest"
"k8s.io/kubernetes/pkg/registry/cachesize"
"k8s.io/kubernetes/pkg/registry/core/resourcequota" "k8s.io/kubernetes/pkg/registry/core/resourcequota"
) )
...@@ -42,6 +43,7 @@ func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) { ...@@ -42,6 +43,7 @@ func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) {
}, },
PredicateFunc: resourcequota.MatchResourceQuota, PredicateFunc: resourcequota.MatchResourceQuota,
QualifiedResource: api.Resource("resourcequotas"), QualifiedResource: api.Resource("resourcequotas"),
WatchCacheSize: cachesize.GetWatchCacheSizeByResource("resourcequotas"),
CreateStrategy: resourcequota.Strategy, CreateStrategy: resourcequota.Strategy,
UpdateStrategy: resourcequota.Strategy, UpdateStrategy: resourcequota.Strategy,
......
...@@ -33,6 +33,7 @@ go_library( ...@@ -33,6 +33,7 @@ go_library(
"//pkg/api:go_default_library", "//pkg/api:go_default_library",
"//pkg/genericapiserver/registry/generic:go_default_library", "//pkg/genericapiserver/registry/generic:go_default_library",
"//pkg/genericapiserver/registry/generic/registry:go_default_library", "//pkg/genericapiserver/registry/generic/registry:go_default_library",
"//pkg/registry/cachesize:go_default_library",
"//pkg/registry/core/secret:go_default_library", "//pkg/registry/core/secret:go_default_library",
"//vendor:k8s.io/apimachinery/pkg/runtime", "//vendor:k8s.io/apimachinery/pkg/runtime",
], ],
......
...@@ -21,6 +21,7 @@ import ( ...@@ -21,6 +21,7 @@ import (
"k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/genericapiserver/registry/generic" "k8s.io/kubernetes/pkg/genericapiserver/registry/generic"
genericregistry "k8s.io/kubernetes/pkg/genericapiserver/registry/generic/registry" genericregistry "k8s.io/kubernetes/pkg/genericapiserver/registry/generic/registry"
"k8s.io/kubernetes/pkg/registry/cachesize"
"k8s.io/kubernetes/pkg/registry/core/secret" "k8s.io/kubernetes/pkg/registry/core/secret"
) )
...@@ -39,6 +40,7 @@ func NewREST(optsGetter generic.RESTOptionsGetter) *REST { ...@@ -39,6 +40,7 @@ func NewREST(optsGetter generic.RESTOptionsGetter) *REST {
}, },
PredicateFunc: secret.Matcher, PredicateFunc: secret.Matcher,
QualifiedResource: api.Resource("secrets"), QualifiedResource: api.Resource("secrets"),
WatchCacheSize: cachesize.GetWatchCacheSizeByResource("secrets"),
CreateStrategy: secret.Strategy, CreateStrategy: secret.Strategy,
UpdateStrategy: secret.Strategy, UpdateStrategy: secret.Strategy,
......
...@@ -29,10 +29,10 @@ go_library( ...@@ -29,10 +29,10 @@ go_library(
tags = ["automanaged"], tags = ["automanaged"],
deps = [ deps = [
"//pkg/api:go_default_library", "//pkg/api:go_default_library",
"//pkg/api/errors/storage:go_default_library",
"//pkg/genericapiserver/registry/generic:go_default_library", "//pkg/genericapiserver/registry/generic:go_default_library",
"//pkg/registry/core/rangeallocation:go_default_library", "//pkg/registry/core/rangeallocation:go_default_library",
"//pkg/registry/core/service/allocator:go_default_library", "//pkg/registry/core/service/allocator:go_default_library",
"//pkg/storage/errors:go_default_library",
"//vendor:golang.org/x/net/context", "//vendor:golang.org/x/net/context",
"//vendor:k8s.io/apimachinery/pkg/api/errors", "//vendor:k8s.io/apimachinery/pkg/api/errors",
"//vendor:k8s.io/apimachinery/pkg/runtime", "//vendor:k8s.io/apimachinery/pkg/runtime",
......
...@@ -27,10 +27,10 @@ import ( ...@@ -27,10 +27,10 @@ import (
"k8s.io/apiserver/pkg/storage" "k8s.io/apiserver/pkg/storage"
"k8s.io/apiserver/pkg/storage/storagebackend" "k8s.io/apiserver/pkg/storage/storagebackend"
"k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api"
storeerr "k8s.io/kubernetes/pkg/api/errors/storage"
"k8s.io/kubernetes/pkg/genericapiserver/registry/generic" "k8s.io/kubernetes/pkg/genericapiserver/registry/generic"
"k8s.io/kubernetes/pkg/registry/core/rangeallocation" "k8s.io/kubernetes/pkg/registry/core/rangeallocation"
"k8s.io/kubernetes/pkg/registry/core/service/allocator" "k8s.io/kubernetes/pkg/registry/core/service/allocator"
storeerr "k8s.io/kubernetes/pkg/storage/errors"
"golang.org/x/net/context" "golang.org/x/net/context"
) )
......
...@@ -35,6 +35,7 @@ go_library( ...@@ -35,6 +35,7 @@ go_library(
"//pkg/genericapiserver/registry/generic:go_default_library", "//pkg/genericapiserver/registry/generic:go_default_library",
"//pkg/genericapiserver/registry/generic/registry:go_default_library", "//pkg/genericapiserver/registry/generic/registry:go_default_library",
"//pkg/genericapiserver/registry/rest:go_default_library", "//pkg/genericapiserver/registry/rest:go_default_library",
"//pkg/registry/cachesize:go_default_library",
"//pkg/registry/core/service:go_default_library", "//pkg/registry/core/service:go_default_library",
"//vendor:k8s.io/apimachinery/pkg/apis/meta/v1", "//vendor:k8s.io/apimachinery/pkg/apis/meta/v1",
"//vendor:k8s.io/apimachinery/pkg/runtime", "//vendor:k8s.io/apimachinery/pkg/runtime",
......
...@@ -24,6 +24,7 @@ import ( ...@@ -24,6 +24,7 @@ import (
"k8s.io/kubernetes/pkg/genericapiserver/registry/generic" "k8s.io/kubernetes/pkg/genericapiserver/registry/generic"
genericregistry "k8s.io/kubernetes/pkg/genericapiserver/registry/generic/registry" genericregistry "k8s.io/kubernetes/pkg/genericapiserver/registry/generic/registry"
"k8s.io/kubernetes/pkg/genericapiserver/registry/rest" "k8s.io/kubernetes/pkg/genericapiserver/registry/rest"
"k8s.io/kubernetes/pkg/registry/cachesize"
"k8s.io/kubernetes/pkg/registry/core/service" "k8s.io/kubernetes/pkg/registry/core/service"
) )
...@@ -42,6 +43,7 @@ func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) { ...@@ -42,6 +43,7 @@ func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) {
}, },
PredicateFunc: service.MatchServices, PredicateFunc: service.MatchServices,
QualifiedResource: api.Resource("services"), QualifiedResource: api.Resource("services"),
WatchCacheSize: cachesize.GetWatchCacheSizeByResource("services"),
CreateStrategy: service.Strategy, CreateStrategy: service.Strategy,
UpdateStrategy: service.Strategy, UpdateStrategy: service.Strategy,
......
...@@ -33,6 +33,7 @@ go_library( ...@@ -33,6 +33,7 @@ go_library(
"//pkg/api:go_default_library", "//pkg/api:go_default_library",
"//pkg/genericapiserver/registry/generic:go_default_library", "//pkg/genericapiserver/registry/generic:go_default_library",
"//pkg/genericapiserver/registry/generic/registry:go_default_library", "//pkg/genericapiserver/registry/generic/registry:go_default_library",
"//pkg/registry/cachesize:go_default_library",
"//pkg/registry/core/serviceaccount:go_default_library", "//pkg/registry/core/serviceaccount:go_default_library",
"//vendor:k8s.io/apimachinery/pkg/runtime", "//vendor:k8s.io/apimachinery/pkg/runtime",
], ],
......
...@@ -21,6 +21,7 @@ import ( ...@@ -21,6 +21,7 @@ import (
"k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/genericapiserver/registry/generic" "k8s.io/kubernetes/pkg/genericapiserver/registry/generic"
genericregistry "k8s.io/kubernetes/pkg/genericapiserver/registry/generic/registry" genericregistry "k8s.io/kubernetes/pkg/genericapiserver/registry/generic/registry"
"k8s.io/kubernetes/pkg/registry/cachesize"
"k8s.io/kubernetes/pkg/registry/core/serviceaccount" "k8s.io/kubernetes/pkg/registry/core/serviceaccount"
) )
...@@ -39,6 +40,7 @@ func NewREST(optsGetter generic.RESTOptionsGetter) *REST { ...@@ -39,6 +40,7 @@ func NewREST(optsGetter generic.RESTOptionsGetter) *REST {
}, },
PredicateFunc: serviceaccount.Matcher, PredicateFunc: serviceaccount.Matcher,
QualifiedResource: api.Resource("serviceaccounts"), QualifiedResource: api.Resource("serviceaccounts"),
WatchCacheSize: cachesize.GetWatchCacheSizeByResource("serviceaccounts"),
CreateStrategy: serviceaccount.Strategy, CreateStrategy: serviceaccount.Strategy,
UpdateStrategy: serviceaccount.Strategy, UpdateStrategy: serviceaccount.Strategy,
......
...@@ -36,6 +36,7 @@ go_library( ...@@ -36,6 +36,7 @@ go_library(
"//pkg/genericapiserver/registry/generic:go_default_library", "//pkg/genericapiserver/registry/generic:go_default_library",
"//pkg/genericapiserver/registry/generic/registry:go_default_library", "//pkg/genericapiserver/registry/generic/registry:go_default_library",
"//pkg/genericapiserver/registry/rest:go_default_library", "//pkg/genericapiserver/registry/rest:go_default_library",
"//pkg/registry/cachesize:go_default_library",
"//pkg/registry/extensions/daemonset:go_default_library", "//pkg/registry/extensions/daemonset:go_default_library",
"//vendor:k8s.io/apimachinery/pkg/apis/meta/v1", "//vendor:k8s.io/apimachinery/pkg/apis/meta/v1",
"//vendor:k8s.io/apimachinery/pkg/runtime", "//vendor:k8s.io/apimachinery/pkg/runtime",
......
...@@ -25,6 +25,7 @@ import ( ...@@ -25,6 +25,7 @@ import (
"k8s.io/kubernetes/pkg/genericapiserver/registry/generic" "k8s.io/kubernetes/pkg/genericapiserver/registry/generic"
genericregistry "k8s.io/kubernetes/pkg/genericapiserver/registry/generic/registry" genericregistry "k8s.io/kubernetes/pkg/genericapiserver/registry/generic/registry"
"k8s.io/kubernetes/pkg/genericapiserver/registry/rest" "k8s.io/kubernetes/pkg/genericapiserver/registry/rest"
"k8s.io/kubernetes/pkg/registry/cachesize"
"k8s.io/kubernetes/pkg/registry/extensions/daemonset" "k8s.io/kubernetes/pkg/registry/extensions/daemonset"
) )
...@@ -44,6 +45,7 @@ func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) { ...@@ -44,6 +45,7 @@ func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) {
}, },
PredicateFunc: daemonset.MatchDaemonSet, PredicateFunc: daemonset.MatchDaemonSet,
QualifiedResource: extensions.Resource("daemonsets"), QualifiedResource: extensions.Resource("daemonsets"),
WatchCacheSize: cachesize.GetWatchCacheSizeByResource("daemonsets"),
CreateStrategy: daemonset.Strategy, CreateStrategy: daemonset.Strategy,
UpdateStrategy: daemonset.Strategy, UpdateStrategy: daemonset.Strategy,
......
...@@ -15,11 +15,11 @@ go_test( ...@@ -15,11 +15,11 @@ go_test(
tags = ["automanaged"], tags = ["automanaged"],
deps = [ deps = [
"//pkg/api:go_default_library", "//pkg/api:go_default_library",
"//pkg/api/errors/storage:go_default_library",
"//pkg/apis/extensions:go_default_library", "//pkg/apis/extensions:go_default_library",
"//pkg/genericapiserver/registry/generic:go_default_library", "//pkg/genericapiserver/registry/generic:go_default_library",
"//pkg/genericapiserver/registry/rest:go_default_library", "//pkg/genericapiserver/registry/rest:go_default_library",
"//pkg/registry/registrytest:go_default_library", "//pkg/registry/registrytest:go_default_library",
"//pkg/storage/errors:go_default_library",
"//pkg/storage/etcd/testing:go_default_library", "//pkg/storage/etcd/testing:go_default_library",
"//vendor:k8s.io/apimachinery/pkg/api/equality", "//vendor:k8s.io/apimachinery/pkg/api/equality",
"//vendor:k8s.io/apimachinery/pkg/api/errors", "//vendor:k8s.io/apimachinery/pkg/api/errors",
...@@ -39,13 +39,14 @@ go_library( ...@@ -39,13 +39,14 @@ go_library(
tags = ["automanaged"], tags = ["automanaged"],
deps = [ deps = [
"//pkg/api:go_default_library", "//pkg/api:go_default_library",
"//pkg/api/errors/storage:go_default_library",
"//pkg/apis/extensions:go_default_library", "//pkg/apis/extensions:go_default_library",
"//pkg/apis/extensions/validation:go_default_library", "//pkg/apis/extensions/validation:go_default_library",
"//pkg/genericapiserver/registry/generic:go_default_library", "//pkg/genericapiserver/registry/generic:go_default_library",
"//pkg/genericapiserver/registry/generic/registry:go_default_library", "//pkg/genericapiserver/registry/generic/registry:go_default_library",
"//pkg/genericapiserver/registry/rest:go_default_library", "//pkg/genericapiserver/registry/rest:go_default_library",
"//pkg/registry/cachesize:go_default_library",
"//pkg/registry/extensions/deployment:go_default_library", "//pkg/registry/extensions/deployment:go_default_library",
"//pkg/storage/errors:go_default_library",
"//vendor:k8s.io/apimachinery/pkg/api/errors", "//vendor:k8s.io/apimachinery/pkg/api/errors",
"//vendor:k8s.io/apimachinery/pkg/apis/meta/v1", "//vendor:k8s.io/apimachinery/pkg/apis/meta/v1",
"//vendor:k8s.io/apimachinery/pkg/runtime", "//vendor:k8s.io/apimachinery/pkg/runtime",
......
...@@ -26,13 +26,14 @@ import ( ...@@ -26,13 +26,14 @@ import (
genericapirequest "k8s.io/apiserver/pkg/endpoints/request" genericapirequest "k8s.io/apiserver/pkg/endpoints/request"
"k8s.io/apiserver/pkg/storage" "k8s.io/apiserver/pkg/storage"
"k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api"
storeerr "k8s.io/kubernetes/pkg/api/errors/storage"
"k8s.io/kubernetes/pkg/apis/extensions" "k8s.io/kubernetes/pkg/apis/extensions"
extvalidation "k8s.io/kubernetes/pkg/apis/extensions/validation" extvalidation "k8s.io/kubernetes/pkg/apis/extensions/validation"
"k8s.io/kubernetes/pkg/genericapiserver/registry/generic" "k8s.io/kubernetes/pkg/genericapiserver/registry/generic"
genericregistry "k8s.io/kubernetes/pkg/genericapiserver/registry/generic/registry" genericregistry "k8s.io/kubernetes/pkg/genericapiserver/registry/generic/registry"
"k8s.io/kubernetes/pkg/genericapiserver/registry/rest" "k8s.io/kubernetes/pkg/genericapiserver/registry/rest"
"k8s.io/kubernetes/pkg/registry/cachesize"
"k8s.io/kubernetes/pkg/registry/extensions/deployment" "k8s.io/kubernetes/pkg/registry/extensions/deployment"
storeerr "k8s.io/kubernetes/pkg/storage/errors"
) )
// DeploymentStorage includes dummy storage for Deployments and for Scale subresource. // DeploymentStorage includes dummy storage for Deployments and for Scale subresource.
...@@ -70,6 +71,7 @@ func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST, *Rollbac ...@@ -70,6 +71,7 @@ func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST, *Rollbac
}, },
PredicateFunc: deployment.MatchDeployment, PredicateFunc: deployment.MatchDeployment,
QualifiedResource: extensions.Resource("deployments"), QualifiedResource: extensions.Resource("deployments"),
WatchCacheSize: cachesize.GetWatchCacheSizeByResource("deployments"),
CreateStrategy: deployment.Strategy, CreateStrategy: deployment.Strategy,
UpdateStrategy: deployment.Strategy, UpdateStrategy: deployment.Strategy,
......
...@@ -30,11 +30,11 @@ import ( ...@@ -30,11 +30,11 @@ import (
"k8s.io/apimachinery/pkg/util/intstr" "k8s.io/apimachinery/pkg/util/intstr"
genericapirequest "k8s.io/apiserver/pkg/endpoints/request" genericapirequest "k8s.io/apiserver/pkg/endpoints/request"
"k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api"
storeerr "k8s.io/kubernetes/pkg/api/errors/storage"
"k8s.io/kubernetes/pkg/apis/extensions" "k8s.io/kubernetes/pkg/apis/extensions"
"k8s.io/kubernetes/pkg/genericapiserver/registry/generic" "k8s.io/kubernetes/pkg/genericapiserver/registry/generic"
"k8s.io/kubernetes/pkg/genericapiserver/registry/rest" "k8s.io/kubernetes/pkg/genericapiserver/registry/rest"
"k8s.io/kubernetes/pkg/registry/registrytest" "k8s.io/kubernetes/pkg/registry/registrytest"
storeerr "k8s.io/kubernetes/pkg/storage/errors"
etcdtesting "k8s.io/kubernetes/pkg/storage/etcd/testing" etcdtesting "k8s.io/kubernetes/pkg/storage/etcd/testing"
) )
......
...@@ -37,6 +37,7 @@ go_library( ...@@ -37,6 +37,7 @@ go_library(
"//pkg/genericapiserver/registry/generic:go_default_library", "//pkg/genericapiserver/registry/generic:go_default_library",
"//pkg/genericapiserver/registry/generic/registry:go_default_library", "//pkg/genericapiserver/registry/generic/registry:go_default_library",
"//pkg/genericapiserver/registry/rest:go_default_library", "//pkg/genericapiserver/registry/rest:go_default_library",
"//pkg/registry/cachesize:go_default_library",
"//pkg/registry/extensions/ingress:go_default_library", "//pkg/registry/extensions/ingress:go_default_library",
"//vendor:k8s.io/apimachinery/pkg/apis/meta/v1", "//vendor:k8s.io/apimachinery/pkg/apis/meta/v1",
"//vendor:k8s.io/apimachinery/pkg/runtime", "//vendor:k8s.io/apimachinery/pkg/runtime",
......
...@@ -25,6 +25,7 @@ import ( ...@@ -25,6 +25,7 @@ import (
"k8s.io/kubernetes/pkg/genericapiserver/registry/generic" "k8s.io/kubernetes/pkg/genericapiserver/registry/generic"
genericregistry "k8s.io/kubernetes/pkg/genericapiserver/registry/generic/registry" genericregistry "k8s.io/kubernetes/pkg/genericapiserver/registry/generic/registry"
"k8s.io/kubernetes/pkg/genericapiserver/registry/rest" "k8s.io/kubernetes/pkg/genericapiserver/registry/rest"
"k8s.io/kubernetes/pkg/registry/cachesize"
"k8s.io/kubernetes/pkg/registry/extensions/ingress" "k8s.io/kubernetes/pkg/registry/extensions/ingress"
) )
...@@ -44,6 +45,7 @@ func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) { ...@@ -44,6 +45,7 @@ func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) {
}, },
PredicateFunc: ingress.MatchIngress, PredicateFunc: ingress.MatchIngress,
QualifiedResource: extensions.Resource("ingresses"), QualifiedResource: extensions.Resource("ingresses"),
WatchCacheSize: cachesize.GetWatchCacheSizeByResource("ingresses"),
CreateStrategy: ingress.Strategy, CreateStrategy: ingress.Strategy,
UpdateStrategy: ingress.Strategy, UpdateStrategy: ingress.Strategy,
......
...@@ -36,6 +36,7 @@ go_library( ...@@ -36,6 +36,7 @@ go_library(
"//pkg/apis/extensions:go_default_library", "//pkg/apis/extensions:go_default_library",
"//pkg/genericapiserver/registry/generic:go_default_library", "//pkg/genericapiserver/registry/generic:go_default_library",
"//pkg/genericapiserver/registry/generic/registry:go_default_library", "//pkg/genericapiserver/registry/generic/registry:go_default_library",
"//pkg/registry/cachesize:go_default_library",
"//pkg/registry/extensions/networkpolicy:go_default_library", "//pkg/registry/extensions/networkpolicy:go_default_library",
"//vendor:k8s.io/apimachinery/pkg/runtime", "//vendor:k8s.io/apimachinery/pkg/runtime",
], ],
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment