mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-23 03:41:45 +00:00
remove storage dependency on api
This commit is contained in:
parent
0107e93cc6
commit
9fb37f3bba
@ -14,6 +14,7 @@ go_library(
|
|||||||
deps = [
|
deps = [
|
||||||
"//cmd/kube-aggregator/pkg/apis/apiregistration:go_default_library",
|
"//cmd/kube-aggregator/pkg/apis/apiregistration:go_default_library",
|
||||||
"//cmd/kube-aggregator/pkg/registry/apiservice:go_default_library",
|
"//cmd/kube-aggregator/pkg/registry/apiservice: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",
|
||||||
"//vendor:k8s.io/apimachinery/pkg/runtime",
|
"//vendor:k8s.io/apimachinery/pkg/runtime",
|
||||||
|
@ -20,6 +20,7 @@ import (
|
|||||||
"k8s.io/apimachinery/pkg/runtime"
|
"k8s.io/apimachinery/pkg/runtime"
|
||||||
"k8s.io/kubernetes/cmd/kube-aggregator/pkg/apis/apiregistration"
|
"k8s.io/kubernetes/cmd/kube-aggregator/pkg/apis/apiregistration"
|
||||||
"k8s.io/kubernetes/cmd/kube-aggregator/pkg/registry/apiservice"
|
"k8s.io/kubernetes/cmd/kube-aggregator/pkg/registry/apiservice"
|
||||||
|
"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"
|
||||||
)
|
)
|
||||||
@ -32,6 +33,7 @@ type REST struct {
|
|||||||
// NewREST returns a RESTStorage object that will work against API services.
|
// NewREST returns a RESTStorage object that will work against API services.
|
||||||
func NewREST(optsGetter generic.RESTOptionsGetter) *REST {
|
func NewREST(optsGetter generic.RESTOptionsGetter) *REST {
|
||||||
store := &genericregistry.Store{
|
store := &genericregistry.Store{
|
||||||
|
Copier: api.Scheme,
|
||||||
NewFunc: func() runtime.Object { return &apiregistration.APIService{} },
|
NewFunc: func() runtime.Object { return &apiregistration.APIService{} },
|
||||||
NewListFunc: func() runtime.Object { return &apiregistration.APIServiceList{} },
|
NewListFunc: func() runtime.Object { return &apiregistration.APIServiceList{} },
|
||||||
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
||||||
|
@ -39,6 +39,7 @@ type REST struct {
|
|||||||
// NewREST returns a RESTStorage object that will work with testtype.
|
// NewREST returns a RESTStorage object that will work with testtype.
|
||||||
func NewREST(optsGetter generic.RESTOptionsGetter) *REST {
|
func NewREST(optsGetter generic.RESTOptionsGetter) *REST {
|
||||||
store := &genericregistry.Store{
|
store := &genericregistry.Store{
|
||||||
|
Copier: api.Scheme,
|
||||||
NewFunc: func() runtime.Object { return &testgroup.TestType{} },
|
NewFunc: func() runtime.Object { return &testgroup.TestType{} },
|
||||||
// NewListFunc returns an object capable of storing results of an etcd list.
|
// NewListFunc returns an object capable of storing results of an etcd list.
|
||||||
NewListFunc: func() runtime.Object { return &testgroup.TestTypeList{} },
|
NewListFunc: func() runtime.Object { return &testgroup.TestTypeList{} },
|
||||||
|
@ -15,6 +15,7 @@ go_library(
|
|||||||
deps = [
|
deps = [
|
||||||
"//federation/apis/federation:go_default_library",
|
"//federation/apis/federation:go_default_library",
|
||||||
"//federation/registry/cluster:go_default_library",
|
"//federation/registry/cluster: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/genericapiserver/registry/rest:go_default_library",
|
"//pkg/genericapiserver/registry/rest:go_default_library",
|
||||||
|
@ -21,6 +21,7 @@ import (
|
|||||||
genericapirequest "k8s.io/apiserver/pkg/endpoints/request"
|
genericapirequest "k8s.io/apiserver/pkg/endpoints/request"
|
||||||
"k8s.io/kubernetes/federation/apis/federation"
|
"k8s.io/kubernetes/federation/apis/federation"
|
||||||
"k8s.io/kubernetes/federation/registry/cluster"
|
"k8s.io/kubernetes/federation/registry/cluster"
|
||||||
|
"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/genericapiserver/registry/rest"
|
"k8s.io/kubernetes/pkg/genericapiserver/registry/rest"
|
||||||
@ -46,6 +47,7 @@ func (r *StatusREST) Update(ctx genericapirequest.Context, name string, objInfo
|
|||||||
// NewREST returns a RESTStorage object that will work against clusters.
|
// NewREST returns a RESTStorage object that will work against clusters.
|
||||||
func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) {
|
func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) {
|
||||||
store := &genericregistry.Store{
|
store := &genericregistry.Store{
|
||||||
|
Copier: api.Scheme,
|
||||||
NewFunc: func() runtime.Object { return &federation.Cluster{} },
|
NewFunc: func() runtime.Object { return &federation.Cluster{} },
|
||||||
NewListFunc: func() runtime.Object { return &federation.ClusterList{} },
|
NewListFunc: func() runtime.Object { return &federation.ClusterList{} },
|
||||||
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
||||||
|
@ -29,6 +29,7 @@ var _ generic.StorageDecorator = StorageWithCacher
|
|||||||
|
|
||||||
// Creates a cacher based given storageConfig.
|
// Creates a cacher based given storageConfig.
|
||||||
func StorageWithCacher(
|
func StorageWithCacher(
|
||||||
|
copier runtime.ObjectCopier,
|
||||||
storageConfig *storagebackend.Config,
|
storageConfig *storagebackend.Config,
|
||||||
capacity int,
|
capacity int,
|
||||||
objectType runtime.Object,
|
objectType runtime.Object,
|
||||||
@ -45,6 +46,7 @@ func StorageWithCacher(
|
|||||||
CacheCapacity: capacity,
|
CacheCapacity: capacity,
|
||||||
Storage: s,
|
Storage: s,
|
||||||
Versioner: etcdstorage.APIObjectVersioner{},
|
Versioner: etcdstorage.APIObjectVersioner{},
|
||||||
|
Copier: copier,
|
||||||
Type: objectType,
|
Type: objectType,
|
||||||
ResourcePrefix: resourcePrefix,
|
ResourcePrefix: resourcePrefix,
|
||||||
KeyFunc: keyFunc,
|
KeyFunc: keyFunc,
|
||||||
|
@ -67,6 +67,9 @@ type ObjectFunc func(obj runtime.Object) error
|
|||||||
//
|
//
|
||||||
// TODO: make the default exposed methods exactly match a generic RESTStorage
|
// TODO: make the default exposed methods exactly match a generic RESTStorage
|
||||||
type Store struct {
|
type Store struct {
|
||||||
|
// Copier is used to make some storage caching decorators work
|
||||||
|
Copier runtime.ObjectCopier
|
||||||
|
|
||||||
// NewFunc returns a new instance of the type this registry returns for a
|
// NewFunc returns a new instance of the type this registry returns for a
|
||||||
// GET of a single object, e.g.:
|
// GET of a single object, e.g.:
|
||||||
//
|
//
|
||||||
@ -1116,6 +1119,7 @@ func (e *Store) CompleteWithOptions(options *generic.StoreOptions) error {
|
|||||||
|
|
||||||
if e.Storage == nil {
|
if e.Storage == nil {
|
||||||
e.Storage, e.DestroyFunc = opts.Decorator(
|
e.Storage, e.DestroyFunc = opts.Decorator(
|
||||||
|
e.Copier,
|
||||||
opts.StorageConfig,
|
opts.StorageConfig,
|
||||||
cachesize.GetWatchCacheSizeByResource(cachesize.Resource(e.QualifiedResource.Resource)),
|
cachesize.GetWatchCacheSizeByResource(cachesize.Resource(e.QualifiedResource.Resource)),
|
||||||
e.NewFunc(),
|
e.NewFunc(),
|
||||||
|
@ -1251,6 +1251,7 @@ func newTestGenericStoreRegistry(t *testing.T, hasCacheEnabled bool) (factory.De
|
|||||||
CacheCapacity: 10,
|
CacheCapacity: 10,
|
||||||
Storage: s,
|
Storage: s,
|
||||||
Versioner: etcdstorage.APIObjectVersioner{},
|
Versioner: etcdstorage.APIObjectVersioner{},
|
||||||
|
Copier: api.Scheme,
|
||||||
Type: &api.Pod{},
|
Type: &api.Pod{},
|
||||||
ResourcePrefix: podPrefix,
|
ResourcePrefix: podPrefix,
|
||||||
KeyFunc: func(obj runtime.Object) (string, error) { return storage.NoNamespaceKeyFunc(podPrefix, obj) },
|
KeyFunc: func(obj runtime.Object) (string, error) { return storage.NoNamespaceKeyFunc(podPrefix, obj) },
|
||||||
@ -1268,6 +1269,7 @@ func newTestGenericStoreRegistry(t *testing.T, hasCacheEnabled bool) (factory.De
|
|||||||
}
|
}
|
||||||
|
|
||||||
return destroyFunc, &Store{
|
return destroyFunc, &Store{
|
||||||
|
Copier: api.Scheme,
|
||||||
NewFunc: func() runtime.Object { return &api.Pod{} },
|
NewFunc: func() runtime.Object { return &api.Pod{} },
|
||||||
NewListFunc: func() runtime.Object { return &api.PodList{} },
|
NewListFunc: func() runtime.Object { return &api.PodList{} },
|
||||||
QualifiedResource: api.Resource("pods"),
|
QualifiedResource: api.Resource("pods"),
|
||||||
|
@ -27,6 +27,7 @@ import (
|
|||||||
// StorageDecorator is a function signature for producing a storage.Interface
|
// StorageDecorator is a function signature for producing a storage.Interface
|
||||||
// and an associated DestroyFunc from given parameters.
|
// and an associated DestroyFunc from given parameters.
|
||||||
type StorageDecorator func(
|
type StorageDecorator func(
|
||||||
|
copier runtime.ObjectCopier,
|
||||||
config *storagebackend.Config,
|
config *storagebackend.Config,
|
||||||
capacity int,
|
capacity int,
|
||||||
objectType runtime.Object,
|
objectType runtime.Object,
|
||||||
@ -39,6 +40,7 @@ type StorageDecorator func(
|
|||||||
// UndecoratedStorage returns the given a new storage from the given config
|
// UndecoratedStorage returns the given a new storage from the given config
|
||||||
// without any decoration.
|
// without any decoration.
|
||||||
func UndecoratedStorage(
|
func UndecoratedStorage(
|
||||||
|
copier runtime.ObjectCopier,
|
||||||
config *storagebackend.Config,
|
config *storagebackend.Config,
|
||||||
capacity int,
|
capacity int,
|
||||||
objectType runtime.Object,
|
objectType runtime.Object,
|
||||||
|
@ -32,6 +32,7 @@ go_library(
|
|||||||
srcs = ["storage.go"],
|
srcs = ["storage.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/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",
|
||||||
|
@ -20,6 +20,7 @@ import (
|
|||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
"k8s.io/apimachinery/pkg/runtime"
|
"k8s.io/apimachinery/pkg/runtime"
|
||||||
genericapirequest "k8s.io/apiserver/pkg/endpoints/request"
|
genericapirequest "k8s.io/apiserver/pkg/endpoints/request"
|
||||||
|
"k8s.io/kubernetes/pkg/api"
|
||||||
appsapi "k8s.io/kubernetes/pkg/apis/apps"
|
appsapi "k8s.io/kubernetes/pkg/apis/apps"
|
||||||
"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"
|
||||||
@ -35,6 +36,7 @@ type REST struct {
|
|||||||
// NewREST returns a RESTStorage object that will work against replication controllers.
|
// NewREST returns a RESTStorage object that will work against replication controllers.
|
||||||
func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) {
|
func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) {
|
||||||
store := &genericregistry.Store{
|
store := &genericregistry.Store{
|
||||||
|
Copier: api.Scheme,
|
||||||
NewFunc: func() runtime.Object { return &appsapi.StatefulSet{} },
|
NewFunc: func() runtime.Object { return &appsapi.StatefulSet{} },
|
||||||
NewListFunc: func() runtime.Object { return &appsapi.StatefulSetList{} },
|
NewListFunc: func() runtime.Object { return &appsapi.StatefulSetList{} },
|
||||||
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
||||||
|
@ -31,6 +31,7 @@ go_library(
|
|||||||
srcs = ["storage.go"],
|
srcs = ["storage.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/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",
|
||||||
|
@ -20,6 +20,7 @@ import (
|
|||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
"k8s.io/apimachinery/pkg/runtime"
|
"k8s.io/apimachinery/pkg/runtime"
|
||||||
genericapirequest "k8s.io/apiserver/pkg/endpoints/request"
|
genericapirequest "k8s.io/apiserver/pkg/endpoints/request"
|
||||||
|
"k8s.io/kubernetes/pkg/api"
|
||||||
"k8s.io/kubernetes/pkg/apis/autoscaling"
|
"k8s.io/kubernetes/pkg/apis/autoscaling"
|
||||||
"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"
|
||||||
@ -34,6 +35,7 @@ type REST struct {
|
|||||||
// NewREST returns a RESTStorage object that will work against horizontal pod autoscalers.
|
// NewREST returns a RESTStorage object that will work against horizontal pod autoscalers.
|
||||||
func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) {
|
func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) {
|
||||||
store := &genericregistry.Store{
|
store := &genericregistry.Store{
|
||||||
|
Copier: api.Scheme,
|
||||||
NewFunc: func() runtime.Object { return &autoscaling.HorizontalPodAutoscaler{} },
|
NewFunc: func() runtime.Object { return &autoscaling.HorizontalPodAutoscaler{} },
|
||||||
NewListFunc: func() runtime.Object { return &autoscaling.HorizontalPodAutoscalerList{} },
|
NewListFunc: func() runtime.Object { return &autoscaling.HorizontalPodAutoscalerList{} },
|
||||||
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
||||||
|
@ -33,6 +33,7 @@ go_library(
|
|||||||
srcs = ["storage.go"],
|
srcs = ["storage.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/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",
|
||||||
|
@ -20,6 +20,7 @@ import (
|
|||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
"k8s.io/apimachinery/pkg/runtime"
|
"k8s.io/apimachinery/pkg/runtime"
|
||||||
genericapirequest "k8s.io/apiserver/pkg/endpoints/request"
|
genericapirequest "k8s.io/apiserver/pkg/endpoints/request"
|
||||||
|
"k8s.io/kubernetes/pkg/api"
|
||||||
"k8s.io/kubernetes/pkg/apis/batch"
|
"k8s.io/kubernetes/pkg/apis/batch"
|
||||||
"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"
|
||||||
@ -35,6 +36,7 @@ type REST struct {
|
|||||||
// NewREST returns a RESTStorage object that will work against CronJobs.
|
// NewREST returns a RESTStorage object that will work against CronJobs.
|
||||||
func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) {
|
func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) {
|
||||||
store := &genericregistry.Store{
|
store := &genericregistry.Store{
|
||||||
|
Copier: api.Scheme,
|
||||||
NewFunc: func() runtime.Object { return &batch.CronJob{} },
|
NewFunc: func() runtime.Object { return &batch.CronJob{} },
|
||||||
NewListFunc: func() runtime.Object { return &batch.CronJobList{} },
|
NewListFunc: func() runtime.Object { return &batch.CronJobList{} },
|
||||||
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
||||||
|
@ -31,6 +31,7 @@ go_library(
|
|||||||
srcs = ["storage.go"],
|
srcs = ["storage.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/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",
|
||||||
|
@ -20,6 +20,7 @@ import (
|
|||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
"k8s.io/apimachinery/pkg/runtime"
|
"k8s.io/apimachinery/pkg/runtime"
|
||||||
genericapirequest "k8s.io/apiserver/pkg/endpoints/request"
|
genericapirequest "k8s.io/apiserver/pkg/endpoints/request"
|
||||||
|
"k8s.io/kubernetes/pkg/api"
|
||||||
"k8s.io/kubernetes/pkg/apis/batch"
|
"k8s.io/kubernetes/pkg/apis/batch"
|
||||||
"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"
|
||||||
@ -50,6 +51,7 @@ type REST struct {
|
|||||||
// NewREST returns a RESTStorage object that will work against Jobs.
|
// NewREST returns a RESTStorage object that will work against Jobs.
|
||||||
func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) {
|
func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) {
|
||||||
store := &genericregistry.Store{
|
store := &genericregistry.Store{
|
||||||
|
Copier: api.Scheme,
|
||||||
NewFunc: func() runtime.Object { return &batch.Job{} },
|
NewFunc: func() runtime.Object { return &batch.Job{} },
|
||||||
NewListFunc: func() runtime.Object { return &batch.JobList{} },
|
NewListFunc: func() runtime.Object { return &batch.JobList{} },
|
||||||
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
||||||
|
@ -12,6 +12,7 @@ go_library(
|
|||||||
srcs = ["storage.go"],
|
srcs = ["storage.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/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",
|
||||||
|
@ -19,6 +19,7 @@ package storage
|
|||||||
import (
|
import (
|
||||||
"k8s.io/apimachinery/pkg/runtime"
|
"k8s.io/apimachinery/pkg/runtime"
|
||||||
genericapirequest "k8s.io/apiserver/pkg/endpoints/request"
|
genericapirequest "k8s.io/apiserver/pkg/endpoints/request"
|
||||||
|
"k8s.io/kubernetes/pkg/api"
|
||||||
"k8s.io/kubernetes/pkg/apis/certificates"
|
"k8s.io/kubernetes/pkg/apis/certificates"
|
||||||
"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"
|
||||||
@ -34,6 +35,7 @@ type REST struct {
|
|||||||
// NewREST returns a registry which will store CertificateSigningRequest in the given helper
|
// NewREST returns a registry which will store CertificateSigningRequest in the given helper
|
||||||
func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST, *ApprovalREST) {
|
func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST, *ApprovalREST) {
|
||||||
store := &genericregistry.Store{
|
store := &genericregistry.Store{
|
||||||
|
Copier: api.Scheme,
|
||||||
NewFunc: func() runtime.Object { return &certificates.CertificateSigningRequest{} },
|
NewFunc: func() runtime.Object { return &certificates.CertificateSigningRequest{} },
|
||||||
NewListFunc: func() runtime.Object { return &certificates.CertificateSigningRequestList{} },
|
NewListFunc: func() runtime.Object { return &certificates.CertificateSigningRequestList{} },
|
||||||
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
||||||
|
@ -32,6 +32,7 @@ type REST struct {
|
|||||||
// NewREST returns a RESTStorage object that will work with ConfigMap objects.
|
// NewREST returns a RESTStorage object that will work with ConfigMap objects.
|
||||||
func NewREST(optsGetter generic.RESTOptionsGetter) *REST {
|
func NewREST(optsGetter generic.RESTOptionsGetter) *REST {
|
||||||
store := &genericregistry.Store{
|
store := &genericregistry.Store{
|
||||||
|
Copier: api.Scheme,
|
||||||
NewFunc: func() runtime.Object { return &api.ConfigMap{} },
|
NewFunc: func() runtime.Object { return &api.ConfigMap{} },
|
||||||
NewListFunc: func() runtime.Object { return &api.ConfigMapList{} },
|
NewListFunc: func() runtime.Object { return &api.ConfigMapList{} },
|
||||||
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
||||||
|
@ -31,6 +31,7 @@ type REST struct {
|
|||||||
// NewREST returns a RESTStorage object that will work against endpoints.
|
// NewREST returns a RESTStorage object that will work against endpoints.
|
||||||
func NewREST(optsGetter generic.RESTOptionsGetter) *REST {
|
func NewREST(optsGetter generic.RESTOptionsGetter) *REST {
|
||||||
store := &genericregistry.Store{
|
store := &genericregistry.Store{
|
||||||
|
Copier: api.Scheme,
|
||||||
NewFunc: func() runtime.Object { return &api.Endpoints{} },
|
NewFunc: func() runtime.Object { return &api.Endpoints{} },
|
||||||
NewListFunc: func() runtime.Object { return &api.EndpointsList{} },
|
NewListFunc: func() runtime.Object { return &api.EndpointsList{} },
|
||||||
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
||||||
|
@ -41,6 +41,7 @@ func NewREST(optsGetter generic.RESTOptionsGetter, ttl uint64) *REST {
|
|||||||
opts.Decorator = generic.UndecoratedStorage // TODO use watchCacheSize=-1 to signal UndecoratedStorage
|
opts.Decorator = generic.UndecoratedStorage // TODO use watchCacheSize=-1 to signal UndecoratedStorage
|
||||||
|
|
||||||
store := &genericregistry.Store{
|
store := &genericregistry.Store{
|
||||||
|
Copier: api.Scheme,
|
||||||
NewFunc: func() runtime.Object { return &api.Event{} },
|
NewFunc: func() runtime.Object { return &api.Event{} },
|
||||||
NewListFunc: func() runtime.Object { return &api.EventList{} },
|
NewListFunc: func() runtime.Object { return &api.EventList{} },
|
||||||
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
||||||
|
@ -31,6 +31,7 @@ type REST struct {
|
|||||||
// NewREST returns a RESTStorage object that will work against horizontal pod autoscalers.
|
// NewREST returns a RESTStorage object that will work against horizontal pod autoscalers.
|
||||||
func NewREST(optsGetter generic.RESTOptionsGetter) *REST {
|
func NewREST(optsGetter generic.RESTOptionsGetter) *REST {
|
||||||
store := &genericregistry.Store{
|
store := &genericregistry.Store{
|
||||||
|
Copier: api.Scheme,
|
||||||
NewFunc: func() runtime.Object { return &api.LimitRange{} },
|
NewFunc: func() runtime.Object { return &api.LimitRange{} },
|
||||||
NewListFunc: func() runtime.Object { return &api.LimitRangeList{} },
|
NewListFunc: func() runtime.Object { return &api.LimitRangeList{} },
|
||||||
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
||||||
|
@ -51,6 +51,7 @@ type FinalizeREST struct {
|
|||||||
// NewREST returns a RESTStorage object that will work against namespaces.
|
// NewREST returns a RESTStorage object that will work against namespaces.
|
||||||
func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST, *FinalizeREST) {
|
func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST, *FinalizeREST) {
|
||||||
store := &genericregistry.Store{
|
store := &genericregistry.Store{
|
||||||
|
Copier: api.Scheme,
|
||||||
NewFunc: func() runtime.Object { return &api.Namespace{} },
|
NewFunc: func() runtime.Object { return &api.Namespace{} },
|
||||||
NewListFunc: func() runtime.Object { return &api.NamespaceList{} },
|
NewListFunc: func() runtime.Object { return &api.NamespaceList{} },
|
||||||
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
||||||
|
@ -71,6 +71,7 @@ func (r *StatusREST) Update(ctx genericapirequest.Context, name string, objInfo
|
|||||||
// NewStorage returns a NodeStorage object that will work against nodes.
|
// NewStorage returns a NodeStorage object that will work against nodes.
|
||||||
func NewStorage(optsGetter generic.RESTOptionsGetter, kubeletClientConfig client.KubeletClientConfig, proxyTransport http.RoundTripper) (*NodeStorage, error) {
|
func NewStorage(optsGetter generic.RESTOptionsGetter, kubeletClientConfig client.KubeletClientConfig, proxyTransport http.RoundTripper) (*NodeStorage, error) {
|
||||||
store := &genericregistry.Store{
|
store := &genericregistry.Store{
|
||||||
|
Copier: api.Scheme,
|
||||||
NewFunc: func() runtime.Object { return &api.Node{} },
|
NewFunc: func() runtime.Object { return &api.Node{} },
|
||||||
NewListFunc: func() runtime.Object { return &api.NodeList{} },
|
NewListFunc: func() runtime.Object { return &api.NodeList{} },
|
||||||
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
||||||
|
@ -34,6 +34,7 @@ type REST struct {
|
|||||||
// NewREST returns a RESTStorage object that will work against persistent volumes.
|
// NewREST returns a RESTStorage object that will work against persistent volumes.
|
||||||
func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) {
|
func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) {
|
||||||
store := &genericregistry.Store{
|
store := &genericregistry.Store{
|
||||||
|
Copier: api.Scheme,
|
||||||
NewFunc: func() runtime.Object { return &api.PersistentVolume{} },
|
NewFunc: func() runtime.Object { return &api.PersistentVolume{} },
|
||||||
NewListFunc: func() runtime.Object { return &api.PersistentVolumeList{} },
|
NewListFunc: func() runtime.Object { return &api.PersistentVolumeList{} },
|
||||||
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
||||||
|
@ -34,6 +34,7 @@ type REST struct {
|
|||||||
// NewREST returns a RESTStorage object that will work against persistent volume claims.
|
// NewREST returns a RESTStorage object that will work against persistent volume claims.
|
||||||
func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) {
|
func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) {
|
||||||
store := &genericregistry.Store{
|
store := &genericregistry.Store{
|
||||||
|
Copier: api.Scheme,
|
||||||
NewFunc: func() runtime.Object { return &api.PersistentVolumeClaim{} },
|
NewFunc: func() runtime.Object { return &api.PersistentVolumeClaim{} },
|
||||||
NewListFunc: func() runtime.Object { return &api.PersistentVolumeClaimList{} },
|
NewListFunc: func() runtime.Object { return &api.PersistentVolumeClaimList{} },
|
||||||
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
||||||
|
@ -60,6 +60,7 @@ type REST struct {
|
|||||||
// NewStorage returns a RESTStorage object that will work against pods.
|
// NewStorage returns a RESTStorage object that will work against pods.
|
||||||
func NewStorage(optsGetter generic.RESTOptionsGetter, k client.ConnectionInfoGetter, proxyTransport http.RoundTripper, podDisruptionBudgetClient policyclient.PodDisruptionBudgetsGetter) PodStorage {
|
func NewStorage(optsGetter generic.RESTOptionsGetter, k client.ConnectionInfoGetter, proxyTransport http.RoundTripper, podDisruptionBudgetClient policyclient.PodDisruptionBudgetsGetter) PodStorage {
|
||||||
store := &genericregistry.Store{
|
store := &genericregistry.Store{
|
||||||
|
Copier: api.Scheme,
|
||||||
NewFunc: func() runtime.Object { return &api.Pod{} },
|
NewFunc: func() runtime.Object { return &api.Pod{} },
|
||||||
NewListFunc: func() runtime.Object { return &api.PodList{} },
|
NewListFunc: func() runtime.Object { return &api.PodList{} },
|
||||||
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
||||||
|
@ -31,6 +31,7 @@ type REST struct {
|
|||||||
// NewREST returns a RESTStorage object that will work against pod templates.
|
// NewREST returns a RESTStorage object that will work against pod templates.
|
||||||
func NewREST(optsGetter generic.RESTOptionsGetter) *REST {
|
func NewREST(optsGetter generic.RESTOptionsGetter) *REST {
|
||||||
store := &genericregistry.Store{
|
store := &genericregistry.Store{
|
||||||
|
Copier: api.Scheme,
|
||||||
NewFunc: func() runtime.Object { return &api.PodTemplate{} },
|
NewFunc: func() runtime.Object { return &api.PodTemplate{} },
|
||||||
NewListFunc: func() runtime.Object { return &api.PodTemplateList{} },
|
NewListFunc: func() runtime.Object { return &api.PodTemplateList{} },
|
||||||
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
||||||
|
@ -60,6 +60,7 @@ type REST struct {
|
|||||||
// NewREST returns a RESTStorage object that will work against replication controllers.
|
// NewREST returns a RESTStorage object that will work against replication controllers.
|
||||||
func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) {
|
func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) {
|
||||||
store := &genericregistry.Store{
|
store := &genericregistry.Store{
|
||||||
|
Copier: api.Scheme,
|
||||||
NewFunc: func() runtime.Object { return &api.ReplicationController{} },
|
NewFunc: func() runtime.Object { return &api.ReplicationController{} },
|
||||||
NewListFunc: func() runtime.Object { return &api.ReplicationControllerList{} },
|
NewListFunc: func() runtime.Object { return &api.ReplicationControllerList{} },
|
||||||
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
||||||
|
@ -34,6 +34,7 @@ type REST struct {
|
|||||||
// NewREST returns a RESTStorage object that will work against resource quotas.
|
// NewREST returns a RESTStorage object that will work against resource quotas.
|
||||||
func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) {
|
func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) {
|
||||||
store := &genericregistry.Store{
|
store := &genericregistry.Store{
|
||||||
|
Copier: api.Scheme,
|
||||||
NewFunc: func() runtime.Object { return &api.ResourceQuota{} },
|
NewFunc: func() runtime.Object { return &api.ResourceQuota{} },
|
||||||
NewListFunc: func() runtime.Object { return &api.ResourceQuotaList{} },
|
NewListFunc: func() runtime.Object { return &api.ResourceQuotaList{} },
|
||||||
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
||||||
|
@ -31,6 +31,7 @@ type REST struct {
|
|||||||
// NewREST returns a RESTStorage object that will work against secrets.
|
// NewREST returns a RESTStorage object that will work against secrets.
|
||||||
func NewREST(optsGetter generic.RESTOptionsGetter) *REST {
|
func NewREST(optsGetter generic.RESTOptionsGetter) *REST {
|
||||||
store := &genericregistry.Store{
|
store := &genericregistry.Store{
|
||||||
|
Copier: api.Scheme,
|
||||||
NewFunc: func() runtime.Object { return &api.Secret{} },
|
NewFunc: func() runtime.Object { return &api.Secret{} },
|
||||||
NewListFunc: func() runtime.Object { return &api.SecretList{} },
|
NewListFunc: func() runtime.Object { return &api.SecretList{} },
|
||||||
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
||||||
|
@ -34,6 +34,7 @@ type REST struct {
|
|||||||
// NewREST returns a RESTStorage object that will work against services.
|
// NewREST returns a RESTStorage object that will work against services.
|
||||||
func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) {
|
func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) {
|
||||||
store := &genericregistry.Store{
|
store := &genericregistry.Store{
|
||||||
|
Copier: api.Scheme,
|
||||||
NewFunc: func() runtime.Object { return &api.Service{} },
|
NewFunc: func() runtime.Object { return &api.Service{} },
|
||||||
NewListFunc: func() runtime.Object { return &api.ServiceList{} },
|
NewListFunc: func() runtime.Object { return &api.ServiceList{} },
|
||||||
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
||||||
|
@ -31,6 +31,7 @@ type REST struct {
|
|||||||
// NewREST returns a RESTStorage object that will work against service accounts.
|
// NewREST returns a RESTStorage object that will work against service accounts.
|
||||||
func NewREST(optsGetter generic.RESTOptionsGetter) *REST {
|
func NewREST(optsGetter generic.RESTOptionsGetter) *REST {
|
||||||
store := &genericregistry.Store{
|
store := &genericregistry.Store{
|
||||||
|
Copier: api.Scheme,
|
||||||
NewFunc: func() runtime.Object { return &api.ServiceAccount{} },
|
NewFunc: func() runtime.Object { return &api.ServiceAccount{} },
|
||||||
NewListFunc: func() runtime.Object { return &api.ServiceAccountList{} },
|
NewListFunc: func() runtime.Object { return &api.ServiceAccountList{} },
|
||||||
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
||||||
|
@ -31,6 +31,7 @@ go_library(
|
|||||||
srcs = ["storage.go"],
|
srcs = ["storage.go"],
|
||||||
tags = ["automanaged"],
|
tags = ["automanaged"],
|
||||||
deps = [
|
deps = [
|
||||||
|
"//pkg/api: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/generic/registry:go_default_library",
|
"//pkg/genericapiserver/registry/generic/registry:go_default_library",
|
||||||
|
@ -20,6 +20,7 @@ import (
|
|||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
"k8s.io/apimachinery/pkg/runtime"
|
"k8s.io/apimachinery/pkg/runtime"
|
||||||
genericapirequest "k8s.io/apiserver/pkg/endpoints/request"
|
genericapirequest "k8s.io/apiserver/pkg/endpoints/request"
|
||||||
|
"k8s.io/kubernetes/pkg/api"
|
||||||
"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"
|
||||||
genericregistry "k8s.io/kubernetes/pkg/genericapiserver/registry/generic/registry"
|
genericregistry "k8s.io/kubernetes/pkg/genericapiserver/registry/generic/registry"
|
||||||
@ -35,6 +36,7 @@ type REST struct {
|
|||||||
// NewREST returns a RESTStorage object that will work against DaemonSets.
|
// NewREST returns a RESTStorage object that will work against DaemonSets.
|
||||||
func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) {
|
func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) {
|
||||||
store := &genericregistry.Store{
|
store := &genericregistry.Store{
|
||||||
|
Copier: api.Scheme,
|
||||||
NewFunc: func() runtime.Object { return &extensions.DaemonSet{} },
|
NewFunc: func() runtime.Object { return &extensions.DaemonSet{} },
|
||||||
NewListFunc: func() runtime.Object { return &extensions.DaemonSetList{} },
|
NewListFunc: func() runtime.Object { return &extensions.DaemonSetList{} },
|
||||||
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
||||||
|
@ -37,6 +37,7 @@ go_library(
|
|||||||
srcs = ["storage.go"],
|
srcs = ["storage.go"],
|
||||||
tags = ["automanaged"],
|
tags = ["automanaged"],
|
||||||
deps = [
|
deps = [
|
||||||
|
"//pkg/api:go_default_library",
|
||||||
"//pkg/api/errors/storage: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",
|
||||||
|
@ -24,6 +24,7 @@ import (
|
|||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
"k8s.io/apimachinery/pkg/runtime"
|
"k8s.io/apimachinery/pkg/runtime"
|
||||||
genericapirequest "k8s.io/apiserver/pkg/endpoints/request"
|
genericapirequest "k8s.io/apiserver/pkg/endpoints/request"
|
||||||
|
"k8s.io/kubernetes/pkg/api"
|
||||||
storeerr "k8s.io/kubernetes/pkg/api/errors/storage"
|
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"
|
||||||
@ -61,6 +62,7 @@ type REST struct {
|
|||||||
// NewREST returns a RESTStorage object that will work against deployments.
|
// NewREST returns a RESTStorage object that will work against deployments.
|
||||||
func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST, *RollbackREST) {
|
func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST, *RollbackREST) {
|
||||||
store := &genericregistry.Store{
|
store := &genericregistry.Store{
|
||||||
|
Copier: api.Scheme,
|
||||||
NewFunc: func() runtime.Object { return &extensions.Deployment{} },
|
NewFunc: func() runtime.Object { return &extensions.Deployment{} },
|
||||||
NewListFunc: func() runtime.Object { return &extensions.DeploymentList{} },
|
NewListFunc: func() runtime.Object { return &extensions.DeploymentList{} },
|
||||||
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
||||||
|
@ -32,6 +32,7 @@ go_library(
|
|||||||
srcs = ["storage.go"],
|
srcs = ["storage.go"],
|
||||||
tags = ["automanaged"],
|
tags = ["automanaged"],
|
||||||
deps = [
|
deps = [
|
||||||
|
"//pkg/api: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/generic/registry:go_default_library",
|
"//pkg/genericapiserver/registry/generic/registry:go_default_library",
|
||||||
|
@ -20,6 +20,7 @@ import (
|
|||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
"k8s.io/apimachinery/pkg/runtime"
|
"k8s.io/apimachinery/pkg/runtime"
|
||||||
genericapirequest "k8s.io/apiserver/pkg/endpoints/request"
|
genericapirequest "k8s.io/apiserver/pkg/endpoints/request"
|
||||||
|
"k8s.io/kubernetes/pkg/api"
|
||||||
"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"
|
||||||
genericregistry "k8s.io/kubernetes/pkg/genericapiserver/registry/generic/registry"
|
genericregistry "k8s.io/kubernetes/pkg/genericapiserver/registry/generic/registry"
|
||||||
@ -35,6 +36,7 @@ type REST struct {
|
|||||||
// NewREST returns a RESTStorage object that will work against replication controllers.
|
// NewREST returns a RESTStorage object that will work against replication controllers.
|
||||||
func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) {
|
func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) {
|
||||||
store := &genericregistry.Store{
|
store := &genericregistry.Store{
|
||||||
|
Copier: api.Scheme,
|
||||||
NewFunc: func() runtime.Object { return &extensions.Ingress{} },
|
NewFunc: func() runtime.Object { return &extensions.Ingress{} },
|
||||||
NewListFunc: func() runtime.Object { return &extensions.IngressList{} },
|
NewListFunc: func() runtime.Object { return &extensions.IngressList{} },
|
||||||
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
||||||
|
@ -32,6 +32,7 @@ go_library(
|
|||||||
srcs = ["storage.go"],
|
srcs = ["storage.go"],
|
||||||
tags = ["automanaged"],
|
tags = ["automanaged"],
|
||||||
deps = [
|
deps = [
|
||||||
|
"//pkg/api: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/generic/registry:go_default_library",
|
"//pkg/genericapiserver/registry/generic/registry:go_default_library",
|
||||||
|
@ -18,6 +18,7 @@ package storage
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"k8s.io/apimachinery/pkg/runtime"
|
"k8s.io/apimachinery/pkg/runtime"
|
||||||
|
"k8s.io/kubernetes/pkg/api"
|
||||||
extensionsapi "k8s.io/kubernetes/pkg/apis/extensions"
|
extensionsapi "k8s.io/kubernetes/pkg/apis/extensions"
|
||||||
"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"
|
||||||
@ -32,6 +33,7 @@ type REST struct {
|
|||||||
// NewREST returns a RESTStorage object that will work against network policies.
|
// NewREST returns a RESTStorage object that will work against network policies.
|
||||||
func NewREST(optsGetter generic.RESTOptionsGetter) *REST {
|
func NewREST(optsGetter generic.RESTOptionsGetter) *REST {
|
||||||
store := &genericregistry.Store{
|
store := &genericregistry.Store{
|
||||||
|
Copier: api.Scheme,
|
||||||
NewFunc: func() runtime.Object { return &extensionsapi.NetworkPolicy{} },
|
NewFunc: func() runtime.Object { return &extensionsapi.NetworkPolicy{} },
|
||||||
NewListFunc: func() runtime.Object { return &extensionsapi.NetworkPolicyList{} },
|
NewListFunc: func() runtime.Object { return &extensionsapi.NetworkPolicyList{} },
|
||||||
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
||||||
|
@ -31,6 +31,7 @@ go_library(
|
|||||||
srcs = ["storage.go"],
|
srcs = ["storage.go"],
|
||||||
tags = ["automanaged"],
|
tags = ["automanaged"],
|
||||||
deps = [
|
deps = [
|
||||||
|
"//pkg/api: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/generic/registry:go_default_library",
|
"//pkg/genericapiserver/registry/generic/registry:go_default_library",
|
||||||
|
@ -18,6 +18,7 @@ package storage
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"k8s.io/apimachinery/pkg/runtime"
|
"k8s.io/apimachinery/pkg/runtime"
|
||||||
|
"k8s.io/kubernetes/pkg/api"
|
||||||
"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"
|
||||||
genericregistry "k8s.io/kubernetes/pkg/genericapiserver/registry/generic/registry"
|
genericregistry "k8s.io/kubernetes/pkg/genericapiserver/registry/generic/registry"
|
||||||
@ -32,6 +33,7 @@ type REST struct {
|
|||||||
// NewREST returns a RESTStorage object that will work against PodSecurityPolicy objects.
|
// NewREST returns a RESTStorage object that will work against PodSecurityPolicy objects.
|
||||||
func NewREST(optsGetter generic.RESTOptionsGetter) *REST {
|
func NewREST(optsGetter generic.RESTOptionsGetter) *REST {
|
||||||
store := &genericregistry.Store{
|
store := &genericregistry.Store{
|
||||||
|
Copier: api.Scheme,
|
||||||
NewFunc: func() runtime.Object { return &extensions.PodSecurityPolicy{} },
|
NewFunc: func() runtime.Object { return &extensions.PodSecurityPolicy{} },
|
||||||
NewListFunc: func() runtime.Object { return &extensions.PodSecurityPolicyList{} },
|
NewListFunc: func() runtime.Object { return &extensions.PodSecurityPolicyList{} },
|
||||||
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
||||||
|
@ -35,6 +35,7 @@ go_library(
|
|||||||
srcs = ["storage.go"],
|
srcs = ["storage.go"],
|
||||||
tags = ["automanaged"],
|
tags = ["automanaged"],
|
||||||
deps = [
|
deps = [
|
||||||
|
"//pkg/api: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",
|
||||||
|
@ -25,6 +25,7 @@ import (
|
|||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
"k8s.io/apimachinery/pkg/runtime"
|
"k8s.io/apimachinery/pkg/runtime"
|
||||||
genericapirequest "k8s.io/apiserver/pkg/endpoints/request"
|
genericapirequest "k8s.io/apiserver/pkg/endpoints/request"
|
||||||
|
"k8s.io/kubernetes/pkg/api"
|
||||||
"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"
|
||||||
@ -58,6 +59,7 @@ type REST struct {
|
|||||||
// NewREST returns a RESTStorage object that will work against ReplicaSet.
|
// NewREST returns a RESTStorage object that will work against ReplicaSet.
|
||||||
func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) {
|
func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) {
|
||||||
store := &genericregistry.Store{
|
store := &genericregistry.Store{
|
||||||
|
Copier: api.Scheme,
|
||||||
NewFunc: func() runtime.Object { return &extensions.ReplicaSet{} },
|
NewFunc: func() runtime.Object { return &extensions.ReplicaSet{} },
|
||||||
NewListFunc: func() runtime.Object { return &extensions.ReplicaSetList{} },
|
NewListFunc: func() runtime.Object { return &extensions.ReplicaSetList{} },
|
||||||
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
||||||
|
@ -31,6 +31,7 @@ go_library(
|
|||||||
srcs = ["storage.go"],
|
srcs = ["storage.go"],
|
||||||
tags = ["automanaged"],
|
tags = ["automanaged"],
|
||||||
deps = [
|
deps = [
|
||||||
|
"//pkg/api: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/generic/registry:go_default_library",
|
"//pkg/genericapiserver/registry/generic/registry:go_default_library",
|
||||||
|
@ -18,6 +18,7 @@ package storage
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"k8s.io/apimachinery/pkg/runtime"
|
"k8s.io/apimachinery/pkg/runtime"
|
||||||
|
"k8s.io/kubernetes/pkg/api"
|
||||||
"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"
|
||||||
genericregistry "k8s.io/kubernetes/pkg/genericapiserver/registry/generic/registry"
|
genericregistry "k8s.io/kubernetes/pkg/genericapiserver/registry/generic/registry"
|
||||||
@ -41,6 +42,7 @@ func NewREST(optsGetter generic.RESTOptionsGetter) *REST {
|
|||||||
opts.Decorator = generic.UndecoratedStorage // TODO use watchCacheSize=-1 to signal UndecoratedStorage
|
opts.Decorator = generic.UndecoratedStorage // TODO use watchCacheSize=-1 to signal UndecoratedStorage
|
||||||
|
|
||||||
store := &genericregistry.Store{
|
store := &genericregistry.Store{
|
||||||
|
Copier: api.Scheme,
|
||||||
NewFunc: func() runtime.Object { return &extensions.ThirdPartyResource{} },
|
NewFunc: func() runtime.Object { return &extensions.ThirdPartyResource{} },
|
||||||
NewListFunc: func() runtime.Object { return &extensions.ThirdPartyResourceList{} },
|
NewListFunc: func() runtime.Object { return &extensions.ThirdPartyResourceList{} },
|
||||||
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
||||||
|
@ -31,6 +31,7 @@ go_library(
|
|||||||
srcs = ["storage.go"],
|
srcs = ["storage.go"],
|
||||||
tags = ["automanaged"],
|
tags = ["automanaged"],
|
||||||
deps = [
|
deps = [
|
||||||
|
"//pkg/api: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/generic/registry:go_default_library",
|
"//pkg/genericapiserver/registry/generic/registry:go_default_library",
|
||||||
|
@ -20,6 +20,7 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"k8s.io/apimachinery/pkg/runtime"
|
"k8s.io/apimachinery/pkg/runtime"
|
||||||
|
"k8s.io/kubernetes/pkg/api"
|
||||||
"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"
|
||||||
genericregistry "k8s.io/kubernetes/pkg/genericapiserver/registry/generic/registry"
|
genericregistry "k8s.io/kubernetes/pkg/genericapiserver/registry/generic/registry"
|
||||||
@ -45,6 +46,7 @@ func NewREST(optsGetter generic.RESTOptionsGetter, group, kind string) *REST {
|
|||||||
opts.ResourcePrefix = "/ThirdPartyResourceData/" + group + "/" + strings.ToLower(kind) + "s"
|
opts.ResourcePrefix = "/ThirdPartyResourceData/" + group + "/" + strings.ToLower(kind) + "s"
|
||||||
|
|
||||||
store := &genericregistry.Store{
|
store := &genericregistry.Store{
|
||||||
|
Copier: api.Scheme,
|
||||||
NewFunc: func() runtime.Object { return &extensions.ThirdPartyResourceData{} },
|
NewFunc: func() runtime.Object { return &extensions.ThirdPartyResourceData{} },
|
||||||
NewListFunc: func() runtime.Object { return &extensions.ThirdPartyResourceDataList{} },
|
NewListFunc: func() runtime.Object { return &extensions.ThirdPartyResourceDataList{} },
|
||||||
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
||||||
|
@ -33,6 +33,7 @@ go_library(
|
|||||||
srcs = ["storage.go"],
|
srcs = ["storage.go"],
|
||||||
tags = ["automanaged"],
|
tags = ["automanaged"],
|
||||||
deps = [
|
deps = [
|
||||||
|
"//pkg/api:go_default_library",
|
||||||
"//pkg/apis/policy:go_default_library",
|
"//pkg/apis/policy: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",
|
||||||
|
@ -20,6 +20,7 @@ import (
|
|||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
"k8s.io/apimachinery/pkg/runtime"
|
"k8s.io/apimachinery/pkg/runtime"
|
||||||
genericapirequest "k8s.io/apiserver/pkg/endpoints/request"
|
genericapirequest "k8s.io/apiserver/pkg/endpoints/request"
|
||||||
|
"k8s.io/kubernetes/pkg/api"
|
||||||
policyapi "k8s.io/kubernetes/pkg/apis/policy"
|
policyapi "k8s.io/kubernetes/pkg/apis/policy"
|
||||||
"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"
|
||||||
@ -35,6 +36,7 @@ type REST struct {
|
|||||||
// NewREST returns a RESTStorage object that will work against pod disruption budgets.
|
// NewREST returns a RESTStorage object that will work against pod disruption budgets.
|
||||||
func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) {
|
func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) {
|
||||||
store := &genericregistry.Store{
|
store := &genericregistry.Store{
|
||||||
|
Copier: api.Scheme,
|
||||||
NewFunc: func() runtime.Object { return &policyapi.PodDisruptionBudget{} },
|
NewFunc: func() runtime.Object { return &policyapi.PodDisruptionBudget{} },
|
||||||
NewListFunc: func() runtime.Object { return &policyapi.PodDisruptionBudgetList{} },
|
NewListFunc: func() runtime.Object { return &policyapi.PodDisruptionBudgetList{} },
|
||||||
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
||||||
|
@ -12,6 +12,7 @@ go_library(
|
|||||||
srcs = ["storage.go"],
|
srcs = ["storage.go"],
|
||||||
tags = ["automanaged"],
|
tags = ["automanaged"],
|
||||||
deps = [
|
deps = [
|
||||||
|
"//pkg/api:go_default_library",
|
||||||
"//pkg/apis/rbac:go_default_library",
|
"//pkg/apis/rbac: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",
|
||||||
|
@ -18,6 +18,7 @@ package storage
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"k8s.io/apimachinery/pkg/runtime"
|
"k8s.io/apimachinery/pkg/runtime"
|
||||||
|
"k8s.io/kubernetes/pkg/api"
|
||||||
"k8s.io/kubernetes/pkg/apis/rbac"
|
"k8s.io/kubernetes/pkg/apis/rbac"
|
||||||
"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"
|
||||||
@ -32,6 +33,7 @@ type REST struct {
|
|||||||
// NewREST returns a RESTStorage object that will work against ClusterRole objects.
|
// NewREST returns a RESTStorage object that will work against ClusterRole objects.
|
||||||
func NewREST(optsGetter generic.RESTOptionsGetter) *REST {
|
func NewREST(optsGetter generic.RESTOptionsGetter) *REST {
|
||||||
store := &genericregistry.Store{
|
store := &genericregistry.Store{
|
||||||
|
Copier: api.Scheme,
|
||||||
NewFunc: func() runtime.Object { return &rbac.ClusterRole{} },
|
NewFunc: func() runtime.Object { return &rbac.ClusterRole{} },
|
||||||
NewListFunc: func() runtime.Object { return &rbac.ClusterRoleList{} },
|
NewListFunc: func() runtime.Object { return &rbac.ClusterRoleList{} },
|
||||||
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
||||||
|
@ -12,6 +12,7 @@ go_library(
|
|||||||
srcs = ["storage.go"],
|
srcs = ["storage.go"],
|
||||||
tags = ["automanaged"],
|
tags = ["automanaged"],
|
||||||
deps = [
|
deps = [
|
||||||
|
"//pkg/api:go_default_library",
|
||||||
"//pkg/apis/rbac:go_default_library",
|
"//pkg/apis/rbac: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",
|
||||||
|
@ -18,6 +18,7 @@ package storage
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"k8s.io/apimachinery/pkg/runtime"
|
"k8s.io/apimachinery/pkg/runtime"
|
||||||
|
"k8s.io/kubernetes/pkg/api"
|
||||||
"k8s.io/kubernetes/pkg/apis/rbac"
|
"k8s.io/kubernetes/pkg/apis/rbac"
|
||||||
"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"
|
||||||
@ -32,6 +33,7 @@ type REST struct {
|
|||||||
// NewREST returns a RESTStorage object that will work against ClusterRoleBinding objects.
|
// NewREST returns a RESTStorage object that will work against ClusterRoleBinding objects.
|
||||||
func NewREST(optsGetter generic.RESTOptionsGetter) *REST {
|
func NewREST(optsGetter generic.RESTOptionsGetter) *REST {
|
||||||
store := &genericregistry.Store{
|
store := &genericregistry.Store{
|
||||||
|
Copier: api.Scheme,
|
||||||
NewFunc: func() runtime.Object { return &rbac.ClusterRoleBinding{} },
|
NewFunc: func() runtime.Object { return &rbac.ClusterRoleBinding{} },
|
||||||
NewListFunc: func() runtime.Object { return &rbac.ClusterRoleBindingList{} },
|
NewListFunc: func() runtime.Object { return &rbac.ClusterRoleBindingList{} },
|
||||||
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
||||||
|
@ -12,6 +12,7 @@ go_library(
|
|||||||
srcs = ["storage.go"],
|
srcs = ["storage.go"],
|
||||||
tags = ["automanaged"],
|
tags = ["automanaged"],
|
||||||
deps = [
|
deps = [
|
||||||
|
"//pkg/api:go_default_library",
|
||||||
"//pkg/apis/rbac:go_default_library",
|
"//pkg/apis/rbac: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",
|
||||||
|
@ -18,6 +18,7 @@ package storage
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"k8s.io/apimachinery/pkg/runtime"
|
"k8s.io/apimachinery/pkg/runtime"
|
||||||
|
"k8s.io/kubernetes/pkg/api"
|
||||||
"k8s.io/kubernetes/pkg/apis/rbac"
|
"k8s.io/kubernetes/pkg/apis/rbac"
|
||||||
"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"
|
||||||
@ -32,6 +33,7 @@ type REST struct {
|
|||||||
// NewREST returns a RESTStorage object that will work against Role objects.
|
// NewREST returns a RESTStorage object that will work against Role objects.
|
||||||
func NewREST(optsGetter generic.RESTOptionsGetter) *REST {
|
func NewREST(optsGetter generic.RESTOptionsGetter) *REST {
|
||||||
store := &genericregistry.Store{
|
store := &genericregistry.Store{
|
||||||
|
Copier: api.Scheme,
|
||||||
NewFunc: func() runtime.Object { return &rbac.Role{} },
|
NewFunc: func() runtime.Object { return &rbac.Role{} },
|
||||||
NewListFunc: func() runtime.Object { return &rbac.RoleList{} },
|
NewListFunc: func() runtime.Object { return &rbac.RoleList{} },
|
||||||
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
||||||
|
@ -12,6 +12,7 @@ go_library(
|
|||||||
srcs = ["storage.go"],
|
srcs = ["storage.go"],
|
||||||
tags = ["automanaged"],
|
tags = ["automanaged"],
|
||||||
deps = [
|
deps = [
|
||||||
|
"//pkg/api:go_default_library",
|
||||||
"//pkg/apis/rbac:go_default_library",
|
"//pkg/apis/rbac: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",
|
||||||
|
@ -18,6 +18,7 @@ package storage
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"k8s.io/apimachinery/pkg/runtime"
|
"k8s.io/apimachinery/pkg/runtime"
|
||||||
|
"k8s.io/kubernetes/pkg/api"
|
||||||
"k8s.io/kubernetes/pkg/apis/rbac"
|
"k8s.io/kubernetes/pkg/apis/rbac"
|
||||||
"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"
|
||||||
@ -32,6 +33,7 @@ type REST struct {
|
|||||||
// NewREST returns a RESTStorage object that will work against RoleBinding objects.
|
// NewREST returns a RESTStorage object that will work against RoleBinding objects.
|
||||||
func NewREST(optsGetter generic.RESTOptionsGetter) *REST {
|
func NewREST(optsGetter generic.RESTOptionsGetter) *REST {
|
||||||
store := &genericregistry.Store{
|
store := &genericregistry.Store{
|
||||||
|
Copier: api.Scheme,
|
||||||
NewFunc: func() runtime.Object { return &rbac.RoleBinding{} },
|
NewFunc: func() runtime.Object { return &rbac.RoleBinding{} },
|
||||||
NewListFunc: func() runtime.Object { return &rbac.RoleBindingList{} },
|
NewListFunc: func() runtime.Object { return &rbac.RoleBindingList{} },
|
||||||
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
||||||
|
@ -30,6 +30,7 @@ go_library(
|
|||||||
srcs = ["storage.go"],
|
srcs = ["storage.go"],
|
||||||
tags = ["automanaged"],
|
tags = ["automanaged"],
|
||||||
deps = [
|
deps = [
|
||||||
|
"//pkg/api:go_default_library",
|
||||||
"//pkg/apis/storage:go_default_library",
|
"//pkg/apis/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",
|
||||||
|
@ -18,6 +18,7 @@ package storage
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"k8s.io/apimachinery/pkg/runtime"
|
"k8s.io/apimachinery/pkg/runtime"
|
||||||
|
"k8s.io/kubernetes/pkg/api"
|
||||||
storageapi "k8s.io/kubernetes/pkg/apis/storage"
|
storageapi "k8s.io/kubernetes/pkg/apis/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"
|
||||||
@ -31,6 +32,7 @@ type REST struct {
|
|||||||
// NewREST returns a RESTStorage object that will work against persistent volumes.
|
// NewREST returns a RESTStorage object that will work against persistent volumes.
|
||||||
func NewREST(optsGetter generic.RESTOptionsGetter) *REST {
|
func NewREST(optsGetter generic.RESTOptionsGetter) *REST {
|
||||||
store := &genericregistry.Store{
|
store := &genericregistry.Store{
|
||||||
|
Copier: api.Scheme,
|
||||||
NewFunc: func() runtime.Object { return &storageapi.StorageClass{} },
|
NewFunc: func() runtime.Object { return &storageapi.StorageClass{} },
|
||||||
NewListFunc: func() runtime.Object { return &storageapi.StorageClassList{} },
|
NewListFunc: func() runtime.Object { return &storageapi.StorageClassList{} },
|
||||||
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
ObjectNameFunc: func(obj runtime.Object) (string, error) {
|
||||||
|
@ -22,7 +22,6 @@ go_library(
|
|||||||
],
|
],
|
||||||
tags = ["automanaged"],
|
tags = ["automanaged"],
|
||||||
deps = [
|
deps = [
|
||||||
"//pkg/api:go_default_library",
|
|
||||||
"//pkg/util:go_default_library",
|
"//pkg/util:go_default_library",
|
||||||
"//vendor:github.com/golang/glog",
|
"//vendor:github.com/golang/glog",
|
||||||
"//vendor:golang.org/x/net/context",
|
"//vendor:golang.org/x/net/context",
|
||||||
@ -56,7 +55,6 @@ go_test(
|
|||||||
library = ":go_default_library",
|
library = ":go_default_library",
|
||||||
tags = ["automanaged"],
|
tags = ["automanaged"],
|
||||||
deps = [
|
deps = [
|
||||||
"//pkg/api: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/fields",
|
"//vendor:k8s.io/apimachinery/pkg/fields",
|
||||||
@ -66,6 +64,7 @@ go_test(
|
|||||||
"//vendor:k8s.io/apimachinery/pkg/util/sets",
|
"//vendor:k8s.io/apimachinery/pkg/util/sets",
|
||||||
"//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/client-go/pkg/api",
|
||||||
"//vendor:k8s.io/client-go/tools/cache",
|
"//vendor:k8s.io/client-go/tools/cache",
|
||||||
"//vendor:k8s.io/client-go/util/clock",
|
"//vendor:k8s.io/client-go/util/clock",
|
||||||
],
|
],
|
||||||
@ -76,10 +75,6 @@ go_test(
|
|||||||
srcs = ["cacher_test.go"],
|
srcs = ["cacher_test.go"],
|
||||||
tags = ["automanaged"],
|
tags = ["automanaged"],
|
||||||
deps = [
|
deps = [
|
||||||
"//pkg/api:go_default_library",
|
|
||||||
"//pkg/api/testapi:go_default_library",
|
|
||||||
"//pkg/api/testing:go_default_library",
|
|
||||||
"//pkg/registry/core/pod:go_default_library",
|
|
||||||
"//pkg/storage:go_default_library",
|
"//pkg/storage:go_default_library",
|
||||||
"//pkg/storage/etcd:go_default_library",
|
"//pkg/storage/etcd:go_default_library",
|
||||||
"//pkg/storage/etcd/etcdtest:go_default_library",
|
"//pkg/storage/etcd/etcdtest:go_default_library",
|
||||||
@ -95,6 +90,9 @@ go_test(
|
|||||||
"//vendor:k8s.io/apimachinery/pkg/util/sets",
|
"//vendor:k8s.io/apimachinery/pkg/util/sets",
|
||||||
"//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/client-go/pkg/api",
|
||||||
|
"//vendor:k8s.io/client-go/pkg/api/install",
|
||||||
|
"//vendor:k8s.io/client-go/pkg/api/v1",
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -35,7 +35,6 @@ import (
|
|||||||
"k8s.io/apimachinery/pkg/util/wait"
|
"k8s.io/apimachinery/pkg/util/wait"
|
||||||
"k8s.io/apimachinery/pkg/watch"
|
"k8s.io/apimachinery/pkg/watch"
|
||||||
"k8s.io/client-go/tools/cache"
|
"k8s.io/client-go/tools/cache"
|
||||||
"k8s.io/kubernetes/pkg/api"
|
|
||||||
"k8s.io/kubernetes/pkg/util"
|
"k8s.io/kubernetes/pkg/util"
|
||||||
|
|
||||||
"github.com/golang/glog"
|
"github.com/golang/glog"
|
||||||
@ -53,6 +52,8 @@ type CacherConfig struct {
|
|||||||
// An underlying storage.Versioner.
|
// An underlying storage.Versioner.
|
||||||
Versioner Versioner
|
Versioner Versioner
|
||||||
|
|
||||||
|
Copier runtime.ObjectCopier
|
||||||
|
|
||||||
// The Cache will be caching objects of a given Type and assumes that they
|
// The Cache will be caching objects of a given Type and assumes that they
|
||||||
// are all stored under ResourcePrefix directory in the underlying database.
|
// are all stored under ResourcePrefix directory in the underlying database.
|
||||||
Type interface{}
|
Type interface{}
|
||||||
@ -158,6 +159,8 @@ type Cacher struct {
|
|||||||
// Underlying storage.Interface.
|
// Underlying storage.Interface.
|
||||||
storage Interface
|
storage Interface
|
||||||
|
|
||||||
|
copier runtime.ObjectCopier
|
||||||
|
|
||||||
// Expected type of objects in the underlying cache.
|
// Expected type of objects in the underlying cache.
|
||||||
objectType reflect.Type
|
objectType reflect.Type
|
||||||
|
|
||||||
@ -206,6 +209,7 @@ func NewCacherFromConfig(config CacherConfig) *Cacher {
|
|||||||
cacher := &Cacher{
|
cacher := &Cacher{
|
||||||
ready: newReady(),
|
ready: newReady(),
|
||||||
storage: config.Storage,
|
storage: config.Storage,
|
||||||
|
copier: config.Copier,
|
||||||
objectType: reflect.TypeOf(config.Type),
|
objectType: reflect.TypeOf(config.Type),
|
||||||
watchCache: watchCache,
|
watchCache: watchCache,
|
||||||
reflector: cache.NewReflector(listerWatcher, config.Type, watchCache, 0),
|
reflector: cache.NewReflector(listerWatcher, config.Type, watchCache, 0),
|
||||||
@ -336,7 +340,7 @@ func (c *Cacher) Watch(ctx context.Context, key string, resourceVersion string,
|
|||||||
c.Lock()
|
c.Lock()
|
||||||
defer c.Unlock()
|
defer c.Unlock()
|
||||||
forget := forgetWatcher(c, c.watcherIdx, triggerValue, triggerSupported)
|
forget := forgetWatcher(c, c.watcherIdx, triggerValue, triggerSupported)
|
||||||
watcher := newCacheWatcher(watchRV, chanSize, initEvents, watchFilterFunction(key, pred), forget)
|
watcher := newCacheWatcher(c.copier, watchRV, chanSize, initEvents, watchFilterFunction(key, pred), forget)
|
||||||
|
|
||||||
c.watchers.addWatcher(watcher, c.watcherIdx, triggerValue, triggerSupported)
|
c.watchers.addWatcher(watcher, c.watcherIdx, triggerValue, triggerSupported)
|
||||||
c.watcherIdx++
|
c.watcherIdx++
|
||||||
@ -520,7 +524,7 @@ func (c *Cacher) GuaranteedUpdate(
|
|||||||
if elem, exists, err := c.watchCache.GetByKey(key); err != nil {
|
if elem, exists, err := c.watchCache.GetByKey(key); err != nil {
|
||||||
glog.Errorf("GetByKey returned error: %v", err)
|
glog.Errorf("GetByKey returned error: %v", err)
|
||||||
} else if exists {
|
} else if exists {
|
||||||
currObj, copyErr := api.Scheme.Copy(elem.(*storeElement).Object)
|
currObj, copyErr := c.copier.Copy(elem.(*storeElement).Object)
|
||||||
if copyErr == nil {
|
if copyErr == nil {
|
||||||
return c.storage.GuaranteedUpdate(ctx, key, ptrToType, ignoreNotFound, preconditions, tryUpdate, currObj)
|
return c.storage.GuaranteedUpdate(ctx, key, ptrToType, ignoreNotFound, preconditions, tryUpdate, currObj)
|
||||||
}
|
}
|
||||||
@ -747,6 +751,7 @@ func (c *errWatcher) Stop() {
|
|||||||
// cacherWatch implements watch.Interface
|
// cacherWatch implements watch.Interface
|
||||||
type cacheWatcher struct {
|
type cacheWatcher struct {
|
||||||
sync.Mutex
|
sync.Mutex
|
||||||
|
copier runtime.ObjectCopier
|
||||||
input chan watchCacheEvent
|
input chan watchCacheEvent
|
||||||
result chan watch.Event
|
result chan watch.Event
|
||||||
done chan struct{}
|
done chan struct{}
|
||||||
@ -755,8 +760,9 @@ type cacheWatcher struct {
|
|||||||
forget func(bool)
|
forget func(bool)
|
||||||
}
|
}
|
||||||
|
|
||||||
func newCacheWatcher(resourceVersion uint64, chanSize int, initEvents []*watchCacheEvent, filter watchFilterFunc, forget func(bool)) *cacheWatcher {
|
func newCacheWatcher(copier runtime.ObjectCopier, resourceVersion uint64, chanSize int, initEvents []*watchCacheEvent, filter watchFilterFunc, forget func(bool)) *cacheWatcher {
|
||||||
watcher := &cacheWatcher{
|
watcher := &cacheWatcher{
|
||||||
|
copier: copier,
|
||||||
input: make(chan watchCacheEvent, chanSize),
|
input: make(chan watchCacheEvent, chanSize),
|
||||||
result: make(chan watch.Event, chanSize),
|
result: make(chan watch.Event, chanSize),
|
||||||
done: make(chan struct{}),
|
done: make(chan struct{}),
|
||||||
@ -844,7 +850,7 @@ func (c *cacheWatcher) sendWatchCacheEvent(event *watchCacheEvent) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
object, err := api.Scheme.Copy(event.Object)
|
object, err := c.copier.Copy(event.Object)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
glog.Errorf("unexpected copy error: %v", err)
|
glog.Errorf("unexpected copy error: %v", err)
|
||||||
return
|
return
|
||||||
|
@ -33,10 +33,8 @@ import (
|
|||||||
"k8s.io/apimachinery/pkg/util/sets"
|
"k8s.io/apimachinery/pkg/util/sets"
|
||||||
"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/client-go/pkg/api"
|
||||||
"k8s.io/kubernetes/pkg/api/testapi"
|
"k8s.io/client-go/pkg/api/v1"
|
||||||
apitesting "k8s.io/kubernetes/pkg/api/testing"
|
|
||||||
corepod "k8s.io/kubernetes/pkg/registry/core/pod"
|
|
||||||
"k8s.io/kubernetes/pkg/storage"
|
"k8s.io/kubernetes/pkg/storage"
|
||||||
etcdstorage "k8s.io/kubernetes/pkg/storage/etcd"
|
etcdstorage "k8s.io/kubernetes/pkg/storage/etcd"
|
||||||
"k8s.io/kubernetes/pkg/storage/etcd/etcdtest"
|
"k8s.io/kubernetes/pkg/storage/etcd/etcdtest"
|
||||||
@ -44,8 +42,52 @@ import (
|
|||||||
"k8s.io/kubernetes/pkg/storage/etcd3"
|
"k8s.io/kubernetes/pkg/storage/etcd3"
|
||||||
|
|
||||||
"golang.org/x/net/context"
|
"golang.org/x/net/context"
|
||||||
|
|
||||||
|
_ "k8s.io/client-go/pkg/api/install"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
func DeepEqualSafePodSpec() api.PodSpec {
|
||||||
|
grace := int64(30)
|
||||||
|
return api.PodSpec{
|
||||||
|
RestartPolicy: api.RestartPolicyAlways,
|
||||||
|
DNSPolicy: api.DNSClusterFirst,
|
||||||
|
TerminationGracePeriodSeconds: &grace,
|
||||||
|
SecurityContext: &api.PodSecurityContext{},
|
||||||
|
SchedulerName: api.DefaultSchedulerName,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetAttrs returns labels and fields of a given object for filtering purposes.
|
||||||
|
func GetAttrs(obj runtime.Object) (labels.Set, fields.Set, error) {
|
||||||
|
pod, ok := obj.(*api.Pod)
|
||||||
|
if !ok {
|
||||||
|
return nil, nil, fmt.Errorf("not a pod")
|
||||||
|
}
|
||||||
|
return labels.Set(pod.ObjectMeta.Labels), PodToSelectableFields(pod), nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// PodToSelectableFields returns a field set that represents the object
|
||||||
|
// TODO: fields are not labels, and the validation rules for them do not apply.
|
||||||
|
func PodToSelectableFields(pod *api.Pod) fields.Set {
|
||||||
|
// The purpose of allocation with a given number of elements is to reduce
|
||||||
|
// amount of allocations needed to create the fields.Set. If you add any
|
||||||
|
// field here or the number of object-meta related fields changes, this should
|
||||||
|
// be adjusted.
|
||||||
|
podSpecificFieldsSet := make(fields.Set, 5)
|
||||||
|
podSpecificFieldsSet["spec.nodeName"] = pod.Spec.NodeName
|
||||||
|
podSpecificFieldsSet["spec.restartPolicy"] = string(pod.Spec.RestartPolicy)
|
||||||
|
podSpecificFieldsSet["status.phase"] = string(pod.Status.Phase)
|
||||||
|
return AddObjectMetaFieldsSet(podSpecificFieldsSet, &pod.ObjectMeta, true)
|
||||||
|
}
|
||||||
|
|
||||||
|
func AddObjectMetaFieldsSet(source fields.Set, objectMeta *metav1.ObjectMeta, hasNamespaceField bool) fields.Set {
|
||||||
|
source["metadata.name"] = objectMeta.Name
|
||||||
|
if hasNamespaceField {
|
||||||
|
source["metadata.namespace"] = objectMeta.Namespace
|
||||||
|
}
|
||||||
|
return source
|
||||||
|
}
|
||||||
|
|
||||||
func newEtcdTestStorage(t *testing.T, codec runtime.Codec, prefix string) (*etcdtesting.EtcdTestServer, storage.Interface) {
|
func newEtcdTestStorage(t *testing.T, codec runtime.Codec, prefix string) (*etcdtesting.EtcdTestServer, storage.Interface) {
|
||||||
server, _ := etcdtesting.NewUnsecuredEtcd3TestClientServer(t)
|
server, _ := etcdtesting.NewUnsecuredEtcd3TestClientServer(t)
|
||||||
storage := etcd3.New(server.V3Client, codec, prefix)
|
storage := etcd3.New(server.V3Client, codec, prefix)
|
||||||
@ -58,12 +100,13 @@ func newTestCacher(s storage.Interface, cap int) *storage.Cacher {
|
|||||||
CacheCapacity: cap,
|
CacheCapacity: cap,
|
||||||
Storage: s,
|
Storage: s,
|
||||||
Versioner: etcdstorage.APIObjectVersioner{},
|
Versioner: etcdstorage.APIObjectVersioner{},
|
||||||
|
Copier: api.Scheme,
|
||||||
Type: &api.Pod{},
|
Type: &api.Pod{},
|
||||||
ResourcePrefix: prefix,
|
ResourcePrefix: prefix,
|
||||||
KeyFunc: func(obj runtime.Object) (string, error) { return storage.NamespaceKeyFunc(prefix, obj) },
|
KeyFunc: func(obj runtime.Object) (string, error) { return storage.NamespaceKeyFunc(prefix, obj) },
|
||||||
GetAttrsFunc: corepod.GetAttrs,
|
GetAttrsFunc: GetAttrs,
|
||||||
NewListFunc: func() runtime.Object { return &api.PodList{} },
|
NewListFunc: func() runtime.Object { return &api.PodList{} },
|
||||||
Codec: testapi.Default.Codec(),
|
Codec: api.Codecs.LegacyCodec(v1.SchemeGroupVersion),
|
||||||
}
|
}
|
||||||
return storage.NewCacherFromConfig(config)
|
return storage.NewCacherFromConfig(config)
|
||||||
}
|
}
|
||||||
@ -71,7 +114,7 @@ func newTestCacher(s storage.Interface, cap int) *storage.Cacher {
|
|||||||
func makeTestPod(name string) *api.Pod {
|
func makeTestPod(name string) *api.Pod {
|
||||||
return &api.Pod{
|
return &api.Pod{
|
||||||
ObjectMeta: metav1.ObjectMeta{Namespace: "ns", Name: name},
|
ObjectMeta: metav1.ObjectMeta{Namespace: "ns", Name: name},
|
||||||
Spec: apitesting.DeepEqualSafePodSpec(),
|
Spec: DeepEqualSafePodSpec(),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -97,7 +140,7 @@ func updatePod(t *testing.T, s storage.Interface, obj, old *api.Pod) *api.Pod {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestGet(t *testing.T) {
|
func TestGet(t *testing.T) {
|
||||||
server, etcdStorage := newEtcdTestStorage(t, testapi.Default.Codec(), etcdtest.PathPrefix())
|
server, etcdStorage := newEtcdTestStorage(t, api.Codecs.LegacyCodec(v1.SchemeGroupVersion), etcdtest.PathPrefix())
|
||||||
defer server.Terminate(t)
|
defer server.Terminate(t)
|
||||||
cacher := newTestCacher(etcdStorage, 10)
|
cacher := newTestCacher(etcdStorage, 10)
|
||||||
defer cacher.Stop()
|
defer cacher.Stop()
|
||||||
@ -128,7 +171,7 @@ func TestGet(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestList(t *testing.T) {
|
func TestList(t *testing.T) {
|
||||||
server, etcdStorage := newEtcdTestStorage(t, testapi.Default.Codec(), etcdtest.PathPrefix())
|
server, etcdStorage := newEtcdTestStorage(t, api.Codecs.LegacyCodec(v1.SchemeGroupVersion), etcdtest.PathPrefix())
|
||||||
defer server.Terminate(t)
|
defer server.Terminate(t)
|
||||||
cacher := newTestCacher(etcdStorage, 10)
|
cacher := newTestCacher(etcdStorage, 10)
|
||||||
defer cacher.Stop()
|
defer cacher.Stop()
|
||||||
@ -209,7 +252,7 @@ func TestList(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestInfiniteList(t *testing.T) {
|
func TestInfiniteList(t *testing.T) {
|
||||||
server, etcdStorage := newEtcdTestStorage(t, testapi.Default.Codec(), etcdtest.PathPrefix())
|
server, etcdStorage := newEtcdTestStorage(t, api.Codecs.LegacyCodec(v1.SchemeGroupVersion), etcdtest.PathPrefix())
|
||||||
defer server.Terminate(t)
|
defer server.Terminate(t)
|
||||||
cacher := newTestCacher(etcdStorage, 10)
|
cacher := newTestCacher(etcdStorage, 10)
|
||||||
defer cacher.Stop()
|
defer cacher.Stop()
|
||||||
@ -263,7 +306,7 @@ func (self *injectListError) List(ctx context.Context, key string, resourceVersi
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestWatch(t *testing.T) {
|
func TestWatch(t *testing.T) {
|
||||||
server, etcdStorage := newEtcdTestStorage(t, testapi.Default.Codec(), etcdtest.PathPrefix())
|
server, etcdStorage := newEtcdTestStorage(t, api.Codecs.LegacyCodec(v1.SchemeGroupVersion), etcdtest.PathPrefix())
|
||||||
// Inject one list error to make sure we test the relist case.
|
// Inject one list error to make sure we test the relist case.
|
||||||
etcdStorage = &injectListError{errors: 1, Interface: etcdStorage}
|
etcdStorage = &injectListError{errors: 1, Interface: etcdStorage}
|
||||||
defer server.Terminate(t)
|
defer server.Terminate(t)
|
||||||
@ -340,7 +383,7 @@ func TestWatch(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestWatcherTimeout(t *testing.T) {
|
func TestWatcherTimeout(t *testing.T) {
|
||||||
server, etcdStorage := newEtcdTestStorage(t, testapi.Default.Codec(), etcdtest.PathPrefix())
|
server, etcdStorage := newEtcdTestStorage(t, api.Codecs.LegacyCodec(v1.SchemeGroupVersion), etcdtest.PathPrefix())
|
||||||
defer server.Terminate(t)
|
defer server.Terminate(t)
|
||||||
cacher := newTestCacher(etcdStorage, 10)
|
cacher := newTestCacher(etcdStorage, 10)
|
||||||
defer cacher.Stop()
|
defer cacher.Stop()
|
||||||
@ -382,7 +425,7 @@ func TestWatcherTimeout(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestFiltering(t *testing.T) {
|
func TestFiltering(t *testing.T) {
|
||||||
server, etcdStorage := newEtcdTestStorage(t, testapi.Default.Codec(), etcdtest.PathPrefix())
|
server, etcdStorage := newEtcdTestStorage(t, api.Codecs.LegacyCodec(v1.SchemeGroupVersion), etcdtest.PathPrefix())
|
||||||
defer server.Terminate(t)
|
defer server.Terminate(t)
|
||||||
cacher := newTestCacher(etcdStorage, 10)
|
cacher := newTestCacher(etcdStorage, 10)
|
||||||
defer cacher.Stop()
|
defer cacher.Stop()
|
||||||
@ -444,7 +487,7 @@ func TestFiltering(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestStartingResourceVersion(t *testing.T) {
|
func TestStartingResourceVersion(t *testing.T) {
|
||||||
server, etcdStorage := newEtcdTestStorage(t, testapi.Default.Codec(), etcdtest.PathPrefix())
|
server, etcdStorage := newEtcdTestStorage(t, api.Codecs.LegacyCodec(v1.SchemeGroupVersion), etcdtest.PathPrefix())
|
||||||
defer server.Terminate(t)
|
defer server.Terminate(t)
|
||||||
cacher := newTestCacher(etcdStorage, 10)
|
cacher := newTestCacher(etcdStorage, 10)
|
||||||
defer cacher.Stop()
|
defer cacher.Stop()
|
||||||
@ -492,7 +535,7 @@ func TestStartingResourceVersion(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestRandomWatchDeliver(t *testing.T) {
|
func TestRandomWatchDeliver(t *testing.T) {
|
||||||
server, etcdStorage := newEtcdTestStorage(t, testapi.Default.Codec(), etcdtest.PathPrefix())
|
server, etcdStorage := newEtcdTestStorage(t, api.Codecs.LegacyCodec(v1.SchemeGroupVersion), etcdtest.PathPrefix())
|
||||||
defer server.Terminate(t)
|
defer server.Terminate(t)
|
||||||
cacher := newTestCacher(etcdStorage, 10)
|
cacher := newTestCacher(etcdStorage, 10)
|
||||||
defer cacher.Stop()
|
defer cacher.Stop()
|
||||||
|
@ -24,7 +24,7 @@ import (
|
|||||||
"k8s.io/apimachinery/pkg/fields"
|
"k8s.io/apimachinery/pkg/fields"
|
||||||
"k8s.io/apimachinery/pkg/labels"
|
"k8s.io/apimachinery/pkg/labels"
|
||||||
"k8s.io/apimachinery/pkg/util/wait"
|
"k8s.io/apimachinery/pkg/util/wait"
|
||||||
"k8s.io/kubernetes/pkg/api"
|
"k8s.io/client-go/pkg/api"
|
||||||
)
|
)
|
||||||
|
|
||||||
// verifies the cacheWatcher.process goroutine is properly cleaned up even if
|
// verifies the cacheWatcher.process goroutine is properly cleaned up even if
|
||||||
@ -44,7 +44,7 @@ func TestCacheWatcherCleanupNotBlockedByResult(t *testing.T) {
|
|||||||
}
|
}
|
||||||
// set the size of the buffer of w.result to 0, so that the writes to
|
// set the size of the buffer of w.result to 0, so that the writes to
|
||||||
// w.result is blocked.
|
// w.result is blocked.
|
||||||
w := newCacheWatcher(0, 0, initEvents, filter, forget)
|
w := newCacheWatcher(api.Scheme, 0, 0, initEvents, filter, forget)
|
||||||
w.Stop()
|
w.Stop()
|
||||||
if err := wait.PollImmediate(1*time.Second, 5*time.Second, func() (bool, error) {
|
if err := wait.PollImmediate(1*time.Second, 5*time.Second, func() (bool, error) {
|
||||||
lock.RLock()
|
lock.RLock()
|
||||||
|
@ -29,9 +29,9 @@ import (
|
|||||||
"k8s.io/apimachinery/pkg/util/sets"
|
"k8s.io/apimachinery/pkg/util/sets"
|
||||||
"k8s.io/apimachinery/pkg/util/wait"
|
"k8s.io/apimachinery/pkg/util/wait"
|
||||||
"k8s.io/apimachinery/pkg/watch"
|
"k8s.io/apimachinery/pkg/watch"
|
||||||
|
"k8s.io/client-go/pkg/api"
|
||||||
"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/kubernetes/pkg/api"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
func makeTestPod(name string, resourceVersion uint64) *api.Pod {
|
func makeTestPod(name string, resourceVersion uint64) *api.Pod {
|
||||||
|
Loading…
Reference in New Issue
Block a user