Skip to content

Commit 9d7f7c8

Browse files
authored
Merge pull request #18077 from deads2k/play-02
plumb through the clusterresourceoverride settings
2 parents 5cc095e + dff8f87 commit 9d7f7c8

File tree

4 files changed

+84
-21
lines changed

4 files changed

+84
-21
lines changed

pkg/assets/apiserver/asset_apiserver.go

Lines changed: 22 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ import (
3232
"github.com/openshift/origin/pkg/cmd/server/crypto"
3333
cmdutil "github.com/openshift/origin/pkg/cmd/util"
3434
oauthutil "github.com/openshift/origin/pkg/oauth/util"
35+
overrideapi "github.com/openshift/origin/pkg/quota/admission/clusterresourceoverride/api"
3536
"github.com/openshift/origin/pkg/util/httprequest"
3637
oversion "github.com/openshift/origin/pkg/version"
3738
)
@@ -41,8 +42,9 @@ const (
4142
)
4243

4344
type ExtraConfig struct {
44-
Options oapi.AssetConfig
45-
PublicURL url.URL
45+
Options oapi.AssetConfig
46+
LimitRequestOverrides *overrideapi.ClusterResourceOverrideConfig
47+
PublicURL url.URL
4648
}
4749

4850
type AssetServerConfig struct {
@@ -67,7 +69,7 @@ type CompletedConfig struct {
6769
*completedConfig
6870
}
6971

70-
func NewAssetServerConfig(assetConfig oapi.AssetConfig) (*AssetServerConfig, error) {
72+
func NewAssetServerConfig(assetConfig oapi.AssetConfig, limitRequestOverrides *overrideapi.ClusterResourceOverrideConfig) (*AssetServerConfig, error) {
7173
publicURL, err := url.Parse(assetConfig.PublicURL)
7274
if err != nil {
7375
glog.Fatal(err)
@@ -107,8 +109,9 @@ func NewAssetServerConfig(assetConfig oapi.AssetConfig) (*AssetServerConfig, err
107109
return &AssetServerConfig{
108110
GenericConfig: &genericapiserver.RecommendedConfig{Config: *genericConfig},
109111
ExtraConfig: ExtraConfig{
110-
Options: assetConfig,
111-
PublicURL: *publicURL,
112+
Options: assetConfig,
113+
LimitRequestOverrides: limitRequestOverrides,
114+
PublicURL: *publicURL,
112115
},
113116
}, nil
114117
}
@@ -128,7 +131,6 @@ func (c completedConfig) New(delegationTarget genericapiserver.DelegationTarget)
128131
if err != nil {
129132
return nil, err
130133
}
131-
132134
s := &AssetServer{
133135
GenericAPIServer: genericServer,
134136
PublicURL: c.ExtraConfig.PublicURL,
@@ -223,19 +225,20 @@ func (c *completedConfig) addWebConsoleConfig(serverMux *genericmux.PathRecorder
223225

224226
// Generated web console config and server version
225227
config := assets.WebConsoleConfig{
226-
APIGroupAddr: masterURL.Host,
227-
APIGroupPrefix: server.APIGroupPrefix,
228-
MasterAddr: masterURL.Host,
229-
MasterPrefix: api.Prefix,
230-
KubernetesAddr: masterURL.Host,
231-
KubernetesPrefix: server.DefaultLegacyAPIPrefix,
232-
OAuthAuthorizeURI: oauthutil.OpenShiftOAuthAuthorizeURL(masterURL.String()),
233-
OAuthTokenURI: oauthutil.OpenShiftOAuthTokenURL(masterURL.String()),
234-
OAuthRedirectBase: c.ExtraConfig.Options.PublicURL,
235-
OAuthClientID: OpenShiftWebConsoleClientID,
236-
LogoutURI: c.ExtraConfig.Options.LogoutURL,
237-
LoggingURL: c.ExtraConfig.Options.LoggingPublicURL,
238-
MetricsURL: c.ExtraConfig.Options.MetricsPublicURL,
228+
APIGroupAddr: masterURL.Host,
229+
APIGroupPrefix: server.APIGroupPrefix,
230+
MasterAddr: masterURL.Host,
231+
MasterPrefix: api.Prefix,
232+
KubernetesAddr: masterURL.Host,
233+
KubernetesPrefix: server.DefaultLegacyAPIPrefix,
234+
OAuthAuthorizeURI: oauthutil.OpenShiftOAuthAuthorizeURL(masterURL.String()),
235+
OAuthTokenURI: oauthutil.OpenShiftOAuthTokenURL(masterURL.String()),
236+
OAuthRedirectBase: c.ExtraConfig.Options.PublicURL,
237+
OAuthClientID: OpenShiftWebConsoleClientID,
238+
LogoutURI: c.ExtraConfig.Options.LogoutURL,
239+
LoggingURL: c.ExtraConfig.Options.LoggingPublicURL,
240+
MetricsURL: c.ExtraConfig.Options.MetricsPublicURL,
241+
LimitRequestOverrides: c.ExtraConfig.LimitRequestOverrides,
239242
}
240243
kVersionInfo := kversion.Get()
241244
oVersionInfo := oversion.Get()
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
package origin
2+
3+
import (
4+
"os"
5+
6+
configapi "github.com/openshift/origin/pkg/cmd/server/api"
7+
"github.com/openshift/origin/pkg/cmd/util/pluginconfig"
8+
override "github.com/openshift/origin/pkg/quota/admission/clusterresourceoverride"
9+
overrideapi "github.com/openshift/origin/pkg/quota/admission/clusterresourceoverride/api"
10+
)
11+
12+
// All this ugly was removed in 3.9
13+
// GetResourceOverrideConfig looks in two potential places where ClusterResourceOverrideConfig can be specified
14+
func GetResourceOverrideConfig(masterConfig configapi.MasterConfig) (*overrideapi.ClusterResourceOverrideConfig, error) {
15+
overrideConfig, err := checkForOverrideConfig(masterConfig.AdmissionConfig)
16+
if err != nil {
17+
return nil, err
18+
}
19+
if overrideConfig != nil {
20+
return overrideConfig, nil
21+
}
22+
if masterConfig.KubernetesMasterConfig == nil { // external kube gets you a nil pointer here
23+
return nil, nil
24+
}
25+
overrideConfig, err = checkForOverrideConfig(masterConfig.KubernetesMasterConfig.AdmissionConfig)
26+
if err != nil {
27+
return nil, err
28+
}
29+
return overrideConfig, nil
30+
}
31+
32+
// checkForOverrideConfig looks for ClusterResourceOverrideConfig plugin cfg in the admission PluginConfig
33+
func checkForOverrideConfig(ac configapi.AdmissionConfig) (*overrideapi.ClusterResourceOverrideConfig, error) {
34+
overridePluginConfigFile, err := pluginconfig.GetPluginConfigFile(ac.PluginConfig, overrideapi.PluginName, "")
35+
if err != nil {
36+
return nil, err
37+
}
38+
if overridePluginConfigFile == "" {
39+
return nil, nil
40+
}
41+
configFile, err := os.Open(overridePluginConfigFile)
42+
if err != nil {
43+
return nil, err
44+
}
45+
overrideConfig, err := override.ReadConfig(configFile)
46+
if err != nil {
47+
return nil, err
48+
}
49+
return overrideConfig, nil
50+
}

pkg/cmd/server/origin/master.go

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,12 @@ func (c *MasterConfig) newAssetServerHandler(genericConfig *apiserver.Config) (h
159159
return http.NotFoundHandler(), nil
160160
}
161161

162-
config, err := assetapiserver.NewAssetServerConfig(*c.Options.AssetConfig)
162+
clusterResourceOverrideConfig, err := GetResourceOverrideConfig(c.Options)
163+
if err != nil {
164+
return nil, err
165+
}
166+
167+
config, err := assetapiserver.NewAssetServerConfig(*c.Options.AssetConfig, clusterResourceOverrideConfig)
163168
if err != nil {
164169
return nil, err
165170
}

pkg/cmd/server/start/start_master.go

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -572,7 +572,12 @@ func StartAPI(oc *origin.MasterConfig, controllerPlug plug.Plug) error {
572572

573573
// if the webconsole is configured to be standalone, go ahead and create and run it
574574
if oc.WebConsoleEnabled() && oc.WebConsoleStandalone() {
575-
config, err := assetapiserver.NewAssetServerConfig(*oc.Options.AssetConfig)
575+
clusterResourceOverrideConfig, err := origin.GetResourceOverrideConfig(oc.Options)
576+
if err != nil {
577+
return err
578+
}
579+
580+
config, err := assetapiserver.NewAssetServerConfig(*oc.Options.AssetConfig, clusterResourceOverrideConfig)
576581
if err != nil {
577582
return err
578583
}

0 commit comments

Comments
 (0)