mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-29 22:46:12 +00:00
Guarantees drop packets commands succeed in reboot test
This commit is contained in:
parent
23d7615e7f
commit
055a76f005
@ -18,6 +18,7 @@ package e2e
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"strings"
|
||||||
"sync"
|
"sync"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
@ -116,9 +117,7 @@ var _ = framework.KubeDescribe("Reboot [Disruptive] [Feature:Reboot]", func() {
|
|||||||
// We sleep 10 seconds to give some time for ssh command to cleanly finish before starting dropping inbound packets.
|
// We sleep 10 seconds to give some time for ssh command to cleanly finish before starting dropping inbound packets.
|
||||||
// We still accept packages send from localhost to prevent monit from restarting kubelet.
|
// We still accept packages send from localhost to prevent monit from restarting kubelet.
|
||||||
tmpLogPath := "/tmp/drop-inbound.log"
|
tmpLogPath := "/tmp/drop-inbound.log"
|
||||||
testReboot(f.ClientSet, fmt.Sprintf("nohup sh -c 'set -x && sleep 10 && sudo iptables -I INPUT 1 -s 127.0.0.1 -j ACCEPT"+
|
testReboot(f.ClientSet, dropPacketsScript("INPUT", tmpLogPath), catLogHook(tmpLogPath))
|
||||||
" && sudo iptables -I INPUT 2 -j DROP && sudo iptables -t filter -nL INPUT && date && sleep 120 && sudo iptables -t filter -nL INPUT"+
|
|
||||||
" && sudo iptables -D INPUT -j DROP && sudo iptables -D INPUT -s 127.0.0.1 -j ACCEPT' >%v 2>&1 &", tmpLogPath), catLogHook(tmpLogPath))
|
|
||||||
})
|
})
|
||||||
|
|
||||||
It("each node by dropping all outbound packets for a while and ensure they function afterwards", func() {
|
It("each node by dropping all outbound packets for a while and ensure they function afterwards", func() {
|
||||||
@ -126,9 +125,7 @@ var _ = framework.KubeDescribe("Reboot [Disruptive] [Feature:Reboot]", func() {
|
|||||||
// We sleep 10 seconds to give some time for ssh command to cleanly finish before starting dropping outbound packets.
|
// We sleep 10 seconds to give some time for ssh command to cleanly finish before starting dropping outbound packets.
|
||||||
// We still accept packages send to localhost to prevent monit from restarting kubelet.
|
// We still accept packages send to localhost to prevent monit from restarting kubelet.
|
||||||
tmpLogPath := "/tmp/drop-outbound.log"
|
tmpLogPath := "/tmp/drop-outbound.log"
|
||||||
testReboot(f.ClientSet, fmt.Sprintf("nohup sh -c 'set -x && sleep 10 && sudo iptables -I OUTPUT 1 -s 127.0.0.1 -j ACCEPT"+
|
testReboot(f.ClientSet, dropPacketsScript("OUTPUT", tmpLogPath), catLogHook(tmpLogPath))
|
||||||
" && sudo iptables -I OUTPUT 2 -j DROP && sudo iptables -t filter -nL OUTPUT && date && sleep 120 && sudo iptables -t filter -nL OUTPUT"+
|
|
||||||
" && sudo iptables -D OUTPUT -j DROP && sudo iptables -D OUTPUT -s 127.0.0.1 -j ACCEPT' >%v 2>&1 &", tmpLogPath), catLogHook(tmpLogPath))
|
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -303,3 +300,18 @@ func catLogHook(logPath string) terminationHook {
|
|||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func dropPacketsScript(chainName, logPath string) string {
|
||||||
|
return strings.Replace(fmt.Sprintf(`
|
||||||
|
nohup sh -c '
|
||||||
|
set -x
|
||||||
|
sleep 10
|
||||||
|
while true; do sudo iptables -I ${CHAIN} 1 -s 127.0.0.1 -j ACCEPT && break; done
|
||||||
|
while true; do sudo iptables -I ${CHAIN} 2 -j DROP && break; done
|
||||||
|
date
|
||||||
|
sleep 120
|
||||||
|
while true; do sudo iptables -D ${CHAIN} -j DROP && break; done
|
||||||
|
while true; do sudo iptables -D ${CHAIN} -s 127.0.0.1 -j ACCEPT && break; done
|
||||||
|
' >%v 2>&1 &
|
||||||
|
`, logPath), "${CHAIN}", chainName, -1)
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user