Skip to content

Commit 5a310b0

Browse files
authored
Merge pull request #697 from l1b0k/fix/maxip
fix max ip count
2 parents 6ace13d + d7e6cbb commit 5a310b0

File tree

2 files changed

+82
-1
lines changed

2 files changed

+82
-1
lines changed

Diff for: pkg/controller/node/node.go

+4-1
Original file line numberDiff line numberDiff line change
@@ -236,7 +236,10 @@ func (r *ReconcileNode) k8sAnno(ctx context.Context, k8sNode *corev1.Node, node
236236
lo.ForEach(node.Spec.Flavor, func(item networkv1beta1.Flavor, index int) {
237237
if item.NetworkInterfaceType == networkv1beta1.ENITypeSecondary &&
238238
item.NetworkInterfaceTrafficMode == networkv1beta1.NetworkInterfaceTrafficModeStandard {
239-
secondaryIP = item.Count * node.Spec.NodeCap.IPv4PerAdapter
239+
secondaryIP += item.Count * node.Spec.NodeCap.IPv4PerAdapter
240+
}
241+
if item.NetworkInterfaceType == networkv1beta1.ENITypeTrunk {
242+
secondaryIP += item.Count * node.Spec.NodeCap.IPv4PerAdapter
240243
}
241244
})
242245

Diff for: pkg/controller/node/node_controller_test.go

+78
Original file line numberDiff line numberDiff line change
@@ -194,6 +194,84 @@ var _ = Describe("Node Controller", func() {
194194
Expect(k8sNode.Annotations["k8s.aliyun.com/trunk-on"]).To(Equal("eni-1"))
195195
Expect(k8sNode.Annotations["k8s.aliyun.com/max-available-ip"]).To(Equal("20"))
196196
})
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+
})
197275
})
198276
})
199277

0 commit comments

Comments
 (0)