Skip to content

Commit 935ab1d

Browse files
authored
Merge pull request #2072 from ykakarap/clusterclass-support
Add AzureClusterTemplate type
2 parents b37fc68 + 99a589c commit 935ab1d

31 files changed

+4033
-395
lines changed

PROJECT

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,3 +29,6 @@ resources:
2929
- group: infrastructure
3030
version: v1beta1
3131
kind: AzureMachineTemplate
32+
- group: infrastructure
33+
version: v1beta1
34+
kind: AzureClusterTemplate

api/v1alpha3/azurecluster_conversion.go

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -58,9 +58,7 @@ func (src *AzureCluster) ConvertTo(dstRaw conversion.Hub) error {
5858
// set default control plane outbound lb for private v1alpha3 clusters
5959
if src.Spec.NetworkSpec.APIServerLB.Type == Internal && restored.Spec.NetworkSpec.ControlPlaneOutboundLB == nil {
6060
dst.Spec.NetworkSpec.ControlPlaneOutboundLB = &infrav1beta1.LoadBalancerSpec{
61-
LoadBalancerClassSpec: infrav1beta1.LoadBalancerClassSpec{
62-
FrontendIPsCount: pointer.Int32Ptr(1),
63-
},
61+
FrontendIPsCount: pointer.Int32Ptr(1),
6462
}
6563
} else {
6664
dst.Spec.NetworkSpec.ControlPlaneOutboundLB = restored.Spec.NetworkSpec.ControlPlaneOutboundLB
@@ -69,9 +67,7 @@ func (src *AzureCluster) ConvertTo(dstRaw conversion.Hub) error {
6967
// set default node plane outbound lb for all v1alpha3 clusters
7068
if restored.Spec.NetworkSpec.NodeOutboundLB == nil {
7169
dst.Spec.NetworkSpec.NodeOutboundLB = &infrav1beta1.LoadBalancerSpec{
72-
LoadBalancerClassSpec: infrav1beta1.LoadBalancerClassSpec{
73-
FrontendIPsCount: pointer.Int32Ptr(1),
74-
},
70+
FrontendIPsCount: pointer.Int32Ptr(1),
7571
}
7672
} else {
7773
dst.Spec.NetworkSpec.NodeOutboundLB = restored.Spec.NetworkSpec.NodeOutboundLB

api/v1alpha3/conversion_test.go

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -88,12 +88,10 @@ func overrideOutboundLBFunc(codecs runtimeserializer.CodecFactory) []interface{}
8888
return []interface{}{
8989
func(networkSpec *v1beta1.NetworkSpec, c fuzz.Continue) {
9090
networkSpec.ControlPlaneOutboundLB = &v1beta1.LoadBalancerSpec{
91-
LoadBalancerClassSpec: v1beta1.LoadBalancerClassSpec{
92-
FrontendIPsCount: pointer.Int32Ptr(1)},
91+
FrontendIPsCount: pointer.Int32Ptr(1),
9392
}
9493
networkSpec.NodeOutboundLB = &v1beta1.LoadBalancerSpec{
95-
LoadBalancerClassSpec: v1beta1.LoadBalancerClassSpec{
96-
FrontendIPsCount: pointer.Int32Ptr(1)},
94+
FrontendIPsCount: pointer.Int32Ptr(1),
9795
}
9896
},
9997
}

api/v1alpha3/zz_generated.conversion.go

Lines changed: 23 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

api/v1alpha4/azurecluster_conversion.go

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -279,3 +279,23 @@ func Convert_v1beta1_SecurityGroup_To_v1alpha4_SecurityGroup(in *infrav1beta1.Se
279279

280280
return nil
281281
}
282+
283+
func Convert_v1alpha4_NatGateway_To_v1beta1_NatGateway(in *NatGateway, out *infrav1beta1.NatGateway, s apiconversion.Scope) error { //nolint
284+
if err := autoConvert_v1alpha4_NatGateway_To_v1beta1_NatGateway(in, out, s); err != nil {
285+
return err
286+
}
287+
288+
// Convert Name field
289+
out.Name = in.Name
290+
return nil
291+
}
292+
293+
func Convert_v1beta1_NatGateway_To_v1alpha4_NatGateway(in *infrav1beta1.NatGateway, out *NatGateway, s apiconversion.Scope) error { //nolint
294+
if err := autoConvert_v1beta1_NatGateway_To_v1alpha4_NatGateway(in, out, s); err != nil {
295+
return err
296+
}
297+
298+
// Convert Name field
299+
out.Name = in.Name
300+
return nil
301+
}

api/v1alpha4/zz_generated.conversion.go

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

api/v1beta1/azurecluster_default.go

Lines changed: 54 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -160,15 +160,8 @@ func (c *AzureCluster) setVnetPeeringDefaults() {
160160

161161
func (c *AzureCluster) setAPIServerLBDefaults() {
162162
lb := &c.Spec.NetworkSpec.APIServerLB
163-
if lb.Type == "" {
164-
lb.Type = Public
165-
}
166-
if lb.SKU == "" {
167-
lb.SKU = SKUStandard
168-
}
169-
if lb.IdleTimeoutInMinutes == nil {
170-
lb.IdleTimeoutInMinutes = pointer.Int32Ptr(DefaultOutboundRuleIdleTimeoutInMinutes)
171-
}
163+
164+
lb.LoadBalancerClassSpec.setAPIServerLBDefaults()
172165

173166
if lb.Type == Public {
174167
if lb.Name == "" {
@@ -226,13 +219,9 @@ func (c *AzureCluster) setNodeOutboundLBDefaults() {
226219
}
227220

228221
lb := c.Spec.NetworkSpec.NodeOutboundLB
229-
lb.Type = Public
230-
lb.SKU = SKUStandard
231-
lb.Name = c.ObjectMeta.Name
222+
lb.LoadBalancerClassSpec.setNodeOutboundLBDefaults()
232223

233-
if lb.IdleTimeoutInMinutes == nil {
234-
lb.IdleTimeoutInMinutes = pointer.Int32Ptr(DefaultOutboundRuleIdleTimeoutInMinutes)
235-
}
224+
lb.Name = c.ObjectMeta.Name
236225

237226
if lb.FrontendIPsCount == nil {
238227
lb.FrontendIPsCount = pointer.Int32Ptr(1)
@@ -242,32 +231,19 @@ func (c *AzureCluster) setNodeOutboundLBDefaults() {
242231
}
243232

244233
func (c *AzureCluster) setControlPlaneOutboundLBDefaults() {
245-
// public clusters don't need control plane outbound lb
246-
if c.Spec.NetworkSpec.APIServerLB.Type == Public {
247-
return
248-
}
234+
lb := c.Spec.NetworkSpec.ControlPlaneOutboundLB
249235

250-
// private clusters can disable control plane outbound lb by setting it to nil.
251-
if c.Spec.NetworkSpec.ControlPlaneOutboundLB == nil {
236+
if lb == nil {
252237
return
253238
}
254239

255-
lb := c.Spec.NetworkSpec.ControlPlaneOutboundLB
256-
lb.Type = Public
257-
lb.SKU = SKUStandard
258-
240+
lb.LoadBalancerClassSpec.setControlPlaneOutboundLBDefaults()
259241
if lb.Name == "" {
260242
lb.Name = generateControlPlaneOutboundLBName(c.ObjectMeta.Name)
261243
}
262-
263-
if lb.IdleTimeoutInMinutes == nil {
264-
lb.IdleTimeoutInMinutes = pointer.Int32Ptr(DefaultOutboundRuleIdleTimeoutInMinutes)
265-
}
266-
267244
if lb.FrontendIPsCount == nil {
268245
lb.FrontendIPsCount = pointer.Int32Ptr(1)
269246
}
270-
271247
c.setOutboundLBFrontendIPs(lb, generateControlPlaneOutboundIPName)
272248
}
273249

@@ -321,6 +297,53 @@ func (c *AzureCluster) setBastionDefaults() {
321297
}
322298
}
323299

300+
func (lb *LoadBalancerClassSpec) setAPIServerLBDefaults() {
301+
if lb.Type == "" {
302+
lb.Type = Public
303+
}
304+
if lb.SKU == "" {
305+
lb.SKU = SKUStandard
306+
}
307+
if lb.IdleTimeoutInMinutes == nil {
308+
lb.IdleTimeoutInMinutes = pointer.Int32Ptr(DefaultOutboundRuleIdleTimeoutInMinutes)
309+
}
310+
}
311+
312+
func (lb *LoadBalancerClassSpec) setNodeOutboundLBDefaults() {
313+
lb.setOutboundLBDefaults()
314+
}
315+
316+
func (lb *LoadBalancerClassSpec) setControlPlaneOutboundLBDefaults() {
317+
lb.setOutboundLBDefaults()
318+
}
319+
320+
func (lb *LoadBalancerClassSpec) setOutboundLBDefaults() {
321+
lb.Type = Public
322+
lb.SKU = SKUStandard
323+
if lb.IdleTimeoutInMinutes == nil {
324+
lb.IdleTimeoutInMinutes = pointer.Int32Ptr(DefaultOutboundRuleIdleTimeoutInMinutes)
325+
}
326+
}
327+
328+
func setControlPlaneOutboundLBDefaults(lb *LoadBalancerClassSpec, apiserverLBType LBType) {
329+
// public clusters don't need control plane outbound lb
330+
if apiserverLBType == Public {
331+
return
332+
}
333+
334+
// private clusters can disable control plane outbound lb by setting it to nil.
335+
if lb == nil {
336+
return
337+
}
338+
339+
lb.Type = Public
340+
lb.SKU = SKUStandard
341+
342+
if lb.IdleTimeoutInMinutes == nil {
343+
lb.IdleTimeoutInMinutes = pointer.Int32Ptr(DefaultOutboundRuleIdleTimeoutInMinutes)
344+
}
345+
}
346+
324347
// generateVnetName generates a virtual network name, based on the cluster name.
325348
func generateVnetName(clusterName string) string {
326349
return fmt.Sprintf("%s-%s", clusterName, "vnet")

0 commit comments

Comments
 (0)