Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
K
k3s
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Jacklull
k3s
Commits
b4b156d9
Commit
b4b156d9
authored
Jun 28, 2024
by
Roberto Bonafiglia
Committed by
Roberto Bonafiglia
Jul 01, 2024
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Update flannel to v0.25.4 and fixed issue with IPv6 mask
Signed-off-by:
Roberto Bonafiglia
<
roberto.bonafiglia@suse.com
>
parent
83ae095a
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
63 additions
and
21 deletions
+63
-21
go.mod
go.mod
+6
-6
go.sum
go.sum
+6
-5
flannel.go
pkg/agent/flannel/flannel.go
+51
-10
No files found.
go.mod
View file @
b4b156d9
...
...
@@ -89,7 +89,7 @@ require (
github.com/coreos/go-systemd/v22 v22.5.0
github.com/docker/docker v25.0.5+incompatible
github.com/erikdubbelboer/gspt v0.0.0-20190125194910-e68493906b83
github.com/flannel-io/flannel v0.25.
2
github.com/flannel-io/flannel v0.25.
4
github.com/go-bindata/go-bindata v3.1.2+incompatible
github.com/go-logr/logr v1.4.1
github.com/go-logr/stdr v1.2.3-0.20220714215716-96bad1d688c5
...
...
@@ -143,10 +143,10 @@ require (
go.etcd.io/etcd/etcdutl/v3 v3.5.9
go.etcd.io/etcd/server/v3 v3.5.13
go.uber.org/zap v1.27.0
golang.org/x/crypto v0.2
2
.0
golang.org/x/net v0.2
4
.0
golang.org/x/crypto v0.2
3
.0
golang.org/x/net v0.2
5
.0
golang.org/x/sync v0.7.0
golang.org/x/sys v0.
19
.0
golang.org/x/sys v0.
20
.0
google.golang.org/grpc v1.63.2
gopkg.in/yaml.v2 v2.4.0
inet.af/tcpproxy v0.0.0-20200125044825-b6bb9b5b8252
...
...
@@ -454,8 +454,8 @@ require (
golang.org/x/exp v0.0.0-20240222234643-814bf88cf225 // indirect
golang.org/x/mod v0.15.0 // indirect
golang.org/x/oauth2 v0.17.0 // indirect
golang.org/x/term v0.
19
.0 // indirect
golang.org/x/text v0.1
4
.0 // indirect
golang.org/x/term v0.
20
.0 // indirect
golang.org/x/text v0.1
5
.0 // indirect
golang.org/x/time v0.5.0 // indirect
golang.org/x/tools v0.18.0 // indirect
golang.zx2c4.com/wireguard v0.0.0-20230325221338-052af4a8072b // indirect
...
...
go.sum
View file @
b4b156d9
...
...
@@ -552,8 +552,8 @@ github.com/fatih/color v1.15.0/go.mod h1:0h5ZqXfHYED7Bhv2ZJamyIOUej9KtShiJESRwBD
github.com/felixge/httpsnoop v1.0.3/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U=
github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg=
github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U=
github.com/flannel-io/flannel v0.25.
2 h1:ATQ4PhZqd2MUpLm+NKbAaNxm2PJSLE+mS9WUI4RkKPs
=
github.com/flannel-io/flannel v0.25.
2/go.mod h1:o5FAm9Rl28TydPKw1cQFYWPopfQKIjlYrcdFzBusaGI
=
github.com/flannel-io/flannel v0.25.
4 h1:pFTwjpP7rmxGNknNXzuW0iXWcwXMRTpwDIfaSDWqTw0
=
github.com/flannel-io/flannel v0.25.
4/go.mod h1:utw3+DnHJVv8FdURRRRSPV1swOfG8MN2uQHlvhHL36g
=
github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:xEzjJPgXI435gkrCt3MPfRiAkVrwSbHsst4LCFVfpJc=
github.com/flynn/noise v1.1.0 h1:KjPQoQCEFdZDiP03phOvGi11+SVVhBG2wOWAorLsstg=
github.com/flynn/noise v1.1.0/go.mod h1:xbMo+0i6+IGbYdJhF31t2eR1BIU0CYc12+BNAKwUTag=
...
...
@@ -1887,8 +1887,8 @@ golang.org/x/term v0.13.0/go.mod h1:LTmsnFJwVN6bCy1rVCoS+qHT1HhALEFxKncY3WNNh4U=
golang.org/x/term v0.15.0/go.mod h1:BDl952bC7+uMoWR75FIrCDx79TPU9oHkTZ9yRbYOrX0=
golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk=
golang.org/x/term v0.18.0/go.mod h1:ILwASektA3OnRv7amZ1xhE/KTR+u50pbXfZ03+6Nx58=
golang.org/x/term v0.
19.0 h1:+ThwsDv+tYfnJFhF4L8jITxu1tdTWRTZpdsWgEgjL6Q
=
golang.org/x/term v0.
19.0/go.mod h1:2CuTdWZ7KHSQwUzKva0cbMg6q2DMI3Mmxp+gKJbskEk
=
golang.org/x/term v0.
20.0 h1:VnkxpohqXaOBYJtBmEppKUG6mXpi+4O6purfc2+sMhw
=
golang.org/x/term v0.
20.0/go.mod h1:8UkIAJTvZgivsXaD6/pH6U9ecQzZ45awqEOzuCvwpFY
=
golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
...
...
@@ -1909,8 +1909,9 @@ golang.org/x/text v0.10.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
golang.org/x/text v0.11.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
golang.org/x/text v0.12.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ=
golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
golang.org/x/text v0.15.0 h1:h1V/4gjBv8v9cjcR6+AR5+/cIYK5N/WAgiv4xlsEtAk=
golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
...
...
pkg/agent/flannel/flannel.go
View file @
b4b156d9
...
...
@@ -16,9 +16,11 @@ package flannel
import
(
"fmt"
"math/big"
"net"
"os"
"path/filepath"
"strings"
"sync"
"github.com/flannel-io/flannel/pkg/backend"
...
...
@@ -228,34 +230,73 @@ func WriteSubnetFile(path string, nw ip.IP4Net, nwv6 ip.IP6Net, ipMasq bool, bn
// ReadCIDRFromSubnetFile reads the flannel subnet file and extracts the value of IPv4 network CIDRKey
func
ReadCIDRFromSubnetFile
(
path
string
,
CIDRKey
string
)
ip
.
IP4Net
{
var
prevCIDR
ip
.
IP4Net
prevCIDRs
:=
ReadCIDRsFromSubnetFile
(
path
,
CIDRKey
)
if
len
(
prevCIDRs
)
==
0
{
logrus
.
Warningf
(
"no subnet found for key: %s in file: %s"
,
CIDRKey
,
path
)
return
ip
.
IP4Net
{
IP
:
0
,
PrefixLen
:
0
}
}
else
if
len
(
prevCIDRs
)
>
1
{
logrus
.
Errorf
(
"error reading subnet: more than 1 entry found for key: %s in file %s: "
,
CIDRKey
,
path
)
return
ip
.
IP4Net
{
IP
:
0
,
PrefixLen
:
0
}
}
else
{
return
prevCIDRs
[
0
]
}
}
func
ReadCIDRsFromSubnetFile
(
path
string
,
CIDRKey
string
)
[]
ip
.
IP4Net
{
prevCIDRs
:=
make
([]
ip
.
IP4Net
,
0
)
if
_
,
err
:=
os
.
Stat
(
path
);
!
os
.
IsNotExist
(
err
)
{
prevSubnetVals
,
err
:=
godotenv
.
Read
(
path
)
if
err
!=
nil
{
logrus
.
Errorf
(
"Couldn't fetch previous %s from subnet file at %s: %v"
,
CIDRKey
,
path
,
err
)
}
else
if
prevCIDRString
,
ok
:=
prevSubnetVals
[
CIDRKey
];
ok
{
err
=
prevCIDR
.
UnmarshalJSON
([]
byte
(
prevCIDRString
))
if
err
!=
nil
{
logrus
.
Errorf
(
"Couldn't parse previous %s from subnet file at %s: %v"
,
CIDRKey
,
path
,
err
)
cidrs
:=
strings
.
Split
(
prevCIDRString
,
","
)
prevCIDRs
=
make
([]
ip
.
IP4Net
,
0
)
for
i
:=
range
cidrs
{
_
,
cidr
,
err
:=
net
.
ParseCIDR
(
cidrs
[
i
])
if
err
!=
nil
{
logrus
.
Errorf
(
"Couldn't parse previous %s from subnet file at %s: %v"
,
CIDRKey
,
path
,
err
)
}
prevCIDRs
=
append
(
prevCIDRs
,
ip
.
FromIPNet
(
cidr
))
}
}
}
return
prevCIDR
return
prevCIDR
s
}
// ReadIP6CIDRFromSubnetFile reads the flannel subnet file and extracts the value of IPv6 network CIDRKey
func
ReadIP6CIDRFromSubnetFile
(
path
string
,
CIDRKey
string
)
ip
.
IP6Net
{
var
prevCIDR
ip
.
IP6Net
prevCIDRs
:=
ReadIP6CIDRsFromSubnetFile
(
path
,
CIDRKey
)
if
len
(
prevCIDRs
)
==
0
{
logrus
.
Warningf
(
"no subnet found for key: %s in file: %s"
,
CIDRKey
,
path
)
return
ip
.
IP6Net
{
IP
:
(
*
ip
.
IP6
)(
big
.
NewInt
(
0
)),
PrefixLen
:
0
}
}
else
if
len
(
prevCIDRs
)
>
1
{
logrus
.
Errorf
(
"error reading subnet: more than 1 entry found for key: %s in file %s: "
,
CIDRKey
,
path
)
return
ip
.
IP6Net
{
IP
:
(
*
ip
.
IP6
)(
big
.
NewInt
(
0
)),
PrefixLen
:
0
}
}
else
{
return
prevCIDRs
[
0
]
}
}
func
ReadIP6CIDRsFromSubnetFile
(
path
string
,
CIDRKey
string
)
[]
ip
.
IP6Net
{
prevCIDRs
:=
make
([]
ip
.
IP6Net
,
0
)
if
_
,
err
:=
os
.
Stat
(
path
);
!
os
.
IsNotExist
(
err
)
{
prevSubnetVals
,
err
:=
godotenv
.
Read
(
path
)
if
err
!=
nil
{
logrus
.
Errorf
(
"Couldn't fetch previous %s from subnet file at %s: %v"
,
CIDRKey
,
path
,
err
)
}
else
if
prevCIDRString
,
ok
:=
prevSubnetVals
[
CIDRKey
];
ok
{
err
=
prevCIDR
.
UnmarshalJSON
([]
byte
(
prevCIDRString
))
if
err
!=
nil
{
logrus
.
Errorf
(
"Couldn't parse previous %s from subnet file at %s: %v"
,
CIDRKey
,
path
,
err
)
cidrs
:=
strings
.
Split
(
prevCIDRString
,
","
)
prevCIDRs
=
make
([]
ip
.
IP6Net
,
0
)
for
i
:=
range
cidrs
{
_
,
cidr
,
err
:=
net
.
ParseCIDR
(
cidrs
[
i
])
if
err
!=
nil
{
logrus
.
Errorf
(
"Couldn't parse previous %s from subnet file at %s: %v"
,
CIDRKey
,
path
,
err
)
}
prevCIDRs
=
append
(
prevCIDRs
,
ip
.
FromIP6Net
(
cidr
))
}
}
}
return
prevCIDR
return
prevCIDR
s
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment