Unverified Commit a693071c authored by Roberto Bonafiglia's avatar Roberto Bonafiglia Committed by GitHub

Merge pull request #5552 from sjoerdsimons/sjoerd/flannel-wireguard-mode

Add cli flag for flannel wireguard mode
parents 3f901068 86435769
...@@ -75,7 +75,7 @@ require ( ...@@ -75,7 +75,7 @@ require (
github.com/coreos/go-systemd v0.0.0-20190719114852-fd7a80b32e1f github.com/coreos/go-systemd v0.0.0-20190719114852-fd7a80b32e1f
github.com/docker/docker v20.10.14+incompatible github.com/docker/docker v20.10.14+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.17.0 github.com/flannel-io/flannel v0.18.1
github.com/go-bindata/go-bindata v3.1.2+incompatible github.com/go-bindata/go-bindata v3.1.2+incompatible
github.com/go-sql-driver/mysql v1.6.0 github.com/go-sql-driver/mysql v1.6.0
github.com/golangplus/testing v1.0.0 // indirect github.com/golangplus/testing v1.0.0 // indirect
...@@ -109,7 +109,7 @@ require ( ...@@ -109,7 +109,7 @@ require (
github.com/stretchr/testify v1.7.0 github.com/stretchr/testify v1.7.0
github.com/tchap/go-patricia v2.3.0+incompatible // indirect github.com/tchap/go-patricia v2.3.0+incompatible // indirect
github.com/urfave/cli v1.22.4 github.com/urfave/cli v1.22.4
github.com/vishvananda/netlink v1.1.1-0.20210330154013-f5de75959ad5 github.com/vishvananda/netlink v1.2.1-beta.2
github.com/yl2chen/cidranger v1.0.2 github.com/yl2chen/cidranger v1.0.2
go.etcd.io/etcd/api/v3 v3.5.4 go.etcd.io/etcd/api/v3 v3.5.4
go.etcd.io/etcd/client/pkg/v3 v3.5.4 go.etcd.io/etcd/client/pkg/v3 v3.5.4
......
...@@ -81,7 +81,8 @@ const ( ...@@ -81,7 +81,8 @@ const (
wireguardNativeBackend = `{ wireguardNativeBackend = `{
"Type": "wireguard", "Type": "wireguard",
"PersistentKeepaliveInterval": 25 "PersistentKeepaliveInterval": %PersistentKeepaliveInterval%,
"Mode": "%Mode%"
}` }`
emptyIPv6Network = "::/0" emptyIPv6Network = "::/0"
...@@ -206,8 +207,22 @@ func createFlannelConf(nodeConfig *config.Node) error { ...@@ -206,8 +207,22 @@ func createFlannelConf(nodeConfig *config.Node) error {
} }
var backendConf string var backendConf string
parts := strings.SplitN(nodeConfig.FlannelBackend, "=", 2)
backend := parts[0]
backendOptions := make(map[string]string)
if len(parts) > 1 {
options := strings.Split(parts[1], ",")
for _, o := range options {
p := strings.SplitN(o, "=", 2)
if len(p) == 1 {
backendOptions[p[0]] = ""
} else {
backendOptions[p[0]] = p[1]
}
}
}
switch nodeConfig.FlannelBackend { switch backend {
case config.FlannelBackendVXLAN: case config.FlannelBackendVXLAN:
backendConf = vxlanBackend backendConf = vxlanBackend
case config.FlannelBackendHostGW: case config.FlannelBackendHostGW:
...@@ -221,7 +236,16 @@ func createFlannelConf(nodeConfig *config.Node) error { ...@@ -221,7 +236,16 @@ func createFlannelConf(nodeConfig *config.Node) error {
backendConf = strings.ReplaceAll(wireguardBackend, "%flannelConfDir%", filepath.Dir(nodeConfig.FlannelConfFile)) backendConf = strings.ReplaceAll(wireguardBackend, "%flannelConfDir%", filepath.Dir(nodeConfig.FlannelConfFile))
logrus.Warnf("The wireguard backend is deprecated and will be removed in k3s v1.26, please switch to wireguard-native. Check our docs for information about how to migrate") logrus.Warnf("The wireguard backend is deprecated and will be removed in k3s v1.26, please switch to wireguard-native. Check our docs for information about how to migrate")
case config.FlannelBackendWireguardNative: case config.FlannelBackendWireguardNative:
backendConf = wireguardNativeBackend mode, ok := backendOptions["Mode"]
if !ok {
mode = "separate"
}
keepalive, ok := backendOptions["PersistentKeepaliveInterval"]
if !ok {
keepalive = "25"
}
backendConf = strings.ReplaceAll(wireguardNativeBackend, "%Mode%", mode)
backendConf = strings.ReplaceAll(backendConf, "%PersistentKeepaliveInterval%", keepalive)
default: default:
return fmt.Errorf("Cannot configure unknown flannel backend '%s'", nodeConfig.FlannelBackend) return fmt.Errorf("Cannot configure unknown flannel backend '%s'", nodeConfig.FlannelBackend)
} }
......
...@@ -207,7 +207,7 @@ var ServerFlags = []cli.Flag{ ...@@ -207,7 +207,7 @@ var ServerFlags = []cli.Flag{
ClusterDomain, ClusterDomain,
cli.StringFlag{ cli.StringFlag{
Name: "flannel-backend", Name: "flannel-backend",
Usage: "(networking) One of 'none', 'vxlan', 'ipsec', 'host-gw', 'wireguard'(deprecated), or 'wireguard-native'", Usage: "(networking) backend<=option1=val1,option2=val2> where backend is one of 'none', 'vxlan', 'ipsec', 'host-gw', 'wireguard-native', or 'wireguard' (deprecated)",
Destination: &ServerConfig.FlannelBackend, Destination: &ServerConfig.FlannelBackend,
Value: "vxlan", Value: "vxlan",
}, },
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment