blob: 5c45cedc2f173c5d92f5c9547754d301206c7df6 (
about) (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
|
package pkg
import (
"github.com/kubeedge/beehive/pkg/core"
beehiveContext "github.com/kubeedge/beehive/pkg/core/context"
"k8s.io/klog/v2"
"github.com/kubeedge/kubeedge/edge/pkg/common/modules"
meshconfig "github.com/kubeedge/kubeedge/edgemesh/pkg/config"
"github.com/kubeedge/kubeedge/edgemesh/pkg/constant"
"github.com/kubeedge/kubeedge/edgemesh/pkg/dns"
"github.com/kubeedge/kubeedge/edgemesh/pkg/listener"
"github.com/kubeedge/kubeedge/edgemesh/pkg/plugin"
"github.com/kubeedge/kubeedge/edgemesh/pkg/proxy"
"github.com/kubeedge/kubeedge/pkg/apis/componentconfig/edgecore/v1alpha1"
)
//EdgeMesh defines EdgeMesh object structure
type EdgeMesh struct {
enable bool
}
// Register register edgemesh
func Register(m *v1alpha1.EdgeMesh) {
meshconfig.InitConfigure(m)
core.Register(&EdgeMesh{enable: m.Enable})
}
// Name returns the name of EdgeMesh module
func (em *EdgeMesh) Name() string {
return constant.ModuleNameEdgeMesh
}
// Group returns EdgeMesh group
func (em *EdgeMesh) Group() string {
return modules.MeshGroup
}
// Enable indicates whether this module is enabled
func (em *EdgeMesh) Enable() bool {
return em.enable
}
//Start sets context and starts the controller
func (em *EdgeMesh) Start() {
// install go-chassis plugins
plugin.Install()
// init tcp listener
listener.Init()
// init iptables
proxy.Init()
// start proxy listener
go listener.Start()
// start dns server
go dns.Start()
// we need watch message to update the cache of instances
for {
select {
case <-beehiveContext.Done():
klog.Warning("EdgeMesh Stop")
proxy.Clean()
return
default:
}
msg, err := beehiveContext.Receive(constant.ModuleNameEdgeMesh)
if err != nil {
klog.Warningf("[EdgeMesh] receive msg error %v", err)
continue
}
klog.V(4).Infof("[EdgeMesh] get message: %v", msg)
listener.MsgProcess(msg)
}
}
|