mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-30 15:05:27 +00:00
shows how to wire admission control in a sample api server.
This commit is contained in:
parent
a5affa8d86
commit
1feca6e28b
@ -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",
|
||||
|
@ -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,
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user