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
faeaf1b0
Commit
faeaf1b0
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
a08ac6fc
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
66 additions
and
24 deletions
+66
-24
go.mod
go.mod
+7
-7
go.sum
go.sum
+8
-7
flannel.go
pkg/agent/flannel/flannel.go
+51
-10
No files found.
go.mod
View file @
faeaf1b0
...
@@ -88,7 +88,7 @@ require (
...
@@ -88,7 +88,7 @@ require (
github.com/coreos/go-systemd/v22 v22.5.0
github.com/coreos/go-systemd/v22 v22.5.0
github.com/docker/docker v25.0.5+incompatible
github.com/docker/docker v25.0.5+incompatible
github.com/erikdubbelboer/gspt v0.0.0-20190125194910-e68493906b83
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-bindata/go-bindata v3.1.2+incompatible
github.com/go-logr/logr v1.4.1
github.com/go-logr/logr v1.4.1
github.com/go-logr/stdr v1.2.3-0.20220714215716-96bad1d688c5
github.com/go-logr/stdr v1.2.3-0.20220714215716-96bad1d688c5
...
@@ -142,10 +142,10 @@ require (
...
@@ -142,10 +142,10 @@ require (
go.etcd.io/etcd/etcdutl/v3 v3.5.9
go.etcd.io/etcd/etcdutl/v3 v3.5.9
go.etcd.io/etcd/server/v3 v3.5.13
go.etcd.io/etcd/server/v3 v3.5.13
go.uber.org/zap v1.27.0
go.uber.org/zap v1.27.0
golang.org/x/crypto v0.2
2
.0
golang.org/x/crypto v0.2
3
.0
golang.org/x/net v0.2
4
.0
golang.org/x/net v0.2
5
.0
golang.org/x/sync v0.7.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
google.golang.org/grpc v1.63.2
gopkg.in/yaml.v2 v2.4.0
gopkg.in/yaml.v2 v2.4.0
inet.af/tcpproxy v0.0.0-20200125044825-b6bb9b5b8252
inet.af/tcpproxy v0.0.0-20200125044825-b6bb9b5b8252
...
@@ -439,8 +439,8 @@ require (
...
@@ -439,8 +439,8 @@ require (
golang.org/x/exp v0.0.0-20240222234643-814bf88cf225 // indirect
golang.org/x/exp v0.0.0-20240222234643-814bf88cf225 // indirect
golang.org/x/mod v0.17.0 // indirect
golang.org/x/mod v0.17.0 // indirect
golang.org/x/oauth2 v0.17.0 // indirect
golang.org/x/oauth2 v0.17.0 // indirect
golang.org/x/term v0.
19
.0 // indirect
golang.org/x/term v0.
20
.0 // indirect
golang.org/x/text v0.1
4
.0 // indirect
golang.org/x/text v0.1
5
.0 // indirect
golang.org/x/time v0.5.0 // indirect
golang.org/x/time v0.5.0 // indirect
golang.org/x/tools v0.20.0 // indirect
golang.org/x/tools v0.20.0 // indirect
golang.zx2c4.com/wireguard v0.0.0-20230325221338-052af4a8072b // indirect
golang.zx2c4.com/wireguard v0.0.0-20230325221338-052af4a8072b // indirect
...
@@ -480,7 +480,7 @@ require (
...
@@ -480,7 +480,7 @@ require (
lukechampine.com/blake3 v1.2.1 // indirect
lukechampine.com/blake3 v1.2.1 // indirect
sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.29.0 // indirect
sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.29.0 // indirect
sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect
sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect
sigs.k8s.io/knftables v0.0.1
4
// indirect
sigs.k8s.io/knftables v0.0.1
6
// indirect
sigs.k8s.io/kustomize/api v0.13.5-0.20230601165947-6ce0bf390ce3 // indirect
sigs.k8s.io/kustomize/api v0.13.5-0.20230601165947-6ce0bf390ce3 // indirect
sigs.k8s.io/kustomize/kustomize/v5 v5.0.4-0.20230601165947-6ce0bf390ce3 // indirect
sigs.k8s.io/kustomize/kustomize/v5 v5.0.4-0.20230601165947-6ce0bf390ce3 // indirect
sigs.k8s.io/kustomize/kyaml v0.14.3-0.20230601165947-6ce0bf390ce3 // indirect
sigs.k8s.io/kustomize/kyaml v0.14.3-0.20230601165947-6ce0bf390ce3 // indirect
...
...
go.sum
View file @
faeaf1b0
...
@@ -526,8 +526,8 @@ github.com/fatih/color v1.15.0/go.mod h1:0h5ZqXfHYED7Bhv2ZJamyIOUej9KtShiJESRwBD
...
@@ -526,8 +526,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.3/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U=
github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg=
github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg=
github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U=
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.
4 h1:pFTwjpP7rmxGNknNXzuW0iXWcwXMRTpwDIfaSDWqTw0
=
github.com/flannel-io/flannel v0.25.
2/go.mod h1:o5FAm9Rl28TydPKw1cQFYWPopfQKIjlYrcdFzBusaGI
=
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/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 h1:KjPQoQCEFdZDiP03phOvGi11+SVVhBG2wOWAorLsstg=
github.com/flynn/noise v1.1.0/go.mod h1:xbMo+0i6+IGbYdJhF31t2eR1BIU0CYc12+BNAKwUTag=
github.com/flynn/noise v1.1.0/go.mod h1:xbMo+0i6+IGbYdJhF31t2eR1BIU0CYc12+BNAKwUTag=
...
@@ -1862,8 +1862,8 @@ golang.org/x/term v0.13.0/go.mod h1:LTmsnFJwVN6bCy1rVCoS+qHT1HhALEFxKncY3WNNh4U=
...
@@ -1862,8 +1862,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.15.0/go.mod h1:BDl952bC7+uMoWR75FIrCDx79TPU9oHkTZ9yRbYOrX0=
golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk=
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.18.0/go.mod h1:ILwASektA3OnRv7amZ1xhE/KTR+u50pbXfZ03+6Nx58=
golang.org/x/term v0.
19.0 h1:+ThwsDv+tYfnJFhF4L8jITxu1tdTWRTZpdsWgEgjL6Q
=
golang.org/x/term v0.
20.0 h1:VnkxpohqXaOBYJtBmEppKUG6mXpi+4O6purfc2+sMhw
=
golang.org/x/term v0.
19.0/go.mod h1:2CuTdWZ7KHSQwUzKva0cbMg6q2DMI3Mmxp+gKJbskEk
=
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.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.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
...
@@ -1884,8 +1884,9 @@ golang.org/x/text v0.10.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
...
@@ -1884,8 +1884,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.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.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.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.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-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-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
...
@@ -2228,8 +2229,8 @@ sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.29.0 h1:/U5vjBbQn3RCh
...
@@ -2228,8 +2229,8 @@ sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.29.0 h1:/U5vjBbQn3RCh
sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.29.0/go.mod h1:z7+wmGM2dfIiLRfrC6jb5kV2Mq/sK1ZP303cxzkV5Y4=
sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.29.0/go.mod h1:z7+wmGM2dfIiLRfrC6jb5kV2Mq/sK1ZP303cxzkV5Y4=
sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo=
sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo=
sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0=
sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0=
sigs.k8s.io/knftables v0.0.1
4 h1:VzKQoDMCGBOH8c85sGrWSXSPCS0XrIpEfOlcCLBXiC0
=
sigs.k8s.io/knftables v0.0.1
6 h1:ZpTfNsjnidgoXdxxzcZLdSctqkpSO3QB3jo3zQ4PXqM
=
sigs.k8s.io/knftables v0.0.1
4
/go.mod h1:f/5ZLKYEUPUhVjUCg6l80ACdL7CIIyeL0DxfgojGRTk=
sigs.k8s.io/knftables v0.0.1
6
/go.mod h1:f/5ZLKYEUPUhVjUCg6l80ACdL7CIIyeL0DxfgojGRTk=
sigs.k8s.io/kustomize/api v0.13.5-0.20230601165947-6ce0bf390ce3 h1:XX3Ajgzov2RKUdc5jW3t5jwY7Bo7dcRm+tFxT+NfgY0=
sigs.k8s.io/kustomize/api v0.13.5-0.20230601165947-6ce0bf390ce3 h1:XX3Ajgzov2RKUdc5jW3t5jwY7Bo7dcRm+tFxT+NfgY0=
sigs.k8s.io/kustomize/api v0.13.5-0.20230601165947-6ce0bf390ce3/go.mod h1:9n16EZKMhXBNSiUC5kSdFQJkdH3zbxS/JoO619G1VAY=
sigs.k8s.io/kustomize/api v0.13.5-0.20230601165947-6ce0bf390ce3/go.mod h1:9n16EZKMhXBNSiUC5kSdFQJkdH3zbxS/JoO619G1VAY=
sigs.k8s.io/kustomize/kustomize/v5 v5.0.4-0.20230601165947-6ce0bf390ce3 h1:vq2TtoDcQomhy7OxXLUOzSbHMuMYq0Bjn93cDtJEdKw=
sigs.k8s.io/kustomize/kustomize/v5 v5.0.4-0.20230601165947-6ce0bf390ce3 h1:vq2TtoDcQomhy7OxXLUOzSbHMuMYq0Bjn93cDtJEdKw=
...
...
pkg/agent/flannel/flannel.go
View file @
faeaf1b0
...
@@ -16,9 +16,11 @@ package flannel
...
@@ -16,9 +16,11 @@ package flannel
import
(
import
(
"fmt"
"fmt"
"math/big"
"net"
"net"
"os"
"os"
"path/filepath"
"path/filepath"
"strings"
"sync"
"sync"
"github.com/flannel-io/flannel/pkg/backend"
"github.com/flannel-io/flannel/pkg/backend"
...
@@ -228,34 +230,73 @@ func WriteSubnetFile(path string, nw ip.IP4Net, nwv6 ip.IP6Net, ipMasq bool, bn
...
@@ -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
// ReadCIDRFromSubnetFile reads the flannel subnet file and extracts the value of IPv4 network CIDRKey
func
ReadCIDRFromSubnetFile
(
path
string
,
CIDRKey
string
)
ip
.
IP4Net
{
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
)
{
if
_
,
err
:=
os
.
Stat
(
path
);
!
os
.
IsNotExist
(
err
)
{
prevSubnetVals
,
err
:=
godotenv
.
Read
(
path
)
prevSubnetVals
,
err
:=
godotenv
.
Read
(
path
)
if
err
!=
nil
{
if
err
!=
nil
{
logrus
.
Errorf
(
"Couldn't fetch previous %s from subnet file at %s: %v"
,
CIDRKey
,
path
,
err
)
logrus
.
Errorf
(
"Couldn't fetch previous %s from subnet file at %s: %v"
,
CIDRKey
,
path
,
err
)
}
else
if
prevCIDRString
,
ok
:=
prevSubnetVals
[
CIDRKey
];
ok
{
}
else
if
prevCIDRString
,
ok
:=
prevSubnetVals
[
CIDRKey
];
ok
{
err
=
prevCIDR
.
UnmarshalJSON
([]
byte
(
prevCIDRString
))
cidrs
:=
strings
.
Split
(
prevCIDRString
,
","
)
if
err
!=
nil
{
prevCIDRs
=
make
([]
ip
.
IP4Net
,
0
)
logrus
.
Errorf
(
"Couldn't parse previous %s from subnet file at %s: %v"
,
CIDRKey
,
path
,
err
)
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
// ReadIP6CIDRFromSubnetFile reads the flannel subnet file and extracts the value of IPv6 network CIDRKey
func
ReadIP6CIDRFromSubnetFile
(
path
string
,
CIDRKey
string
)
ip
.
IP6Net
{
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
)
{
if
_
,
err
:=
os
.
Stat
(
path
);
!
os
.
IsNotExist
(
err
)
{
prevSubnetVals
,
err
:=
godotenv
.
Read
(
path
)
prevSubnetVals
,
err
:=
godotenv
.
Read
(
path
)
if
err
!=
nil
{
if
err
!=
nil
{
logrus
.
Errorf
(
"Couldn't fetch previous %s from subnet file at %s: %v"
,
CIDRKey
,
path
,
err
)
logrus
.
Errorf
(
"Couldn't fetch previous %s from subnet file at %s: %v"
,
CIDRKey
,
path
,
err
)
}
else
if
prevCIDRString
,
ok
:=
prevSubnetVals
[
CIDRKey
];
ok
{
}
else
if
prevCIDRString
,
ok
:=
prevSubnetVals
[
CIDRKey
];
ok
{
err
=
prevCIDR
.
UnmarshalJSON
([]
byte
(
prevCIDRString
))
cidrs
:=
strings
.
Split
(
prevCIDRString
,
","
)
if
err
!=
nil
{
prevCIDRs
=
make
([]
ip
.
IP6Net
,
0
)
logrus
.
Errorf
(
"Couldn't parse previous %s from subnet file at %s: %v"
,
CIDRKey
,
path
,
err
)
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