Skip to content

Commit f865066

Browse files
committed
clean up construction to make creating types more obvious
1 parent b2f84a5 commit f865066

File tree

7 files changed

+48
-180
lines changed

7 files changed

+48
-180
lines changed
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package configprocessing
2+
3+
import "fmt"
4+
5+
func GetCloudProviderConfigFile(args map[string][]string) (string, error) {
6+
filenames, ok := args["cloud-config"]
7+
if !ok {
8+
return "", nil
9+
}
10+
if len(filenames) != 1 {
11+
return "", fmt.Errorf(`one or zero "--cloud-config" required, not %v`, filenames)
12+
}
13+
14+
return filenames[0], nil
15+
}

pkg/cmd/openshift-apiserver/server.go

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ import (
1414
configapi "github.com/openshift/origin/pkg/cmd/server/apis/config"
1515
"github.com/openshift/origin/pkg/cmd/server/apis/config/validation"
1616
"github.com/openshift/origin/pkg/cmd/util"
17-
"github.com/openshift/origin/pkg/cmd/util/variable"
1817
)
1918

2019
func RunOpenShiftAPIServer(masterConfig *configapi.MasterConfig) error {
@@ -51,11 +50,6 @@ func RunOpenShiftAPIServer(masterConfig *configapi.MasterConfig) error {
5150
preparedOpenshiftAPIServer := openshiftAPIServer.GenericAPIServer.PrepareRun()
5251

5352
glog.Infof("Starting master on %s (%s)", masterConfig.ServingInfo.BindAddress, version.Get().String())
54-
glog.Infof("Public master address is %s", masterConfig.MasterPublicURL)
55-
imageTemplate := variable.NewDefaultImageTemplate()
56-
imageTemplate.Format = masterConfig.ImageConfig.Format
57-
imageTemplate.Latest = masterConfig.ImageConfig.Latest
58-
glog.Infof("Using images from %q", imageTemplate.ExpandOrDie("<component>"))
5953

6054
if err := preparedOpenshiftAPIServer.Run(utilwait.NeverStop); err != nil {
6155
return err

pkg/cmd/openshift-controller-manager/controller_manager.go

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import (
1010
origincontrollers "github.com/openshift/origin/pkg/cmd/openshift-controller-manager/controller"
1111
configapi "github.com/openshift/origin/pkg/cmd/server/apis/config"
1212
"github.com/openshift/origin/pkg/cmd/util"
13+
"github.com/openshift/origin/pkg/cmd/util/variable"
1314
"github.com/openshift/origin/pkg/version"
1415
"k8s.io/api/core/v1"
1516
"k8s.io/apimachinery/pkg/util/wait"
@@ -38,6 +39,19 @@ func RunOpenShiftControllerManager(config *configapi.OpenshiftControllerConfig,
3839
}
3940
}
4041

42+
{
43+
imageTemplate := variable.NewDefaultImageTemplate()
44+
imageTemplate.Format = config.Deployer.ImageTemplateFormat.Format
45+
imageTemplate.Latest = config.Deployer.ImageTemplateFormat.Latest
46+
glog.Infof("DeploymentConfig controller using images from %q", imageTemplate.ExpandOrDie("<component>"))
47+
}
48+
{
49+
imageTemplate := variable.NewDefaultImageTemplate()
50+
imageTemplate.Format = config.Build.ImageTemplateFormat.Format
51+
imageTemplate.Latest = config.Build.ImageTemplateFormat.Latest
52+
glog.Infof("Build controller using images from %q", imageTemplate.ExpandOrDie("<component>"))
53+
}
54+
4155
originControllerManager := func(stopCh <-chan struct{}) {
4256
if err := waitForHealthyAPIServer(kubeClient.Discovery().RESTClient()); err != nil {
4357
glog.Fatal(err)

pkg/cmd/server/kubernetes/master/master_config.go

Lines changed: 4 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@ import (
3030
apiserverstorage "k8s.io/apiserver/pkg/server/storage"
3131
"k8s.io/apiserver/pkg/storage"
3232
storagefactory "k8s.io/apiserver/pkg/storage/storagebackend/factory"
33-
utilflag "k8s.io/apiserver/pkg/util/flag"
3433
"k8s.io/client-go/rest"
3534
"k8s.io/kube-aggregator/pkg/apis/apiregistration"
3635
apiregistrationv1beta1 "k8s.io/kube-aggregator/pkg/apis/apiregistration/v1beta1"
@@ -73,15 +72,6 @@ var LegacyAPIGroupPrefixes = sets.NewString(apiserver.DefaultLegacyAPIPrefix, le
7372
// BuildKubeAPIserverOptions constructs the appropriate kube-apiserver run options.
7473
// It returns an error if no KubernetesMasterConfig was defined.
7574
func BuildKubeAPIserverOptions(masterConfig configapi.MasterConfig) (*kapiserveroptions.ServerRunOptions, error) {
76-
host, portString, err := net.SplitHostPort(masterConfig.ServingInfo.BindAddress)
77-
if err != nil {
78-
return nil, err
79-
}
80-
port, err := strconv.Atoi(portString)
81-
if err != nil {
82-
return nil, err
83-
}
84-
8575
portRange, err := knet.ParsePortRange(masterConfig.KubernetesMasterConfig.ServicesNodePortRange)
8676
if err != nil {
8777
return nil, err
@@ -97,11 +87,10 @@ func BuildKubeAPIserverOptions(masterConfig configapi.MasterConfig) (*kapiserver
9787
server.ServiceNodePortRange = *portRange
9888
server.Features.EnableProfiling = true
9989

100-
server.SecureServing.BindAddress = net.ParseIP(host)
101-
server.SecureServing.BindPort = port
102-
server.SecureServing.BindNetwork = masterConfig.ServingInfo.BindNetwork
103-
server.SecureServing.ServerCert.CertKey.CertFile = masterConfig.ServingInfo.ServerCert.CertFile
104-
server.SecureServing.ServerCert.CertKey.KeyFile = masterConfig.ServingInfo.ServerCert.KeyFile
90+
server.SecureServing, err = configprocessing.ToServingOptions(masterConfig.ServingInfo)
91+
if err != nil {
92+
return nil, err
93+
}
10594
server.InsecureServing.BindPort = 0
10695

10796
// disable anonymous authentication
@@ -130,14 +119,6 @@ func BuildKubeAPIserverOptions(masterConfig configapi.MasterConfig) (*kapiserver
130119
server.GenericServerRunOptions.MaxRequestsInFlight = masterConfig.ServingInfo.MaxRequestsInFlight
131120
server.GenericServerRunOptions.MaxMutatingRequestsInFlight = masterConfig.ServingInfo.MaxRequestsInFlight / 2
132121
server.GenericServerRunOptions.MinRequestTimeout = masterConfig.ServingInfo.RequestTimeoutSeconds
133-
for _, nc := range masterConfig.ServingInfo.NamedCertificates {
134-
sniCert := utilflag.NamedCertKey{
135-
CertFile: nc.CertFile,
136-
KeyFile: nc.KeyFile,
137-
Names: nc.Names,
138-
}
139-
server.SecureServing.SNICertKeys = append(server.SecureServing.SNICertKeys, sniCert)
140-
}
141122

142123
server.KubeletConfig.ReadOnlyPort = 0
143124
server.KubeletConfig.Port = masterConfig.KubeletClientInfo.Port

pkg/cmd/server/origin/admission/plugin_initializer.go

Lines changed: 9 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,9 @@ import (
2323
"k8s.io/kubernetes/pkg/quota/install"
2424

2525
userinformer "github.com/openshift/client-go/user/informers/externalversions"
26+
"github.com/openshift/origin/pkg/cmd/openshift-apiserver/openshiftapiserver/configprocessing"
2627
oadmission "github.com/openshift/origin/pkg/cmd/server/admission"
2728
configapi "github.com/openshift/origin/pkg/cmd/server/apis/config"
28-
kubernetes "github.com/openshift/origin/pkg/cmd/server/kubernetes/master"
2929
"github.com/openshift/origin/pkg/image/apiserver/registryhostname"
3030
imageinformer "github.com/openshift/origin/pkg/image/generated/informers/internalversion"
3131
imageclient "github.com/openshift/origin/pkg/image/generated/internalclientset"
@@ -46,7 +46,7 @@ type InformerAccess interface {
4646
}
4747

4848
func NewPluginInitializer(
49-
options configapi.MasterConfig,
49+
masterConfig configapi.MasterConfig,
5050
privilegedLoopbackConfig *rest.Config,
5151
informers InformerAccess,
5252
authorizer authorizer.Authorizer,
@@ -77,24 +77,21 @@ func NewPluginInitializer(
7777
quotaRegistry.Add(imageEvaluators[i])
7878
}
7979

80-
registryHostnameRetriever, err := registryhostname.DefaultRegistryHostnameRetriever(privilegedLoopbackConfig, options.ImagePolicyConfig.ExternalRegistryHostname, options.ImagePolicyConfig.InternalRegistryHostname)
80+
registryHostnameRetriever, err := registryhostname.DefaultRegistryHostnameRetriever(privilegedLoopbackConfig, masterConfig.ImagePolicyConfig.ExternalRegistryHostname, masterConfig.ImagePolicyConfig.InternalRegistryHostname)
8181
if err != nil {
8282
return nil, err
8383
}
8484

85-
// punch through layers to build this in order to get a string for a cloud provider file
86-
// TODO refactor us into a forward building flow with a side channel like this
87-
kubeOptions, err := kubernetes.BuildKubeAPIserverOptions(options)
85+
var cloudConfig []byte
86+
cloudConfigFile, err := configprocessing.GetCloudProviderConfigFile(masterConfig.KubernetesMasterConfig.APIServerArguments)
8887
if err != nil {
8988
return nil, err
9089
}
91-
92-
var cloudConfig []byte
93-
if kubeOptions.CloudProvider.CloudConfigFile != "" {
90+
if cloudConfigFile != "" {
9491
var err error
95-
cloudConfig, err = ioutil.ReadFile(kubeOptions.CloudProvider.CloudConfigFile)
92+
cloudConfig, err = ioutil.ReadFile(cloudConfigFile)
9693
if err != nil {
97-
return nil, fmt.Errorf("Error reading from cloud configuration file %s: %v", kubeOptions.CloudProvider.CloudConfigFile, err)
94+
return nil, fmt.Errorf("Error reading from cloud configuration file %s: %v", cloudConfigFile, err)
9895
}
9996
}
10097
// note: we are passing a combined quota registry here...
@@ -136,7 +133,7 @@ func NewPluginInitializer(
136133
openshiftPluginInitializer := &oadmission.PluginInitializer{
137134
ProjectCache: projectCache,
138135
OriginQuotaRegistry: quotaRegistry,
139-
JenkinsPipelineConfig: options.JenkinsPipelineConfig,
136+
JenkinsPipelineConfig: masterConfig.JenkinsPipelineConfig,
140137
RESTClientConfig: *privilegedLoopbackConfig,
141138
ClusterResourceQuotaInformer: informers.GetInternalOpenshiftQuotaInformers().Quota().InternalVersion().ClusterResourceQuotas(),
142139
ClusterQuotaMapper: clusterQuotaMappingController.GetClusterQuotaMapper(),
@@ -147,31 +144,3 @@ func NewPluginInitializer(
147144

148145
return admission.PluginInitializers{genericInitializer, webhookInitializer, kubePluginInitializer, openshiftPluginInitializer}, nil
149146
}
150-
151-
type DefaultInformerAccess struct {
152-
InternalKubernetesInformers kinternalinformers.SharedInformerFactory
153-
KubernetesInformers kexternalinformers.SharedInformerFactory
154-
InternalOpenshiftImageInformers imageinformer.SharedInformerFactory
155-
InternalOpenshiftQuotaInformers quotainformer.SharedInformerFactory
156-
InternalOpenshiftSecurityInformers securityinformer.SharedInformerFactory
157-
OpenshiftUserInformers userinformer.SharedInformerFactory
158-
}
159-
160-
func (i *DefaultInformerAccess) GetInternalKubernetesInformers() kinternalinformers.SharedInformerFactory {
161-
return i.InternalKubernetesInformers
162-
}
163-
func (i *DefaultInformerAccess) GetKubernetesInformers() kexternalinformers.SharedInformerFactory {
164-
return i.KubernetesInformers
165-
}
166-
func (i *DefaultInformerAccess) GetInternalOpenshiftImageInformers() imageinformer.SharedInformerFactory {
167-
return i.InternalOpenshiftImageInformers
168-
}
169-
func (i *DefaultInformerAccess) GetInternalOpenshiftQuotaInformers() quotainformer.SharedInformerFactory {
170-
return i.InternalOpenshiftQuotaInformers
171-
}
172-
func (i *DefaultInformerAccess) GetInternalOpenshiftSecurityInformers() securityinformer.SharedInformerFactory {
173-
return i.InternalOpenshiftSecurityInformers
174-
}
175-
func (i *DefaultInformerAccess) GetOpenshiftUserInformers() userinformer.SharedInformerFactory {
176-
return i.OpenshiftUserInformers
177-
}

pkg/cmd/server/origin/master.go

Lines changed: 5 additions & 92 deletions
Original file line numberDiff line numberDiff line change
@@ -14,29 +14,29 @@ import (
1414
aggregatorapiserver "k8s.io/kube-aggregator/pkg/apiserver"
1515
kubeapiserver "k8s.io/kubernetes/pkg/master"
1616
kcorestorage "k8s.io/kubernetes/pkg/registry/core/rest"
17-
rbacrest "k8s.io/kubernetes/pkg/registry/rbac/rest"
1817

1918
"github.com/openshift/origin/pkg/cmd/openshift-apiserver/openshiftapiserver"
2019
"github.com/openshift/origin/pkg/cmd/openshift-apiserver/openshiftapiserver/configprocessing"
2120
"github.com/openshift/origin/pkg/cmd/openshift-kube-apiserver/openshiftkubeapiserver"
22-
"github.com/openshift/origin/pkg/cmd/server/bootstrappolicy"
2321
kubernetes "github.com/openshift/origin/pkg/cmd/server/kubernetes/master"
2422
cmdutil "github.com/openshift/origin/pkg/cmd/util"
2523
sccstorage "github.com/openshift/origin/pkg/security/apiserver/registry/securitycontextconstraints/etcd"
26-
"k8s.io/apimachinery/pkg/util/wait"
2724
kapiserveroptions "k8s.io/kubernetes/cmd/kube-apiserver/app/options"
2825
)
2926

3027
func (c *MasterConfig) newOpenshiftAPIConfig(kubeAPIServerConfig apiserver.Config) (*openshiftapiserver.OpenshiftAPIConfig, error) {
28+
var err error
3129
// sccStorage must use the upstream RESTOptionsGetter to be in the correct location
3230
// this probably creates a duplicate cache, but there are not very many SCCs, so live with it to avoid further linkage
3331
sccStorage := sccstorage.NewREST(kubeAPIServerConfig.RESTOptionsGetter)
3432

3533
// make a shallow copy to let us twiddle a few things
3634
// most of the config actually remains the same. We only need to mess with a couple items
3735
genericConfig := kubeAPIServerConfig
38-
// TODO try to stop special casing these. We should all agree on them.
39-
genericConfig.RESTOptionsGetter = c.RESTOptionsGetter
36+
genericConfig.RESTOptionsGetter, err = openshiftapiserver.NewRESTOptionsGetter(c.Options)
37+
if err != nil {
38+
return nil, err
39+
}
4040

4141
var caData []byte
4242
if len(c.Options.ImagePolicyConfig.AdditionalTrustedCA) != 0 {
@@ -237,90 +237,3 @@ func (c *MasterConfig) Run(stopCh <-chan struct{}) error {
237237
// Attempt to verify the server came up for 20 seconds (100 tries * 100ms, 100ms timeout per try)
238238
return cmdutil.WaitForSuccessfulDial(true, c.Options.ServingInfo.BindNetwork, c.Options.ServingInfo.BindAddress, 100*time.Millisecond, 100*time.Millisecond, 100)
239239
}
240-
241-
func (c *MasterConfig) RunKubeAPIServer(stopCh <-chan struct{}) error {
242-
var err error
243-
var apiExtensionsInformers apiextensionsinformers.SharedInformerFactory
244-
var delegateAPIServer apiserver.DelegationTarget
245-
var extraPostStartHooks map[string]apiserver.PostStartHookFunc
246-
247-
c.kubeAPIServerConfig.GenericConfig.BuildHandlerChainFunc, extraPostStartHooks, err = openshiftkubeapiserver.BuildHandlerChain(c.kubeAPIServerConfig.GenericConfig, c.ClientGoKubeInformers, &c.Options)
248-
if err != nil {
249-
return err
250-
}
251-
252-
kubeAPIServerOptions, err := kubernetes.BuildKubeAPIserverOptions(c.Options)
253-
if err != nil {
254-
return err
255-
}
256-
257-
delegateAPIServer = apiserver.NewEmptyDelegate()
258-
delegateAPIServer, apiExtensionsInformers, err = c.withAPIExtensions(delegateAPIServer, kubeAPIServerOptions, *c.kubeAPIServerConfig.GenericConfig)
259-
if err != nil {
260-
return err
261-
}
262-
delegateAPIServer, err = c.withNonAPIRoutes(delegateAPIServer, *c.kubeAPIServerConfig.GenericConfig)
263-
if err != nil {
264-
return err
265-
}
266-
delegateAPIServer, err = c.withKubeAPI(delegateAPIServer, *c.kubeAPIServerConfig)
267-
if err != nil {
268-
return err
269-
}
270-
aggregatedAPIServer, err := c.withAggregator(delegateAPIServer, kubeAPIServerOptions, *c.kubeAPIServerConfig.GenericConfig, apiExtensionsInformers)
271-
if err != nil {
272-
return err
273-
}
274-
275-
// Start the audit backend before any request comes in. This means we cannot turn it into a
276-
// post start hook because without calling Backend.Run the Backend.ProcessEvents call might block.
277-
if c.AuditBackend != nil {
278-
if err := c.AuditBackend.Run(stopCh); err != nil {
279-
return fmt.Errorf("failed to run the audit backend: %v", err)
280-
}
281-
}
282-
283-
aggregatedAPIServer.GenericAPIServer.AddPostStartHookOrDie("authorization.openshift.io-bootstrapclusterroles", bootstrapData(bootstrappolicy.Policy()).EnsureRBACPolicy())
284-
aggregatedAPIServer.GenericAPIServer.AddPostStartHookOrDie("openshift.io-startinformers", func(context apiserver.PostStartHookContext) error {
285-
c.InformerStart(context.StopCh)
286-
return nil
287-
})
288-
aggregatedAPIServer.GenericAPIServer.AddPostStartHookOrDie("openshift.io-restmapperupdater", func(context apiserver.PostStartHookContext) error {
289-
c.RESTMapper.Reset()
290-
go func() {
291-
wait.Until(func() {
292-
c.RESTMapper.Reset()
293-
}, 10*time.Second, context.StopCh)
294-
}()
295-
return nil
296-
})
297-
aggregatedAPIServer.GenericAPIServer.AddPostStartHookOrDie("quota.openshift.io-clusterquotamapping", func(context apiserver.PostStartHookContext) error {
298-
go c.ClusterQuotaMappingController.Run(5, context.StopCh)
299-
return nil
300-
})
301-
302-
// add post-start hooks
303-
for name, fn := range c.additionalPostStartHooks {
304-
aggregatedAPIServer.GenericAPIServer.AddPostStartHookOrDie(name, fn)
305-
}
306-
for name, fn := range extraPostStartHooks {
307-
aggregatedAPIServer.GenericAPIServer.AddPostStartHookOrDie(name, fn)
308-
}
309-
310-
go aggregatedAPIServer.GenericAPIServer.PrepareRun().Run(stopCh)
311-
312-
// Attempt to verify the server came up for 20 seconds (100 tries * 100ms, 100ms timeout per try)
313-
return cmdutil.WaitForSuccessfulDial(true, c.Options.ServingInfo.BindNetwork, c.Options.ServingInfo.BindAddress, 100*time.Millisecond, 100*time.Millisecond, 100)
314-
}
315-
316-
// bootstrapData casts our policy data to the rbacrest helper that can
317-
// materialize the policy.
318-
func bootstrapData(data *bootstrappolicy.PolicyData) *rbacrest.PolicyData {
319-
return &rbacrest.PolicyData{
320-
ClusterRoles: data.ClusterRoles,
321-
ClusterRoleBindings: data.ClusterRoleBindings,
322-
Roles: data.Roles,
323-
RoleBindings: data.RoleBindings,
324-
ClusterRolesToAggregate: data.ClusterRolesToAggregate,
325-
}
326-
}

pkg/cmd/server/origin/master_config.go

Lines changed: 1 addition & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ import (
88
"k8s.io/apiserver/pkg/admission"
99
admissionmetrics "k8s.io/apiserver/pkg/admission/metrics"
1010
"k8s.io/apiserver/pkg/audit"
11-
genericregistry "k8s.io/apiserver/pkg/registry/generic"
1211
genericapiserver "k8s.io/apiserver/pkg/server"
1312
cacheddiscovery "k8s.io/client-go/discovery/cached"
1413
kinformers "k8s.io/client-go/informers"
@@ -51,9 +50,6 @@ type MasterConfig struct {
5150
kubeAPIServerConfig *kubeapiserver.Config
5251
additionalPostStartHooks map[string]genericapiserver.PostStartHookFunc
5352

54-
// RESTOptionsGetter provides access to storage and RESTOptions for a particular resource
55-
RESTOptionsGetter genericregistry.RESTOptionsGetter
56-
5753
RuleResolver rbacregistryvalidation.AuthorizationRuleResolver
5854
SubjectLocator rbacauthorizer.SubjectLocator
5955

@@ -71,12 +67,6 @@ type MasterConfig struct {
7167
// To apply different access control to a system component, create a client config specifically for that component.
7268
PrivilegedLoopbackClientConfig restclient.Config
7369

74-
// PrivilegedLoopbackKubernetesClientsetExternal is the client used to call Kubernetes APIs from system components,
75-
// built from KubeClientConfig. It should only be accessed via the *TestingClient() helper methods. To apply
76-
// different access control to a system component, create a separate client/config specifically for
77-
// that component.
78-
PrivilegedLoopbackKubernetesClientsetExternal kclientsetexternal.Interface
79-
8070
AuditBackend audit.Backend
8171

8272
// TODO inspect uses to eliminate them
@@ -130,11 +120,6 @@ func BuildMasterConfig(
130120
informers = realLoopbackInformers
131121
}
132122

133-
restOptsGetter, err := openshiftapiserver.NewRESTOptionsGetter(options)
134-
if err != nil {
135-
return nil, err
136-
}
137-
138123
privilegedLoopbackConfig, err := configapi.GetClientConfig(options.MasterClients.OpenShiftLoopbackKubeConfig, options.MasterClients.OpenShiftLoopbackClientConnectionOverrides)
139124
if err != nil {
140125
return nil, err
@@ -199,8 +184,6 @@ func BuildMasterConfig(
199184
kubeAPIServerConfig: kubeAPIServerConfig,
200185
additionalPostStartHooks: map[string]genericapiserver.PostStartHookFunc{},
201186

202-
RESTOptionsGetter: restOptsGetter,
203-
204187
RuleResolver: openshiftapiserver.NewRuleResolver(informers.GetKubernetesInformers().Rbac().V1()),
205188
SubjectLocator: subjectLocator,
206189

@@ -215,8 +198,7 @@ func BuildMasterConfig(
215198

216199
RegistryHostnameRetriever: registryHostnameRetriever,
217200

218-
PrivilegedLoopbackClientConfig: *privilegedLoopbackConfig,
219-
PrivilegedLoopbackKubernetesClientsetExternal: privilegedLoopbackKubeClientsetExternal,
201+
PrivilegedLoopbackClientConfig: *privilegedLoopbackConfig,
220202

221203
InternalKubeInformers: informers.GetInternalKubernetesInformers(),
222204
ClientGoKubeInformers: informers.GetKubernetesInformers(),

0 commit comments

Comments
 (0)