Skip to content

Commit a711313

Browse files
committed
Change ClusterResourceSetBinding Bindings field from
[]*ResourceSetBinding to []ResourceSetBinding Signed-off-by: Stefan Büringer buringerst@vmware.com
1 parent a21ffb0 commit a711313

File tree

14 files changed

+240
-26
lines changed

14 files changed

+240
-26
lines changed

api/addons/v1beta1/conversion.go

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@ limitations under the License.
1717
package v1beta1
1818

1919
import (
20+
"reflect"
21+
2022
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
2123
apimachineryconversion "k8s.io/apimachinery/pkg/conversion"
2224
"sigs.k8s.io/controller-runtime/pkg/conversion"
@@ -105,6 +107,21 @@ func Convert_v1beta1_ClusterResourceSetStatus_To_v1beta2_ClusterResourceSetStatu
105107
return nil
106108
}
107109

110+
func Convert_Pointer_v1beta1_ResourceSetBinding_To_v1beta2_ResourceSetBinding(in **ResourceSetBinding, out *addonsv1.ResourceSetBinding, s apimachineryconversion.Scope) error {
111+
if in == nil || *in == nil {
112+
return nil
113+
}
114+
return autoConvert_v1beta1_ResourceSetBinding_To_v1beta2_ResourceSetBinding(*in, out, s)
115+
}
116+
117+
func Convert_v1beta2_ResourceSetBinding_To_Pointer_v1beta1_ResourceSetBinding(in *addonsv1.ResourceSetBinding, out **ResourceSetBinding, s apimachineryconversion.Scope) error {
118+
if in == nil || reflect.DeepEqual(*in, addonsv1.ResourceSetBinding{}) {
119+
return nil
120+
}
121+
*out = &ResourceSetBinding{}
122+
return autoConvert_v1beta2_ResourceSetBinding_To_v1beta1_ResourceSetBinding(in, *out, s)
123+
}
124+
108125
// Implement local conversion func because conversion-gen is not aware of conversion func in other packages (see https://github.com/kubernetes/code-generator/issues/94)
109126

110127
func Convert_v1_Condition_To_v1beta1_Condition(in *metav1.Condition, out *clusterv1beta1.Condition, s apimachineryconversion.Scope) error {

api/addons/v1beta1/conversion_test.go

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,9 @@ func TestFuzzyConversion(t *testing.T) {
3939
FuzzerFuncs: []fuzzer.FuzzerFuncs{ClusterResourceSetFuzzFuncs},
4040
}))
4141
t.Run("for ClusterResourceSetBinding", utilconversion.FuzzTestFunc(utilconversion.FuzzTestFuncInput{
42-
Hub: &addonsv1.ClusterResourceSetBinding{},
43-
Spoke: &ClusterResourceSetBinding{},
42+
Hub: &addonsv1.ClusterResourceSetBinding{},
43+
Spoke: &ClusterResourceSetBinding{},
44+
FuzzerFuncs: []fuzzer.FuzzerFuncs{ClusterResourceSetBindingFuzzFuncs},
4445
}))
4546
}
4647

@@ -70,3 +71,21 @@ func spokeClusterResourceSetStatus(in *ClusterResourceSetStatus, c randfill.Cont
7071
}
7172
}
7273
}
74+
75+
func ClusterResourceSetBindingFuzzFuncs(_ runtimeserializer.CodecFactory) []interface{} {
76+
return []interface{}{
77+
hubClusterResourceSetStatus,
78+
spokeClusterResourceSetBindingSpec,
79+
}
80+
}
81+
82+
func spokeClusterResourceSetBindingSpec(in *ClusterResourceSetBindingSpec, c randfill.Continue) {
83+
c.FillNoCustom(in)
84+
85+
for i, b := range in.Bindings {
86+
if b != nil && reflect.DeepEqual(*b, ResourceSetBinding{}) {
87+
b = nil
88+
}
89+
in.Bindings[i] = b
90+
}
91+
}

api/addons/v1beta1/zz_generated.conversion.go

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

