mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-21 19:01:49 +00:00
minor adjustments in the sample apiserver around resource creation.
issue: #47868
This commit is contained in:
parent
ce91f2ab26
commit
6a3191a2d4
@ -33,6 +33,7 @@ go_library(
|
||||
"//vendor/k8s.io/sample-apiserver/pkg/apis/wardle:go_default_library",
|
||||
"//vendor/k8s.io/sample-apiserver/pkg/apis/wardle/install:go_default_library",
|
||||
"//vendor/k8s.io/sample-apiserver/pkg/apis/wardle/v1alpha1:go_default_library",
|
||||
"//vendor/k8s.io/sample-apiserver/pkg/registry:go_default_library",
|
||||
"//vendor/k8s.io/sample-apiserver/pkg/registry/wardle/fischer:go_default_library",
|
||||
"//vendor/k8s.io/sample-apiserver/pkg/registry/wardle/flunder:go_default_library",
|
||||
],
|
||||
|
@ -30,6 +30,7 @@ import (
|
||||
"k8s.io/sample-apiserver/pkg/apis/wardle"
|
||||
"k8s.io/sample-apiserver/pkg/apis/wardle/install"
|
||||
"k8s.io/sample-apiserver/pkg/apis/wardle/v1alpha1"
|
||||
wardleregistry "k8s.io/sample-apiserver/pkg/registry"
|
||||
fischerstorage "k8s.io/sample-apiserver/pkg/registry/wardle/fischer"
|
||||
flunderstorage "k8s.io/sample-apiserver/pkg/registry/wardle/flunder"
|
||||
)
|
||||
@ -103,8 +104,8 @@ func (c completedConfig) New() (*WardleServer, error) {
|
||||
apiGroupInfo := genericapiserver.NewDefaultAPIGroupInfo(wardle.GroupName, registry, Scheme, metav1.ParameterCodec, Codecs)
|
||||
apiGroupInfo.GroupMeta.GroupVersion = v1alpha1.SchemeGroupVersion
|
||||
v1alpha1storage := map[string]rest.Storage{}
|
||||
v1alpha1storage["flunders"] = flunderstorage.RESTInPeace(Scheme, c.GenericConfig.RESTOptionsGetter)
|
||||
v1alpha1storage["fischers"] = fischerstorage.RESTInPeace(Scheme, c.GenericConfig.RESTOptionsGetter)
|
||||
v1alpha1storage["flunders"] = wardleregistry.RESTInPeace(flunderstorage.NewREST(Scheme, c.GenericConfig.RESTOptionsGetter))
|
||||
v1alpha1storage["fischers"] = wardleregistry.RESTInPeace(fischerstorage.NewREST(Scheme, c.GenericConfig.RESTOptionsGetter))
|
||||
apiGroupInfo.VersionedResourcesStorageMap["v1alpha1"] = v1alpha1storage
|
||||
|
||||
if err := s.GenericAPIServer.InstallAPIGroup(&apiGroupInfo); err != nil {
|
||||
|
@ -13,7 +13,6 @@ go_library(
|
||||
tags = ["automanaged"],
|
||||
deps = [
|
||||
"//vendor/github.com/spf13/cobra:go_default_library",
|
||||
"//vendor/github.com/spf13/pflag:go_default_library",
|
||||
"//vendor/k8s.io/apiserver/pkg/server:go_default_library",
|
||||
"//vendor/k8s.io/apiserver/pkg/server/options:go_default_library",
|
||||
"//vendor/k8s.io/sample-apiserver/pkg/apis/wardle/v1alpha1:go_default_library",
|
||||
|
@ -22,7 +22,6 @@ import (
|
||||
"net"
|
||||
|
||||
"github.com/spf13/cobra"
|
||||
"github.com/spf13/pflag"
|
||||
|
||||
genericapiserver "k8s.io/apiserver/pkg/server"
|
||||
genericoptions "k8s.io/apiserver/pkg/server/options"
|
||||
@ -52,11 +51,6 @@ func NewWardleServerOptions(out, errOut io.Writer) *WardleServerOptions {
|
||||
return o
|
||||
}
|
||||
|
||||
func (o *WardleServerOptions) addFlags(flags *pflag.FlagSet) {
|
||||
o.RecommendedOptions.AddFlags(flags)
|
||||
o.Admission.AddFlags(flags)
|
||||
}
|
||||
|
||||
// NewCommandStartMaster provides a CLI handler for 'start master' command
|
||||
func NewCommandStartWardleServer(out, errOut io.Writer, stopCh <-chan struct{}) *cobra.Command {
|
||||
o := NewWardleServerOptions(out, errOut)
|
||||
@ -79,7 +73,8 @@ func NewCommandStartWardleServer(out, errOut io.Writer, stopCh <-chan struct{})
|
||||
}
|
||||
|
||||
flags := cmd.Flags()
|
||||
o.addFlags(flags)
|
||||
o.RecommendedOptions.AddFlags(flags)
|
||||
o.Admission.AddFlags(flags)
|
||||
|
||||
return cmd
|
||||
}
|
||||
|
@ -11,5 +11,8 @@ go_library(
|
||||
name = "go_default_library",
|
||||
srcs = ["registry.go"],
|
||||
tags = ["automanaged"],
|
||||
deps = ["//vendor/k8s.io/apiserver/pkg/registry/generic/registry:go_default_library"],
|
||||
deps = [
|
||||
"//vendor/k8s.io/apiserver/pkg/registry/generic/registry:go_default_library",
|
||||
"//vendor/k8s.io/apiserver/pkg/registry/rest:go_default_library",
|
||||
],
|
||||
)
|
||||
|
@ -16,9 +16,25 @@ limitations under the License.
|
||||
|
||||
package registry
|
||||
|
||||
import genericregistry "k8s.io/apiserver/pkg/registry/generic/registry"
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
// rest implements a RESTStorage for API services against etcd
|
||||
genericregistry "k8s.io/apiserver/pkg/registry/generic/registry"
|
||||
"k8s.io/apiserver/pkg/registry/rest"
|
||||
)
|
||||
|
||||
// REST implements a RESTStorage for API services against etcd
|
||||
type REST struct {
|
||||
*genericregistry.Store
|
||||
}
|
||||
|
||||
// RESTInPeace is just a simple function that panics on error.
|
||||
// Otherwise returns the given storage object. It is meant to be
|
||||
// a wrapper for wardle registries.
|
||||
func RESTInPeace(storage rest.StandardStorage, err error) rest.StandardStorage {
|
||||
if err != nil {
|
||||
err = fmt.Errorf("Unable to create REST storage for a resource due to %v. Committing suicide.", err)
|
||||
panic(err)
|
||||
}
|
||||
return storage
|
||||
}
|
||||
|
@ -17,8 +17,6 @@ limitations under the License.
|
||||
package fischer
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"k8s.io/apimachinery/pkg/runtime"
|
||||
"k8s.io/apiserver/pkg/registry/generic"
|
||||
genericregistry "k8s.io/apiserver/pkg/registry/generic/registry"
|
||||
@ -26,8 +24,8 @@ import (
|
||||
"k8s.io/sample-apiserver/pkg/registry"
|
||||
)
|
||||
|
||||
// RESTInPeace returns a RESTStorage object that will work against API services.
|
||||
func RESTInPeace(scheme *runtime.Scheme, optsGetter generic.RESTOptionsGetter) *registry.REST {
|
||||
// NewREST returns a RESTStorage object that will work against API services.
|
||||
func NewREST(scheme *runtime.Scheme, optsGetter generic.RESTOptionsGetter) (*registry.REST, error) {
|
||||
strategy := NewStrategy(scheme)
|
||||
|
||||
store := &genericregistry.Store{
|
||||
@ -43,8 +41,7 @@ func RESTInPeace(scheme *runtime.Scheme, optsGetter generic.RESTOptionsGetter) *
|
||||
}
|
||||
options := &generic.StoreOptions{RESTOptions: optsGetter, AttrFunc: GetAttrs}
|
||||
if err := store.CompleteWithOptions(options); err != nil {
|
||||
err = fmt.Errorf("Unable to create REST storage for fischer resource due to %v. Committing suicide.", err)
|
||||
panic(err)
|
||||
return nil, err
|
||||
}
|
||||
return ®istry.REST{store}
|
||||
return ®istry.REST{store}, nil
|
||||
}
|
||||
|
@ -17,8 +17,6 @@ limitations under the License.
|
||||
package flunder
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"k8s.io/apimachinery/pkg/runtime"
|
||||
"k8s.io/apiserver/pkg/registry/generic"
|
||||
genericregistry "k8s.io/apiserver/pkg/registry/generic/registry"
|
||||
@ -26,8 +24,8 @@ import (
|
||||
"k8s.io/sample-apiserver/pkg/registry"
|
||||
)
|
||||
|
||||
// RESTInPeace returns a RESTStorage object that will work against API services.
|
||||
func RESTInPeace(scheme *runtime.Scheme, optsGetter generic.RESTOptionsGetter) *registry.REST {
|
||||
// NewREST returns a RESTStorage object that will work against API services.
|
||||
func NewREST(scheme *runtime.Scheme, optsGetter generic.RESTOptionsGetter) (*registry.REST, error) {
|
||||
strategy := NewStrategy(scheme)
|
||||
|
||||
store := &genericregistry.Store{
|
||||
@ -43,8 +41,7 @@ func RESTInPeace(scheme *runtime.Scheme, optsGetter generic.RESTOptionsGetter) *
|
||||
}
|
||||
options := &generic.StoreOptions{RESTOptions: optsGetter, AttrFunc: GetAttrs}
|
||||
if err := store.CompleteWithOptions(options); err != nil {
|
||||
err = fmt.Errorf("Unable to create REST storage for flunder resource due to %v. Committing suicide.", err)
|
||||
panic(err)
|
||||
return nil, err
|
||||
}
|
||||
return ®istry.REST{store}
|
||||
return ®istry.REST{store}, nil
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user