@@ -2,6 +2,7 @@ package agent
2
2
3
3
import (
4
4
"context"
5
+ "fmt"
5
6
"time"
6
7
7
8
apierrors "k8s.io/apimachinery/pkg/api/errors"
@@ -21,6 +22,7 @@ import (
21
22
"github.com/kosmos.io/kosmos/pkg/clusterlink/controllers/node"
22
23
"github.com/kosmos.io/kosmos/pkg/clusterlink/network"
23
24
kosmosv1alpha1lister "github.com/kosmos.io/kosmos/pkg/generated/listers/kosmos/v1alpha1"
25
+ "github.com/kosmos.io/kosmos/pkg/utils"
24
26
)
25
27
26
28
const (
@@ -93,6 +95,20 @@ func (r *Reconciler) logResult(nodeConfigSyncStatus networkmanager.NodeConfigSyn
93
95
}
94
96
}
95
97
98
+ func formatNodeConfig (nodeConfig * kosmosv1alpha1.NodeConfig ) (* kosmosv1alpha1.NodeConfig , error ) {
99
+ nodeConfigCopy := nodeConfig .DeepCopy ()
100
+
101
+ for i , route := range nodeConfigCopy .Spec .Routes {
102
+ ipNetStr , err := utils .FormatCIDR (route .CIDR )
103
+ if err != nil {
104
+ return nil , fmt .Errorf ("failed to format nodeconfig route cidr, err: %s" , err .Error ())
105
+ }
106
+ nodeConfigCopy .Spec .Routes [i ].CIDR = ipNetStr
107
+ }
108
+
109
+ return nodeConfigCopy , nil
110
+ }
111
+
96
112
func (r * Reconciler ) Reconcile (ctx context.Context , request reconcile.Request ) (reconcile.Result , error ) {
97
113
klog .Infof ("============ agent starts to reconcile %s ============" , request .NamespacedName )
98
114
@@ -109,6 +125,12 @@ func (r *Reconciler) Reconcile(ctx context.Context, request reconcile.Request) (
109
125
return reconcile.Result {RequeueAfter : RequeueTime }, nil
110
126
}
111
127
128
+ reconcileNodeCopy , err := formatNodeConfig (& reconcileNode )
129
+ if err != nil {
130
+ klog .Errorf ("format nodeconfig %s error: %v" , request .NamespacedName , err )
131
+ return reconcile.Result {RequeueAfter : RequeueTime }, nil
132
+ }
133
+
112
134
localCluster , err := r .ClusterLister .Get (r .ClusterName )
113
135
if err != nil {
114
136
klog .Errorf ("could not get local cluster, clusterNode: %s, err: %v" , r .NodeName , err )
@@ -118,7 +140,7 @@ func (r *Reconciler) Reconcile(ctx context.Context, request reconcile.Request) (
118
140
r .NetworkManager .UpdateConfig (localCluster )
119
141
120
142
r .DebounceFunc (func () {
121
- nodeConfigSyncStatus := r .NetworkManager .UpdateFromCRD (& reconcileNode )
143
+ nodeConfigSyncStatus := r .NetworkManager .UpdateFromCRD (reconcileNodeCopy )
122
144
r .logResult (nodeConfigSyncStatus )
123
145
})
124
146
0 commit comments