mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-23 11:50:44 +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:go_default_library",
|
||||||
"//vendor/k8s.io/sample-apiserver/pkg/apis/wardle/install: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/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/fischer:go_default_library",
|
||||||
"//vendor/k8s.io/sample-apiserver/pkg/registry/wardle/flunder: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"
|
||||||
"k8s.io/sample-apiserver/pkg/apis/wardle/install"
|
"k8s.io/sample-apiserver/pkg/apis/wardle/install"
|
||||||
"k8s.io/sample-apiserver/pkg/apis/wardle/v1alpha1"
|
"k8s.io/sample-apiserver/pkg/apis/wardle/v1alpha1"
|
||||||
|
wardleregistry "k8s.io/sample-apiserver/pkg/registry"
|
||||||
fischerstorage "k8s.io/sample-apiserver/pkg/registry/wardle/fischer"
|
fischerstorage "k8s.io/sample-apiserver/pkg/registry/wardle/fischer"
|
||||||
flunderstorage "k8s.io/sample-apiserver/pkg/registry/wardle/flunder"
|
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 := genericapiserver.NewDefaultAPIGroupInfo(wardle.GroupName, registry, Scheme, metav1.ParameterCodec, Codecs)
|
||||||
apiGroupInfo.GroupMeta.GroupVersion = v1alpha1.SchemeGroupVersion
|
apiGroupInfo.GroupMeta.GroupVersion = v1alpha1.SchemeGroupVersion
|
||||||
v1alpha1storage := map[string]rest.Storage{}
|
v1alpha1storage := map[string]rest.Storage{}
|
||||||
v1alpha1storage["flunders"] = flunderstorage.RESTInPeace(Scheme, c.GenericConfig.RESTOptionsGetter)
|
v1alpha1storage["flunders"] = wardleregistry.RESTInPeace(flunderstorage.NewREST(Scheme, c.GenericConfig.RESTOptionsGetter))
|
||||||
v1alpha1storage["fischers"] = fischerstorage.RESTInPeace(Scheme, c.GenericConfig.RESTOptionsGetter)
|
v1alpha1storage["fischers"] = wardleregistry.RESTInPeace(fischerstorage.NewREST(Scheme, c.GenericConfig.RESTOptionsGetter))
|
||||||
apiGroupInfo.VersionedResourcesStorageMap["v1alpha1"] = v1alpha1storage
|
apiGroupInfo.VersionedResourcesStorageMap["v1alpha1"] = v1alpha1storage
|
||||||
|
|
||||||
if err := s.GenericAPIServer.InstallAPIGroup(&apiGroupInfo); err != nil {
|
if err := s.GenericAPIServer.InstallAPIGroup(&apiGroupInfo); err != nil {
|
||||||
|
@ -13,7 +13,6 @@ go_library(
|
|||||||
tags = ["automanaged"],
|
tags = ["automanaged"],
|
||||||
deps = [
|
deps = [
|
||||||
"//vendor/github.com/spf13/cobra:go_default_library",
|
"//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:go_default_library",
|
||||||
"//vendor/k8s.io/apiserver/pkg/server/options: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",
|
"//vendor/k8s.io/sample-apiserver/pkg/apis/wardle/v1alpha1:go_default_library",
|
||||||
|
@ -22,7 +22,6 @@ import (
|
|||||||
"net"
|
"net"
|
||||||
|
|
||||||
"github.com/spf13/cobra"
|
"github.com/spf13/cobra"
|
||||||
"github.com/spf13/pflag"
|
|
||||||
|
|
||||||
genericapiserver "k8s.io/apiserver/pkg/server"
|
genericapiserver "k8s.io/apiserver/pkg/server"
|
||||||
genericoptions "k8s.io/apiserver/pkg/server/options"
|
genericoptions "k8s.io/apiserver/pkg/server/options"
|
||||||
@ -52,11 +51,6 @@ func NewWardleServerOptions(out, errOut io.Writer) *WardleServerOptions {
|
|||||||
return o
|
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
|
// NewCommandStartMaster provides a CLI handler for 'start master' command
|
||||||
func NewCommandStartWardleServer(out, errOut io.Writer, stopCh <-chan struct{}) *cobra.Command {
|
func NewCommandStartWardleServer(out, errOut io.Writer, stopCh <-chan struct{}) *cobra.Command {
|
||||||
o := NewWardleServerOptions(out, errOut)
|
o := NewWardleServerOptions(out, errOut)
|
||||||
@ -79,7 +73,8 @@ func NewCommandStartWardleServer(out, errOut io.Writer, stopCh <-chan struct{})
|
|||||||
}
|
}
|
||||||
|
|
||||||
flags := cmd.Flags()
|
flags := cmd.Flags()
|
||||||
o.addFlags(flags)
|
o.RecommendedOptions.AddFlags(flags)
|
||||||
|
o.Admission.AddFlags(flags)
|
||||||
|
|
||||||
return cmd
|
return cmd
|
||||||
}
|
}
|
||||||
|
@ -11,5 +11,8 @@ go_library(
|
|||||||
name = "go_default_library",
|
name = "go_default_library",
|
||||||
srcs = ["registry.go"],
|
srcs = ["registry.go"],
|
||||||
tags = ["automanaged"],
|
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
|
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 {
|
type REST struct {
|
||||||
*genericregistry.Store
|
*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
|
package fischer
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
|
||||||
|
|
||||||
"k8s.io/apimachinery/pkg/runtime"
|
"k8s.io/apimachinery/pkg/runtime"
|
||||||
"k8s.io/apiserver/pkg/registry/generic"
|
"k8s.io/apiserver/pkg/registry/generic"
|
||||||
genericregistry "k8s.io/apiserver/pkg/registry/generic/registry"
|
genericregistry "k8s.io/apiserver/pkg/registry/generic/registry"
|
||||||
@ -26,8 +24,8 @@ import (
|
|||||||
"k8s.io/sample-apiserver/pkg/registry"
|
"k8s.io/sample-apiserver/pkg/registry"
|
||||||
)
|
)
|
||||||
|
|
||||||
// RESTInPeace returns a RESTStorage object that will work against API services.
|
// NewREST returns a RESTStorage object that will work against API services.
|
||||||
func RESTInPeace(scheme *runtime.Scheme, optsGetter generic.RESTOptionsGetter) *registry.REST {
|
func NewREST(scheme *runtime.Scheme, optsGetter generic.RESTOptionsGetter) (*registry.REST, error) {
|
||||||
strategy := NewStrategy(scheme)
|
strategy := NewStrategy(scheme)
|
||||||
|
|
||||||
store := &genericregistry.Store{
|
store := &genericregistry.Store{
|
||||||
@ -43,8 +41,7 @@ func RESTInPeace(scheme *runtime.Scheme, optsGetter generic.RESTOptionsGetter) *
|
|||||||
}
|
}
|
||||||
options := &generic.StoreOptions{RESTOptions: optsGetter, AttrFunc: GetAttrs}
|
options := &generic.StoreOptions{RESTOptions: optsGetter, AttrFunc: GetAttrs}
|
||||||
if err := store.CompleteWithOptions(options); err != nil {
|
if err := store.CompleteWithOptions(options); err != nil {
|
||||||
err = fmt.Errorf("Unable to create REST storage for fischer resource due to %v. Committing suicide.", err)
|
return nil, err
|
||||||
panic(err)
|
|
||||||
}
|
}
|
||||||
return ®istry.REST{store}
|
return ®istry.REST{store}, nil
|
||||||
}
|
}
|
||||||
|
@ -17,8 +17,6 @@ limitations under the License.
|
|||||||
package flunder
|
package flunder
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
|
||||||
|
|
||||||
"k8s.io/apimachinery/pkg/runtime"
|
"k8s.io/apimachinery/pkg/runtime"
|
||||||
"k8s.io/apiserver/pkg/registry/generic"
|
"k8s.io/apiserver/pkg/registry/generic"
|
||||||
genericregistry "k8s.io/apiserver/pkg/registry/generic/registry"
|
genericregistry "k8s.io/apiserver/pkg/registry/generic/registry"
|
||||||
@ -26,8 +24,8 @@ import (
|
|||||||
"k8s.io/sample-apiserver/pkg/registry"
|
"k8s.io/sample-apiserver/pkg/registry"
|
||||||
)
|
)
|
||||||
|
|
||||||
// RESTInPeace returns a RESTStorage object that will work against API services.
|
// NewREST returns a RESTStorage object that will work against API services.
|
||||||
func RESTInPeace(scheme *runtime.Scheme, optsGetter generic.RESTOptionsGetter) *registry.REST {
|
func NewREST(scheme *runtime.Scheme, optsGetter generic.RESTOptionsGetter) (*registry.REST, error) {
|
||||||
strategy := NewStrategy(scheme)
|
strategy := NewStrategy(scheme)
|
||||||
|
|
||||||
store := &genericregistry.Store{
|
store := &genericregistry.Store{
|
||||||
@ -43,8 +41,7 @@ func RESTInPeace(scheme *runtime.Scheme, optsGetter generic.RESTOptionsGetter) *
|
|||||||
}
|
}
|
||||||
options := &generic.StoreOptions{RESTOptions: optsGetter, AttrFunc: GetAttrs}
|
options := &generic.StoreOptions{RESTOptions: optsGetter, AttrFunc: GetAttrs}
|
||||||
if err := store.CompleteWithOptions(options); err != nil {
|
if err := store.CompleteWithOptions(options); err != nil {
|
||||||
err = fmt.Errorf("Unable to create REST storage for flunder resource due to %v. Committing suicide.", err)
|
return nil, err
|
||||||
panic(err)
|
|
||||||
}
|
}
|
||||||
return ®istry.REST{store}
|
return ®istry.REST{store}, nil
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user