Skip to content
Permalink

Comparing changes

This is a direct comparison between two commits made in this repository or its related repositories. View the default comparison for this range or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: k3s-io/k3s
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 2154a8eae928549d22b064a18aefad7fc6cbffed
Choose a base ref
..
head repository: k3s-io/k3s
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: f399bd29b1684e727fe251117b129fe1d97e10f4
Choose a head ref
Showing with 373 additions and 1,470 deletions.
  1. +2 −1 go.mod
  2. +5 −4 go.sum
  3. +0 −1 install.sh
  4. +10 −27 pkg/agent/flannel/flannel.go
  5. +2 −63 pkg/agent/flannel/setup.go
  6. +6 −58 vendor/github.com/bronze1man/goStrongswanVici/clientConn.go
  7. +1 −1 vendor/github.com/bronze1man/goStrongswanVici/loadCert.go
  8. +4 −34 vendor/github.com/bronze1man/goStrongswanVici/loadConn.go
  9. +1 −1 vendor/github.com/bronze1man/goStrongswanVici/loadPrivateKey.go
  10. +23 −27 vendor/github.com/bronze1man/goStrongswanVici/monitorSA.go
  11. +1 −1 vendor/github.com/bronze1man/goStrongswanVici/pools.go
  12. +0 −1 vendor/github.com/bronze1man/goStrongswanVici/terminate.go
  13. +5 −6 vendor/github.com/flannel-io/flannel/backend/common.go
  14. +9 −22 vendor/github.com/flannel-io/flannel/backend/hostgw/hostgw.go
  15. +8 −9 vendor/github.com/flannel-io/flannel/backend/ipsec/handle_charon.go
  16. +6 −0 vendor/github.com/flannel-io/flannel/backend/ipsec/ipsec_windows.go
  17. +2 −1 vendor/github.com/flannel-io/flannel/backend/manager.go
  18. +46 −107 vendor/github.com/flannel-io/flannel/backend/route_network.go
  19. +2 −1 vendor/github.com/flannel-io/flannel/backend/route_network_windows.go
  20. +2 −1 vendor/github.com/flannel-io/flannel/backend/simple_network.go
  21. +0 −58 vendor/github.com/flannel-io/flannel/backend/vxlan/device.go
  22. +31 −71 vendor/github.com/flannel-io/flannel/backend/vxlan/vxlan.go
  23. +70 −180 vendor/github.com/flannel-io/flannel/backend/vxlan/vxlan_network.go
  24. +2 −1 vendor/github.com/flannel-io/flannel/backend/vxlan/vxlan_network_windows.go
  25. +2 −1 vendor/github.com/flannel-io/flannel/backend/vxlan/vxlan_windows.go
  26. +0 −68 vendor/github.com/flannel-io/flannel/network/iptables.go
  27. +18 −8 vendor/github.com/flannel-io/flannel/network/iptables_windows.go
  28. +0 −132 vendor/github.com/flannel-io/flannel/pkg/ip/iface.go
  29. +1 −6 vendor/github.com/flannel-io/flannel/pkg/ip/iface_windows.go
  30. +0 −210 vendor/github.com/flannel-io/flannel/pkg/ip/ip6net.go
  31. +0 −5 vendor/github.com/flannel-io/flannel/pkg/ip/ipnet.go
  32. +50 −118 vendor/github.com/flannel-io/flannel/subnet/config.go
  33. +10 −16 vendor/github.com/flannel-io/flannel/subnet/kube/annotations.go
  34. +38 −140 vendor/github.com/flannel-io/flannel/subnet/kube/kube.go
  35. +3 −8 vendor/github.com/flannel-io/flannel/subnet/subnet.go
  36. +10 −80 vendor/github.com/flannel-io/flannel/subnet/watch.go
  37. +3 −2 vendor/modules.txt
