Skip to content

Commit fbd65a2

Browse files
committed
Pipe newFunc to etcd3 storage layer
1 parent 37cf1d6 commit fbd65a2

File tree

17 files changed

+48
-35
lines changed

17 files changed

+48
-35
lines changed

pkg/controlplane/instance.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -258,7 +258,7 @@ func (c *Config) createLeaseReconciler() reconcilers.EndpointReconciler {
258258
if err != nil {
259259
klog.Fatalf("Error determining service IP ranges: %v", err)
260260
}
261-
leaseStorage, _, err := storagefactory.Create(*config)
261+
leaseStorage, _, err := storagefactory.Create(*config, nil)
262262
if err != nil {
263263
klog.Fatalf("Error creating storage factory: %v", err)
264264
}

pkg/registry/core/pod/rest/log_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ import (
3030
func TestPodLogValidates(t *testing.T) {
3131
config, server := registrytest.NewEtcdStorage(t, "")
3232
defer server.Terminate(t)
33-
s, destroyFunc, err := generic.NewRawStorage(config)
33+
s, destroyFunc, err := generic.NewRawStorage(config, nil)
3434
if err != nil {
3535
t.Fatalf("Unexpected error: %v", err)
3636
}

pkg/registry/core/service/allocator/storage/storage.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ var _ rangeallocation.RangeRegistry = &Etcd{}
6262
// NewEtcd returns an allocator that is backed by Etcd and can manage
6363
// persisting the snapshot state of allocation after each allocation is made.
6464
func NewEtcd(alloc allocator.Snapshottable, baseKey string, resource schema.GroupResource, config *storagebackend.Config) (*Etcd, error) {
65-
storage, d, err := generic.NewRawStorage(config)
65+
storage, d, err := generic.NewRawStorage(config, nil)
6666
if err != nil {
6767
return nil, err
6868
}

pkg/registry/core/service/ipallocator/storage/storage_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ func newStorage(t *testing.T) (*etcd3testing.EtcdTestServer, ipallocator.Interfa
5454
if err != nil {
5555
t.Fatalf("unexpected error creating etcd: %v", err)
5656
}
57-
s, d, err := generic.NewRawStorage(etcdStorage)
57+
s, d, err := generic.NewRawStorage(etcdStorage, nil)
5858
if err != nil {
5959
t.Fatalf("Couldn't create storage: %v", err)
6060
}

pkg/registry/core/service/portallocator/storage/storage_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ func newStorage(t *testing.T) (*etcd3testing.EtcdTestServer, portallocator.Inter
5757
if err != nil {
5858
t.Fatalf("unexpected error creating etcd: %v", err)
5959
}
60-
s, d, err := generic.NewRawStorage(etcdStorage)
60+
s, d, err := generic.NewRawStorage(etcdStorage, nil)
6161
if err != nil {
6262
t.Fatalf("Couldn't create storage: %v", err)
6363
}

staging/src/k8s.io/apiserver/pkg/registry/generic/registry/dryrun_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ import (
3838
func NewDryRunnableTestStorage(t *testing.T) (DryRunnableStorage, func()) {
3939
server, sc := etcd3testing.NewUnsecuredEtcd3TestClientServer(t)
4040
sc.Codec = apitesting.TestStorageCodec(codecs, examplev1.SchemeGroupVersion)
41-
s, destroy, err := factory.Create(*sc)
41+
s, destroy, err := factory.Create(*sc, nil)
4242
if err != nil {
4343
t.Fatalf("Error creating storage: %v", err)
4444
}

staging/src/k8s.io/apiserver/pkg/registry/generic/registry/storage_factory.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ func StorageWithCacher() generic.StorageDecorator {
4545
triggerFuncs storage.IndexerFuncs,
4646
indexers *cache.Indexers) (storage.Interface, factory.DestroyFunc, error) {
4747

48-
s, d, err := generic.NewRawStorage(storageConfig)
48+
s, d, err := generic.NewRawStorage(storageConfig, newFunc)
4949
if err != nil {
5050
return s, d, err
5151
}

staging/src/k8s.io/apiserver/pkg/registry/generic/registry/store_test.go

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1601,8 +1601,11 @@ func newTestGenericStoreRegistry(t *testing.T, scheme *runtime.Scheme, hasCacheE
16011601
server, sc := etcd3testing.NewUnsecuredEtcd3TestClientServer(t)
16021602
strategy := &testRESTStrategy{scheme, names.SimpleNameGenerator, true, false, true}
16031603

1604+
newFunc := func() runtime.Object { return &example.Pod{} }
1605+
newListFunc := func() runtime.Object { return &example.PodList{} }
1606+
16041607
sc.Codec = apitesting.TestStorageCodec(codecs, examplev1.SchemeGroupVersion)
1605-
s, dFunc, err := factory.Create(*sc)
1608+
s, dFunc, err := factory.Create(*sc, newFunc)
16061609
if err != nil {
16071610
t.Fatalf("Error creating storage: %v", err)
16081611
}
@@ -1617,8 +1620,8 @@ func newTestGenericStoreRegistry(t *testing.T, scheme *runtime.Scheme, hasCacheE
16171620
ResourcePrefix: podPrefix,
16181621
KeyFunc: func(obj runtime.Object) (string, error) { return storage.NoNamespaceKeyFunc(podPrefix, obj) },
16191622
GetAttrsFunc: getPodAttrs,
1620-
NewFunc: func() runtime.Object { return &example.Pod{} },
1621-
NewListFunc: func() runtime.Object { return &example.PodList{} },
1623+
NewFunc: newFunc,
1624+
NewListFunc: newListFunc,
16221625
Codec: sc.Codec,
16231626
}
16241627
cacher, err := cacherstorage.NewCacherFromConfig(config)

staging/src/k8s.io/apiserver/pkg/registry/generic/storage_decorator.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -47,12 +47,12 @@ func UndecoratedStorage(
4747
getAttrsFunc storage.AttrFunc,
4848
trigger storage.IndexerFuncs,
4949
indexers *cache.Indexers) (storage.Interface, factory.DestroyFunc, error) {
50-
return NewRawStorage(config)
50+
return NewRawStorage(config, newFunc)
5151
}
5252

5353
// NewRawStorage creates the low level kv storage. This is a work-around for current
5454
// two layer of same storage interface.
5555
// TODO: Once cacher is enabled on all registries (event registry is special), we will remove this method.
56-
func NewRawStorage(config *storagebackend.Config) (storage.Interface, factory.DestroyFunc, error) {
57-
return factory.Create(*config)
56+
func NewRawStorage(config *storagebackend.Config, newFunc func() runtime.Object) (storage.Interface, factory.DestroyFunc, error) {
57+
return factory.Create(*config, newFunc)
5858
}

staging/src/k8s.io/apiserver/pkg/storage/etcd3/store.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -83,11 +83,11 @@ type objState struct {
8383
}
8484

8585
// New returns an etcd3 implementation of storage.Interface.
86-
func New(c *clientv3.Client, codec runtime.Codec, prefix string, transformer value.Transformer, pagingEnabled bool) storage.Interface {
87-
return newStore(c, pagingEnabled, codec, prefix, transformer)
86+
func New(c *clientv3.Client, codec runtime.Codec, newFunc func() runtime.Object, prefix string, transformer value.Transformer, pagingEnabled bool) storage.Interface {
87+
return newStore(c, newFunc, pagingEnabled, codec, prefix, transformer)
8888
}
8989

90-
func newStore(c *clientv3.Client, pagingEnabled bool, codec runtime.Codec, prefix string, transformer value.Transformer) *store {
90+
func newStore(c *clientv3.Client, _ func() runtime.Object, pagingEnabled bool, codec runtime.Codec, prefix string, transformer value.Transformer) *store {
9191
versioner := APIObjectVersioner{}
9292
result := &store{
9393
client: c,

0 commit comments

Comments
 (0)