@@ -125,6 +125,25 @@ func makeInfrastructureResource(platform configv1.PlatformType, cloudName config
125125 return & cfg
126126}
127127
128+ // makeExpectedConfig sets some repetitive default fields for tests, assuming that they are not already set.
129+ func makeExpectedConfig (config * azure.Config , cloud configv1.AzureCloudEnvironment ) azure.Config {
130+ if config .ClusterServiceLoadBalancerHealthProbeMode == "" {
131+ config .ClusterServiceLoadBalancerHealthProbeMode = azureconsts .ClusterServiceLoadBalancerHealthProbeModeShared
132+ }
133+
134+ if config .VMType == "" {
135+ config .VMType = "standard"
136+ }
137+
138+ config .AzureAuthConfig = ratelimitconfig.AzureAuthConfig {
139+ ARMClientConfig : azclient.ARMClientConfig {
140+ Cloud : string (cloud ),
141+ },
142+ }
143+
144+ return * config
145+ }
146+
128147// This test is a little complicated with all the JSON marshalling and
129148// unmarshalling, but it is necessary due to the nature of how this data
130149// is stored in Kuberenetes. The ConfigMaps containing the cloud config
@@ -148,45 +167,45 @@ func TestCloudConfigTransformer(t *testing.T) {
148167 {
149168 name : "Azure sets the vmType to standard and cloud to AzurePublicCloud when neither is set" ,
150169 source : azure.Config {},
151- expected : azure.Config {VMType : "standard" , ClusterServiceLoadBalancerHealthProbeMode : azureconsts . ClusterServiceLoadBalancerHealthProbeModeShared , AzureAuthConfig : ratelimitconfig. AzureAuthConfig { ARMClientConfig : azclient. ARMClientConfig { Cloud : string ( configv1 .AzurePublicCloud )}}} ,
170+ expected : makeExpectedConfig ( & azure.Config {}, configv1 .AzurePublicCloud ),
152171 infra : makeInfrastructureResource (configv1 .AzurePlatformType , configv1 .AzurePublicCloud ),
153172 },
154173 {
155174 name : "Azure doesn't modify vmType if user set" ,
156175 source : azure.Config {VMType : "vmss" },
157- expected : azure.Config {VMType : "vmss" , ClusterServiceLoadBalancerHealthProbeMode : azureconsts . ClusterServiceLoadBalancerHealthProbeModeShared , AzureAuthConfig : ratelimitconfig. AzureAuthConfig { ARMClientConfig : azclient. ARMClientConfig { Cloud : string ( configv1 .AzurePublicCloud )}}} ,
176+ expected : makeExpectedConfig ( & azure.Config {VMType : "vmss" }, configv1 .AzurePublicCloud ),
158177 infra : makeInfrastructureResource (configv1 .AzurePlatformType , configv1 .AzurePublicCloud ),
159178 },
160179 {
161180 name : "Azure sets the cloud to AzurePublicCloud and keeps existing fields" ,
162181 source : azure.Config {
163182 ResourceGroup : "test-rg" ,
164183 },
165- expected : azure.Config {VMType : "standard" , ClusterServiceLoadBalancerHealthProbeMode : azureconsts . ClusterServiceLoadBalancerHealthProbeModeShared , ResourceGroup : "test-rg" , AzureAuthConfig : ratelimitconfig. AzureAuthConfig { ARMClientConfig : azclient. ARMClientConfig { Cloud : string ( configv1 .AzurePublicCloud )}}} ,
184+ expected : makeExpectedConfig ( & azure.Config {ResourceGroup : "test-rg" }, configv1 .AzurePublicCloud ),
166185 infra : makeInfrastructureResource (configv1 .AzurePlatformType , configv1 .AzurePublicCloud ),
167186 },
168187 {
169188 name : "Azure keeps the cloud set to AzurePublicCloud" ,
170189 source : azure.Config {AzureAuthConfig : ratelimitconfig.AzureAuthConfig {ARMClientConfig : azclient.ARMClientConfig {Cloud : string (configv1 .AzurePublicCloud )}}},
171- expected : azure.Config {VMType : "standard" , ClusterServiceLoadBalancerHealthProbeMode : azureconsts . ClusterServiceLoadBalancerHealthProbeModeShared , AzureAuthConfig : ratelimitconfig. AzureAuthConfig { ARMClientConfig : azclient. ARMClientConfig { Cloud : string ( configv1 .AzurePublicCloud )}}} ,
190+ expected : makeExpectedConfig ( & azure.Config {}, configv1 .AzurePublicCloud ),
172191 infra : makeInfrastructureResource (configv1 .AzurePlatformType , configv1 .AzurePublicCloud ),
173192 },
174193 {
175194 name : "Azure keeps the cloud set to US Gov cloud" ,
176195 source : azure.Config {AzureAuthConfig : ratelimitconfig.AzureAuthConfig {ARMClientConfig : azclient.ARMClientConfig {Cloud : string (configv1 .AzureUSGovernmentCloud )}}},
177- expected : azure.Config {VMType : "standard" , ClusterServiceLoadBalancerHealthProbeMode : azureconsts . ClusterServiceLoadBalancerHealthProbeModeShared , AzureAuthConfig : ratelimitconfig. AzureAuthConfig { ARMClientConfig : azclient. ARMClientConfig { Cloud : string ( configv1 .AzureUSGovernmentCloud )}}} ,
196+ expected : makeExpectedConfig ( & azure.Config {}, configv1 .AzureUSGovernmentCloud ),
178197 infra : makeInfrastructureResource (configv1 .AzurePlatformType , configv1 .AzureUSGovernmentCloud ),
179198 },
180199 {
181200 name : "Azure keeps the cloud set to China cloud" ,
182201 source : azure.Config {AzureAuthConfig : ratelimitconfig.AzureAuthConfig {ARMClientConfig : azclient.ARMClientConfig {Cloud : string (configv1 .AzureChinaCloud )}}},
183- expected : azure.Config {VMType : "standard" , ClusterServiceLoadBalancerHealthProbeMode : azureconsts . ClusterServiceLoadBalancerHealthProbeModeShared , AzureAuthConfig : ratelimitconfig. AzureAuthConfig { ARMClientConfig : azclient. ARMClientConfig { Cloud : string ( configv1 .AzureChinaCloud )}}} ,
202+ expected : makeExpectedConfig ( & azure.Config {}, configv1 .AzureChinaCloud ),
184203 infra : makeInfrastructureResource (configv1 .AzurePlatformType , configv1 .AzureChinaCloud ),
185204 },
186205 {
187206 name : "Azure keeps the cloud set to German cloud" ,
188207 source : azure.Config {AzureAuthConfig : ratelimitconfig.AzureAuthConfig {ARMClientConfig : azclient.ARMClientConfig {Cloud : string (configv1 .AzureGermanCloud )}}},
189- expected : azure.Config {VMType : "standard" , ClusterServiceLoadBalancerHealthProbeMode : azureconsts . ClusterServiceLoadBalancerHealthProbeModeShared , AzureAuthConfig : ratelimitconfig. AzureAuthConfig { ARMClientConfig : azclient. ARMClientConfig { Cloud : string ( configv1 .AzureGermanCloud )}}} ,
208+ expected : makeExpectedConfig ( & azure.Config {}, configv1 .AzureGermanCloud ),
190209 infra : makeInfrastructureResource (configv1 .AzurePlatformType , configv1 .AzureGermanCloud ),
191210 },
192211 {
@@ -198,19 +217,19 @@ func TestCloudConfigTransformer(t *testing.T) {
198217 {
199218 name : "Azure keeps the cloud set in the source when there is not one set in infrastructure" ,
200219 source : azure.Config {AzureAuthConfig : ratelimitconfig.AzureAuthConfig {ARMClientConfig : azclient.ARMClientConfig {Cloud : string (configv1 .AzurePublicCloud )}}},
201- expected : azure.Config {VMType : "standard" , ClusterServiceLoadBalancerHealthProbeMode : azureconsts . ClusterServiceLoadBalancerHealthProbeModeShared , AzureAuthConfig : ratelimitconfig. AzureAuthConfig { ARMClientConfig : azclient. ARMClientConfig { Cloud : string ( configv1 .AzurePublicCloud )}}} ,
220+ expected : makeExpectedConfig ( & azure.Config {}, configv1 .AzurePublicCloud ),
202221 infra : makeInfrastructureResource (configv1 .AzurePlatformType , "" ),
203222 },
204223 {
205224 name : "Azure sets the cloud to match the infrastructure if an empty string is provided in source" ,
206225 source : azure.Config {AzureAuthConfig : ratelimitconfig.AzureAuthConfig {ARMClientConfig : azclient.ARMClientConfig {Cloud : "" }}},
207- expected : azure.Config {VMType : "standard" , ClusterServiceLoadBalancerHealthProbeMode : azureconsts . ClusterServiceLoadBalancerHealthProbeModeShared , AzureAuthConfig : ratelimitconfig. AzureAuthConfig { ARMClientConfig : azclient. ARMClientConfig { Cloud : string ( configv1 .AzurePublicCloud )}}} ,
226+ expected : makeExpectedConfig ( & azure.Config {}, configv1 .AzurePublicCloud ),
208227 infra : makeInfrastructureResource (configv1 .AzurePlatformType , configv1 .AzurePublicCloud ),
209228 },
210229 {
211230 name : "Azure sets the cloud to match the infrastructure if an empty string is provided in source and the infrastructure is non standard" ,
212231 source : azure.Config {AzureAuthConfig : ratelimitconfig.AzureAuthConfig {ARMClientConfig : azclient.ARMClientConfig {Cloud : "" }}},
213- expected : azure.Config {VMType : "standard" , ClusterServiceLoadBalancerHealthProbeMode : azureconsts . ClusterServiceLoadBalancerHealthProbeModeShared , AzureAuthConfig : ratelimitconfig. AzureAuthConfig { ARMClientConfig : azclient. ARMClientConfig { Cloud : string ( configv1 .AzureUSGovernmentCloud )}}} ,
232+ expected : makeExpectedConfig ( & azure.Config {}, configv1 .AzureUSGovernmentCloud ),
214233 infra : makeInfrastructureResource (configv1 .AzurePlatformType , configv1 .AzureUSGovernmentCloud ),
215234 },
216235 {
@@ -222,7 +241,7 @@ func TestCloudConfigTransformer(t *testing.T) {
222241 {
223242 name : "Azure keeps the cloud set to AzurePublicCloud if the source is upper case" ,
224243 source : azure.Config {AzureAuthConfig : ratelimitconfig.AzureAuthConfig {ARMClientConfig : azclient.ARMClientConfig {Cloud : "AZUREPUBLICCLOUD" }}},
225- expected : azure.Config {VMType : "standard" , ClusterServiceLoadBalancerHealthProbeMode : azureconsts . ClusterServiceLoadBalancerHealthProbeModeShared , AzureAuthConfig : ratelimitconfig. AzureAuthConfig { ARMClientConfig : azclient. ARMClientConfig { Cloud : string ( configv1 .AzurePublicCloud )}}} ,
244+ expected : makeExpectedConfig ( & azure.Config {}, configv1 .AzurePublicCloud ),
226245 infra : makeInfrastructureResource (configv1 .AzurePlatformType , configv1 .AzurePublicCloud ),
227246 },
228247 }
0 commit comments