Skip to content

Commit e636957

Browse files
authored
Merge pull request #1991 from shiftstack/servergroupparam
⚠️ ServerGroupFilter to ServerGroupParam
2 parents f5b0181 + 8ea3ccf commit e636957

19 files changed

+243
-68
lines changed

api/v1alpha5/conversion.go

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -351,9 +351,7 @@ func Convert_v1alpha5_OpenStackMachineSpec_To_v1beta1_OpenStackMachineSpec(in *O
351351
}
352352

353353
if in.ServerGroupID != "" {
354-
out.ServerGroup = &infrav1.ServerGroupFilter{ID: in.ServerGroupID}
355-
} else {
356-
out.ServerGroup = &infrav1.ServerGroupFilter{}
354+
out.ServerGroup = &infrav1.ServerGroupParam{ID: &in.ServerGroupID}
357355
}
358356

359357
imageParam := infrav1.ImageParam{}
@@ -682,8 +680,8 @@ func Convert_v1beta1_OpenStackMachineSpec_To_v1alpha5_OpenStackMachineSpec(in *i
682680
return err
683681
}
684682

685-
if in.ServerGroup != nil {
686-
out.ServerGroupID = in.ServerGroup.ID
683+
if in.ServerGroup != nil && in.ServerGroup.ID != nil {
684+
out.ServerGroupID = *in.ServerGroup.ID
687685
}
688686

689687
if in.Image.ID != nil {

api/v1alpha6/openstackcluster_conversion.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -441,7 +441,7 @@ func Convert_v1alpha6_Bastion_To_v1beta1_Bastion(in *Bastion, out *infrav1.Basti
441441
}
442442

443443
if in.Instance.ServerGroupID != "" {
444-
out.Spec.ServerGroup = &infrav1.ServerGroupFilter{ID: in.Instance.ServerGroupID}
444+
out.Spec.ServerGroup = &infrav1.ServerGroupParam{ID: &in.Instance.ServerGroupID}
445445
} else {
446446
out.Spec.ServerGroup = nil
447447
}
@@ -471,8 +471,8 @@ func Convert_v1beta1_Bastion_To_v1alpha6_Bastion(in *infrav1.Bastion, out *Basti
471471
return err
472472
}
473473

474-
if in.Spec.ServerGroup != nil && in.Spec.ServerGroup.ID != "" {
475-
out.Instance.ServerGroupID = in.Spec.ServerGroup.ID
474+
if in.Spec.ServerGroup != nil && in.Spec.ServerGroup.ID != nil {
475+
out.Instance.ServerGroupID = *in.Spec.ServerGroup.ID
476476
}
477477
}
478478

api/v1alpha6/openstackmachine_conversion.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -287,7 +287,7 @@ func Convert_v1alpha6_OpenStackMachineSpec_To_v1beta1_OpenStackMachineSpec(in *O
287287
}
288288

289289
if in.ServerGroupID != "" {
290-
out.ServerGroup = &infrav1.ServerGroupFilter{ID: in.ServerGroupID}
290+
out.ServerGroup = &infrav1.ServerGroupParam{ID: &in.ServerGroupID}
291291
} else {
292292
out.ServerGroup = nil
293293
}
@@ -336,8 +336,8 @@ func Convert_v1beta1_OpenStackMachineSpec_To_v1alpha6_OpenStackMachineSpec(in *i
336336
return err
337337
}
338338

339-
if in.ServerGroup != nil {
340-
out.ServerGroupID = in.ServerGroup.ID
339+
if in.ServerGroup != nil && in.ServerGroup.ID != nil {
340+
out.ServerGroupID = *in.ServerGroup.ID
341341
}
342342

343343
if in.Image.ID != nil {

api/v1alpha7/openstackcluster_conversion.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -406,7 +406,7 @@ func Convert_v1alpha7_Bastion_To_v1beta1_Bastion(in *Bastion, out *infrav1.Basti
406406
}
407407

408408
if in.Instance.ServerGroupID != "" {
409-
out.Spec.ServerGroup = &infrav1.ServerGroupFilter{ID: in.Instance.ServerGroupID}
409+
out.Spec.ServerGroup = &infrav1.ServerGroupParam{ID: &in.Instance.ServerGroupID}
410410
} else {
411411
out.Spec.ServerGroup = nil
412412
}
@@ -436,8 +436,8 @@ func Convert_v1beta1_Bastion_To_v1alpha7_Bastion(in *infrav1.Bastion, out *Basti
436436
return err
437437
}
438438

439-
if in.Spec.ServerGroup != nil && in.Spec.ServerGroup.ID != "" {
440-
out.Instance.ServerGroupID = in.Spec.ServerGroup.ID
439+
if in.Spec.ServerGroup != nil && in.Spec.ServerGroup.ID != nil {
440+
out.Instance.ServerGroupID = *in.Spec.ServerGroup.ID
441441
}
442442
}
443443

api/v1alpha7/openstackmachine_conversion.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -200,7 +200,7 @@ func Convert_v1alpha7_OpenStackMachineSpec_To_v1beta1_OpenStackMachineSpec(in *O
200200
}
201201

202202
if in.ServerGroupID != "" {
203-
out.ServerGroup = &infrav1.ServerGroupFilter{ID: in.ServerGroupID}
203+
out.ServerGroup = &infrav1.ServerGroupParam{ID: &in.ServerGroupID}
204204
} else {
205205
out.ServerGroup = nil
206206
}
@@ -246,8 +246,8 @@ func Convert_v1beta1_OpenStackMachineSpec_To_v1alpha7_OpenStackMachineSpec(in *i
246246
return err
247247
}
248248

249-
if in.ServerGroup != nil {
250-
out.ServerGroupID = in.ServerGroup.ID
249+
if in.ServerGroup != nil && in.ServerGroup.ID != nil {
250+
out.ServerGroupID = *in.ServerGroup.ID
251251
}
252252

253253
if in.Image.ID != nil {

api/v1beta1/openstackmachine_types.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ type OpenStackMachineSpec struct {
8585

8686
// The server group to assign the machine to.
8787
// +optional
88-
ServerGroup *ServerGroupFilter `json:"serverGroup,omitempty"`
88+
ServerGroup *ServerGroupParam `json:"serverGroup,omitempty"`
8989

9090
// IdentityRef is a reference to a secret holding OpenStack credentials
9191
// to be used when reconciling this machine. If not specified, the

api/v1beta1/types.go

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -547,9 +547,30 @@ type AdditionalBlockDevice struct {
547547
Storage BlockDeviceStorage `json:"storage"`
548548
}
549549

550+
// ServerGroupParam specifies an OpenStack server group. It may be specified by ID or filter, but not both.
551+
// +kubebuilder:validation:MaxProperties:=1
552+
// +kubebuilder:validation:MinProperties:=1
553+
type ServerGroupParam struct {
554+
// ID is the ID of the server group to use.
555+
// +kubebuilder:validation:Format:=uuid
556+
ID optional.String `json:"id,omitempty"`
557+
558+
// Filter specifies a query to select an OpenStack server group. If provided, it cannot be empty.
559+
Filter *ServerGroupFilter `json:"filter,omitempty"`
560+
}
561+
562+
// ServerGroupFilter specifies a query to select an OpenStack server group. At least one property must be set.
563+
// +kubebuilder:validation:MinProperties:=1
550564
type ServerGroupFilter struct {
551-
ID string `json:"id,omitempty"`
552-
Name string `json:"name,omitempty"`
565+
// Name is the name of a server group to look for.
566+
Name optional.String `json:"name,omitempty"`
567+
}
568+
569+
func (f *ServerGroupFilter) IsZero() bool {
570+
if f == nil {
571+
return true
572+
}
573+
return f.Name == nil
553574
}
554575

555576
// BlockDeviceType defines the type of block device to create.

api/v1beta1/zz_generated.deepcopy.go

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

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

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

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

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

0 commit comments

Comments
 (0)