mirror of
				https://github.com/optim-enterprises-bv/kubernetes.git
				synced 2025-11-03 19:58:17 +00:00 
			
		
		
		
	proxy/iptables: remove redundant test
We originally had one HealthCheckNodePort test that used assertIPTablesRulesEqual() and one that didn't, but later I went through and made all the tests use assertIPTablesRulesEqual() and didn't notice that this resulted in there now being two nearly-identical HealthCheckNodePort tests.
This commit is contained in:
		@@ -3900,115 +3900,6 @@ func TestEndpointSliceE2E(t *testing.T) {
 | 
			
		||||
	assertIPTablesRulesNotEqual(t, getLine(), expectedIPTablesWithSlice, fp.iptablesData.String())
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func TestHealthCheckNodePortE2E(t *testing.T) {
 | 
			
		||||
	expectedIPTables := dedent.Dedent(`
 | 
			
		||||
		*filter
 | 
			
		||||
		:KUBE-EXTERNAL-SERVICES - [0:0]
 | 
			
		||||
		:KUBE-FORWARD - [0:0]
 | 
			
		||||
		:KUBE-NODEPORTS - [0:0]
 | 
			
		||||
		:KUBE-SERVICES - [0:0]
 | 
			
		||||
		-A KUBE-NODEPORTS -m comment --comment "ns1/svc1 health check node port" -m tcp -p tcp --dport 30000 -j ACCEPT
 | 
			
		||||
		-A KUBE-FORWARD -m conntrack --ctstate INVALID -j DROP
 | 
			
		||||
		-A KUBE-FORWARD -m comment --comment "kubernetes forwarding rules" -m mark --mark 0x4000/0x4000 -j ACCEPT
 | 
			
		||||
		-A KUBE-FORWARD -m comment --comment "kubernetes forwarding conntrack rule" -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
 | 
			
		||||
		COMMIT
 | 
			
		||||
		*nat
 | 
			
		||||
		:KUBE-EXT-AQI2S6QIMU7PVVRP - [0:0]
 | 
			
		||||
		:KUBE-MARK-MASQ - [0:0]
 | 
			
		||||
		:KUBE-NODEPORTS - [0:0]
 | 
			
		||||
		:KUBE-POSTROUTING - [0:0]
 | 
			
		||||
		:KUBE-SEP-3JOIVZTXZZRGORX4 - [0:0]
 | 
			
		||||
		:KUBE-SEP-IO5XOSKPAXIFQXAJ - [0:0]
 | 
			
		||||
		:KUBE-SEP-XGJFVO3L2O5SRFNT - [0:0]
 | 
			
		||||
		:KUBE-SERVICES - [0:0]
 | 
			
		||||
		:KUBE-SVC-AQI2S6QIMU7PVVRP - [0:0]
 | 
			
		||||
		:KUBE-SVL-AQI2S6QIMU7PVVRP - [0:0]
 | 
			
		||||
		-A KUBE-NODEPORTS -m comment --comment ns1/svc1 -m tcp -p tcp --dport 30010 -j KUBE-EXT-AQI2S6QIMU7PVVRP
 | 
			
		||||
		-A KUBE-SERVICES -m comment --comment "kubernetes service nodeports; NOTE: this must be the last rule in this chain" -m addrtype --dst-type LOCAL -j KUBE-NODEPORTS
 | 
			
		||||
		-A KUBE-SERVICES -m comment --comment "ns1/svc1 cluster IP" -m tcp -p tcp -d 172.30.1.1 --dport 0 -j KUBE-SVC-AQI2S6QIMU7PVVRP
 | 
			
		||||
		-A KUBE-EXT-AQI2S6QIMU7PVVRP -m comment --comment "pod traffic for ns1/svc1 external destinations" -s 10.0.0.0/8 -j KUBE-SVC-AQI2S6QIMU7PVVRP
 | 
			
		||||
		-A KUBE-EXT-AQI2S6QIMU7PVVRP -m comment --comment "masquerade LOCAL traffic for ns1/svc1 external destinations" -m addrtype --src-type LOCAL -j KUBE-MARK-MASQ
 | 
			
		||||
		-A KUBE-EXT-AQI2S6QIMU7PVVRP -m comment --comment "route LOCAL traffic for ns1/svc1 external destinations" -m addrtype --src-type LOCAL -j KUBE-SVC-AQI2S6QIMU7PVVRP
 | 
			
		||||
		-A KUBE-EXT-AQI2S6QIMU7PVVRP -j KUBE-SVL-AQI2S6QIMU7PVVRP
 | 
			
		||||
		-A KUBE-MARK-MASQ -j MARK --or-mark 0x4000
 | 
			
		||||
		-A KUBE-POSTROUTING -m mark ! --mark 0x4000/0x4000 -j RETURN
 | 
			
		||||
		-A KUBE-POSTROUTING -j MARK --xor-mark 0x4000
 | 
			
		||||
		-A KUBE-POSTROUTING -m comment --comment "kubernetes service traffic requiring SNAT" -j MASQUERADE
 | 
			
		||||
		-A KUBE-SEP-3JOIVZTXZZRGORX4 -m comment --comment ns1/svc1 -s 10.0.1.1 -j KUBE-MARK-MASQ
 | 
			
		||||
		-A KUBE-SEP-3JOIVZTXZZRGORX4 -m comment --comment ns1/svc1 -m tcp -p tcp -j DNAT --to-destination 10.0.1.1:80
 | 
			
		||||
		-A KUBE-SEP-IO5XOSKPAXIFQXAJ -m comment --comment ns1/svc1 -s 10.0.1.2 -j KUBE-MARK-MASQ
 | 
			
		||||
		-A KUBE-SEP-IO5XOSKPAXIFQXAJ -m comment --comment ns1/svc1 -m tcp -p tcp -j DNAT --to-destination 10.0.1.2:80
 | 
			
		||||
		-A KUBE-SEP-XGJFVO3L2O5SRFNT -m comment --comment ns1/svc1 -s 10.0.1.3 -j KUBE-MARK-MASQ
 | 
			
		||||
		-A KUBE-SEP-XGJFVO3L2O5SRFNT -m comment --comment ns1/svc1 -m tcp -p tcp -j DNAT --to-destination 10.0.1.3:80
 | 
			
		||||
		-A KUBE-SVC-AQI2S6QIMU7PVVRP -m comment --comment "ns1/svc1 cluster IP" -m tcp -p tcp -d 172.30.1.1 --dport 0 ! -s 10.0.0.0/8 -j KUBE-MARK-MASQ
 | 
			
		||||
		-A KUBE-SVC-AQI2S6QIMU7PVVRP -m comment --comment "ns1/svc1 -> 10.0.1.1:80" -m statistic --mode random --probability 0.3333333333 -j KUBE-SEP-3JOIVZTXZZRGORX4
 | 
			
		||||
		-A KUBE-SVC-AQI2S6QIMU7PVVRP -m comment --comment "ns1/svc1 -> 10.0.1.2:80" -m statistic --mode random --probability 0.5000000000 -j KUBE-SEP-IO5XOSKPAXIFQXAJ
 | 
			
		||||
		-A KUBE-SVC-AQI2S6QIMU7PVVRP -m comment --comment "ns1/svc1 -> 10.0.1.3:80" -j KUBE-SEP-XGJFVO3L2O5SRFNT
 | 
			
		||||
		-A KUBE-SVL-AQI2S6QIMU7PVVRP -m comment --comment "ns1/svc1 -> 10.0.1.1:80" -j KUBE-SEP-3JOIVZTXZZRGORX4
 | 
			
		||||
		COMMIT
 | 
			
		||||
		`)
 | 
			
		||||
 | 
			
		||||
	ipt := iptablestest.NewFake()
 | 
			
		||||
	fp := NewFakeProxier(ipt)
 | 
			
		||||
	fp.OnServiceSynced()
 | 
			
		||||
	fp.OnEndpointSlicesSynced()
 | 
			
		||||
 | 
			
		||||
	serviceName := "svc1"
 | 
			
		||||
	namespaceName := "ns1"
 | 
			
		||||
 | 
			
		||||
	svc := &v1.Service{
 | 
			
		||||
		ObjectMeta: metav1.ObjectMeta{Name: serviceName, Namespace: namespaceName},
 | 
			
		||||
		Spec: v1.ServiceSpec{
 | 
			
		||||
			ClusterIP:             "172.30.1.1",
 | 
			
		||||
			Selector:              map[string]string{"foo": "bar"},
 | 
			
		||||
			Ports:                 []v1.ServicePort{{Name: "", TargetPort: intstr.FromInt(80), NodePort: 30010, Protocol: v1.ProtocolTCP}},
 | 
			
		||||
			Type:                  "LoadBalancer",
 | 
			
		||||
			HealthCheckNodePort:   30000,
 | 
			
		||||
			ExternalTrafficPolicy: v1.ServiceExternalTrafficPolicyTypeLocal,
 | 
			
		||||
		},
 | 
			
		||||
	}
 | 
			
		||||
	fp.OnServiceAdd(svc)
 | 
			
		||||
 | 
			
		||||
	tcpProtocol := v1.ProtocolTCP
 | 
			
		||||
	endpointSlice := &discovery.EndpointSlice{
 | 
			
		||||
		ObjectMeta: metav1.ObjectMeta{
 | 
			
		||||
			Name:      fmt.Sprintf("%s-1", serviceName),
 | 
			
		||||
			Namespace: namespaceName,
 | 
			
		||||
			Labels:    map[string]string{discovery.LabelServiceName: serviceName},
 | 
			
		||||
		},
 | 
			
		||||
		Ports: []discovery.EndpointPort{{
 | 
			
		||||
			Name:     utilpointer.StringPtr(""),
 | 
			
		||||
			Port:     utilpointer.Int32Ptr(80),
 | 
			
		||||
			Protocol: &tcpProtocol,
 | 
			
		||||
		}},
 | 
			
		||||
		AddressType: discovery.AddressTypeIPv4,
 | 
			
		||||
		Endpoints: []discovery.Endpoint{{
 | 
			
		||||
			Addresses:  []string{"10.0.1.1"},
 | 
			
		||||
			Conditions: discovery.EndpointConditions{Ready: utilpointer.BoolPtr(true)},
 | 
			
		||||
			NodeName:   utilpointer.StringPtr(testHostname),
 | 
			
		||||
		}, {
 | 
			
		||||
			Addresses:  []string{"10.0.1.2"},
 | 
			
		||||
			Conditions: discovery.EndpointConditions{Ready: utilpointer.BoolPtr(true)},
 | 
			
		||||
			NodeName:   utilpointer.StringPtr("node2"),
 | 
			
		||||
		}, {
 | 
			
		||||
			Addresses:  []string{"10.0.1.3"},
 | 
			
		||||
			Conditions: discovery.EndpointConditions{Ready: utilpointer.BoolPtr(true)},
 | 
			
		||||
			NodeName:   utilpointer.StringPtr("node3"),
 | 
			
		||||
		}, {
 | 
			
		||||
			Addresses:  []string{"10.0.1.4"},
 | 
			
		||||
			Conditions: discovery.EndpointConditions{Ready: utilpointer.BoolPtr(false)},
 | 
			
		||||
			NodeName:   utilpointer.StringPtr("node4"),
 | 
			
		||||
		}},
 | 
			
		||||
	}
 | 
			
		||||
	fp.OnEndpointSliceAdd(endpointSlice)
 | 
			
		||||
	fp.syncProxyRules()
 | 
			
		||||
	assertIPTablesRulesEqual(t, getLine(), expectedIPTables, fp.iptablesData.String())
 | 
			
		||||
 | 
			
		||||
	fp.OnServiceDelete(svc)
 | 
			
		||||
	fp.syncProxyRules()
 | 
			
		||||
	assertIPTablesRulesNotEqual(t, getLine(), expectedIPTables, fp.iptablesData.String())
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// TestHealthCheckNodePortWhenTerminating tests that health check node ports are not enabled when all local endpoints are terminating
 | 
			
		||||
func TestHealthCheckNodePortWhenTerminating(t *testing.T) {
 | 
			
		||||
	ipt := iptablestest.NewFake()
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user