make storage enablement, serialization, and location orthogonal
This commit is contained in:
parent
3a6ba8a6c2
commit
cdcda3cc3c
|
|
@ -24,7 +24,7 @@ import (
|
||||||
testgroupetcd "k8s.io/kubernetes/examples/apiserver/rest"
|
testgroupetcd "k8s.io/kubernetes/examples/apiserver/rest"
|
||||||
"k8s.io/kubernetes/pkg/api"
|
"k8s.io/kubernetes/pkg/api"
|
||||||
"k8s.io/kubernetes/pkg/api/rest"
|
"k8s.io/kubernetes/pkg/api/rest"
|
||||||
"k8s.io/kubernetes/pkg/apimachinery"
|
"k8s.io/kubernetes/pkg/api/unversioned"
|
||||||
"k8s.io/kubernetes/pkg/apimachinery/registered"
|
"k8s.io/kubernetes/pkg/apimachinery/registered"
|
||||||
"k8s.io/kubernetes/pkg/genericapiserver"
|
"k8s.io/kubernetes/pkg/genericapiserver"
|
||||||
etcdstorage "k8s.io/kubernetes/pkg/storage/etcd"
|
etcdstorage "k8s.io/kubernetes/pkg/storage/etcd"
|
||||||
|
|
@ -40,20 +40,14 @@ const (
|
||||||
SecurePort = 6444
|
SecurePort = 6444
|
||||||
)
|
)
|
||||||
|
|
||||||
func newStorageDestinations(groupName string, groupMeta *apimachinery.GroupMeta) (*genericapiserver.StorageDestinations, error) {
|
func newStorageFactory() genericapiserver.StorageFactory {
|
||||||
storageDestinations := genericapiserver.NewStorageDestinations()
|
etcdConfig := etcdstorage.EtcdConfig{
|
||||||
var storageConfig etcdstorage.EtcdStorageConfig
|
|
||||||
storageConfig.Config = etcdstorage.EtcdConfig{
|
|
||||||
Prefix: genericapiserver.DefaultEtcdPathPrefix,
|
Prefix: genericapiserver.DefaultEtcdPathPrefix,
|
||||||
ServerList: []string{"http://127.0.0.1:4001"},
|
ServerList: []string{"http://127.0.0.1:4001"},
|
||||||
}
|
}
|
||||||
storageConfig.Codec = groupMeta.Codec
|
storageFactory := genericapiserver.NewDefaultStorageFactory(etcdConfig, api.Codecs, genericapiserver.NewDefaultResourceEncodingConfig(), genericapiserver.NewResourceConfig())
|
||||||
storageInterface, err := storageConfig.NewStorage()
|
|
||||||
if err != nil {
|
return storageFactory
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
storageDestinations.AddAPIGroup(groupName, storageInterface)
|
|
||||||
return &storageDestinations, nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewServerRunOptions() *genericapiserver.ServerRunOptions {
|
func NewServerRunOptions() *genericapiserver.ServerRunOptions {
|
||||||
|
|
@ -86,12 +80,14 @@ func Run(serverOptions *genericapiserver.ServerRunOptions) error {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("%v", err)
|
return fmt.Errorf("%v", err)
|
||||||
}
|
}
|
||||||
storageDestinations, err := newStorageDestinations(groupName, groupMeta)
|
storageFactory := newStorageFactory()
|
||||||
|
storage, err := storageFactory.New(unversioned.GroupResource{Group: groupName, Resource: "testtype"})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("Unable to init etcd: %v", err)
|
return fmt.Errorf("Unable to get storage: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
restStorageMap := map[string]rest.Storage{
|
restStorageMap := map[string]rest.Storage{
|
||||||
"testtypes": testgroupetcd.NewREST(storageDestinations.Get(groupName, "testtype"), s.StorageDecorator()),
|
"testtypes": testgroupetcd.NewREST(storage, s.StorageDecorator()),
|
||||||
}
|
}
|
||||||
apiGroupInfo := genericapiserver.APIGroupInfo{
|
apiGroupInfo := genericapiserver.APIGroupInfo{
|
||||||
GroupMeta: *groupMeta,
|
GroupMeta: *groupMeta,
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue