Merge pull request #47352 from p0lyn0mial/wire_admission_to_sample_apiserver

Automatic merge from submit-queue

shows how to wire admission control in a sample api server.

**What this PR does / why we need it**:
This PR shows how to wire admission control in a custom api server

**Release note**:

```release-note
NONE
```
pull/6/head
Kubernetes Submit Queue 2017-06-27 10:06:06 -07:00 committed by GitHub
commit 9120d58fc9
2 changed files with 14 additions and 1 deletions

View File

@ -13,6 +13,7 @@ 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",

View File

@ -22,6 +22,7 @@ import (
"net"
"github.com/spf13/cobra"
"github.com/spf13/pflag"
genericapiserver "k8s.io/apiserver/pkg/server"
genericoptions "k8s.io/apiserver/pkg/server/options"
@ -33,6 +34,7 @@ const defaultEtcdPathPrefix = "/registry/wardle.kubernetes.io"
type WardleServerOptions struct {
RecommendedOptions *genericoptions.RecommendedOptions
Admission *genericoptions.AdmissionOptions
StdOut io.Writer
StdErr io.Writer
@ -41,6 +43,7 @@ type WardleServerOptions struct {
func NewWardleServerOptions(out, errOut io.Writer) *WardleServerOptions {
o := &WardleServerOptions{
RecommendedOptions: genericoptions.NewRecommendedOptions(defaultEtcdPathPrefix, apiserver.Scheme, apiserver.Codecs.LegacyCodec(v1alpha1.SchemeGroupVersion)),
Admission: genericoptions.NewAdmissionOptions(),
StdOut: out,
StdErr: errOut,
@ -49,6 +52,11 @@ 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)
@ -71,7 +79,7 @@ func NewCommandStartWardleServer(out, errOut io.Writer, stopCh <-chan struct{})
}
flags := cmd.Flags()
o.RecommendedOptions.AddFlags(flags)
o.addFlags(flags)
return cmd
}
@ -95,6 +103,10 @@ func (o WardleServerOptions) Config() (*apiserver.Config, error) {
return nil, err
}
if err := o.Admission.ApplyTo(serverConfig); err != nil {
return nil, err
}
config := &apiserver.Config{
GenericConfig: serverConfig,
}