@@ -194,6 +194,84 @@ var _ = Describe("Node Controller", func() {
194
194
Expect (k8sNode .Annotations ["k8s.aliyun.com/trunk-on" ]).To (Equal ("eni-1" ))
195
195
Expect (k8sNode .Annotations ["k8s.aliyun.com/max-available-ip" ]).To (Equal ("20" ))
196
196
})
197
+
198
+ It ("should successfully create cr" , func () {
199
+ resource := & networkv1beta1.Node {
200
+ ObjectMeta : metav1.ObjectMeta {
201
+ Name : resourceName ,
202
+ },
203
+ Spec : networkv1beta1.NodeSpec {
204
+ NodeMetadata : networkv1beta1.NodeMetadata {},
205
+ NodeCap : networkv1beta1.NodeCap {},
206
+ ENISpec : & networkv1beta1.ENISpec {
207
+ Tag : nil ,
208
+ TagFilter : nil ,
209
+ VSwitchOptions : nil ,
210
+ SecurityGroupIDs : nil ,
211
+ ResourceGroupID : "" ,
212
+ EnableIPv4 : true ,
213
+ EnableIPv6 : false ,
214
+ EnableERDMA : false ,
215
+ EnableTrunk : true ,
216
+ VSwitchSelectPolicy : "" ,
217
+ },
218
+ Pool : nil ,
219
+ Flavor : []networkv1beta1.Flavor {
220
+ {
221
+ NetworkInterfaceType : networkv1beta1 .ENITypeSecondary ,
222
+ NetworkInterfaceTrafficMode : networkv1beta1 .NetworkInterfaceTrafficModeStandard ,
223
+ Count : 2 ,
224
+ },
225
+ {
226
+ NetworkInterfaceType : networkv1beta1 .ENITypeTrunk ,
227
+ NetworkInterfaceTrafficMode : networkv1beta1 .NetworkInterfaceTrafficModeStandard ,
228
+ Count : 1 ,
229
+ },
230
+ },
231
+ },
232
+ }
233
+
234
+ By ("create cr" )
235
+ err := k8sClient .Create (ctx , resource )
236
+ Expect (err ).NotTo (HaveOccurred ())
237
+
238
+ update := resource .DeepCopy ()
239
+ _ , err = controllerutil .CreateOrPatch (ctx , k8sClient , update , func () error {
240
+ update .Status = networkv1beta1.NodeStatus {
241
+ NextSyncOpenAPITime : metav1.Time {},
242
+ LastSyncOpenAPITime : metav1.Time {},
243
+ NetworkInterfaces : map [string ]* networkv1beta1.NetworkInterface {
244
+ "eni-1" : {
245
+ ID : "eni-1" ,
246
+ NetworkInterfaceType : networkv1beta1 .ENITypeTrunk ,
247
+ NetworkInterfaceTrafficMode : networkv1beta1 .NetworkInterfaceTrafficModeStandard ,
248
+ SecurityGroupIDs : []string {"ff" },
249
+ Status : "InUse" ,
250
+ },
251
+ },
252
+ }
253
+ return nil
254
+ })
255
+ Expect (err ).NotTo (HaveOccurred ())
256
+
257
+ By ("Reconciling the created resource" )
258
+ controllerReconciler := & ReconcileNode {
259
+ client : k8sClient ,
260
+ scheme : k8sClient .Scheme (),
261
+ aliyun : aliyun ,
262
+ }
263
+
264
+ _ , err = controllerReconciler .Reconcile (ctx , reconcile.Request {
265
+ NamespacedName : typeNamespacedName ,
266
+ })
267
+ Expect (err ).NotTo (HaveOccurred ())
268
+
269
+ k8sNode := & corev1.Node {}
270
+ err = k8sClient .Get (ctx , typeNamespacedName , k8sNode )
271
+ Expect (err ).NotTo (HaveOccurred ())
272
+ Expect (k8sNode .Annotations ["k8s.aliyun.com/trunk-on" ]).To (Equal ("eni-1" ))
273
+ Expect (k8sNode .Annotations ["k8s.aliyun.com/max-available-ip" ]).To (Equal ("30" ))
274
+ })
197
275
})
198
276
})
199
277
0 commit comments