mirror of
				https://github.com/optim-enterprises-bv/kubernetes.git
				synced 2025-11-04 04:08:16 +00:00 
			
		
		
		
	minor adjustments in the sample apiserver around resource creation.
issue: #47868
This commit is contained in:
		@@ -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
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user