Skip to content

Commit b660d6d

Browse files
committed
Add ability to disable creation of dns zone for unmanaged installs
Similar to managed installs, add ability to optionally create DNS zones for unmanged installs.
1 parent 2acf550 commit b660d6d

File tree

6 files changed

+72
-3
lines changed

6 files changed

+72
-3
lines changed

api/v1beta1/types_class.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -459,6 +459,10 @@ type NetworkClassSpec struct {
459459
// +optional
460460
PrivateDNSZoneName string `json:"privateDNSZoneName,omitempty"`
461461

462+
// PrivateDNSZone enables private dns zone creation modes for private cluster.
463+
// +optional
464+
PrivateDNSZone *string `json:"privateDNSZone,omitempty"`
465+
462466
// PrivateDNSZoneResourceGroup defines the resource group to be used for Azure Private DNS Zone.
463467
// If not specified, the resource group of the cluster will be used to create the Azure Private DNS Zone.
464468
// +optional

api/v1beta1/zz_generated.deepcopy.go

Lines changed: 7 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

azure/scope/cluster.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -559,7 +559,7 @@ func (s *ClusterScope) VNetSpec() azure.ASOResourceSpecGetter[*asonetworkv1api20
559559

560560
// PrivateDNSSpec returns the private dns zone spec.
561561
func (s *ClusterScope) PrivateDNSSpec() (zoneSpec azure.ResourceSpecGetter, linkSpec, recordSpec []azure.ResourceSpecGetter) {
562-
if s.IsAPIServerPrivate() {
562+
if s.IsAPIServerPrivate() && s.AzureCluster.Spec.NetworkSpec.PrivateDNSZone != ptr.To(infrav1.PrivateDNSZoneModeNone) {
563563
resourceGroup := s.ResourceGroup()
564564
if s.AzureCluster.Spec.NetworkSpec.PrivateDNSZoneResourceGroup != "" {
565565
resourceGroup = s.AzureCluster.Spec.NetworkSpec.PrivateDNSZoneResourceGroup

azure/scope/cluster_test.go

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -216,6 +216,58 @@ func TestAPIServerHost(t *testing.T) {
216216
},
217217
want: "apiserver.example.private",
218218
},
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+
},
219271
}
220272

221273
for _, tc := range tests {

config/crd/bases/infrastructure.cluster.x-k8s.io_azureclusters.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -926,6 +926,10 @@ spec:
926926
description: LBType defines an Azure load balancer Type.
927927
type: string
928928
type: object
929+
privateDNSZone:
930+
description: PrivateDNSZone enables private dns zone creation
931+
modes for private cluster.
932+
type: string
929933
privateDNSZoneName:
930934
description: PrivateDNSZoneName defines the zone name for the
931935
Azure Private DNS.

config/crd/bases/infrastructure.cluster.x-k8s.io_azureclustertemplates.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -593,6 +593,10 @@ spec:
593593
Type.
594594
type: string
595595
type: object
596+
privateDNSZone:
597+
description: PrivateDNSZone enables private dns zone creation
598+
modes for private cluster.
599+
type: string
596600
privateDNSZoneName:
597601
description: PrivateDNSZoneName defines the zone name
598602
for the Azure Private DNS.

0 commit comments

Comments
 (0)