1
1
package origin
2
2
3
3
import (
4
+ "encoding/json"
4
5
"fmt"
5
6
"io/ioutil"
6
7
"net/http"
@@ -75,24 +76,37 @@ func (c *MasterConfig) newOpenshiftAPIConfig(kubeAPIServerConfig apiserver.Confi
75
76
return ret , ret .ExtraConfig .Validate ()
76
77
}
77
78
78
- func (c * MasterConfig ) newOpenshiftNonAPIConfig (kubeAPIServerConfig apiserver.Config ) * OpenshiftNonAPIConfig {
79
+ // Prep OAuth metadata once
80
+ func (c * MasterConfig ) prepOauthMetadata (config * OpenshiftNonAPIConfig ) error {
81
+ var err error
82
+ if c .Options .OAuthConfig != nil {
83
+ config .ExtraConfig .OAuthMetadata , err = json .MarshalIndent (oauthutil .GetOauthMetadata (c .Options .OAuthConfig .MasterPublicURL ), "" , " " )
84
+ if err != nil {
85
+ glog .Errorf ("Unable to initialize OAuth authorization server metadata route: %v" , err )
86
+ return err
87
+ }
88
+ }
89
+ if c .Options .ExternalOAuthConfig != nil {
90
+ config .ExtraConfig .OAuthMetadata , err = oauthutil .LoadOAuthMetadataFile (c .Options .ExternalOAuthConfig .MetadataFile )
91
+ if err != nil {
92
+ return err
93
+ }
94
+ }
95
+ return nil
96
+ }
97
+
98
+ func (c * MasterConfig ) newOpenshiftNonAPIConfig (kubeAPIServerConfig apiserver.Config ) (* OpenshiftNonAPIConfig , error ) {
79
99
ret := & OpenshiftNonAPIConfig {
80
100
GenericConfig : & apiserver.RecommendedConfig {
81
101
Config : kubeAPIServerConfig ,
82
102
SharedInformerFactory : c .ClientGoKubeInformers ,
83
103
},
84
- ExtraConfig : NonAPIExtraConfig {
85
- EnableOAuth : c .Options .OAuthConfig != nil || c .Options .ExternalOAuthConfig != nil ,
86
- },
87
- }
88
- if c .Options .OAuthConfig != nil {
89
- ret .ExtraConfig .MasterPublicURL = c .Options .OAuthConfig .MasterPublicURL
90
104
}
91
- if c . Options . ExternalOAuthConfig != nil {
92
- ret . ExtraConfig . OAuthMetadataFile = c . Options . ExternalOAuthConfig . MetadataFile
105
+ if err := c . prepOauthMetadata ( ret ); err != nil {
106
+ return nil , err
93
107
}
94
108
95
- return ret
109
+ return ret , nil
96
110
}
97
111
98
112
func (c * MasterConfig ) withAPIExtensions (delegateAPIServer apiserver.DelegationTarget , kubeAPIServerConfig apiserver.Config ) (apiserver.DelegationTarget , apiextensionsinformers.SharedInformerFactory , error ) {
@@ -113,7 +127,10 @@ func (c *MasterConfig) withAPIExtensions(delegateAPIServer apiserver.DelegationT
113
127
}
114
128
115
129
func (c * MasterConfig ) withNonAPIRoutes (delegateAPIServer apiserver.DelegationTarget , kubeAPIServerConfig apiserver.Config ) (apiserver.DelegationTarget , error ) {
116
- openshiftNonAPIConfig := c .newOpenshiftNonAPIConfig (kubeAPIServerConfig )
130
+ openshiftNonAPIConfig , err := c .newOpenshiftNonAPIConfig (kubeAPIServerConfig )
131
+ if err != nil {
132
+ return nil , err
133
+ }
117
134
openshiftNonAPIServer , err := openshiftNonAPIConfig .Complete ().New (delegateAPIServer )
118
135
if err != nil {
119
136
return nil , err
0 commit comments