@@ -38,45 +38,39 @@ type podManager struct {
38
38
cniServer * cniserver.CNIServer
39
39
// Request queue for pod operations incoming from the CNIServer
40
40
requests chan (* cniserver.PodRequest )
41
- // Tracks pod :: IP address for hostport handling
41
+ // Tracks pod :: IP address for hostport and multicast handling
42
42
runningPods map [string ]* runningPod
43
43
runningPodsLock sync.Mutex
44
44
45
45
// Live pod setup/teardown stuff not used in testing code
46
- kClient * kclientset.Clientset
47
- policy osdnPolicy
46
+ kClient * kclientset.Clientset
47
+ policy osdnPolicy
48
+ mtu uint32
49
+ ovs * ovs.Interface
50
+
51
+ // Things only accessed through the processCNIRequests() goroutine
52
+ // and thus can be set from Start()
48
53
ipamConfig []byte
49
- mtu uint32
50
54
hostportHandler kubehostport.HostportHandler
51
55
host knetwork.Host
52
- ovs * ovs.Interface
53
56
}
54
57
55
58
// Creates a new live podManager; used by node code
56
- func newPodManager (host knetwork. Host , localSubnetCIDR string , netInfo * NetworkInfo , kClient * kclientset.Clientset , policy osdnPolicy , mtu uint32 , ovs * ovs.Interface ) ( * podManager , error ) {
57
- pm := newDefaultPodManager (host )
59
+ func newPodManager (kClient * kclientset.Clientset , policy osdnPolicy , mtu uint32 , ovs * ovs.Interface ) * podManager {
60
+ pm := newDefaultPodManager ()
58
61
pm .kClient = kClient
59
62
pm .policy = policy
60
63
pm .mtu = mtu
61
- pm .hostportHandler = kubehostport .NewHostportHandler ()
62
64
pm .podHandler = pm
63
65
pm .ovs = ovs
64
-
65
- var err error
66
- pm .ipamConfig , err = getIPAMConfig (netInfo .ClusterNetwork , localSubnetCIDR )
67
- if err != nil {
68
- return nil , err
69
- }
70
-
71
- return pm , nil
66
+ return pm
72
67
}
73
68
74
69
// Creates a new basic podManager; used by testcases
75
- func newDefaultPodManager (host knetwork. Host ) * podManager {
70
+ func newDefaultPodManager () * podManager {
76
71
return & podManager {
77
72
runningPods : make (map [string ]* runningPod ),
78
73
requests : make (chan * cniserver.PodRequest , 20 ),
79
- host : host ,
80
74
}
81
75
}
82
76
@@ -134,7 +128,15 @@ func getIPAMConfig(clusterNetwork *net.IPNet, localSubnet string) ([]byte, error
134
128
}
135
129
136
130
// Start the CNI server and start processing requests from it
137
- func (m * podManager ) Start (socketPath string ) error {
131
+ func (m * podManager ) Start (socketPath string , host knetwork.Host , localSubnetCIDR string , clusterNetwork * net.IPNet ) error {
132
+ m .host = host
133
+ m .hostportHandler = kubehostport .NewHostportHandler ()
134
+
135
+ var err error
136
+ if m .ipamConfig , err = getIPAMConfig (clusterNetwork , localSubnetCIDR ); err != nil {
137
+ return err
138
+ }
139
+
138
140
go m .processCNIRequests ()
139
141
140
142
m .cniServer = cniserver .NewCNIServer (socketPath )
0 commit comments