@@ -65,11 +65,11 @@ func (k *Keepalived) Init(_ context.Context) error {
65
65
66
66
basepath := filepath .Dir (k .K0sVars .KeepalivedConfigFile )
67
67
if err = dir .Init (basepath , constant .KeepalivedDirMode ); err != nil {
68
- return fmt .Errorf ("failed to create keepalived data dir: %v " , err )
68
+ return fmt .Errorf ("failed to create keepalived data dir: %w " , err )
69
69
}
70
70
71
71
if err = os .Chown (basepath , k .uid , - 1 ); err != nil {
72
- return fmt .Errorf ("failed to chown keepalived data dir: %v " , err )
72
+ return fmt .Errorf ("failed to chown keepalived data dir: %w " , err )
73
73
}
74
74
75
75
return assets .Stage (k .K0sVars .BinDir , "keepalived" , constant .BinDirMode )
@@ -82,14 +82,14 @@ func (k *Keepalived) Start(_ context.Context) error {
82
82
}
83
83
84
84
if err := k .configureDummy (); err != nil {
85
- return fmt .Errorf ("failed to configure dummy interface: %v " , err )
85
+ return fmt .Errorf ("failed to configure dummy interface: %w " , err )
86
86
}
87
87
88
88
if err := k .Config .ValidateVRRPInstances (nil ); err != nil {
89
- return fmt .Errorf ("failed to validate VRRP instances: %v " , err )
89
+ return fmt .Errorf ("failed to validate VRRP instances: %w " , err )
90
90
}
91
91
if err := k .generateKeepalivedTemplate (); err != nil {
92
- return fmt .Errorf ("failed to generate keepalived template: %v " , err )
92
+ return fmt .Errorf ("failed to generate keepalived template: %w " , err )
93
93
94
94
}
95
95
@@ -123,7 +123,7 @@ func (k *Keepalived) Stop() error {
123
123
k .log .Infof ("Stopping keepalived" )
124
124
if err := k .supervisor .Stop (); err != nil {
125
125
// Failed to stop keepalived. Don't delete the VIP, just in case.
126
- return fmt .Errorf ("failed to stop keepalived: %v " , err )
126
+ return fmt .Errorf ("failed to stop keepalived: %w " , err )
127
127
}
128
128
129
129
k .log .Infof ("Deleting dummy interface" )
@@ -159,7 +159,7 @@ func (k *Keepalived) configureDummy() error {
159
159
// If the dummy interface fails, attempt to define the addresses just
160
160
// in case.
161
161
if err := k .ensureLinkAddresses (dummyLinkName , vips ); err != nil {
162
- return fmt .Errorf ("failed to ensure link addresses: %v " , err )
162
+ return fmt .Errorf ("failed to ensure link addresses: %w " , err )
163
163
}
164
164
}
165
165
return nil
@@ -183,7 +183,7 @@ func (k *Keepalived) ensureDummyInterface(linkName string) error {
183
183
184
184
// This happens if the interface exists but it's not a dummy interface
185
185
if err = netlink .LinkDel (link ); err != nil {
186
- return fmt .Errorf ("failed to delete %s: %v " , linkName , err )
186
+ return fmt .Errorf ("failed to delete %s: %w " , linkName , err )
187
187
}
188
188
189
189
return k .createDummyInterface (linkName )
@@ -201,12 +201,12 @@ func (k *Keepalived) createDummyInterface(linkName string) error {
201
201
func (k * Keepalived ) ensureLinkAddresses (linkName string , expectedAddresses []string ) error {
202
202
link , err := netlink .LinkByName (linkName )
203
203
if err != nil {
204
- return fmt .Errorf ("failed to get link by name %s: %v " , linkName , err )
204
+ return fmt .Errorf ("failed to get link by name %s: %w " , linkName , err )
205
205
}
206
206
207
207
linkAddrs , strAddrs , err := k .getLinkAddresses (link )
208
208
if err != nil {
209
- return fmt .Errorf ("failed to get addresses for link %s: %v " , linkName , err )
209
+ return fmt .Errorf ("failed to get addresses for link %s: %w " , linkName , err )
210
210
}
211
211
212
212
// Remove unexpected addresses
@@ -216,7 +216,7 @@ func (k *Keepalived) ensureLinkAddresses(linkName string, expectedAddresses []st
216
216
if ! slices .Contains (expectedAddresses , strAddrs [i ]) {
217
217
k .log .Infof ("Deleting address %s from link %s" , strAddr , linkName )
218
218
if err = netlink .AddrDel (link , & linkAddr ); err != nil {
219
- return fmt .Errorf ("failed to delete address %s from link %s: %v " , linkAddr .IPNet .String (), linkName , err )
219
+ return fmt .Errorf ("failed to delete address %s from link %s: %w " , linkAddr .IPNet .String (), linkName , err )
220
220
}
221
221
}
222
222
}
@@ -225,7 +225,7 @@ func (k *Keepalived) ensureLinkAddresses(linkName string, expectedAddresses []st
225
225
for _ , addr := range expectedAddresses {
226
226
if ! slices .Contains (strAddrs , addr ) {
227
227
if err = k .setLinkIP (addr , linkName , link ); err != nil {
228
- return fmt .Errorf ("failed to add address %s to link %s: %v " , addr , linkName , err )
228
+ return fmt .Errorf ("failed to add address %s to link %s: %w " , addr , linkName , err )
229
229
}
230
230
}
231
231
}
@@ -236,7 +236,7 @@ func (k *Keepalived) ensureLinkAddresses(linkName string, expectedAddresses []st
236
236
func (k * Keepalived ) setLinkIP (addr string , linkName string , link netlink.Link ) error {
237
237
ipAddr , _ , err := net .ParseCIDR (addr )
238
238
if err != nil {
239
- return fmt .Errorf ("failed to parse CIDR %s: %v " , addr , err )
239
+ return fmt .Errorf ("failed to parse CIDR %s: %w " , addr , err )
240
240
}
241
241
242
242
var mask net.IPMask
@@ -255,15 +255,15 @@ func (k *Keepalived) setLinkIP(addr string, linkName string, link netlink.Link)
255
255
256
256
k .log .Infof ("Adding address %s to link %s" , addr , linkName )
257
257
if err := netlink .AddrAdd (link , linkAddr ); err != nil {
258
- return fmt .Errorf ("failed to add address %s to link %s: %v " , addr , linkName , err )
258
+ return fmt .Errorf ("failed to add address %s to link %s: %w " , addr , linkName , err )
259
259
}
260
260
return nil
261
261
}
262
262
263
263
func (* Keepalived ) getLinkAddresses (link netlink.Link ) ([]netlink.Addr , []string , error ) {
264
264
linkAddrs , err := netlink .AddrList (link , netlink .FAMILY_ALL )
265
265
if err != nil {
266
- return nil , nil , fmt .Errorf ("failed to list addresses for link %s: %v " , link .Attrs ().Name , err )
266
+ return nil , nil , fmt .Errorf ("failed to list addresses for link %s: %w " , link .Attrs ().Name , err )
267
267
}
268
268
269
269
strAddrs := make ([]string , len (linkAddrs ))
@@ -276,28 +276,28 @@ func (*Keepalived) getLinkAddresses(link netlink.Link) ([]netlink.Addr, []string
276
276
func (k * Keepalived ) generateKeepalivedTemplate () error {
277
277
f , err := os .OpenFile (k .K0sVars .KeepalivedConfigFile , os .O_CREATE | os .O_WRONLY | os .O_TRUNC , fs .FileMode (0500 ))
278
278
if err != nil {
279
- return fmt .Errorf ("failed to open keepalived config file: %v " , err )
279
+ return fmt .Errorf ("failed to open keepalived config file: %w " , err )
280
280
}
281
281
defer f .Close ()
282
282
283
283
template , err := template .New ("keepalived" ).Parse (keepalivedConfigTemplate )
284
284
if err != nil {
285
- return fmt .Errorf ("failed to parse keepalived template: %v " , err )
285
+ return fmt .Errorf ("failed to parse keepalived template: %w " , err )
286
286
}
287
287
288
288
kc := keepalivedConfig {
289
289
VRRPInstances : k .Config .VRRPInstances ,
290
290
}
291
291
if err = template .Execute (f , kc ); err != nil {
292
- return fmt .Errorf ("failed to execute keepalived template: %v " , err )
292
+ return fmt .Errorf ("failed to execute keepalived template: %w " , err )
293
293
}
294
294
295
295
// TODO: Do we really need to this every single time?
296
296
if err = os .Chown (k .K0sVars .KeepalivedConfigFile , k .uid , - 1 ); err != nil {
297
- return fmt .Errorf ("failed to chown keepalived config file: %v " , err )
297
+ return fmt .Errorf ("failed to chown keepalived config file: %w " , err )
298
298
}
299
299
if err = os .Chmod (k .K0sVars .KeepalivedConfigFile , fs .FileMode (0400 )); err != nil {
300
- return fmt .Errorf ("failed to chmod keepalived config file: %v " , err )
300
+ return fmt .Errorf ("failed to chmod keepalived config file: %w " , err )
301
301
}
302
302
return nil
303
303
}
0 commit comments