Merge remote-tracking branch 'origin/1.9'
- PR #2926 - Branch issues/2808-improve-hairpin-messages - Fixes #2808. - PR #2907 - Branch issues/2771-checkpoint-net-modes - Fixes #2771.
This commit is contained in:
commit
507e734d1a
6 files changed
+42
-15
No files matched your search
@@ -6,6 +6,7 @@ import (
|
||||
"time"
|
||||
|
||||
"github.com/weaveworks/go-checkpoint"
|
||||
weave "github.com/weaveworks/weave/router"
|
||||
)
|
||||
|
||||
var checker *checkpoint.Checker
|
||||
@@ -16,7 +17,7 @@ const (
|
||||
updateCheckPeriod = 6 * time.Hour
|
||||
)
|
||||
|
||||
func checkForUpdates(dockerVersion string, network string) {
|
||||
func checkForUpdates(dockerVersion string, router *weave.NetworkRouter) {
|
||||
newVersion.Store("")
|
||||
success.Store(true)
|
||||
|
||||
@@ -51,9 +52,6 @@ func checkForUpdates(dockerVersion string, network string) {
|
||||
"docker-version": dockerVersion,
|
||||
"kernel-version": kernelVersion,
|
||||
}
|
||||
if network != "" {
|
||||
flags["network"] = network
|
||||
}
|
||||
|
||||
// Start background version checking
|
||||
params := checkpoint.CheckParams{
|
||||
@@ -61,6 +59,21 @@ func checkForUpdates(dockerVersion string, network string) {
|
||||
Version: version,
|
||||
SignatureFile: "",
|
||||
Flags: flags,
|
||||
ExtraFlags: func() []checkpoint.Flag { return checkpointFlags(router) },
|
||||
}
|
||||
checker = checkpoint.CheckInterval(¶ms, updateCheckPeriod, handleResponse)
|
||||
}
|
||||
|
||||
func checkpointFlags(router *weave.NetworkRouter) []checkpoint.Flag {
|
||||
flags := []checkpoint.Flag{}
|
||||
status := weave.NewNetworkRouterStatus(router)
|
||||
for _, conn := range status.Connections {
|
||||
if connectionName, ok := conn.Attrs["name"].(string); ok {
|
||||
if _, encrypted := conn.Attrs["encrypted"]; encrypted {
|
||||
connectionName = connectionName + " encrypted"
|
||||
}
|
||||
flags = append(flags, checkpoint.Flag{Key: "network", Value: connectionName})
|
||||
}
|
||||
}
|
||||
return flags
|
||||
}
|
||||
+15
-5
@@ -271,8 +271,9 @@ func main() {
|
||||
networkConfig.InjectorConsumer = injectorConsumer
|
||||
|
||||
if injectorConsumer != nil {
|
||||
if err := weavenet.DetectHairpin(weavenet.BridgeIfName, Log); err != nil {
|
||||
Log.Errorf("DetectHairpin failed: %s", err)
|
||||
if err := weavenet.DetectHairpin("vethwe-bridge", Log); err != nil {
|
||||
Log.Errorf("Setting may cause connectivity issues : %s", err)
|
||||
Log.Infof("Hairpin mode may have been enabled by other software on this machine")
|
||||
}
|
||||
}
|
||||
|
||||
@@ -293,7 +294,8 @@ func main() {
|
||||
checkFatal(err)
|
||||
defer db.Close()
|
||||
|
||||
router := weave.NewNetworkRouter(config, networkConfig, name, nickName, overlay, db)
|
||||
router, err := weave.NewNetworkRouter(config, networkConfig, name, nickName, overlay, db)
|
||||
checkFatal(err)
|
||||
Log.Println("Our name is", router.Ourself)
|
||||
|
||||
if token != "" {
|
||||
@@ -330,11 +332,15 @@ func main() {
|
||||
dockerVersion = dockerCli.DockerVersion()
|
||||
}
|
||||
|
||||
<<<<<<< HEAD
|
||||
network := ""
|
||||
if bridgeConfig.AWSVPC {
|
||||
network = "awsvpc"
|
||||
}
|
||||
checkForUpdates(dockerVersion, network)
|
||||
=======
|
||||
checkForUpdates(dockerVersion, router)
|
||||
>>>>>>> origin/1.9
|
||||
|
||||
observeContainers := func(o docker.ContainerObserver) {
|
||||
if dockerCli != nil {
|
||||
@@ -562,7 +568,9 @@ func createAllocator(router *weave.NetworkRouter, config ipamConfig, preClaims [
|
||||
|
||||
allocator := ipam.NewAllocator(c)
|
||||
|
||||
allocator.SetInterfaces(router.NewGossip("IPallocation", allocator))
|
||||
gossip, err := router.NewGossip("IPallocation", allocator)
|
||||
checkFatal(err)
|
||||
allocator.SetInterfaces(gossip)
|
||||
allocator.Start()
|
||||
router.Peers.OnGC(func(peer *mesh.Peer) { allocator.PeerGone(peer.Name) })
|
||||
|
||||
@@ -572,7 +580,9 @@ func createAllocator(router *weave.NetworkRouter, config ipamConfig, preClaims [
|
||||
func createDNSServer(config dnsConfig, router *mesh.Router, isKnownPeer func(mesh.PeerName) bool) (*nameserver.Nameserver, *nameserver.DNSServer) {
|
||||
ns := nameserver.New(router.Ourself.Peer.Name, config.Domain, isKnownPeer)
|
||||
router.Peers.OnGC(func(peer *mesh.Peer) { ns.PeerGone(peer.Name) })
|
||||
ns.SetGossip(router.NewGossip("nameserver", ns))
|
||||
gossip, err := router.NewGossip("nameserver", ns)
|
||||
checkFatal(err)
|
||||
ns.SetGossip(gossip)
|
||||
upstream := nameserver.NewUpstream(config.ResolvConf, config.EffectiveListenAddress)
|
||||
dnsserver, err := nameserver.NewDNSServer(ns, config.Domain, config.ListenAddress,
|
||||
upstream, uint32(config.TTL), config.ClientTimeout)
|
||||
|
||||
+1
-1
@@ -1224,7 +1224,7 @@ func (fastdp *FastDatapath) send(fops FlowOp, frame []byte, lock *fastDatapathLo
|
||||
}
|
||||
|
||||
if fastdp.isHairpinFlow(&flow) {
|
||||
log.Error("Vetoed installation of hairpin flow ", flow)
|
||||
log.Warning("Vetoed installation of hairpin flow ", flow)
|
||||
return
|
||||
}
|
||||
|
||||
|
||||
@@ -51,7 +51,7 @@ type NetworkRouter struct {
|
||||
db db.DB
|
||||
}
|
||||
|
||||
func NewNetworkRouter(config mesh.Config, networkConfig NetworkConfig, name mesh.PeerName, nickName string, overlay NetworkOverlay, db db.DB) *NetworkRouter {
|
||||
func NewNetworkRouter(config mesh.Config, networkConfig NetworkConfig, name mesh.PeerName, nickName string, overlay NetworkOverlay, db db.DB) (*NetworkRouter, error) {
|
||||
if overlay == nil {
|
||||
overlay = NullNetworkOverlay{}
|
||||
}
|
||||
@@ -59,7 +59,11 @@ func NewNetworkRouter(config mesh.Config, networkConfig NetworkConfig, name mesh
|
||||
networkConfig.InjectorConsumer = NullInjectorConsumer{}
|
||||
}
|
||||
|
||||
router := &NetworkRouter{Router: mesh.NewRouter(config, name, nickName, overlay, common.LogLogger()), NetworkConfig: networkConfig, db: db}
|
||||
meshRouter, err := mesh.NewRouter(config, name, nickName, overlay, common.LogLogger())
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
router := &NetworkRouter{Router: meshRouter, NetworkConfig: networkConfig, db: db}
|
||||
router.Peers.OnInvalidateShortIDs(overlay.InvalidateShortIDs)
|
||||
router.Routes.OnChange(overlay.InvalidateRoutes)
|
||||
router.Macs = NewMacCache(macMaxAge,
|
||||
@@ -67,7 +71,7 @@ func NewNetworkRouter(config mesh.Config, networkConfig NetworkConfig, name mesh
|
||||
log.Println("Expired MAC", mac, "at", peer)
|
||||
})
|
||||
router.Peers.OnGC(func(peer *mesh.Peer) { router.Macs.Delete(peer) })
|
||||
return router
|
||||
return router, nil
|
||||
}
|
||||
|
||||
// Start listening for TCP connections, locally captured packets, and
|
||||
|
||||
+1
-1
Submodule vendor/github.com/weaveworks/go-checkpoint updated: 62324982ab...ebbb8b0518.
+1
-1
Submodule vendor/github.com/weaveworks/mesh updated: 5015f896ab...9a38245587.
Reference in new issue
Block a user