Skip to content

Commit ab0f056

Browse files
authored
Merge pull request #18076 from deads2k/play
plumb through the clusterresourceoverride settings
2 parents 387006b + 92d188a commit ab0f056

File tree

2 files changed

+73
-19
lines changed

2 files changed

+73
-19
lines changed

pkg/assets/apiserver/asset_apiserver.go

+22-18
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
)
@@ -43,7 +44,8 @@ const (
4344
type AssetServerConfig struct {
4445
GenericConfig *genericapiserver.Config
4546

46-
Options oapi.AssetConfig
47+
Options oapi.AssetConfig
48+
LimitRequestOverrides *overrideapi.ClusterResourceOverrideConfig
4749

4850
PublicURL url.URL
4951
}
@@ -59,7 +61,7 @@ type completedAssetServerConfig struct {
5961
*AssetServerConfig
6062
}
6163

62-
func NewAssetServerConfig(assetConfig oapi.AssetConfig) (*AssetServerConfig, error) {
64+
func NewAssetServerConfig(assetConfig oapi.AssetConfig, limitRequestOverrides *overrideapi.ClusterResourceOverrideConfig) (*AssetServerConfig, error) {
6365
publicURL, err := url.Parse(assetConfig.PublicURL)
6466
if err != nil {
6567
glog.Fatal(err)
@@ -97,9 +99,10 @@ func NewAssetServerConfig(assetConfig oapi.AssetConfig) (*AssetServerConfig, err
9799
genericConfig.SecureServingInfo.CipherSuites = crypto.CipherSuitesOrDie(assetConfig.ServingInfo.CipherSuites)
98100

99101
return &AssetServerConfig{
100-
GenericConfig: genericConfig,
101-
Options: assetConfig,
102-
PublicURL: *publicURL,
102+
GenericConfig: genericConfig,
103+
Options: assetConfig,
104+
LimitRequestOverrides: limitRequestOverrides,
105+
PublicURL: *publicURL,
103106
}, nil
104107
}
105108

@@ -216,19 +219,20 @@ func (c *completedAssetServerConfig) addWebConsoleConfig(serverMux *genericmux.P
216219

217220
// Generated web console config and server version
218221
config := assets.WebConsoleConfig{
219-
APIGroupAddr: masterURL.Host,
220-
APIGroupPrefix: server.APIGroupPrefix,
221-
MasterAddr: masterURL.Host,
222-
MasterPrefix: api.Prefix,
223-
KubernetesAddr: masterURL.Host,
224-
KubernetesPrefix: server.DefaultLegacyAPIPrefix,
225-
OAuthAuthorizeURI: oauthutil.OpenShiftOAuthAuthorizeURL(masterURL.String()),
226-
OAuthTokenURI: oauthutil.OpenShiftOAuthTokenURL(masterURL.String()),
227-
OAuthRedirectBase: c.Options.PublicURL,
228-
OAuthClientID: OpenShiftWebConsoleClientID,
229-
LogoutURI: c.Options.LogoutURL,
230-
LoggingURL: c.Options.LoggingPublicURL,
231-
MetricsURL: c.Options.MetricsPublicURL,
222+
APIGroupAddr: masterURL.Host,
223+
APIGroupPrefix: server.APIGroupPrefix,
224+
MasterAddr: masterURL.Host,
225+
MasterPrefix: api.Prefix,
226+
KubernetesAddr: masterURL.Host,
227+
KubernetesPrefix: server.DefaultLegacyAPIPrefix,
228+
OAuthAuthorizeURI: oauthutil.OpenShiftOAuthAuthorizeURL(masterURL.String()),
229+
OAuthTokenURI: oauthutil.OpenShiftOAuthTokenURL(masterURL.String()),
230+
OAuthRedirectBase: c.Options.PublicURL,
231+
OAuthClientID: OpenShiftWebConsoleClientID,
232+
LogoutURI: c.Options.LogoutURL,
233+
LoggingURL: c.Options.LoggingPublicURL,
234+
MetricsURL: c.Options.MetricsPublicURL,
235+
LimitRequestOverrides: c.LimitRequestOverrides,
232236
}
233237
kVersionInfo := kversion.Get()
234238
oVersionInfo := oversion.Get()

pkg/cmd/server/origin/asset_apiserver_adapter.go

+51-1
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,24 @@
11
package origin
22

33
import (
4+
"os"
5+
46
assetapiserver "github.com/openshift/origin/pkg/assets/apiserver"
57
configapi "github.com/openshift/origin/pkg/cmd/server/api"
8+
"github.com/openshift/origin/pkg/cmd/util/pluginconfig"
9+
override "github.com/openshift/origin/pkg/quota/admission/clusterresourceoverride"
10+
overrideapi "github.com/openshift/origin/pkg/quota/admission/clusterresourceoverride/api"
611
)
712

813
// TODO this is taking a very large config for a small piece of it. The information must be broken up at some point so that
914
// we can run this in a pod. This is an indication of leaky abstraction because it spent too much time in openshift start
1015
func NewAssetServerConfigFromMasterConfig(masterConfigOptions configapi.MasterConfig) (*assetapiserver.AssetServerConfig, error) {
11-
ret, err := assetapiserver.NewAssetServerConfig(*masterConfigOptions.AssetConfig)
16+
clusterResourceOverrideConfig, err := getResourceOverrideConfig(masterConfigOptions)
17+
if err != nil {
18+
return nil, err
19+
}
20+
21+
ret, err := assetapiserver.NewAssetServerConfig(*masterConfigOptions.AssetConfig, clusterResourceOverrideConfig)
1222
if err != nil {
1323
return nil, err
1424
}
@@ -21,3 +31,43 @@ func NewAssetServerConfigFromMasterConfig(masterConfigOptions configapi.MasterCo
2131

2232
return ret, nil
2333
}
34+
35+
// All this ugly was removed in 3.9
36+
// getResourceOverrideConfig looks in two potential places where ClusterResourceOverrideConfig can be specified
37+
func getResourceOverrideConfig(masterConfig configapi.MasterConfig) (*overrideapi.ClusterResourceOverrideConfig, error) {
38+
overrideConfig, err := checkForOverrideConfig(masterConfig.AdmissionConfig)
39+
if err != nil {
40+
return nil, err
41+
}
42+
if overrideConfig != nil {
43+
return overrideConfig, nil
44+
}
45+
if masterConfig.KubernetesMasterConfig == nil { // external kube gets you a nil pointer here
46+
return nil, nil
47+
}
48+
overrideConfig, err = checkForOverrideConfig(masterConfig.KubernetesMasterConfig.AdmissionConfig)
49+
if err != nil {
50+
return nil, err
51+
}
52+
return overrideConfig, nil
53+
}
54+
55+
// checkForOverrideConfig looks for ClusterResourceOverrideConfig plugin cfg in the admission PluginConfig
56+
func checkForOverrideConfig(ac configapi.AdmissionConfig) (*overrideapi.ClusterResourceOverrideConfig, error) {
57+
overridePluginConfigFile, err := pluginconfig.GetPluginConfigFile(ac.PluginConfig, overrideapi.PluginName, "")
58+
if err != nil {
59+
return nil, err
60+
}
61+
if overridePluginConfigFile == "" {
62+
return nil, nil
63+
}
64+
configFile, err := os.Open(overridePluginConfigFile)
65+
if err != nil {
66+
return nil, err
67+
}
68+
overrideConfig, err := override.ReadConfig(configFile)
69+
if err != nil {
70+
return nil, err
71+
}
72+
return overrideConfig, nil
73+
}

0 commit comments

Comments
 (0)