Skip to content

Commit e54f76c

Browse files
authored
Merge pull request #72 from yue9944882/prune-etcd-dependency-k8s
Completely prune etcd dependency
2 parents f11ed7d + f98c528 commit e54f76c

File tree

1 file changed

+21
-17
lines changed
  • pkg/experimental/storage/mysql

1 file changed

+21
-17
lines changed

pkg/experimental/storage/mysql/kine.go

Lines changed: 21 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import (
99
"k8s.io/apimachinery/pkg/runtime/schema"
1010
"k8s.io/apiserver/pkg/registry/generic"
1111
genericregistry "k8s.io/apiserver/pkg/registry/generic/registry"
12+
"k8s.io/apiserver/pkg/storage/storagebackend"
1213
builderrest "sigs.k8s.io/apiserver-runtime/pkg/builder/rest"
1314
)
1415

@@ -25,38 +26,41 @@ import (
2526
// )).Build()
2627
//
2728
func NewMysqlStorageProvider(host string, port int32, username, password, database string) builderrest.StoreFn {
29+
dsn := fmt.Sprintf("mysql://%s:%s@tcp(%s:%d)/%s",
30+
username,
31+
password,
32+
host,
33+
port,
34+
database)
35+
2836
return func(s *genericregistry.Store, options *generic.StoreOptions) {
2937
options.RESTOptions = &kineProxiedRESTOptionsGetter{
30-
delegate: options.RESTOptions,
38+
dsn: dsn,
3139
}
3240
}
3341
}
3442

3543
type kineProxiedRESTOptionsGetter struct {
36-
delegate generic.RESTOptionsGetter
44+
dsn string
3745
}
3846

3947
// GetRESTOptions implements RESTOptionsGetter interface.
4048
func (g *kineProxiedRESTOptionsGetter) GetRESTOptions(resource schema.GroupResource) (generic.RESTOptions, error) {
41-
restOptions, err := g.delegate.GetRESTOptions(resource)
42-
if err != nil {
43-
return generic.RESTOptions{}, err
44-
}
45-
46-
if len(restOptions.StorageConfig.Transport.ServerList) != 1 {
47-
return generic.RESTOptions{}, fmt.Errorf("no valid mysql dsn found")
48-
}
49-
5049
etcdConfig, err := endpoint.Listen(context.TODO(), endpoint.Config{
51-
Endpoint: restOptions.StorageConfig.Transport.ServerList[0],
50+
Endpoint: g.dsn,
5251
})
5352
if err != nil {
5453
return generic.RESTOptions{}, err
5554
}
56-
57-
restOptions.StorageConfig.Transport.ServerList = etcdConfig.Endpoints
58-
restOptions.StorageConfig.Transport.TrustedCAFile = etcdConfig.TLSConfig.CAFile
59-
restOptions.StorageConfig.Transport.CertFile = etcdConfig.TLSConfig.CertFile
60-
restOptions.StorageConfig.Transport.KeyFile = etcdConfig.TLSConfig.KeyFile
55+
restOptions := generic.RESTOptions{
56+
StorageConfig: &storagebackend.Config{
57+
Transport: storagebackend.TransportConfig{
58+
ServerList: etcdConfig.Endpoints,
59+
TrustedCAFile: etcdConfig.TLSConfig.CAFile,
60+
CertFile: etcdConfig.TLSConfig.CertFile,
61+
KeyFile: etcdConfig.TLSConfig.KeyFile,
62+
},
63+
},
64+
}
6165
return restOptions, nil
6266
}

0 commit comments

Comments
 (0)