api/addons/v1beta2/clusterresourcesetbinding_types.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -92,14 +92,14 @@ func (r *ResourceSetBinding) SetBinding(resourceBinding ResourceBinding) {
9292
// GetOrCreateBinding returns the ResourceSetBinding for a given ClusterResourceSet if exists,
9393
// otherwise creates one and updates ClusterResourceSet with it.
9494
func (c *ClusterResourceSetBinding) GetOrCreateBinding(clusterResourceSet *ClusterResourceSet) *ResourceSetBinding {
95-
for _, binding := range c.Spec.Bindings {
96-
if binding.ClusterResourceSetName == clusterResourceSet.Name {
97-
return binding
95+
for i := range c.Spec.Bindings {
96+
if c.Spec.Bindings[i].ClusterResourceSetName == clusterResourceSet.Name {
97+
return &c.Spec.Bindings[i]
9898
}
9999
}
100-
binding := &ResourceSetBinding{ClusterResourceSetName: clusterResourceSet.Name, Resources: []ResourceBinding{}}
100+
binding := ResourceSetBinding{ClusterResourceSetName: clusterResourceSet.Name, Resources: []ResourceBinding{}}
101101
c.Spec.Bindings = append(c.Spec.Bindings, binding)
102-
return binding
102+
return &c.Spec.Bindings[len(c.Spec.Bindings)-1]
103103
}
104104

105105
// RemoveBinding removes the ClusterResourceSet from the ClusterResourceSetBinding Bindings list.
@@ -138,7 +138,7 @@ type ClusterResourceSetBindingSpec struct {
138138
// bindings is a list of ClusterResourceSets and their resources.
139139
// +optional
140140
// +kubebuilder:validation:MaxItems=100
141-
Bindings []*ResourceSetBinding `json:"bindings,omitempty"`
141+
Bindings []ResourceSetBinding `json:"bindings,omitempty"`
142142

143143
// clusterName is the name of the Cluster this binding applies to.
144144
// +required

api/addons/v1beta2/zz_generated.deepcopy.go

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

cmd/clusterctl/internal/test/fake_objects.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1195,7 +1195,7 @@ func (f *FakeClusterResourceSet) Objs() []client.Object {
11951195
},
11961196
Spec: addonsv1.ClusterResourceSetBindingSpec{
11971197
ClusterName: cluster.Name,
1198-
Bindings: []*addonsv1.ResourceSetBinding{
1198+
Bindings: []addonsv1.ResourceSetBinding{
11991199
{
12001200
ClusterResourceSetName: crs.Name,
12011201
},
@@ -1219,7 +1219,7 @@ func (f *FakeClusterResourceSet) Objs() []client.Object {
12191219
ClusterResourceSetName: crs.Name,
12201220
Resources: []addonsv1.ResourceBinding{},
12211221
}
1222-
binding.Spec.Bindings = append(binding.Spec.Bindings, &resourceSetBinding)
1222+
binding.Spec.Bindings = append(binding.Spec.Bindings, resourceSetBinding)
12231223

12241224
// creates map entries for each cluster/resource of type Secret
12251225
for _, secret := range f.secrets {

internal/api/addons/v1alpha3/conversion.go

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@ limitations under the License.
1717
package v1alpha3
1818

1919
import (
20+
"reflect"
21+
2022
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
2123
apimachineryconversion "k8s.io/apimachinery/pkg/conversion"
2224
"sigs.k8s.io/controller-runtime/pkg/conversion"
@@ -119,6 +121,21 @@ func Convert_v1beta2_ClusterResourceSetStatus_To_v1alpha3_ClusterResourceSetStat
119121
return autoConvert_v1beta2_ClusterResourceSetStatus_To_v1alpha3_ClusterResourceSetStatus(in, out, s)
120122
}
121123

124+
func Convert_Pointer_v1alpha3_ResourceSetBinding_To_v1beta2_ResourceSetBinding(in **ResourceSetBinding, out *addonsv1.ResourceSetBinding, s apimachineryconversion.Scope) error {
125+
if in == nil || *in == nil {
126+
return nil
127+
}
128+
return autoConvert_v1alpha3_ResourceSetBinding_To_v1beta2_ResourceSetBinding(*in, out, s)
129+
}
130+
131+
func Convert_v1beta2_ResourceSetBinding_To_Pointer_v1alpha3_ResourceSetBinding(in *addonsv1.ResourceSetBinding, out **ResourceSetBinding, s apimachineryconversion.Scope) error {
132+
if in == nil || reflect.DeepEqual(*in, addonsv1.ResourceSetBinding{}) {
133+
return nil
134+
}
135+
*out = &ResourceSetBinding{}
136+
return autoConvert_v1beta2_ResourceSetBinding_To_v1alpha3_ResourceSetBinding(in, *out, s)
137+
}
138+
122139
// Implement local conversion func because conversion-gen is not aware of conversion func in other packages (see https://github.com/kubernetes/code-generator/issues/94)
123140

124141
func Convert_v1_Condition_To_v1alpha3_Condition(in *metav1.Condition, out *clusterv1alpha3.Condition, s apimachineryconversion.Scope) error {

internal/api/addons/v1alpha3/conversion_test.go

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ func TestFuzzyConversion(t *testing.T) {
4141
t.Run("for ClusterResourceSetBinding", utilconversion.FuzzTestFunc(utilconversion.FuzzTestFuncInput{
4242
Hub: &addonsv1.ClusterResourceSetBinding{},
4343
Spoke: &ClusterResourceSetBinding{},
44+
FuzzerFuncs: []fuzzer.FuzzerFuncs{ClusterResourceSetBindingFuzzFuncs},
4445
}))
4546
}
4647

@@ -59,3 +60,21 @@ func hubClusterResourceSetStatus(in *addonsv1.ClusterResourceSetStatus, c randfi
5960
}
6061
}
6162
}
63+
64+
func ClusterResourceSetBindingFuzzFuncs(_ runtimeserializer.CodecFactory) []interface{} {
65+
return []interface{}{
66+
hubClusterResourceSetStatus,
67+
spokeClusterResourceSetBindingSpec,
68+
}
69+
}
70+
71+
func spokeClusterResourceSetBindingSpec(in *ClusterResourceSetBindingSpec, c randfill.Continue) {
72+
c.FillNoCustom(in)
73+
74+
for i, b := range in.Bindings {
75+
if b != nil && reflect.DeepEqual(*b, ResourceSetBinding{}) {
76+
b = nil
77+
}
78+
in.Bindings[i] = b
79+
}
80+
}

internal/api/addons/v1alpha3/zz_generated.conversion.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.

internal/api/addons/v1alpha4/conversion.go

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@ limitations under the License.
1717
package v1alpha4
1818

1919
import (
20+
"reflect"
21+
2022
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
2123
apimachineryconversion "k8s.io/apimachinery/pkg/conversion"
2224
"sigs.k8s.io/controller-runtime/pkg/conversion"
@@ -120,6 +122,21 @@ func Convert_v1beta2_ClusterResourceSetStatus_To_v1alpha4_ClusterResourceSetStat
120122
return autoConvert_v1beta2_ClusterResourceSetStatus_To_v1alpha4_ClusterResourceSetStatus(in, out, s)
121123
}
122124

125+
func Convert_Pointer_v1alpha4_ResourceSetBinding_To_v1beta2_ResourceSetBinding(in **ResourceSetBinding, out *addonsv1.ResourceSetBinding, s apimachineryconversion.Scope) error {
126+
if in == nil || *in == nil {
127+
return nil
128+
}
129+
return autoConvert_v1alpha4_ResourceSetBinding_To_v1beta2_ResourceSetBinding(*in, out, s)
130+
}
131+
132+
func Convert_v1beta2_ResourceSetBinding_To_Pointer_v1alpha4_ResourceSetBinding(in *addonsv1.ResourceSetBinding, out **ResourceSetBinding, s apimachineryconversion.Scope) error {
133+
if in == nil || reflect.DeepEqual(*in, addonsv1.ResourceSetBinding{}) {
134+
return nil
135+
}
136+
*out = &ResourceSetBinding{}
137+
return autoConvert_v1beta2_ResourceSetBinding_To_v1alpha4_ResourceSetBinding(in, *out, s)
138+
}
139+
123140
// Implement local conversion func because conversion-gen is not aware of conversion func in other packages (see https://github.com/kubernetes/code-generator/issues/94)
124141

125142
func Convert_v1_Condition_To_v1alpha4_Condition(in *metav1.Condition, out *clusterv1alpha4.Condition, s apimachineryconversion.Scope) error {

0 commit comments

Comments
 (0)