Skip to content

Commit 31c4664

Browse files
Merge pull request #17098 from pravisankar/remove-code-post3.7
Automatic merge from submit-queue. Remove pre CNI docker cleanup code from openshift SDN It's been few releases that we moved to CNI interfaces. Previous release migrations should have done the pre CNI cleanup if needed. So we no longer need this dead code.
2 parents d42a000 + 5a0b104 commit 31c4664

File tree

2 files changed

+0
-89
lines changed

2 files changed

+0
-89
lines changed

pkg/network/node/node.go

-76
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ import (
77
"io/ioutil"
88
"net"
99
"os"
10-
osexec "os/exec"
1110
"path/filepath"
1211
"strings"
1312
"sync"
@@ -32,7 +31,6 @@ import (
3231
kinternalinformers "k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion"
3332
kubeletapi "k8s.io/kubernetes/pkg/kubelet/apis/cri"
3433
kruntimeapi "k8s.io/kubernetes/pkg/kubelet/apis/cri/v1alpha1/runtime"
35-
dockertools "k8s.io/kubernetes/pkg/kubelet/dockershim/libdocker"
3634
knetwork "k8s.io/kubernetes/pkg/kubelet/network"
3735
ktypes "k8s.io/kubernetes/pkg/kubelet/types"
3836
kexec "k8s.io/kubernetes/pkg/util/exec"
@@ -109,8 +107,6 @@ type OsdnNode struct {
109107
host knetwork.Host
110108
kubeletCniPlugin knetwork.NetworkPlugin
111109

112-
clearLbr0IptablesRule bool
113-
114110
kubeInformers kinternalinformers.SharedInformerFactory
115111

116112
// Holds runtime endpoint shim to make SDN <-> runtime communication
@@ -187,10 +183,6 @@ func New(c *OsdnNodeConfig) (network.NodeInterface, error) {
187183
runtimeService: nil,
188184
}
189185

190-
if err := plugin.dockerPreCNICleanup(); err != nil {
191-
return nil, err
192-
}
193-
194186
RegisterMetrics()
195187

196188
return plugin, nil
@@ -263,74 +255,6 @@ func GetLinkDetails(ip string) (netlink.Link, *net.IPNet, error) {
263255
return nil, nil, ErrorNetworkInterfaceNotFound
264256
}
265257

266-
// Detect whether we are upgrading from a pre-CNI openshift and clean up
267-
// interfaces and iptables rules that are no longer required
268-
func (node *OsdnNode) dockerPreCNICleanup() error {
269-
l, err := netlink.LinkByName("lbr0")
270-
if err != nil {
271-
// no cleanup required
272-
return nil
273-
}
274-
_ = netlink.LinkSetDown(l)
275-
276-
node.clearLbr0IptablesRule = true
277-
278-
// Restart docker to kill old pods and make it use docker0 again.
279-
// "systemctl restart" will bail out (unnecessarily) in the
280-
// OpenShift-in-a-container case, so we work around that by sending
281-
// the messages by hand.
282-
if _, err := osexec.Command("dbus-send", "--system", "--print-reply", "--reply-timeout=2000", "--type=method_call", "--dest=org.freedesktop.systemd1", "/org/freedesktop/systemd1", "org.freedesktop.systemd1.Manager.Reload").CombinedOutput(); err != nil {
283-
glog.Error(err)
284-
}
285-
if _, err := osexec.Command("dbus-send", "--system", "--print-reply", "--reply-timeout=2000", "--type=method_call", "--dest=org.freedesktop.systemd1", "/org/freedesktop/systemd1", "org.freedesktop.systemd1.Manager.RestartUnit", "string:'docker.service' string:'replace'").CombinedOutput(); err != nil {
286-
glog.Error(err)
287-
}
288-
289-
// Delete pre-CNI interfaces
290-
for _, intf := range []string{"lbr0", "vovsbr", "vlinuxbr"} {
291-
l, err = netlink.LinkByName(intf)
292-
if err != nil {
293-
_ = netlink.LinkDel(l)
294-
}
295-
}
296-
297-
// Wait until docker has restarted since kubelet will exit if docker isn't running
298-
if _, err := ensureDockerClient(); err != nil {
299-
return err
300-
}
301-
302-
glog.Infof("Cleaned up left-over openshift-sdn docker bridge and interfaces")
303-
304-
return nil
305-
}
306-
307-
func ensureDockerClient() (dockertools.Interface, error) {
308-
endpoint := os.Getenv("DOCKER_HOST")
309-
if endpoint == "" {
310-
endpoint = "unix:///var/run/docker.sock"
311-
}
312-
dockerClient := dockertools.ConnectToDockerOrDie(endpoint, time.Minute, time.Minute)
313-
314-
// Wait until docker has restarted since kubelet will exit it docker isn't running
315-
err := kwait.ExponentialBackoff(
316-
kwait.Backoff{
317-
Duration: 100 * time.Millisecond,
318-
Factor: 1.2,
319-
Steps: 6,
320-
},
321-
func() (bool, error) {
322-
if _, err := dockerClient.Version(); err != nil {
323-
// wait longer
324-
return false, nil
325-
}
326-
return true, nil
327-
})
328-
if err != nil {
329-
return nil, fmt.Errorf("failed to connect to docker: %v", err)
330-
}
331-
return dockerClient, nil
332-
}
333-
334258
func (node *OsdnNode) killUpdateFailedPods(pods []kapi.Pod) error {
335259
for _, pod := range pods {
336260
// Get the sandbox ID for this pod from the runtime

pkg/network/node/sdn_controller.go

-13
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,6 @@ import (
1818
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
1919
utilwait "k8s.io/apimachinery/pkg/util/wait"
2020
kapi "k8s.io/kubernetes/pkg/api"
21-
utildbus "k8s.io/kubernetes/pkg/util/dbus"
22-
kexec "k8s.io/kubernetes/pkg/util/exec"
23-
"k8s.io/kubernetes/pkg/util/iptables"
2421
"k8s.io/kubernetes/pkg/util/sysctl"
2522

2623
"github.com/vishvananda/netlink"
@@ -167,16 +164,6 @@ func (plugin *OsdnNode) SetupSDN() (bool, error) {
167164

168165
glog.V(5).Infof("[SDN setup] node pod subnet %s gateway %s", ipnet.String(), localSubnetGateway)
169166

170-
exec := kexec.New()
171-
172-
if plugin.clearLbr0IptablesRule {
173-
// Delete docker's left-over lbr0 rule; cannot do this from
174-
// NewNodePlugin (where docker is cleaned up) because we need
175-
// localSubnetCIDR which is only valid after plugin start
176-
ipt := iptables.New(exec, utildbus.New(), iptables.ProtocolIpv4)
177-
ipt.DeleteRule(iptables.TableNAT, iptables.ChainPostrouting, "-s", localSubnetCIDR, "!", "-o", "lbr0", "-j", "MASQUERADE")
178-
}
179-
180167
gwCIDR := fmt.Sprintf("%s/%d", localSubnetGateway, localSubnetMaskLength)
181168

182169
if err := waitForOVS(ovsDialDefaultNetwork, ovsDialDefaultAddress); err != nil {

0 commit comments

Comments
 (0)