mirror of
				https://github.com/optim-enterprises-bv/kubernetes.git
				synced 2025-11-04 04:08:16 +00:00 
			
		
		
		
	Guarantees drop packets commands succeed in reboot test
This commit is contained in:
		@@ -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)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user