...
1
16
17 package app
18
19 import (
20 apiextensionsapiserver "k8s.io/apiextensions-apiserver/pkg/apiserver"
21 "k8s.io/apiserver/pkg/util/webhook"
22 aggregatorapiserver "k8s.io/kube-aggregator/pkg/apiserver"
23 "k8s.io/kubernetes/cmd/kube-apiserver/app/options"
24 "k8s.io/kubernetes/pkg/controlplane"
25 "k8s.io/kubernetes/pkg/controlplane/apiserver"
26 )
27
28 type Config struct {
29 Options options.CompletedOptions
30
31 Aggregator *aggregatorapiserver.Config
32 ControlPlane *controlplane.Config
33 ApiExtensions *apiextensionsapiserver.Config
34
35 ExtraConfig
36 }
37
38 type ExtraConfig struct {
39 }
40
41 type completedConfig struct {
42 Options options.CompletedOptions
43
44 Aggregator aggregatorapiserver.CompletedConfig
45 ControlPlane controlplane.CompletedConfig
46 ApiExtensions apiextensionsapiserver.CompletedConfig
47
48 ExtraConfig
49 }
50
51 type CompletedConfig struct {
52
53 *completedConfig
54 }
55
56 func (c *Config) Complete() (CompletedConfig, error) {
57 return CompletedConfig{&completedConfig{
58 Options: c.Options,
59
60 Aggregator: c.Aggregator.Complete(),
61 ControlPlane: c.ControlPlane.Complete(),
62 ApiExtensions: c.ApiExtensions.Complete(),
63
64 ExtraConfig: c.ExtraConfig,
65 }}, nil
66 }
67
68
69 func NewConfig(opts options.CompletedOptions) (*Config, error) {
70 c := &Config{
71 Options: opts,
72 }
73
74 controlPlane, serviceResolver, pluginInitializer, err := CreateKubeAPIServerConfig(opts)
75 if err != nil {
76 return nil, err
77 }
78 c.ControlPlane = controlPlane
79
80 apiExtensions, err := apiserver.CreateAPIExtensionsConfig(*controlPlane.GenericConfig, controlPlane.ExtraConfig.VersionedInformers, pluginInitializer, opts.CompletedOptions, opts.MasterCount,
81 serviceResolver, webhook.NewDefaultAuthenticationInfoResolverWrapper(controlPlane.ExtraConfig.ProxyTransport, controlPlane.GenericConfig.EgressSelector, controlPlane.GenericConfig.LoopbackClientConfig, controlPlane.GenericConfig.TracerProvider))
82 if err != nil {
83 return nil, err
84 }
85 c.ApiExtensions = apiExtensions
86
87 aggregator, err := createAggregatorConfig(*controlPlane.GenericConfig, opts.CompletedOptions, controlPlane.ExtraConfig.VersionedInformers, serviceResolver, controlPlane.ExtraConfig.ProxyTransport, controlPlane.ExtraConfig.PeerProxy, pluginInitializer)
88 if err != nil {
89 return nil, err
90 }
91 c.Aggregator = aggregator
92
93 return c, nil
94 }
95
View as plain text