@@ -17,33 +17,97 @@ limitations under the License.
17
17
package ec2
18
18
19
19
import (
20
- . "github.com/onsi/gomega"
20
+ "sort"
21
+
22
+ "github.com/aws/aws-sdk-go/aws"
23
+ "github.com/aws/aws-sdk-go/service/ec2"
21
24
corev1 "k8s.io/api/core/v1"
22
25
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
23
26
"k8s.io/apimachinery/pkg/runtime"
24
- "sigs.k8s.io/controller-runtime/pkg/client/fake"
27
+ "k8s.io/utils/pointer"
28
+ "sigs.k8s.io/controller-runtime/pkg/client"
25
29
26
30
infrav1 "sigs.k8s.io/cluster-api-provider-aws/api/v1beta1"
31
+ ekscontrolplanev1 "sigs.k8s.io/cluster-api-provider-aws/controlplane/eks/api/v1beta1"
27
32
expinfrav1 "sigs.k8s.io/cluster-api-provider-aws/exp/api/v1beta1"
28
33
"sigs.k8s.io/cluster-api-provider-aws/pkg/cloud/scope"
29
34
clusterv1 "sigs.k8s.io/cluster-api/api/v1beta1"
35
+ "sigs.k8s.io/cluster-api/exp/api/v1beta1"
30
36
)
31
37
32
- func setupScheme () (* runtime.Scheme , error ) {
33
- scheme := runtime .NewScheme ()
34
- if err := clusterv1 .AddToScheme (scheme ); err != nil {
35
- return nil , err
36
- }
37
- if err := corev1 .AddToScheme (scheme ); err != nil {
38
- return nil , err
39
- }
40
- if err := infrav1 .AddToScheme (scheme ); err != nil {
41
- return nil , err
38
+ func setupClusterScope (cl client.Client ) (* scope.ClusterScope , error ) {
39
+ return scope .NewClusterScope (scope.ClusterScopeParams {
40
+ Client : cl ,
41
+ Cluster : newCluster (),
42
+ AWSCluster : newAWSCluster (),
43
+ })
44
+ }
45
+
46
+ func setupNewManagedControlPlaneScope (cl client.Client ) (* scope.ManagedControlPlaneScope , error ) {
47
+ return scope .NewManagedControlPlaneScope (scope.ManagedControlPlaneScopeParams {
48
+ Client : cl ,
49
+ Cluster : newCluster (),
50
+ ControlPlane : newAWSManagedControlPlane (),
51
+ })
52
+ }
53
+
54
+ func setupMachinePoolScope (cl client.Client , ec2Scope scope.EC2Scope ) (* scope.MachinePoolScope , error ) {
55
+ return scope .NewMachinePoolScope (scope.MachinePoolScopeParams {
56
+ Client : cl ,
57
+ InfraCluster : ec2Scope ,
58
+ Cluster : newCluster (),
59
+ MachinePool : newMachinePool (),
60
+ AWSMachinePool : newAWSMachinePool (),
61
+ })
62
+ }
63
+
64
+ func defaultEC2Tags (name , clusterName string ) []* ec2.Tag {
65
+ return []* ec2.Tag {
66
+ {
67
+ Key : aws .String ("Name" ),
68
+ Value : aws .String (name ),
69
+ },
70
+ {
71
+ Key : aws .String (infrav1 .ClusterAWSCloudProviderTagKey (clusterName )),
72
+ Value : aws .String ("owned" ),
73
+ },
74
+ {
75
+ Key : aws .String (infrav1 .ClusterTagKey (clusterName )),
76
+ Value : aws .String ("owned" ),
77
+ },
78
+ {
79
+ Key : aws .String (infrav1 .NameAWSClusterAPIRole ),
80
+ Value : aws .String ("node" ),
81
+ },
42
82
}
43
- if err := expinfrav1 .AddToScheme (scheme ); err != nil {
44
- return nil , err
83
+ }
84
+
85
+ func newAWSMachinePool () * expinfrav1.AWSMachinePool {
86
+ return & expinfrav1.AWSMachinePool {
87
+ TypeMeta : metav1.TypeMeta {
88
+ Kind : "AWSMachinePool" ,
89
+ APIVersion : "v1" ,
90
+ },
91
+ ObjectMeta : metav1.ObjectMeta {
92
+ Name : "aws-mp-name" ,
93
+ Namespace : "aws-mp-ns" ,
94
+ },
95
+ Spec : expinfrav1.AWSMachinePoolSpec {
96
+ AvailabilityZones : []string {"us-east-1" },
97
+ AdditionalTags : infrav1.Tags {},
98
+ AWSLaunchTemplate : expinfrav1.AWSLaunchTemplate {
99
+ Name : "aws-launch-template" ,
100
+ IamInstanceProfile : "instance-profile" ,
101
+ AMI : infrav1.AMIReference {},
102
+ InstanceType : "t3.large" ,
103
+ SSHKeyName : aws .String ("default" ),
104
+ AdditionalSecurityGroups : []infrav1.AWSResourceReference {{ID : aws .String ("1" )}},
105
+ },
106
+ },
107
+ Status : expinfrav1.AWSMachinePoolStatus {
108
+ LaunchTemplateID : "launch-template-id" ,
109
+ },
45
110
}
46
- return scheme , nil
47
111
}
48
112
49
113
func newCluster () * clusterv1.Cluster {
@@ -70,28 +134,77 @@ func newAWSCluster() *infrav1.AWSCluster {
70
134
Name : "aws-cluster-name" ,
71
135
Namespace : "aws-cluster-ns" ,
72
136
},
73
- Spec : infrav1.AWSClusterSpec {},
137
+ Spec : infrav1.AWSClusterSpec {
138
+ ImageLookupFormat : "img-lookup-format" ,
139
+ ImageLookupBaseOS : "img-lookup-os" ,
140
+ ImageLookupOrg : "img-lookup-org" ,
141
+ },
74
142
Status : infrav1.AWSClusterStatus {
75
143
Ready : true ,
76
144
Network : infrav1.NetworkStatus {
77
- SecurityGroups : map [infrav1.SecurityGroupRole ]infrav1.SecurityGroup {},
145
+ SecurityGroups : map [infrav1.SecurityGroupRole ]infrav1.SecurityGroup {
146
+ infrav1 .SecurityGroupNode : {ID : "nodeSG" },
147
+ infrav1 .SecurityGroupLB : {ID : "lbSG" },
148
+ },
78
149
},
79
150
},
80
151
}
81
152
}
82
153
83
- func setupClusterScope (g * WithT ) * scope.ClusterScope {
84
- scheme , err := setupScheme ()
85
- g .Expect (err ).NotTo (HaveOccurred ())
154
+ func newAWSManagedControlPlane () * ekscontrolplanev1.AWSManagedControlPlane {
155
+ return & ekscontrolplanev1.AWSManagedControlPlane {
156
+ TypeMeta : metav1.TypeMeta {
157
+ Kind : "AWSManagedControlPlane" ,
158
+ APIVersion : "v1" ,
159
+ },
160
+ ObjectMeta : metav1.ObjectMeta {
161
+ Name : "aws-cluster-name" ,
162
+ Namespace : "aws-cluster-ns" ,
163
+ },
164
+ }
165
+ }
86
166
87
- awsCluster := newAWSCluster ()
88
- client := fake .NewClientBuilder ().WithScheme (scheme ).WithObjects (awsCluster ).Build ()
167
+ func newMachinePool () * v1beta1.MachinePool {
168
+ return & v1beta1.MachinePool {
169
+ TypeMeta : metav1.TypeMeta {
170
+ Kind : "MachinePool" ,
171
+ APIVersion : "v1" ,
172
+ },
173
+ ObjectMeta : metav1.ObjectMeta {
174
+ Name : "mp" ,
175
+ },
176
+ Spec : v1beta1.MachinePoolSpec {
177
+ Template : clusterv1.MachineTemplateSpec {
178
+ Spec : clusterv1.MachineSpec {
179
+ Version : pointer .StringPtr ("v1.23.3" ),
180
+ },
181
+ },
182
+ },
183
+ }
184
+ }
89
185
90
- cs , err := scope .NewClusterScope (scope.ClusterScopeParams {
91
- Client : client ,
92
- Cluster : newCluster (),
93
- AWSCluster : awsCluster ,
186
+ func sortTags (a []* ec2.Tag ) {
187
+ sort .Slice (a , func (i , j int ) bool {
188
+ return * (a [i ].Key ) < * (a [j ].Key )
94
189
})
95
- g .Expect (err ).NotTo (HaveOccurred ())
96
- return cs
190
+ }
191
+
192
+ func setupScheme () (* runtime.Scheme , error ) {
193
+ scheme := runtime .NewScheme ()
194
+ if err := clusterv1 .AddToScheme (scheme ); err != nil {
195
+ return nil , err
196
+ }
197
+ if err := corev1 .AddToScheme (scheme ); err != nil {
198
+ return nil , err
199
+ }
200
+ if err := infrav1 .AddToScheme (scheme ); err != nil {
201
+ return nil , err
202
+ }
203
+ if err := expinfrav1 .AddToScheme (scheme ); err != nil {
204
+ return nil , err
205
+ }
206
+ if err := ekscontrolplanev1 .AddToScheme (scheme ); err != nil {
207
+ return nil , err
208
+ }
209
+ return scheme , nil
97
210
}
0 commit comments