3 changes: 2 additions & 1 deletion go.mod
Original file line number Diff line number Diff line change
@@ -71,6 +71,7 @@ replace (
require (
github.com/AkihiroSuda/containerd-fuse-overlayfs v1.0.0
github.com/NYTimes/gziphandler v1.1.1 // indirect
github.com/bronze1man/goStrongswanVici v0.0.0-20190828090544-27d02f80ba40 // indirect
github.com/containerd/cgroups v1.0.1
github.com/containerd/containerd v1.5.1
github.com/containerd/cri v1.11.1-0.20200820101445-b0cc07999aa5
@@ -81,7 +82,7 @@ require (
github.com/coreos/go-systemd v0.0.0-20190719114852-fd7a80b32e1f
github.com/docker/docker v20.10.0-beta1.0.20201108103107-c7109494fe65+incompatible
github.com/erikdubbelboer/gspt v0.0.0-20190125194910-e68493906b83
github.com/flannel-io/flannel v0.15.1
github.com/flannel-io/flannel v0.14.1
github.com/go-bindata/go-bindata v3.1.2+incompatible
github.com/go-sql-driver/mysql v1.4.1
github.com/google/cadvisor v0.38.8
9 changes: 5 additions & 4 deletions go.sum
Original file line number Diff line number Diff line change
@@ -115,8 +115,9 @@ github.com/blang/semver v3.5.0+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnweb
github.com/blang/semver v3.5.1+incompatible h1:cQNTCjp13qL8KC3Nbxr/y2Bqb63oX6wdnnjpJbkM4JQ=
github.com/blang/semver v3.5.1+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk=
github.com/boltdb/bolt v1.3.1/go.mod h1:clJnj/oiGkjum5o1McbSZDSLxVThjynRyGBgiAx27Ps=
github.com/bronze1man/goStrongswanVici v0.0.0-20201105010758-936f38b697fd h1:qn6a8rGrW+7p4ghypmYHZUKewXURuUDYxKqZxEoFjPc=
github.com/bronze1man/goStrongswanVici v0.0.0-20201105010758-936f38b697fd/go.mod h1:fWUtBEPt2yjrr3WFhOqvajM8JSEU8bEeBcoeSCsKRpc=
github.com/bronze1man/goStrongswanVici v0.0.0-20171013065002-4d72634a2f11/go.mod h1:c+n7HXa5FxzR8GDsmu773UtbtrmKvMVerLVQeEbnzAE=
github.com/bronze1man/goStrongswanVici v0.0.0-20190828090544-27d02f80ba40 h1:udTfdeYqe866Z5mxTaEm5irSJK2vupyxwBOHAYEVtJo=
github.com/bronze1man/goStrongswanVici v0.0.0-20190828090544-27d02f80ba40/go.mod h1:fWUtBEPt2yjrr3WFhOqvajM8JSEU8bEeBcoeSCsKRpc=
github.com/buger/jsonparser v0.0.0-20180808090653-f4dd9f5a6b44/go.mod h1:bbYlZJ7hK1yFx9hf58LP0zeX7UjIGs20ufpu3evjr+s=
github.com/caddyserver/caddy v1.0.3/go.mod h1:G+ouvOY32gENkJC+jhgl62TyhvqEsFaDiZ4uw0RzP1E=
github.com/canonical/go-dqlite v1.5.1 h1:1YjtIrFsC1A3XlgsX38ARAiKhvkZS63PqsEd8z3T4yU=
@@ -257,8 +258,8 @@ github.com/fatih/camelcase v1.0.0 h1:hxNvNX/xYBp0ovncs8WyWZrOrpBNub/JfaMvbURyft8
github.com/fatih/camelcase v1.0.0/go.mod h1:yN2Sb0lFhZJUdVvtELVWefmrXpuZESvPmqwoZc+/fpc=
github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4=
github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU=
github.com/flannel-io/flannel v0.15.1 h1:9v5/fapXePDnXVsFBVnji4IeLoXcO81bO8nEbQioYVQ=
github.com/flannel-io/flannel v0.15.1/go.mod h1:fIcQpjXVBEE22oxqfZN0cXN0ZInsMDqTF5YoeGo6DgY=
github.com/flannel-io/flannel v0.14.1 h1:18j/zszdoBPG2Y2yk0MsZYIKZBhVKb5fknZm2lJcbW4=
github.com/flannel-io/flannel v0.14.1/go.mod h1:qZhrC3nxQudgshBtTb5rBqFxeYtQGRa4AQGwKi4u4Ds=
github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:xEzjJPgXI435gkrCt3MPfRiAkVrwSbHsst4LCFVfpJc=
github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k=
github.com/form3tech-oss/jwt-go v3.2.2+incompatible h1:TcekIExNqud5crz4xD2pavyTgWiPvpYe4Xau31I0PRk=
1 change: 0 additions & 1 deletion install.sh
Original file line number Diff line number Diff line change
@@ -629,7 +629,6 @@ ip link show 2>/dev/null | grep 'master cni0' | while read ignore iface ignore;
done
ip link delete cni0
ip link delete flannel.1
ip link delete flannel-v6.1
rm -rf /var/lib/cni/
iptables-save | grep -v KUBE- | grep -v CNI- | iptables-restore
EOF
37 changes: 10 additions & 27 deletions pkg/agent/flannel/flannel.go
Original file line number Diff line number Diff line change
@@ -39,13 +39,13 @@ const (
subnetFile = "/run/flannel/subnet.env"
)

func flannel(ctx context.Context, flannelIface *net.Interface, flannelConf, kubeConfigFile string, netMode int) error {
extIface, err := LookupExtInterface(flannelIface, netMode)
func flannel(ctx context.Context, flannelIface *net.Interface, flannelConf, kubeConfigFile string) error {
extIface, err := LookupExtIface(flannelIface)
if err != nil {
return err
}

sm, err := kube.NewSubnetManager(ctx, "", kubeConfigFile, "flannel.alpha.coreos.com", flannelConf, false)
sm, err := kube.NewSubnetManager(ctx, "", kubeConfigFile, "flannel.alpha.coreos.com", flannelConf)
if err != nil {
return err
}
@@ -71,7 +71,7 @@ func flannel(ctx context.Context, flannelIface *net.Interface, flannelConf, kube
go network.SetupAndEnsureIPTables(network.MasqRules(config.Network, bn.Lease()), 60)
go network.SetupAndEnsureIPTables(network.ForwardRules(config.Network.String()), 50)

if err := WriteSubnetFile(subnetFile, config.Network, config.IPv6Network, true, bn); err != nil {
if err := WriteSubnetFile(subnetFile, config.Network, true, bn); err != nil {
// Continue, even though it failed.
log.Warningf("Failed to write subnet file: %s", err)
} else {
@@ -84,9 +84,8 @@ func flannel(ctx context.Context, flannelIface *net.Interface, flannelConf, kube
return nil
}

func LookupExtInterface(iface *net.Interface, netMode int) (*backend.ExternalInterface, error) {
func LookupExtIface(iface *net.Interface) (*backend.ExternalInterface, error) {
var ifaceAddr net.IP
var ifacev6Addr net.IP
var err error

if iface == nil {
@@ -103,28 +102,20 @@ func LookupExtInterface(iface *net.Interface, netMode int) (*backend.ExternalInt
return nil, fmt.Errorf("failed to find IPv4 address for interface %s", iface.Name)
}

if netMode == (ipv4 + ipv6) {
ifacev6Addr, err = ip.GetInterfaceIP6Addr(iface)
if err != nil {
return nil, fmt.Errorf("failed to find IPv6 address for interface %s", iface.Name)
}
log.Infof("Using interface with name %s and address %s", iface.Name, ifaceAddr)

log.Infof("Using ipv6 address %s", ifacev6Addr)
}
if iface.MTU == 0 {
return nil, fmt.Errorf("failed to determine MTU for %s interface", ifaceAddr)
}

return &backend.ExternalInterface{
Iface: iface,
IfaceAddr: ifaceAddr,
IfaceV6Addr: ifacev6Addr,
ExtAddr: ifaceAddr,
ExtV6Addr: ifacev6Addr,
Iface: iface,
IfaceAddr: ifaceAddr,
ExtAddr: ifaceAddr,
}, nil
}

func WriteSubnetFile(path string, nw ip.IP4Net, nwv6 ip.IP6Net, ipMasq bool, bn backend.Network) error {
func WriteSubnetFile(path string, nw ip.IP4Net, ipMasq bool, bn backend.Network) error {
dir, name := filepath.Split(path)
os.MkdirAll(dir, 0755)

@@ -141,14 +132,6 @@ func WriteSubnetFile(path string, nw ip.IP4Net, nwv6 ip.IP6Net, ipMasq bool, bn

fmt.Fprintf(f, "FLANNEL_NETWORK=%s\n", nw)
fmt.Fprintf(f, "FLANNEL_SUBNET=%s\n", sn)

if nwv6.String() != emptyIPv6Network {
snv6 := bn.Lease().IPv6Subnet
snv6.IncrementIP()
fmt.Fprintf(f, "FLANNEL_IPV6_NETWORK=%s\n", nwv6)
fmt.Fprintf(f, "FLANNEL_IPV6_SUBNET=%s\n", snv6)
}

fmt.Fprintf(f, "FLANNEL_MTU=%d\n", bn.MTU())
_, err = fmt.Fprintf(f, "FLANNEL_IPMASQ=%v\n", ipMasq)
f.Close()
65 changes: 2 additions & 63 deletions pkg/agent/flannel/setup.go
Original file line number Diff line number Diff line change
@@ -2,9 +2,7 @@ package flannel

import (
"context"
"errors"
"fmt"
"net"
"os"
"path/filepath"
"strings"
@@ -16,7 +14,6 @@ import (
"github.com/sirupsen/logrus"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
v1 "k8s.io/client-go/kubernetes/typed/core/v1"
utilsnet "k8s.io/utils/net"
)

const (
@@ -44,8 +41,6 @@ const (

flannelConf = `{
"Network": "%CIDR%",
"EnableIPv6": %DUALSTACK%,
"IPv6Network": "%CIDR_IPV6%",
"Backend": %backend%
}
`
@@ -72,11 +67,6 @@ const (
"SubnetAddCommand": "read PUBLICKEY; wg set flannel.1 peer $PUBLICKEY endpoint $PUBLIC_IP:51820 allowed-ips $SUBNET persistent-keepalive 25",
"SubnetRemoveCommand": "read PUBLICKEY; wg set flannel.1 peer $PUBLICKEY remove"
}`

emptyIPv6Network = "::/0"

ipv4 = iota
ipv6
)

func Prepare(ctx context.Context, nodeConfig *config.Node) error {
@@ -104,18 +94,9 @@ func Run(ctx context.Context, nodeConfig *config.Node, nodes v1.NodeInterface) e
}
logrus.Info("Node CIDR assigned for: " + nodeName)

// We do not support dual-stack in k3s v1.20
//netMode, err := findNetMode(nodeConfig.AgentConfig.ClusterCIDRs)
netMode := ipv4
//if err != nil {
// logrus.Fatalf("Error checking netMode")
// return err
//}
go func() {
err := flannel(ctx, nodeConfig.FlannelIface, nodeConfig.FlannelConf, nodeConfig.AgentConfig.KubeConfigKubelet, netMode)
if err != nil && !errors.Is(err, context.Canceled) {
logrus.Fatalf("flannel exited: %v", err)
}
err := flannel(ctx, nodeConfig.FlannelIface, nodeConfig.FlannelConf, nodeConfig.AgentConfig.KubeConfigKubelet)
logrus.Fatalf("flannel exited: %v", err)
}()

return nil
@@ -158,27 +139,6 @@ func createFlannelConf(nodeConfig *config.Node) error {
}
confJSON = strings.Replace(confJSON, "%backend%", backendConf, -1)

// We do not support dual-stack in k3s v1.20
// netMode, err := findNetMode(nodeConfig.AgentConfig.ClusterCIDRs)
// netMode := ipv4
//if err != nil {
// logrus.Fatalf("Error checking netMode")
// return err
//}

// We do not support dual-stack in k3s v1.20
// if netMode == (ipv4 + ipv6) {
// confJSON = strings.ReplaceAll(confJSON, "%DUALSTACK%", "true")
// for _, cidr := range nodeConfig.AgentConfig.ClusterCIDRs {
// if utilsnet.IsIPv6(cidr.IP) {
// // Only one ipv6 range available. This might change in future: https://github.com/kubernetes/enhancements/issues/2593
// confJSON = strings.ReplaceAll(confJSON, "%CIDR_IPV6%", cidr.String())
// }
// }
// } else {
confJSON = strings.ReplaceAll(confJSON, "%DUALSTACK%", "false")
confJSON = strings.ReplaceAll(confJSON, "%CIDR_IPV6%", emptyIPv6Network)
// }
return util.WriteFile(nodeConfig.FlannelConf, confJSON)
}

@@ -209,24 +169,3 @@ func setupStrongSwan(nodeConfig *config.Node) error {
// make new strongswan link
return os.Symlink(dataDir, nodeConfig.AgentConfig.StrongSwanDir)
}

// fundNetMode returns the mode (ipv4, ipv6 or dual-stack) in which flannel is operating
func findNetMode(cidrs []*net.IPNet) (int, error) {
dualStack, err := utilsnet.IsDualStackCIDRs(cidrs)
if err != nil {
return 0, err
}
if dualStack {
return ipv4 + ipv6, nil
}

for _, cidr := range cidrs {
if utilsnet.IsIPv4CIDR(cidr) {
return ipv4, nil
}
if utilsnet.IsIPv6CIDR(cidr) {
return ipv6, nil
}
}
return 0, errors.New("Failed checking netMode")
}
Loading