@@ -216,6 +216,58 @@ func TestAPIServerHost(t *testing.T) {
216
216
},
217
217
want : "apiserver.example.private" ,
218
218
},
219
+ {
220
+ name : "private apiserver without private dns zone" ,
221
+ azureCluster : infrav1.AzureCluster {
222
+ Spec : infrav1.AzureClusterSpec {
223
+ AzureClusterClassSpec : infrav1.AzureClusterClassSpec {
224
+ SubscriptionID : fakeSubscriptionID ,
225
+ IdentityRef : & corev1.ObjectReference {
226
+ Kind : infrav1 .AzureClusterIdentityKind ,
227
+ },
228
+ },
229
+ ControlPlaneEnabled : true ,
230
+ NetworkSpec : infrav1.NetworkSpec {
231
+ NetworkClassSpec : infrav1.NetworkClassSpec {
232
+ PrivateDNSZoneName : "" ,
233
+ PrivateDNSZone : ptr .To (infrav1 .PrivateDNSZoneModeNone ),
234
+ },
235
+ APIServerLB : & infrav1.LoadBalancerSpec {
236
+ LoadBalancerClassSpec : infrav1.LoadBalancerClassSpec {
237
+ Type : infrav1 .Internal ,
238
+ },
239
+ },
240
+ },
241
+ },
242
+ },
243
+ want : "apiserver.my-cluster.capz.io" ,
244
+ },
245
+ {
246
+ name : "private apiserver with private dns zone" ,
247
+ azureCluster : infrav1.AzureCluster {
248
+ Spec : infrav1.AzureClusterSpec {
249
+ AzureClusterClassSpec : infrav1.AzureClusterClassSpec {
250
+ SubscriptionID : fakeSubscriptionID ,
251
+ IdentityRef : & corev1.ObjectReference {
252
+ Kind : infrav1 .AzureClusterIdentityKind ,
253
+ },
254
+ },
255
+ ControlPlaneEnabled : true ,
256
+ NetworkSpec : infrav1.NetworkSpec {
257
+ NetworkClassSpec : infrav1.NetworkClassSpec {
258
+ PrivateDNSZoneName : "" ,
259
+ PrivateDNSZone : ptr .To (infrav1 .PrivateDNSZoneModeSystem ),
260
+ },
261
+ APIServerLB : & infrav1.LoadBalancerSpec {
262
+ LoadBalancerClassSpec : infrav1.LoadBalancerClassSpec {
263
+ Type : infrav1 .Internal ,
264
+ },
265
+ },
266
+ },
267
+ },
268
+ },
269
+ want : "apiserver.my-cluster.capz.io" ,
270
+ },
219
271
}
220
272
221
273
for _ , tc := range tests {
@@ -4137,3 +4189,95 @@ func TestAPIServerLBName(t *testing.T) {
4137
4189
})
4138
4190
}
4139
4191
}
4192
+
4193
+ func TestPrivateDNSSpec (t * testing.T ) {
4194
+ tests := []struct {
4195
+ name string
4196
+ clusterName string
4197
+ azureClusterNetworkSpec infrav1.NetworkSpec
4198
+ expectPrivateDNSSpec bool
4199
+ }{
4200
+ {
4201
+ name : "Default PrivateDNSZone (PrivateDNSZoneModeSystem)" ,
4202
+ clusterName : "private-default" ,
4203
+ azureClusterNetworkSpec : infrav1.NetworkSpec {
4204
+ NetworkClassSpec : infrav1.NetworkClassSpec {
4205
+ PrivateDNSZoneName : "fake-privateDNSZoneName" ,
4206
+ },
4207
+ APIServerLB : & infrav1.LoadBalancerSpec {
4208
+ FrontendIPs : []infrav1.FrontendIP {
4209
+ {
4210
+ Name : "api-server-lb-internal-ip" ,
4211
+ FrontendIPClass : infrav1.FrontendIPClass {
4212
+ PrivateIPAddress : infrav1 .DefaultInternalLBIPAddress ,
4213
+ },
4214
+ },
4215
+ },
4216
+ LoadBalancerClassSpec : infrav1.LoadBalancerClassSpec {
4217
+ Type : infrav1 .Internal ,
4218
+ },
4219
+ },
4220
+ },
4221
+ expectPrivateDNSSpec : true ,
4222
+ },
4223
+ {
4224
+ name : "PrivateDNSZone set to PrivateDNSZoneModeNone" ,
4225
+ clusterName : "private-none" ,
4226
+ azureClusterNetworkSpec : infrav1.NetworkSpec {
4227
+ NetworkClassSpec : infrav1.NetworkClassSpec {
4228
+ PrivateDNSZoneName : "fake-privateDNSZoneName" ,
4229
+ PrivateDNSZone : ptr .To (infrav1 .PrivateDNSZoneModeNone ),
4230
+ },
4231
+ APIServerLB : & infrav1.LoadBalancerSpec {
4232
+ LoadBalancerClassSpec : infrav1.LoadBalancerClassSpec {
4233
+ Type : infrav1 .Internal ,
4234
+ },
4235
+ },
4236
+ },
4237
+ expectPrivateDNSSpec : false ,
4238
+ },
4239
+ {
4240
+ name : "Public LB" ,
4241
+ clusterName : "public-none" ,
4242
+ azureClusterNetworkSpec : infrav1.NetworkSpec {
4243
+ NetworkClassSpec : infrav1.NetworkClassSpec {
4244
+ PrivateDNSZoneName : "fake-privateDNSZoneName" ,
4245
+ PrivateDNSZone : ptr .To (infrav1 .PrivateDNSZoneModeNone ),
4246
+ },
4247
+ APIServerLB : & infrav1.LoadBalancerSpec {
4248
+ LoadBalancerClassSpec : infrav1.LoadBalancerClassSpec {
4249
+ Type : infrav1 .Public ,
4250
+ },
4251
+ },
4252
+ },
4253
+ expectPrivateDNSSpec : false ,
4254
+ },
4255
+ }
4256
+ for _ , tc := range tests {
4257
+ t .Run (tc .name , func (t * testing.T ) {
4258
+ g := NewWithT (t )
4259
+
4260
+ cluster := & clusterv1.Cluster {
4261
+ ObjectMeta : metav1.ObjectMeta {
4262
+ Name : tc .clusterName ,
4263
+ Namespace : "default" ,
4264
+ },
4265
+ }
4266
+ azureCluster := & infrav1.AzureCluster {
4267
+ ObjectMeta : metav1.ObjectMeta {
4268
+ Name : tc .clusterName ,
4269
+ },
4270
+ Spec : infrav1.AzureClusterSpec {
4271
+ NetworkSpec : tc .azureClusterNetworkSpec ,
4272
+ },
4273
+ }
4274
+
4275
+ clusterScope := & ClusterScope {
4276
+ Cluster : cluster ,
4277
+ AzureCluster : azureCluster ,
4278
+ }
4279
+ zoneSpec , _ , _ := clusterScope .PrivateDNSSpec ()
4280
+ g .Expect (zoneSpec != nil ).Should (Equal (tc .expectPrivateDNSSpec ))
4281
+ })
4282
+ }
4283
+ }
0 commit comments