... | ... |
@@ -28,6 +28,17 @@ func init() { |
28 | 28 |
if len(obj.RoutingConfig.Subdomain) == 0 { |
29 | 29 |
obj.RoutingConfig.Subdomain = "router.default.svc.cluster.local" |
30 | 30 |
} |
31 |
+ |
|
32 |
+ // Populate the new NetworkConfig.ServiceNetworkCIDR field from the KubernetesMasterConfig.ServicesSubnet field if needed |
|
33 |
+ if len(obj.NetworkConfig.ServiceNetworkCIDR) == 0 { |
|
34 |
+ if obj.KubernetesMasterConfig != nil && len(obj.KubernetesMasterConfig.ServicesSubnet) > 0 { |
|
35 |
+ // if a subnet is set in the kubernetes master config, use that |
|
36 |
+ obj.NetworkConfig.ServiceNetworkCIDR = obj.KubernetesMasterConfig.ServicesSubnet |
|
37 |
+ } else { |
|
38 |
+ // default ServiceClusterIPRange used by kubernetes if nothing is specified |
|
39 |
+ obj.NetworkConfig.ServiceNetworkCIDR = "10.0.0.0/24" |
|
40 |
+ } |
|
41 |
+ } |
|
31 | 42 |
}, |
32 | 43 |
func(obj *KubernetesMasterConfig) { |
33 | 44 |
if obj.MasterCount == 0 { |
... | ... |
@@ -135,6 +135,14 @@ func ValidateMasterConfig(config *api.MasterConfig) ValidationResults { |
135 | 135 |
validationResults.AddErrors(fielderrors.NewFieldInvalid("kubernetesMasterConfig", config.KubernetesMasterConfig, "kubernetesMasterConfig and masterClients.externalKubernetesKubeConfig are mutually exclusive")) |
136 | 136 |
} |
137 | 137 |
|
138 |
+ if len(config.NetworkConfig.ServiceNetworkCIDR) > 0 { |
|
139 |
+ if _, _, err := net.ParseCIDR(strings.TrimSpace(config.NetworkConfig.ServiceNetworkCIDR)); err != nil { |
|
140 |
+ validationResults.AddErrors(fielderrors.NewFieldInvalid("networkConfig.serviceNetworkCIDR", config.NetworkConfig.ServiceNetworkCIDR, "must be a valid CIDR notation IP range (e.g. 172.30.0.0/16)")) |
|
141 |
+ } else if config.KubernetesMasterConfig != nil && len(config.KubernetesMasterConfig.ServicesSubnet) > 0 && config.KubernetesMasterConfig.ServicesSubnet != config.NetworkConfig.ServiceNetworkCIDR { |
|
142 |
+ validationResults.AddErrors(fielderrors.NewFieldInvalid("networkConfig.serviceNetworkCIDR", config.NetworkConfig.ServiceNetworkCIDR, fmt.Sprintf("must match kubernetesMasterConfig.servicesSubnet value of %q", config.KubernetesMasterConfig.ServicesSubnet))) |
|
143 |
+ } |
|
144 |
+ } |
|
145 |
+ |
|
138 | 146 |
validationResults.AddErrors(ValidateKubeConfig(config.MasterClients.OpenShiftLoopbackKubeConfig, "openShiftLoopbackKubeConfig").Prefix("masterClients")...) |
139 | 147 |
|
140 | 148 |
if len(config.MasterClients.ExternalKubernetesKubeConfig) > 0 { |