Skip to content

Commit f8176ab

Browse files
authored
Merge pull request kubernetes#89858 from tedyu/api-svr-err-etcd
kube-apiserver should exit with error if not able to connect to etcd
2 parents 9c3b588 + 8d90805 commit f8176ab

File tree

2 files changed

+13
-7
lines changed
  • staging/src/k8s.io/apiextensions-apiserver/pkg

2 files changed

+13
-7
lines changed

staging/src/k8s.io/apiextensions-apiserver/pkg/apiserver/apiserver.go

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -142,16 +142,22 @@ func (c completedConfig) New(delegationTarget genericapiserver.DelegationTarget)
142142
if apiResourceConfig.VersionEnabled(v1beta1.SchemeGroupVersion) {
143143
storage := map[string]rest.Storage{}
144144
// customresourcedefinitions
145-
customResourceDefintionStorage := customresourcedefinition.NewREST(Scheme, c.GenericConfig.RESTOptionsGetter)
146-
storage["customresourcedefinitions"] = customResourceDefintionStorage
147-
storage["customresourcedefinitions/status"] = customresourcedefinition.NewStatusREST(Scheme, customResourceDefintionStorage)
145+
customResourceDefinitionStorage, err := customresourcedefinition.NewREST(Scheme, c.GenericConfig.RESTOptionsGetter)
146+
if err != nil {
147+
return nil, err
148+
}
149+
storage["customresourcedefinitions"] = customResourceDefinitionStorage
150+
storage["customresourcedefinitions/status"] = customresourcedefinition.NewStatusREST(Scheme, customResourceDefinitionStorage)
148151

149152
apiGroupInfo.VersionedResourcesStorageMap[v1beta1.SchemeGroupVersion.Version] = storage
150153
}
151154
if apiResourceConfig.VersionEnabled(v1.SchemeGroupVersion) {
152155
storage := map[string]rest.Storage{}
153156
// customresourcedefinitions
154-
customResourceDefintionStorage := customresourcedefinition.NewREST(Scheme, c.GenericConfig.RESTOptionsGetter)
157+
customResourceDefintionStorage, err := customresourcedefinition.NewREST(Scheme, c.GenericConfig.RESTOptionsGetter)
158+
if err != nil {
159+
return nil, err
160+
}
155161
storage["customresourcedefinitions"] = customResourceDefintionStorage
156162
storage["customresourcedefinitions/status"] = customresourcedefinition.NewStatusREST(Scheme, customResourceDefintionStorage)
157163

staging/src/k8s.io/apiextensions-apiserver/pkg/registry/customresourcedefinition/etcd.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ type REST struct {
3838
}
3939

4040
// NewREST returns a RESTStorage object that will work against API services.
41-
func NewREST(scheme *runtime.Scheme, optsGetter generic.RESTOptionsGetter) *REST {
41+
func NewREST(scheme *runtime.Scheme, optsGetter generic.RESTOptionsGetter) (*REST, error) {
4242
strategy := NewStrategy(scheme)
4343

4444
store := &genericregistry.Store{
@@ -56,9 +56,9 @@ func NewREST(scheme *runtime.Scheme, optsGetter generic.RESTOptionsGetter) *REST
5656
}
5757
options := &generic.StoreOptions{RESTOptions: optsGetter, AttrFunc: GetAttrs}
5858
if err := store.CompleteWithOptions(options); err != nil {
59-
panic(err) // TODO: Propagate error up
59+
return nil, err
6060
}
61-
return &REST{store}
61+
return &REST{store}, nil
6262
}
6363

6464
// Implement ShortNamesProvider

0 commit comments

Comments
 (0)