From 38a693b56e91825d2139bd66c1a4f614bc976531 Mon Sep 17 00:00:00 2001 From: shireenf-ibm Date: Wed, 18 Sep 2024 15:33:19 +0300 Subject: [PATCH 1/6] bug fix and tests --- pkg/netpol/connlist/connlist.go | 9 +- pkg/netpol/connlist/connlist_test.go | 18 ++++ .../ingressanalyzer/ingress_analyzer.go | 5 +- pkg/netpol/eval/internal/k8s/netpol.go | 74 +++++++++------ pkg/netpol/eval/internal/k8s/netpol_test.go | 4 +- pkg/netpol/eval/internal/k8s/pod.go | 24 +++-- pkg/netpol/eval/resources.go | 10 +- pkg/netpol/internal/common/connection.go | 4 + pkg/netpol/internal/common/connectionset.go | 27 ++++-- ...nmatched_named_ports_2_exposure_output.csv | 10 ++ ...nmatched_named_ports_2_exposure_output.dot | 13 +++ ...ched_named_ports_2_exposure_output.dot.png | Bin 0 -> 19314 bytes ...ched_named_ports_2_exposure_output.dot.svg | 56 ++++++++++++ ...matched_named_ports_2_exposure_output.json | 30 ++++++ ...unmatched_named_ports_2_exposure_output.md | 14 +++ ...nmatched_named_ports_2_exposure_output.txt | 12 +++ ..._unmatched_named_ports_exposure_output.csv | 10 ++ ..._unmatched_named_ports_exposure_output.dot | 13 +++ ...atched_named_ports_exposure_output.dot.png | Bin 0 -> 19775 bytes ...atched_named_ports_exposure_output.dot.svg | 56 ++++++++++++ ...unmatched_named_ports_exposure_output.json | 30 ++++++ ...d_unmatched_named_ports_exposure_output.md | 14 +++ ..._unmatched_named_ports_exposure_output.txt | 12 +++ ...tpol_named_port_test_2_connlist_output.txt | 3 + ...netpol_named_port_test_connlist_output.txt | 3 + ...d_ports_changed_netpol_connlist_output.txt | 84 +++++++++++++++++ .../test_with_named_ports_connlist_output.txt | 84 +++++++++++++++++ ...anged_netpol_and_test_with_named_ports.txt | 86 +++++++++++++++++- .../namespace_and_deployments.yaml | 34 +++++++ .../policy.yaml | 18 ++++ .../namespace_and_deployments.yaml | 34 +++++++ .../policy.yaml | 18 ++++ tests/netpol_named_port_test/netpol.yaml | 18 ++++ tests/netpol_named_port_test/pods.yaml | 59 ++++++++++++ tests/netpol_named_port_test_2/netpol.yaml | 24 +++++ tests/netpol_named_port_test_2/pods.yaml | 63 +++++++++++++ 36 files changed, 917 insertions(+), 56 deletions(-) create mode 100644 test_outputs/connlist/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_2_exposure_output.csv create mode 100644 test_outputs/connlist/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_2_exposure_output.dot create mode 100644 test_outputs/connlist/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_2_exposure_output.dot.png create mode 100644 test_outputs/connlist/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_2_exposure_output.dot.svg create mode 100644 test_outputs/connlist/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_2_exposure_output.json create mode 100644 test_outputs/connlist/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_2_exposure_output.md create mode 100644 test_outputs/connlist/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_2_exposure_output.txt create mode 100644 test_outputs/connlist/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_exposure_output.csv create mode 100644 test_outputs/connlist/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_exposure_output.dot create mode 100644 test_outputs/connlist/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_exposure_output.dot.png create mode 100644 test_outputs/connlist/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_exposure_output.dot.svg create mode 100644 test_outputs/connlist/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_exposure_output.json create mode 100644 test_outputs/connlist/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_exposure_output.md create mode 100644 test_outputs/connlist/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_exposure_output.txt create mode 100644 test_outputs/connlist/netpol_named_port_test_2_connlist_output.txt create mode 100644 test_outputs/connlist/netpol_named_port_test_connlist_output.txt create mode 100644 tests/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports/namespace_and_deployments.yaml create mode 100644 tests/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports/policy.yaml create mode 100644 tests/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_2/namespace_and_deployments.yaml create mode 100644 tests/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_2/policy.yaml create mode 100644 tests/netpol_named_port_test/netpol.yaml create mode 100644 tests/netpol_named_port_test/pods.yaml create mode 100644 tests/netpol_named_port_test_2/netpol.yaml create mode 100644 tests/netpol_named_port_test_2/pods.yaml diff --git a/pkg/netpol/connlist/connlist.go b/pkg/netpol/connlist/connlist.go index 151f4ecf..d32aab82 100644 --- a/pkg/netpol/connlist/connlist.go +++ b/pkg/netpol/connlist/connlist.go @@ -36,6 +36,7 @@ import ( "github.com/np-guard/netpol-analyzer/pkg/netpol/internal/common" utilerrors "k8s.io/apimachinery/pkg/util/errors" + "k8s.io/apimachinery/pkg/util/intstr" ) // A ConnlistAnalyzer provides API to recursively scan a directory for Kubernetes resources including network policies, @@ -349,8 +350,12 @@ func GetConnectionSetFromP2PConnection(c Peer2PeerConnection) *common.Connection protocolsToPortSetMap := make(map[v1.Protocol]*common.PortSet, len(c.ProtocolsAndPorts())) for protocol, portRageArr := range c.ProtocolsAndPorts() { protocolsToPortSetMap[protocol] = common.MakePortSet(false) - for _, p := range portRageArr { - protocolsToPortSetMap[protocol].AddPortRange(p.Start(), p.End()) + for _, p := range portRageArr { // each single port range may contain either named port or an interval of start and end numbers + if p.NamedPort() != "" { + protocolsToPortSetMap[protocol].AddPort(intstr.FromString(p.NamedPort())) + } else { + protocolsToPortSetMap[protocol].AddPortRange(p.Start(), p.End()) + } } } connectionSet := &common.ConnectionSet{AllowAll: c.AllProtocolsAndPorts(), AllowedProtocols: protocolsToPortSetMap} diff --git a/pkg/netpol/connlist/connlist_test.go b/pkg/netpol/connlist/connlist_test.go index bcd62b6d..0485f95c 100644 --- a/pkg/netpol/connlist/connlist_test.go +++ b/pkg/netpol/connlist/connlist_test.go @@ -840,6 +840,16 @@ var goodPathTests = []struct { exposureAnalysis: true, outputFormats: ValidFormats, }, + { + testDirName: "exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports", + exposureAnalysis: true, + outputFormats: ValidFormats, + }, + { + testDirName: "exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_2", + exposureAnalysis: true, + outputFormats: ValidFormats, + }, { testDirName: "exposure_test_egress_with_named_port", exposureAnalysis: true, @@ -1124,4 +1134,12 @@ var goodPathTests = []struct { exposureAnalysis: true, outputFormats: []string{output.DefaultFormat}, }, + { + testDirName: "netpol_named_port_test", + outputFormats: []string{output.DefaultFormat}, + }, + { + testDirName: "netpol_named_port_test_2", + outputFormats: []string{output.DefaultFormat}, + }, } diff --git a/pkg/netpol/connlist/internal/ingressanalyzer/ingress_analyzer.go b/pkg/netpol/connlist/internal/ingressanalyzer/ingress_analyzer.go index b91da61b..de158c3e 100644 --- a/pkg/netpol/connlist/internal/ingressanalyzer/ingress_analyzer.go +++ b/pkg/netpol/connlist/internal/ingressanalyzer/ingress_analyzer.go @@ -360,11 +360,12 @@ func (ia *IngressAnalyzer) getIngressPeerConnection(peer eval.Peer, actualServic for _, peerPortToFind := range peerPortsToFind { portNum := peerPortToFind.IntValue() if peerPortToFind.StrVal != "" { // if the port we are searching for is namedPort - portInt, err := ia.pe.ConvertPeerNamedPort(peerPortToFind.StrVal, peer) + protocol, portInt, err := ia.pe.ConvertPeerNamedPort(peerPortToFind.StrVal, peer) if err != nil { return nil, err } - if portInt < 0 { // no matching port for the given named port + // only TCP ports are acceptable + if protocol != string(corev1.ProtocolTCP) || portInt < 0 { // no matching port for the given named port continue } portNum = int(portInt) diff --git a/pkg/netpol/eval/internal/k8s/netpol.go b/pkg/netpol/eval/internal/k8s/netpol.go index 9ed14609..3a3b8d54 100644 --- a/pkg/netpol/eval/internal/k8s/netpol.go +++ b/pkg/netpol/eval/internal/k8s/netpol.go @@ -72,34 +72,41 @@ func getProtocolStr(p *v1.Protocol) string { return string(*p) } -func (np *NetworkPolicy) convertNamedPort(namedPort string, pod *Pod) int32 { - return pod.ConvertPodNamedPort(namedPort) -} - -// getPortsRange returns the start and end port numbers given input port, endPort and dest peer -// and the portName if it is a named port -// if input port is a named port, and the dst peer is nil or does not have a matching named port defined, return -// an empty range represented by (-1,-1) -func (np *NetworkPolicy) getPortsRange(port *intstr.IntOrString, endPort *int32, dst Peer) (startNum, endNum int32, - namedPort string, err error) { - var start, end int32 - portName := "" - if port.Type == intstr.String { +// getPortsRange given a rule port and dest peer, returns: the start and end port numbers, +// or the port name if it is a named port +// if input port is a named port, and the dst peer is nil or does not have a matching named port defined, returns +// an empty range represented by (-1,-1) with the named port string +func (np *NetworkPolicy) getPortsRange(rulePort netv1.NetworkPolicyPort, dst Peer) (start, end int32, + portName string, err error) { + if rulePort.Port.Type == intstr.String { // rule.Port is namedPort + ruleProtocol := getProtocolStr(rulePort.Protocol) + portName = rulePort.Port.StrVal if dst == nil { - return common.NoPort, common.NoPort, port.StrVal, nil + // dst is nil, so the namedPort can not be converted, return string port name + return common.NoPort, common.NoPort, portName, nil } if dst.PeerType() != PodType { + // namedPort is not defined for IP-blocks return start, end, "", np.netpolErr(netpolerrors.NamedPortErrTitle, netpolerrors.ConvertNamedPortErrStr) } - portName = port.StrVal - portNum := np.convertNamedPort(portName, dst.GetPeerPod()) - start = portNum - end = portNum - } else { - start = port.IntVal + podProtocol, podPortNum := dst.GetPeerPod().ConvertPodNamedPort(portName) + if podProtocol == "" && podPortNum == common.NoPort { + // there is no match for the namedPort in the configuration of the pod, return the portName string as "ports range" + return common.NoPort, common.NoPort, portName, nil + } + if podProtocol != ruleProtocol { + // the pod has a matching namedPort, but not on same protocol as the rule's protocol; so it can not be converted, + // return the string named-port as the "ports range" + return common.NoPort, common.NoPort, portName, nil + } + // else, found match for the rule's named-port in the pod's ports, so it may be converted to port number + start = podPortNum + end = podPortNum + } else { // rule.Port is number + start = rulePort.Port.IntVal end = start - if endPort != nil { - end = *endPort + if rulePort.EndPort != nil { + end = *rulePort.EndPort } } return start, end, portName, nil @@ -124,21 +131,28 @@ func (np *NetworkPolicy) ruleConnections(rulePorts []netv1.NetworkPolicyPort, ds if rulePorts[i].Port == nil { ports = common.MakePortSet(true) } else { - startPort, endPort, portName, err := np.getPortsRange(rulePorts[i].Port, rulePorts[i].EndPort, dst) + startPort, endPort, portName, err := np.getPortsRange(rulePorts[i], dst) if err != nil { return res, err } - if (dst == nil || isPeerRepresentative(dst)) && portName != "" { + // valid returned values from `getsPortsRange` : + // 1. empty-numbered-range with the string namedPort, if the rule has a named-port which is not (or cannot be) converted to a + // numbered-range by the dst's ports, + // 2. non empty-range when the rule ports are numbered or the named-port was converted + if isEmptyPortRange(startPort, endPort) && portName != "" { // (1) && portName != "" may be eliminated // this func may be called: - // - for computing cluster-wide exposure of the policy (dst is nil); - // - in-order to get a connection from a real workload to a representative dst. - // - in order to get a connection from any pod to a real dst or an ip dst (will not get to this if) + // 1- for computing cluster-wide exposure of the policy (dst is nil); + // 2- in-order to get a connection from a real workload to a representative dst. // in both first cases, we can't convert the named port to its number, like when dst peer is a real // pod from manifests, so we use the named-port as is. + // 3- in order to get a connection from any pod to a real dst. + // in the third case the namedPort of the policy rule may not have a match in the Pod's configuration, + // so it will be used as the ports-range of the connection + // 4- in order to get a connection from any pod to an ip dst (will not get here, as named ports are not defined for ip-blocks) + // adding portName string to the portSet ports.AddPort(intstr.FromString(portName)) - } - if !isEmptyPortRange(startPort, endPort) { + } else if !isEmptyPortRange(startPort, endPort) { // the else case (2); ports.AddPortRange(int64(startPort), int64(endPort)) } } @@ -167,7 +181,7 @@ func (np *NetworkPolicy) ruleConnsContain(rulePorts []netv1.NetworkPolicyPort, p if rulePorts[i].Port == nil { // If this field is not provided, this matches all port names and numbers. return true, nil } - startPort, endPort, _, err := np.getPortsRange(rulePorts[i].Port, rulePorts[i].EndPort, dst) + startPort, endPort, _, err := np.getPortsRange(rulePorts[i], dst) if err != nil { return false, err } diff --git a/pkg/netpol/eval/internal/k8s/netpol_test.go b/pkg/netpol/eval/internal/k8s/netpol_test.go index 69a28b8f..2c2b958c 100644 --- a/pkg/netpol/eval/internal/k8s/netpol_test.go +++ b/pkg/netpol/eval/internal/k8s/netpol_test.go @@ -87,14 +87,14 @@ var ( func TestNetworkPolicyPortAnalysis(t *testing.T) { // tested function: func ruleConnections(rulePorts []netv1.NetworkPolicyPort, dst Peer) ConnectionSet dst := PodPeer{Pod: &Pod{Name: "A", Namespace: "default"}} - dst.Pod.Ports = []v1.ContainerPort{{Name: PortHello.StrVal, ContainerPort: 22}} + dst.Pod.Ports = []v1.ContainerPort{{Name: PortHello.StrVal, ContainerPort: 22}} // default protocol is TCP var AllowNamedPortOnProtocol = netv1.NetworkPolicyPort{ Protocol: &UDP, Port: &PortHello, } n := &NetworkPolicy{} res, err := n.ruleConnections([]netv1.NetworkPolicyPort{AllowNamedPortOnProtocol}, &dst) - expectedConnStr := "UDP 22" + expectedConnStr := "UDP hello" // UDP protocol with hello namedPort is a mismatch for the pod port which is TCP hello (which is TCP 22) if res.String() != expectedConnStr { t.Fatalf("mismatch on ruleConnections result: expected %v, got %v", expectedConnStr, res.String()) } diff --git a/pkg/netpol/eval/internal/k8s/pod.go b/pkg/netpol/eval/internal/k8s/pod.go index 7ba4a3d5..d84d93e0 100644 --- a/pkg/netpol/eval/internal/k8s/pod.go +++ b/pkg/netpol/eval/internal/k8s/pod.go @@ -277,16 +277,20 @@ func (pod *Pod) PodExposedTCPConnections() *common.ConnectionSet { return res } -// ConvertPodNamedPort returns the ContainerPort number that matches the named port -// if there is no match, returns -1 +// ConvertPodNamedPort returns the ContainerPort's protocol and number that matches the named port +// if there is no match, returns empty string for protocol and -1 for number // namedPort is unique within the pod -func (pod *Pod) ConvertPodNamedPort(namedPort string) int32 { +func (pod *Pod) ConvertPodNamedPort(namedPort string) (protocol string, portNum int32) { for _, containerPort := range pod.Ports { - if namedPort == containerPort.Name { - return containerPort.ContainerPort + if namedPort == containerPort.Name { // found + if containerPort.Protocol == "" { + // found the named port with unspecified protocol this means "TCP" protocol (default) + return string(corev1.ProtocolTCP), containerPort.ContainerPort + } + return string(containerPort.Protocol), containerPort.ContainerPort } } - return common.NoPort + return "", common.NoPort } // updatePodXgressExposureToEntireClusterData updates the pods' fields which are related to entire class exposure on ingress/egress @@ -313,11 +317,13 @@ func (pod *Pod) checkAndConvertNamedPortsInConnection(conns *common.ConnectionSe return nil } // else - found named ports connsCopy := conns.Copy() // copying the connectionSet; in order to replace - // the named ports with pod's port numbers + // the named ports with pod's port numbers if possible for protocol, namedPorts := range connNamedPorts { for _, namedPort := range namedPorts { - portNum := pod.ConvertPodNamedPort(namedPort) - connsCopy.ReplaceNamedPortWithMatchingPortNum(protocol, namedPort, portNum) + podProtocol, portNum := pod.ConvertPodNamedPort(namedPort) + if podProtocol == string(protocol) && portNum != common.NoPort { // matching port and protocol + connsCopy.ReplaceNamedPortWithMatchingPortNum(protocol, namedPort, portNum) + } } } return connsCopy diff --git a/pkg/netpol/eval/resources.go b/pkg/netpol/eval/resources.go index d7141bae..f0cfcd57 100644 --- a/pkg/netpol/eval/resources.go +++ b/pkg/netpol/eval/resources.go @@ -579,14 +579,16 @@ func (pe *PolicyEngine) GetSelectedPeers(selectors labels.Selector, namespace st // ConvertPeerNamedPort returns the peer.pod.containerPort matching the named port of the peer // if there is no match for the input named port, return -1 -func (pe *PolicyEngine) ConvertPeerNamedPort(namedPort string, peer Peer) (int32, error) { +func (pe *PolicyEngine) ConvertPeerNamedPort(namedPort string, peer Peer) (protocol string, portNum int32, err error) { switch currentPeer := peer.(type) { case *k8s.WorkloadPeer: - return currentPeer.Pod.ConvertPodNamedPort(namedPort), nil + protocol, portNum := currentPeer.Pod.ConvertPodNamedPort(namedPort) + return protocol, portNum, nil case *k8s.PodPeer: - return currentPeer.Pod.ConvertPodNamedPort(namedPort), nil + protocol, portNum := currentPeer.Pod.ConvertPodNamedPort(namedPort) + return protocol, portNum, nil default: - return 0, errors.New("peer type does not have ports") // should not get here + return "", 0, errors.New("peer type does not have ports") // should not get here } } diff --git a/pkg/netpol/internal/common/connection.go b/pkg/netpol/internal/common/connection.go index b4544bb9..9672c47c 100644 --- a/pkg/netpol/internal/common/connection.go +++ b/pkg/netpol/internal/common/connection.go @@ -22,11 +22,15 @@ type Connection interface { // PortRange describes a port or a range of ports for allowed traffic // If start port equals end port, it represents a single port +// If NamedPort is known but input resources does not give hint for its matching port number, then port-name represents the PortRange type PortRange interface { // Start is the start port Start() int64 // End is the end port End() int64 + // NamedPort is the name of the port + // NamedPort is used when the Start() and End() of the port are unknown + NamedPort() string // String returns a string representation of the PortRange object String() string } diff --git a/pkg/netpol/internal/common/connectionset.go b/pkg/netpol/internal/common/connectionset.go index 183e2f6f..73db9426 100644 --- a/pkg/netpol/internal/common/connectionset.go +++ b/pkg/netpol/internal/common/connectionset.go @@ -237,33 +237,47 @@ func (conn *ConnectionSet) ReplaceNamedPortWithMatchingPortNum(protocol v1.Proto } // portRange implements the PortRange interface +// a port range may be represented by a single interval (start-end) or by a single named-port type portRange struct { - Interval interval.Interval + interval interval.Interval + portName string // not empty iff interval is empty } func (p *portRange) Start() int64 { - return p.Interval.Start() + return p.interval.Start() } func (p *portRange) End() int64 { - return p.Interval.End() + return p.interval.End() +} + +func (p *portRange) NamedPort() string { + return p.portName } func (p *portRange) String() string { - if p.Interval.End() != p.Interval.Start() { + if p.NamedPort() != "" { + return p.NamedPort() + } + if p.interval.End() != p.interval.Start() { return fmt.Sprintf("%d-%d", p.Start(), p.End()) } return fmt.Sprintf("%d", p.Start()) } -// ProtocolsAndPortsMap() returns a map from allowed protocol to list of allowed ports ranges. +// ProtocolsAndPortsMap() returns a map from allowed protocol to list of allowed ports. func (conn *ConnectionSet) ProtocolsAndPortsMap() map[v1.Protocol][]PortRange { res := make(map[v1.Protocol][]PortRange, 0) for protocol, portSet := range conn.AllowedProtocols { res[protocol] = make([]PortRange, 0) // TODO: consider leave the slice of ports empty if portSet covers the full range for _, v := range portSet.Ports.Intervals() { - res[protocol] = append(res[protocol], &portRange{Interval: v}) + res[protocol] = append(res[protocol], &portRange{interval: v}) + } + for k := range portSet.NamedPorts { + if portSet.NamedPorts[k] { // if true + res[protocol] = append(res[protocol], &portRange{portName: k}) + } } } return res @@ -305,6 +319,7 @@ func portsString(ports []PortRange) string { for i := range ports { portsStr[i] = ports[i].String() } + sort.Strings(portsStr) return strings.Join(portsStr, connsAndPortRangeSeparator) } diff --git a/test_outputs/connlist/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_2_exposure_output.csv b/test_outputs/connlist/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_2_exposure_output.csv new file mode 100644 index 00000000..d6f9e646 --- /dev/null +++ b/test_outputs/connlist/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_2_exposure_output.csv @@ -0,0 +1,10 @@ +src,dst,conn +hello-world/workload-a[Deployment],0.0.0.0-255.255.255.255,All Connections +Exposure Analysis Result:,, +Egress Exposure:,, +src,dst,conn +hello-world/workload-a[Deployment],0.0.0.0-255.255.255.255,All Connections +hello-world/workload-a[Deployment],entire-cluster,All Connections +Ingress Exposure:,, +dst,src,conn +hello-world/workload-a[Deployment],entire-cluster,"TCP 8000,UDP http" diff --git a/test_outputs/connlist/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_2_exposure_output.dot b/test_outputs/connlist/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_2_exposure_output.dot new file mode 100644 index 00000000..6a055046 --- /dev/null +++ b/test_outputs/connlist/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_2_exposure_output.dot @@ -0,0 +1,13 @@ +digraph { + subgraph "cluster_hello_world" { + color="black" + fontcolor="black" + "hello-world/workload-a[Deployment]" [label="workload-a[Deployment]" color="blue" fontcolor="blue"] + label="hello-world" + } + "0.0.0.0-255.255.255.255" [label="0.0.0.0-255.255.255.255" color="red2" fontcolor="red2"] + "entire-cluster" [label="entire-cluster" color="red2" fontcolor="red2" shape=diamond] + "entire-cluster" -> "hello-world/workload-a[Deployment]" [label="TCP 8000,UDP http" color="darkorange2" fontcolor="darkgreen" weight=1 style=dashed] + "hello-world/workload-a[Deployment]" -> "0.0.0.0-255.255.255.255" [label="All Connections" color="gold2" fontcolor="darkgreen" weight=1] + "hello-world/workload-a[Deployment]" -> "entire-cluster" [label="All Connections" color="darkorange4" fontcolor="darkgreen" weight=0.5 style=dashed] +} \ No newline at end of file diff --git a/test_outputs/connlist/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_2_exposure_output.dot.png b/test_outputs/connlist/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_2_exposure_output.dot.png new file mode 100644 index 0000000000000000000000000000000000000000..1d206a8ef4ea79db0aef86061cffca61aa8b379c GIT binary patch literal 19314 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 + + + + + + + +cluster_hello_world + +hello-world + + + +hello-world/workload-a[Deployment] + +workload-a[Deployment] + + + +0.0.0.0-255.255.255.255 + +0.0.0.0-255.255.255.255 + + + +hello-world/workload-a[Deployment]->0.0.0.0-255.255.255.255 + + +All Connections + + + +entire-cluster + +entire-cluster + + + +hello-world/workload-a[Deployment]->entire-cluster + + +All Connections + + + +entire-cluster->hello-world/workload-a[Deployment] + + +TCP 8000,UDP http + + + diff --git a/test_outputs/connlist/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_2_exposure_output.json b/test_outputs/connlist/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_2_exposure_output.json new file mode 100644 index 00000000..418800ea --- /dev/null +++ b/test_outputs/connlist/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_2_exposure_output.json @@ -0,0 +1,30 @@ +{ + "connlist_results": [ + { + "src": "hello-world/workload-a[Deployment]", + "dst": "0.0.0.0-255.255.255.255", + "conn": "All Connections" + } + ], + "exposure_results": { + "egress_exposure": [ + { + "src": "hello-world/workload-a[Deployment]", + "dst": "0.0.0.0-255.255.255.255", + "conn": "All Connections" + }, + { + "src": "hello-world/workload-a[Deployment]", + "dst": "entire-cluster", + "conn": "All Connections" + } + ], + "ingress_exposure": [ + { + "src": "entire-cluster", + "dst": "hello-world/workload-a[Deployment]", + "conn": "TCP 8000,UDP http" + } + ] + } +} \ No newline at end of file diff --git a/test_outputs/connlist/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_2_exposure_output.md b/test_outputs/connlist/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_2_exposure_output.md new file mode 100644 index 00000000..a5db45e9 --- /dev/null +++ b/test_outputs/connlist/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_2_exposure_output.md @@ -0,0 +1,14 @@ +| src | dst | conn | +|-----|-----|------| +| hello-world/workload-a[Deployment] | 0.0.0.0-255.255.255.255 | All Connections | +## Exposure Analysis Result: +### Egress Exposure: +| src | dst | conn | +|-----|-----|------| +| hello-world/workload-a[Deployment] | 0.0.0.0-255.255.255.255 | All Connections | +| hello-world/workload-a[Deployment] | entire-cluster | All Connections | + +### Ingress Exposure: +| dst | src | conn | +|-----|-----|------| +| hello-world/workload-a[Deployment] | entire-cluster | TCP 8000,UDP http | diff --git a/test_outputs/connlist/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_2_exposure_output.txt b/test_outputs/connlist/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_2_exposure_output.txt new file mode 100644 index 00000000..4e481a88 --- /dev/null +++ b/test_outputs/connlist/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_2_exposure_output.txt @@ -0,0 +1,12 @@ +hello-world/workload-a[Deployment] => 0.0.0.0-255.255.255.255 : All Connections + +Exposure Analysis Result: +Egress Exposure: +hello-world/workload-a[Deployment] => 0.0.0.0-255.255.255.255 : All Connections +hello-world/workload-a[Deployment] => entire-cluster : All Connections + +Ingress Exposure: +hello-world/workload-a[Deployment] <= entire-cluster : TCP 8000,UDP http + +Workloads not protected by network policies: +hello-world/workload-a[Deployment] is not protected on Egress diff --git a/test_outputs/connlist/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_exposure_output.csv b/test_outputs/connlist/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_exposure_output.csv new file mode 100644 index 00000000..fbb857c9 --- /dev/null +++ b/test_outputs/connlist/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_exposure_output.csv @@ -0,0 +1,10 @@ +src,dst,conn +hello-world/workload-a[Deployment],0.0.0.0-255.255.255.255,All Connections +Exposure Analysis Result:,, +Egress Exposure:,, +src,dst,conn +hello-world/workload-a[Deployment],0.0.0.0-255.255.255.255,All Connections +hello-world/workload-a[Deployment],entire-cluster,All Connections +Ingress Exposure:,, +dst,src,conn +hello-world/workload-a[Deployment],entire-cluster,"TCP 8000,8090,new-port" diff --git a/test_outputs/connlist/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_exposure_output.dot b/test_outputs/connlist/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_exposure_output.dot new file mode 100644 index 00000000..898c3c74 --- /dev/null +++ b/test_outputs/connlist/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_exposure_output.dot @@ -0,0 +1,13 @@ +digraph { + subgraph "cluster_hello_world" { + color="black" + fontcolor="black" + "hello-world/workload-a[Deployment]" [label="workload-a[Deployment]" color="blue" fontcolor="blue"] + label="hello-world" + } + "0.0.0.0-255.255.255.255" [label="0.0.0.0-255.255.255.255" color="red2" fontcolor="red2"] + "entire-cluster" [label="entire-cluster" color="red2" fontcolor="red2" shape=diamond] + "entire-cluster" -> "hello-world/workload-a[Deployment]" [label="TCP 8000,8090,new-port" color="darkorange2" fontcolor="darkgreen" weight=1 style=dashed] + "hello-world/workload-a[Deployment]" -> "0.0.0.0-255.255.255.255" [label="All Connections" color="gold2" fontcolor="darkgreen" weight=1] + "hello-world/workload-a[Deployment]" -> "entire-cluster" [label="All Connections" color="darkorange4" fontcolor="darkgreen" weight=0.5 style=dashed] +} \ No newline at end of file diff --git a/test_outputs/connlist/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_exposure_output.dot.png b/test_outputs/connlist/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_exposure_output.dot.png new file mode 100644 index 0000000000000000000000000000000000000000..be77385afbe6c7842f454d0b8e2f80216c1eea5f GIT binary patch literal 19775 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 literal 0 HcmV?d00001 diff --git a/test_outputs/connlist/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_exposure_output.dot.svg b/test_outputs/connlist/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_exposure_output.dot.svg new file mode 100644 index 00000000..9a1f0b04 --- /dev/null +++ b/test_outputs/connlist/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_exposure_output.dot.svg @@ -0,0 +1,56 @@ + + + + + + + + +cluster_hello_world + +hello-world + + + +hello-world/workload-a[Deployment] + +workload-a[Deployment] + + + +0.0.0.0-255.255.255.255 + +0.0.0.0-255.255.255.255 + + + +hello-world/workload-a[Deployment]->0.0.0.0-255.255.255.255 + + +All Connections + + + +entire-cluster + +entire-cluster + + + +hello-world/workload-a[Deployment]->entire-cluster + + +All Connections + + + +entire-cluster->hello-world/workload-a[Deployment] + + +TCP 8000,8090,new-port + + + diff --git a/test_outputs/connlist/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_exposure_output.json b/test_outputs/connlist/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_exposure_output.json new file mode 100644 index 00000000..e3395518 --- /dev/null +++ b/test_outputs/connlist/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_exposure_output.json @@ -0,0 +1,30 @@ +{ + "connlist_results": [ + { + "src": "hello-world/workload-a[Deployment]", + "dst": "0.0.0.0-255.255.255.255", + "conn": "All Connections" + } + ], + "exposure_results": { + "egress_exposure": [ + { + "src": "hello-world/workload-a[Deployment]", + "dst": "0.0.0.0-255.255.255.255", + "conn": "All Connections" + }, + { + "src": "hello-world/workload-a[Deployment]", + "dst": "entire-cluster", + "conn": "All Connections" + } + ], + "ingress_exposure": [ + { + "src": "entire-cluster", + "dst": "hello-world/workload-a[Deployment]", + "conn": "TCP 8000,8090,new-port" + } + ] + } +} \ No newline at end of file diff --git a/test_outputs/connlist/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_exposure_output.md b/test_outputs/connlist/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_exposure_output.md new file mode 100644 index 00000000..30b1bba4 --- /dev/null +++ b/test_outputs/connlist/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_exposure_output.md @@ -0,0 +1,14 @@ +| src | dst | conn | +|-----|-----|------| +| hello-world/workload-a[Deployment] | 0.0.0.0-255.255.255.255 | All Connections | +## Exposure Analysis Result: +### Egress Exposure: +| src | dst | conn | +|-----|-----|------| +| hello-world/workload-a[Deployment] | 0.0.0.0-255.255.255.255 | All Connections | +| hello-world/workload-a[Deployment] | entire-cluster | All Connections | + +### Ingress Exposure: +| dst | src | conn | +|-----|-----|------| +| hello-world/workload-a[Deployment] | entire-cluster | TCP 8000,8090,new-port | diff --git a/test_outputs/connlist/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_exposure_output.txt b/test_outputs/connlist/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_exposure_output.txt new file mode 100644 index 00000000..0bfa839a --- /dev/null +++ b/test_outputs/connlist/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_exposure_output.txt @@ -0,0 +1,12 @@ +hello-world/workload-a[Deployment] => 0.0.0.0-255.255.255.255 : All Connections + +Exposure Analysis Result: +Egress Exposure: +hello-world/workload-a[Deployment] => 0.0.0.0-255.255.255.255 : All Connections +hello-world/workload-a[Deployment] => entire-cluster : All Connections + +Ingress Exposure: +hello-world/workload-a[Deployment] <= entire-cluster : TCP 8000,8090,new-port + +Workloads not protected by network policies: +hello-world/workload-a[Deployment] is not protected on Egress diff --git a/test_outputs/connlist/netpol_named_port_test_2_connlist_output.txt b/test_outputs/connlist/netpol_named_port_test_2_connlist_output.txt new file mode 100644 index 00000000..9a9a24ec --- /dev/null +++ b/test_outputs/connlist/netpol_named_port_test_2_connlist_output.txt @@ -0,0 +1,3 @@ +0.0.0.0-255.255.255.255 => helloworld/pod-a[Deployment] : All Connections +helloworld/pod-a[Deployment] => 0.0.0.0-255.255.255.255 : All Connections +helloworld/pod-a[Deployment] => helloworld/new-pod[Deployment] : SCTP 8956,9090,not-found,UDP newport \ No newline at end of file diff --git a/test_outputs/connlist/netpol_named_port_test_connlist_output.txt b/test_outputs/connlist/netpol_named_port_test_connlist_output.txt new file mode 100644 index 00000000..d86d5a36 --- /dev/null +++ b/test_outputs/connlist/netpol_named_port_test_connlist_output.txt @@ -0,0 +1,3 @@ +0.0.0.0-255.255.255.255 => helloworld/new-pod[Deployment] : All Connections +helloworld/new-pod[Deployment] => 0.0.0.0-255.255.255.255 : All Connections +helloworld/new-pod[Deployment] => helloworld/pod-a[Deployment] : UDP newport \ No newline at end of file diff --git a/test_outputs/connlist/test_with_named_ports_changed_netpol_connlist_output.txt b/test_outputs/connlist/test_with_named_ports_changed_netpol_connlist_output.txt index 73327c44..c5aa2fd9 100644 --- a/test_outputs/connlist/test_with_named_ports_changed_netpol_connlist_output.txt +++ b/test_outputs/connlist/test_with_named_ports_changed_netpol_connlist_output.txt @@ -1,7 +1,11 @@ 0.0.0.0-255.255.255.255 => default/cog-agents-analyzer[DaemonSet] : All Connections 0.0.0.0-255.255.255.255 => default/cog-agents[DaemonSet] : All Connections 0.0.0.0-255.255.255.255 => default/cog-local-analyzer-7d77fb55cc[ReplicaSet] : All Connections +0.0.0.0-255.255.255.255 => kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local 0.0.0.0-255.255.255.255 => kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] : TCP 10053-10054,UDP 10053 +0.0.0.0-255.255.255.255 => kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local +0.0.0.0-255.255.255.255 => kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local +0.0.0.0-255.255.255.255 => kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local 0.0.0.0-255.255.255.255 => kube-system/calico-node-frontend[DaemonSet] : All Connections 0.0.0.0-255.255.255.255 => kube-system/calico-node[DaemonSet] : All Connections 0.0.0.0-255.255.255.255 => kube-system/file-plugin-7bfb8b69bf[ReplicaSet] : All Connections @@ -18,7 +22,11 @@ default/cog-agents-analyzer[DaemonSet] => 0.0.0.0-255.255.255.255 : All Connections default/cog-agents-analyzer[DaemonSet] => default/cog-agents[DaemonSet] : All Connections default/cog-agents-analyzer[DaemonSet] => default/cog-local-analyzer-7d77fb55cc[ReplicaSet] : All Connections +default/cog-agents-analyzer[DaemonSet] => kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local default/cog-agents-analyzer[DaemonSet] => kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] : TCP 10053-10054,UDP 10053 +default/cog-agents-analyzer[DaemonSet] => kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local +default/cog-agents-analyzer[DaemonSet] => kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local +default/cog-agents-analyzer[DaemonSet] => kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local default/cog-agents-analyzer[DaemonSet] => kube-system/calico-node-frontend[DaemonSet] : All Connections default/cog-agents-analyzer[DaemonSet] => kube-system/calico-node[DaemonSet] : All Connections default/cog-agents-analyzer[DaemonSet] => kube-system/file-plugin-7bfb8b69bf[ReplicaSet] : All Connections @@ -35,7 +43,11 @@ default/cog-agents-analyzer[DaemonSet] => vendor-system/foofoo-app[ReplicaSet] : default/cog-agents[DaemonSet] => 0.0.0.0-255.255.255.255 : All Connections default/cog-agents[DaemonSet] => default/cog-agents-analyzer[DaemonSet] : All Connections default/cog-agents[DaemonSet] => default/cog-local-analyzer-7d77fb55cc[ReplicaSet] : All Connections +default/cog-agents[DaemonSet] => kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local default/cog-agents[DaemonSet] => kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] : TCP 10053-10054,UDP 10053 +default/cog-agents[DaemonSet] => kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local +default/cog-agents[DaemonSet] => kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local +default/cog-agents[DaemonSet] => kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local default/cog-agents[DaemonSet] => kube-system/calico-node-frontend[DaemonSet] : All Connections default/cog-agents[DaemonSet] => kube-system/calico-node[DaemonSet] : All Connections default/cog-agents[DaemonSet] => kube-system/file-plugin-7bfb8b69bf[ReplicaSet] : All Connections @@ -52,7 +64,11 @@ default/cog-agents[DaemonSet] => vendor-system/foofoo-app[ReplicaSet] : All Conn default/cog-local-analyzer-7d77fb55cc[ReplicaSet] => 0.0.0.0-255.255.255.255 : All Connections default/cog-local-analyzer-7d77fb55cc[ReplicaSet] => default/cog-agents-analyzer[DaemonSet] : All Connections default/cog-local-analyzer-7d77fb55cc[ReplicaSet] => default/cog-agents[DaemonSet] : All Connections +default/cog-local-analyzer-7d77fb55cc[ReplicaSet] => kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local default/cog-local-analyzer-7d77fb55cc[ReplicaSet] => kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] : TCP 10053-10054,UDP 10053 +default/cog-local-analyzer-7d77fb55cc[ReplicaSet] => kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local +default/cog-local-analyzer-7d77fb55cc[ReplicaSet] => kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local +default/cog-local-analyzer-7d77fb55cc[ReplicaSet] => kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local default/cog-local-analyzer-7d77fb55cc[ReplicaSet] => kube-system/calico-node-frontend[DaemonSet] : All Connections default/cog-local-analyzer-7d77fb55cc[ReplicaSet] => kube-system/calico-node[DaemonSet] : All Connections default/cog-local-analyzer-7d77fb55cc[ReplicaSet] => kube-system/file-plugin-7bfb8b69bf[ReplicaSet] : All Connections @@ -71,6 +87,9 @@ kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] => de kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] => default/cog-agents[DaemonSet] : All Connections kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] => default/cog-local-analyzer-7d77fb55cc[ReplicaSet] : All Connections kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] => kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] : TCP 10053-10054,UDP 10053 +kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] => kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local +kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] => kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local +kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] => kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] => kube-system/calico-node-frontend[DaemonSet] : All Connections kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] => kube-system/calico-node[DaemonSet] : All Connections kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] => kube-system/file-plugin-7bfb8b69bf[ReplicaSet] : All Connections @@ -88,6 +107,10 @@ kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] => 0.0.0.0-255. kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] => default/cog-agents-analyzer[DaemonSet] : All Connections kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] => default/cog-agents[DaemonSet] : All Connections kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] => default/cog-local-analyzer-7d77fb55cc[ReplicaSet] : All Connections +kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] => kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local +kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] => kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local +kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] => kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local +kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] => kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] => kube-system/calico-node-frontend[DaemonSet] : All Connections kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] => kube-system/calico-node[DaemonSet] : All Connections kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] => kube-system/file-plugin-7bfb8b69bf[ReplicaSet] : All Connections @@ -105,7 +128,10 @@ kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] => 0.0.0. kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] => default/cog-agents-analyzer[DaemonSet] : All Connections kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] => default/cog-agents[DaemonSet] : All Connections kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] => default/cog-local-analyzer-7d77fb55cc[ReplicaSet] : All Connections +kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] => kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] => kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] : TCP 10053-10054,UDP 10053 +kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] => kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local +kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] => kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] => kube-system/calico-node-frontend[DaemonSet] : All Connections kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] => kube-system/calico-node[DaemonSet] : All Connections kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] => kube-system/file-plugin-7bfb8b69bf[ReplicaSet] : All Connections @@ -123,7 +149,10 @@ kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] => 0.0.0 kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] => default/cog-agents-analyzer[DaemonSet] : All Connections kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] => default/cog-agents[DaemonSet] : All Connections kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] => default/cog-local-analyzer-7d77fb55cc[ReplicaSet] : All Connections +kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] => kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] => kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] : TCP 10053-10054,UDP 10053 +kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] => kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local +kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] => kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] => kube-system/calico-node-frontend[DaemonSet] : All Connections kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] => kube-system/calico-node[DaemonSet] : All Connections kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] => kube-system/file-plugin-7bfb8b69bf[ReplicaSet] : All Connections @@ -141,7 +170,10 @@ kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] => default/cog-agents-analyzer[DaemonSet] : All Connections kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] => default/cog-agents[DaemonSet] : All Connections kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] => default/cog-local-analyzer-7d77fb55cc[ReplicaSet] : All Connections +kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] => kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] => kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] : TCP 10053-10054,UDP 10053 +kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] => kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local +kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] => kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] => kube-system/calico-node-frontend[DaemonSet] : All Connections kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] => kube-system/calico-node[DaemonSet] : All Connections kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] => kube-system/file-plugin-7bfb8b69bf[ReplicaSet] : All Connections @@ -159,7 +191,11 @@ kube-system/calico-node-frontend[DaemonSet] => 0.0.0.0-255.255.255.255 : All Con kube-system/calico-node-frontend[DaemonSet] => default/cog-agents-analyzer[DaemonSet] : All Connections kube-system/calico-node-frontend[DaemonSet] => default/cog-agents[DaemonSet] : All Connections kube-system/calico-node-frontend[DaemonSet] => default/cog-local-analyzer-7d77fb55cc[ReplicaSet] : All Connections +kube-system/calico-node-frontend[DaemonSet] => kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local kube-system/calico-node-frontend[DaemonSet] => kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] : TCP 10053-10054,UDP 10053 +kube-system/calico-node-frontend[DaemonSet] => kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local +kube-system/calico-node-frontend[DaemonSet] => kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local +kube-system/calico-node-frontend[DaemonSet] => kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local kube-system/calico-node-frontend[DaemonSet] => kube-system/calico-node[DaemonSet] : All Connections kube-system/calico-node-frontend[DaemonSet] => kube-system/file-plugin-7bfb8b69bf[ReplicaSet] : All Connections kube-system/calico-node-frontend[DaemonSet] => kube-system/heapster-7df8cb8c66[ReplicaSet] : All Connections @@ -176,7 +212,11 @@ kube-system/calico-node[DaemonSet] => 0.0.0.0-255.255.255.255 : All Connections kube-system/calico-node[DaemonSet] => default/cog-agents-analyzer[DaemonSet] : All Connections kube-system/calico-node[DaemonSet] => default/cog-agents[DaemonSet] : All Connections kube-system/calico-node[DaemonSet] => default/cog-local-analyzer-7d77fb55cc[ReplicaSet] : All Connections +kube-system/calico-node[DaemonSet] => kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local kube-system/calico-node[DaemonSet] => kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] : TCP 10053-10054,UDP 10053 +kube-system/calico-node[DaemonSet] => kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local +kube-system/calico-node[DaemonSet] => kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local +kube-system/calico-node[DaemonSet] => kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local kube-system/calico-node[DaemonSet] => kube-system/calico-node-frontend[DaemonSet] : All Connections kube-system/calico-node[DaemonSet] => kube-system/file-plugin-7bfb8b69bf[ReplicaSet] : All Connections kube-system/calico-node[DaemonSet] => kube-system/heapster-7df8cb8c66[ReplicaSet] : All Connections @@ -193,7 +233,11 @@ kube-system/file-plugin-7bfb8b69bf[ReplicaSet] => 0.0.0.0-255.255.255.255 : All kube-system/file-plugin-7bfb8b69bf[ReplicaSet] => default/cog-agents-analyzer[DaemonSet] : All Connections kube-system/file-plugin-7bfb8b69bf[ReplicaSet] => default/cog-agents[DaemonSet] : All Connections kube-system/file-plugin-7bfb8b69bf[ReplicaSet] => default/cog-local-analyzer-7d77fb55cc[ReplicaSet] : All Connections +kube-system/file-plugin-7bfb8b69bf[ReplicaSet] => kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local kube-system/file-plugin-7bfb8b69bf[ReplicaSet] => kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] : TCP 10053-10054,UDP 10053 +kube-system/file-plugin-7bfb8b69bf[ReplicaSet] => kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local +kube-system/file-plugin-7bfb8b69bf[ReplicaSet] => kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local +kube-system/file-plugin-7bfb8b69bf[ReplicaSet] => kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local kube-system/file-plugin-7bfb8b69bf[ReplicaSet] => kube-system/calico-node-frontend[DaemonSet] : All Connections kube-system/file-plugin-7bfb8b69bf[ReplicaSet] => kube-system/calico-node[DaemonSet] : All Connections kube-system/file-plugin-7bfb8b69bf[ReplicaSet] => kube-system/heapster-7df8cb8c66[ReplicaSet] : All Connections @@ -210,7 +254,11 @@ kube-system/heapster-7df8cb8c66[ReplicaSet] => 0.0.0.0-255.255.255.255 : All Con kube-system/heapster-7df8cb8c66[ReplicaSet] => default/cog-agents-analyzer[DaemonSet] : All Connections kube-system/heapster-7df8cb8c66[ReplicaSet] => default/cog-agents[DaemonSet] : All Connections kube-system/heapster-7df8cb8c66[ReplicaSet] => default/cog-local-analyzer-7d77fb55cc[ReplicaSet] : All Connections +kube-system/heapster-7df8cb8c66[ReplicaSet] => kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local kube-system/heapster-7df8cb8c66[ReplicaSet] => kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] : TCP 10053-10054,UDP 10053 +kube-system/heapster-7df8cb8c66[ReplicaSet] => kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local +kube-system/heapster-7df8cb8c66[ReplicaSet] => kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local +kube-system/heapster-7df8cb8c66[ReplicaSet] => kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local kube-system/heapster-7df8cb8c66[ReplicaSet] => kube-system/calico-node-frontend[DaemonSet] : All Connections kube-system/heapster-7df8cb8c66[ReplicaSet] => kube-system/calico-node[DaemonSet] : All Connections kube-system/heapster-7df8cb8c66[ReplicaSet] => kube-system/file-plugin-7bfb8b69bf[ReplicaSet] : All Connections @@ -227,7 +275,11 @@ kube-system/keepalived-watcher-not-frontend[DaemonSet] => 0.0.0.0-255.255.255.25 kube-system/keepalived-watcher-not-frontend[DaemonSet] => default/cog-agents-analyzer[DaemonSet] : All Connections kube-system/keepalived-watcher-not-frontend[DaemonSet] => default/cog-agents[DaemonSet] : All Connections kube-system/keepalived-watcher-not-frontend[DaemonSet] => default/cog-local-analyzer-7d77fb55cc[ReplicaSet] : All Connections +kube-system/keepalived-watcher-not-frontend[DaemonSet] => kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local kube-system/keepalived-watcher-not-frontend[DaemonSet] => kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] : TCP 10053-10054,UDP 10053 +kube-system/keepalived-watcher-not-frontend[DaemonSet] => kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local +kube-system/keepalived-watcher-not-frontend[DaemonSet] => kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local +kube-system/keepalived-watcher-not-frontend[DaemonSet] => kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local kube-system/keepalived-watcher-not-frontend[DaemonSet] => kube-system/calico-node-frontend[DaemonSet] : All Connections kube-system/keepalived-watcher-not-frontend[DaemonSet] => kube-system/calico-node[DaemonSet] : All Connections kube-system/keepalived-watcher-not-frontend[DaemonSet] => kube-system/file-plugin-7bfb8b69bf[ReplicaSet] : All Connections @@ -244,7 +296,11 @@ kube-system/keepalived-watcher[DaemonSet] => 0.0.0.0-255.255.255.255 : All Conne kube-system/keepalived-watcher[DaemonSet] => default/cog-agents-analyzer[DaemonSet] : All Connections kube-system/keepalived-watcher[DaemonSet] => default/cog-agents[DaemonSet] : All Connections kube-system/keepalived-watcher[DaemonSet] => default/cog-local-analyzer-7d77fb55cc[ReplicaSet] : All Connections +kube-system/keepalived-watcher[DaemonSet] => kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local kube-system/keepalived-watcher[DaemonSet] => kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] : TCP 10053-10054,UDP 10053 +kube-system/keepalived-watcher[DaemonSet] => kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local +kube-system/keepalived-watcher[DaemonSet] => kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local +kube-system/keepalived-watcher[DaemonSet] => kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local kube-system/keepalived-watcher[DaemonSet] => kube-system/calico-node-frontend[DaemonSet] : All Connections kube-system/keepalived-watcher[DaemonSet] => kube-system/calico-node[DaemonSet] : All Connections kube-system/keepalived-watcher[DaemonSet] => kube-system/file-plugin-7bfb8b69bf[ReplicaSet] : All Connections @@ -261,7 +317,11 @@ kube-system/kube-fluentd-frontend[DaemonSet] => 0.0.0.0-255.255.255.255 : All Co kube-system/kube-fluentd-frontend[DaemonSet] => default/cog-agents-analyzer[DaemonSet] : All Connections kube-system/kube-fluentd-frontend[DaemonSet] => default/cog-agents[DaemonSet] : All Connections kube-system/kube-fluentd-frontend[DaemonSet] => default/cog-local-analyzer-7d77fb55cc[ReplicaSet] : All Connections +kube-system/kube-fluentd-frontend[DaemonSet] => kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local kube-system/kube-fluentd-frontend[DaemonSet] => kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] : TCP 10053-10054,UDP 10053 +kube-system/kube-fluentd-frontend[DaemonSet] => kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local +kube-system/kube-fluentd-frontend[DaemonSet] => kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local +kube-system/kube-fluentd-frontend[DaemonSet] => kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local kube-system/kube-fluentd-frontend[DaemonSet] => kube-system/calico-node-frontend[DaemonSet] : All Connections kube-system/kube-fluentd-frontend[DaemonSet] => kube-system/calico-node[DaemonSet] : All Connections kube-system/kube-fluentd-frontend[DaemonSet] => kube-system/file-plugin-7bfb8b69bf[ReplicaSet] : All Connections @@ -278,7 +338,11 @@ kube-system/kube-fluentd[DaemonSet] => 0.0.0.0-255.255.255.255 : All Connections kube-system/kube-fluentd[DaemonSet] => default/cog-agents-analyzer[DaemonSet] : All Connections kube-system/kube-fluentd[DaemonSet] => default/cog-agents[DaemonSet] : All Connections kube-system/kube-fluentd[DaemonSet] => default/cog-local-analyzer-7d77fb55cc[ReplicaSet] : All Connections +kube-system/kube-fluentd[DaemonSet] => kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local kube-system/kube-fluentd[DaemonSet] => kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] : TCP 10053-10054,UDP 10053 +kube-system/kube-fluentd[DaemonSet] => kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local +kube-system/kube-fluentd[DaemonSet] => kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local +kube-system/kube-fluentd[DaemonSet] => kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local kube-system/kube-fluentd[DaemonSet] => kube-system/calico-node-frontend[DaemonSet] : All Connections kube-system/kube-fluentd[DaemonSet] => kube-system/calico-node[DaemonSet] : All Connections kube-system/kube-fluentd[DaemonSet] => kube-system/file-plugin-7bfb8b69bf[ReplicaSet] : All Connections @@ -295,7 +359,11 @@ kube-system/storage-watcher-8494b4b8bb[ReplicaSet] => 0.0.0.0-255.255.255.255 : kube-system/storage-watcher-8494b4b8bb[ReplicaSet] => default/cog-agents-analyzer[DaemonSet] : All Connections kube-system/storage-watcher-8494b4b8bb[ReplicaSet] => default/cog-agents[DaemonSet] : All Connections kube-system/storage-watcher-8494b4b8bb[ReplicaSet] => default/cog-local-analyzer-7d77fb55cc[ReplicaSet] : All Connections +kube-system/storage-watcher-8494b4b8bb[ReplicaSet] => kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local kube-system/storage-watcher-8494b4b8bb[ReplicaSet] => kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] : TCP 10053-10054,UDP 10053 +kube-system/storage-watcher-8494b4b8bb[ReplicaSet] => kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local +kube-system/storage-watcher-8494b4b8bb[ReplicaSet] => kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local +kube-system/storage-watcher-8494b4b8bb[ReplicaSet] => kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local kube-system/storage-watcher-8494b4b8bb[ReplicaSet] => kube-system/calico-node-frontend[DaemonSet] : All Connections kube-system/storage-watcher-8494b4b8bb[ReplicaSet] => kube-system/calico-node[DaemonSet] : All Connections kube-system/storage-watcher-8494b4b8bb[ReplicaSet] => kube-system/file-plugin-7bfb8b69bf[ReplicaSet] : All Connections @@ -312,7 +380,11 @@ kube-system/tiller-deploy-5c45c9966b[ReplicaSet] => 0.0.0.0-255.255.255.255 : Al kube-system/tiller-deploy-5c45c9966b[ReplicaSet] => default/cog-agents-analyzer[DaemonSet] : All Connections kube-system/tiller-deploy-5c45c9966b[ReplicaSet] => default/cog-agents[DaemonSet] : All Connections kube-system/tiller-deploy-5c45c9966b[ReplicaSet] => default/cog-local-analyzer-7d77fb55cc[ReplicaSet] : All Connections +kube-system/tiller-deploy-5c45c9966b[ReplicaSet] => kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local kube-system/tiller-deploy-5c45c9966b[ReplicaSet] => kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] : TCP 10053-10054,UDP 10053 +kube-system/tiller-deploy-5c45c9966b[ReplicaSet] => kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local +kube-system/tiller-deploy-5c45c9966b[ReplicaSet] => kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local +kube-system/tiller-deploy-5c45c9966b[ReplicaSet] => kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local kube-system/tiller-deploy-5c45c9966b[ReplicaSet] => kube-system/calico-node-frontend[DaemonSet] : All Connections kube-system/tiller-deploy-5c45c9966b[ReplicaSet] => kube-system/calico-node[DaemonSet] : All Connections kube-system/tiller-deploy-5c45c9966b[ReplicaSet] => kube-system/file-plugin-7bfb8b69bf[ReplicaSet] : All Connections @@ -329,7 +401,11 @@ kube-system/vpn-858f6d9777[ReplicaSet] => 0.0.0.0-255.255.255.255 : All Connecti kube-system/vpn-858f6d9777[ReplicaSet] => default/cog-agents-analyzer[DaemonSet] : All Connections kube-system/vpn-858f6d9777[ReplicaSet] => default/cog-agents[DaemonSet] : All Connections kube-system/vpn-858f6d9777[ReplicaSet] => default/cog-local-analyzer-7d77fb55cc[ReplicaSet] : All Connections +kube-system/vpn-858f6d9777[ReplicaSet] => kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local kube-system/vpn-858f6d9777[ReplicaSet] => kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] : TCP 10053-10054,UDP 10053 +kube-system/vpn-858f6d9777[ReplicaSet] => kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local +kube-system/vpn-858f6d9777[ReplicaSet] => kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local +kube-system/vpn-858f6d9777[ReplicaSet] => kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local kube-system/vpn-858f6d9777[ReplicaSet] => kube-system/calico-node-frontend[DaemonSet] : All Connections kube-system/vpn-858f6d9777[ReplicaSet] => kube-system/calico-node[DaemonSet] : All Connections kube-system/vpn-858f6d9777[ReplicaSet] => kube-system/file-plugin-7bfb8b69bf[ReplicaSet] : All Connections @@ -346,7 +422,11 @@ vendor-system/barbar-app[ReplicaSet] => 0.0.0.0-255.255.255.255 : All Connection vendor-system/barbar-app[ReplicaSet] => default/cog-agents-analyzer[DaemonSet] : All Connections vendor-system/barbar-app[ReplicaSet] => default/cog-agents[DaemonSet] : All Connections vendor-system/barbar-app[ReplicaSet] => default/cog-local-analyzer-7d77fb55cc[ReplicaSet] : All Connections +vendor-system/barbar-app[ReplicaSet] => kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local vendor-system/barbar-app[ReplicaSet] => kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] : TCP 10053-10054,UDP 10053 +vendor-system/barbar-app[ReplicaSet] => kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local +vendor-system/barbar-app[ReplicaSet] => kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local +vendor-system/barbar-app[ReplicaSet] => kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local vendor-system/barbar-app[ReplicaSet] => kube-system/calico-node-frontend[DaemonSet] : All Connections vendor-system/barbar-app[ReplicaSet] => kube-system/calico-node[DaemonSet] : All Connections vendor-system/barbar-app[ReplicaSet] => kube-system/file-plugin-7bfb8b69bf[ReplicaSet] : All Connections @@ -363,7 +443,11 @@ vendor-system/foofoo-app[ReplicaSet] => 0.0.0.0-255.255.255.255 : All Connection vendor-system/foofoo-app[ReplicaSet] => default/cog-agents-analyzer[DaemonSet] : All Connections vendor-system/foofoo-app[ReplicaSet] => default/cog-agents[DaemonSet] : All Connections vendor-system/foofoo-app[ReplicaSet] => default/cog-local-analyzer-7d77fb55cc[ReplicaSet] : All Connections +vendor-system/foofoo-app[ReplicaSet] => kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local vendor-system/foofoo-app[ReplicaSet] => kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] : TCP 10053-10054,UDP 10053 +vendor-system/foofoo-app[ReplicaSet] => kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local +vendor-system/foofoo-app[ReplicaSet] => kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local +vendor-system/foofoo-app[ReplicaSet] => kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local vendor-system/foofoo-app[ReplicaSet] => kube-system/calico-node-frontend[DaemonSet] : All Connections vendor-system/foofoo-app[ReplicaSet] => kube-system/calico-node[DaemonSet] : All Connections vendor-system/foofoo-app[ReplicaSet] => kube-system/file-plugin-7bfb8b69bf[ReplicaSet] : All Connections diff --git a/test_outputs/connlist/test_with_named_ports_connlist_output.txt b/test_outputs/connlist/test_with_named_ports_connlist_output.txt index 722cb7fa..d14daf4e 100644 --- a/test_outputs/connlist/test_with_named_ports_connlist_output.txt +++ b/test_outputs/connlist/test_with_named_ports_connlist_output.txt @@ -1,7 +1,11 @@ 0.0.0.0-255.255.255.255 => default/cog-agents-analyzer[DaemonSet] : All Connections 0.0.0.0-255.255.255.255 => default/cog-agents[DaemonSet] : All Connections 0.0.0.0-255.255.255.255 => default/cog-local-analyzer-7d77fb55cc[ReplicaSet] : All Connections +0.0.0.0-255.255.255.255 => kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] : TCP dns-tcp-local,UDP dns-local 0.0.0.0-255.255.255.255 => kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] : TCP 10053,UDP 10053 +0.0.0.0-255.255.255.255 => kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] : TCP dns-tcp-local,UDP dns-local +0.0.0.0-255.255.255.255 => kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] : TCP dns-tcp-local,UDP dns-local +0.0.0.0-255.255.255.255 => kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] : TCP dns-tcp-local,UDP dns-local 0.0.0.0-255.255.255.255 => kube-system/calico-node-frontend[DaemonSet] : All Connections 0.0.0.0-255.255.255.255 => kube-system/calico-node[DaemonSet] : All Connections 0.0.0.0-255.255.255.255 => kube-system/file-plugin-7bfb8b69bf[ReplicaSet] : All Connections @@ -18,7 +22,11 @@ default/cog-agents-analyzer[DaemonSet] => 0.0.0.0-255.255.255.255 : All Connections default/cog-agents-analyzer[DaemonSet] => default/cog-agents[DaemonSet] : All Connections default/cog-agents-analyzer[DaemonSet] => default/cog-local-analyzer-7d77fb55cc[ReplicaSet] : All Connections +default/cog-agents-analyzer[DaemonSet] => kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] : TCP dns-tcp-local,UDP dns-local default/cog-agents-analyzer[DaemonSet] => kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] : TCP 10053,UDP 10053 +default/cog-agents-analyzer[DaemonSet] => kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] : TCP dns-tcp-local,UDP dns-local +default/cog-agents-analyzer[DaemonSet] => kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] : TCP dns-tcp-local,UDP dns-local +default/cog-agents-analyzer[DaemonSet] => kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] : TCP dns-tcp-local,UDP dns-local default/cog-agents-analyzer[DaemonSet] => kube-system/calico-node-frontend[DaemonSet] : All Connections default/cog-agents-analyzer[DaemonSet] => kube-system/calico-node[DaemonSet] : All Connections default/cog-agents-analyzer[DaemonSet] => kube-system/file-plugin-7bfb8b69bf[ReplicaSet] : All Connections @@ -35,7 +43,11 @@ default/cog-agents-analyzer[DaemonSet] => vendor-system/foofoo-app[ReplicaSet] : default/cog-agents[DaemonSet] => 0.0.0.0-255.255.255.255 : All Connections default/cog-agents[DaemonSet] => default/cog-agents-analyzer[DaemonSet] : All Connections default/cog-agents[DaemonSet] => default/cog-local-analyzer-7d77fb55cc[ReplicaSet] : All Connections +default/cog-agents[DaemonSet] => kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] : TCP dns-tcp-local,UDP dns-local default/cog-agents[DaemonSet] => kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] : TCP 10053,UDP 10053 +default/cog-agents[DaemonSet] => kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] : TCP dns-tcp-local,UDP dns-local +default/cog-agents[DaemonSet] => kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] : TCP dns-tcp-local,UDP dns-local +default/cog-agents[DaemonSet] => kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] : TCP dns-tcp-local,UDP dns-local default/cog-agents[DaemonSet] => kube-system/calico-node-frontend[DaemonSet] : All Connections default/cog-agents[DaemonSet] => kube-system/calico-node[DaemonSet] : All Connections default/cog-agents[DaemonSet] => kube-system/file-plugin-7bfb8b69bf[ReplicaSet] : All Connections @@ -52,7 +64,11 @@ default/cog-agents[DaemonSet] => vendor-system/foofoo-app[ReplicaSet] : All Conn default/cog-local-analyzer-7d77fb55cc[ReplicaSet] => 0.0.0.0-255.255.255.255 : All Connections default/cog-local-analyzer-7d77fb55cc[ReplicaSet] => default/cog-agents-analyzer[DaemonSet] : All Connections default/cog-local-analyzer-7d77fb55cc[ReplicaSet] => default/cog-agents[DaemonSet] : All Connections +default/cog-local-analyzer-7d77fb55cc[ReplicaSet] => kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] : TCP dns-tcp-local,UDP dns-local default/cog-local-analyzer-7d77fb55cc[ReplicaSet] => kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] : TCP 10053,UDP 10053 +default/cog-local-analyzer-7d77fb55cc[ReplicaSet] => kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] : TCP dns-tcp-local,UDP dns-local +default/cog-local-analyzer-7d77fb55cc[ReplicaSet] => kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] : TCP dns-tcp-local,UDP dns-local +default/cog-local-analyzer-7d77fb55cc[ReplicaSet] => kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] : TCP dns-tcp-local,UDP dns-local default/cog-local-analyzer-7d77fb55cc[ReplicaSet] => kube-system/calico-node-frontend[DaemonSet] : All Connections default/cog-local-analyzer-7d77fb55cc[ReplicaSet] => kube-system/calico-node[DaemonSet] : All Connections default/cog-local-analyzer-7d77fb55cc[ReplicaSet] => kube-system/file-plugin-7bfb8b69bf[ReplicaSet] : All Connections @@ -71,6 +87,9 @@ kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] => de kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] => default/cog-agents[DaemonSet] : All Connections kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] => default/cog-local-analyzer-7d77fb55cc[ReplicaSet] : All Connections kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] => kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] : TCP 10053,UDP 10053 +kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] => kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] : TCP dns-tcp-local,UDP dns-local +kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] => kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] : TCP dns-tcp-local,UDP dns-local +kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] => kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] : TCP dns-tcp-local,UDP dns-local kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] => kube-system/calico-node-frontend[DaemonSet] : All Connections kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] => kube-system/calico-node[DaemonSet] : All Connections kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] => kube-system/file-plugin-7bfb8b69bf[ReplicaSet] : All Connections @@ -88,6 +107,10 @@ kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] => 0.0.0.0-255. kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] => default/cog-agents-analyzer[DaemonSet] : All Connections kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] => default/cog-agents[DaemonSet] : All Connections kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] => default/cog-local-analyzer-7d77fb55cc[ReplicaSet] : All Connections +kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] => kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] : TCP dns-tcp-local,UDP dns-local +kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] => kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] : TCP dns-tcp-local,UDP dns-local +kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] => kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] : TCP dns-tcp-local,UDP dns-local +kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] => kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] : TCP dns-tcp-local,UDP dns-local kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] => kube-system/calico-node-frontend[DaemonSet] : All Connections kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] => kube-system/calico-node[DaemonSet] : All Connections kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] => kube-system/file-plugin-7bfb8b69bf[ReplicaSet] : All Connections @@ -105,7 +128,10 @@ kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] => 0.0.0. kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] => default/cog-agents-analyzer[DaemonSet] : All Connections kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] => default/cog-agents[DaemonSet] : All Connections kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] => default/cog-local-analyzer-7d77fb55cc[ReplicaSet] : All Connections +kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] => kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] : TCP dns-tcp-local,UDP dns-local kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] => kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] : TCP 10053,UDP 10053 +kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] => kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] : TCP dns-tcp-local,UDP dns-local +kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] => kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] : TCP dns-tcp-local,UDP dns-local kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] => kube-system/calico-node-frontend[DaemonSet] : All Connections kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] => kube-system/calico-node[DaemonSet] : All Connections kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] => kube-system/file-plugin-7bfb8b69bf[ReplicaSet] : All Connections @@ -123,7 +149,10 @@ kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] => 0.0.0 kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] => default/cog-agents-analyzer[DaemonSet] : All Connections kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] => default/cog-agents[DaemonSet] : All Connections kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] => default/cog-local-analyzer-7d77fb55cc[ReplicaSet] : All Connections +kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] => kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] : TCP dns-tcp-local,UDP dns-local kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] => kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] : TCP 10053,UDP 10053 +kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] => kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] : TCP dns-tcp-local,UDP dns-local +kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] => kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] : TCP dns-tcp-local,UDP dns-local kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] => kube-system/calico-node-frontend[DaemonSet] : All Connections kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] => kube-system/calico-node[DaemonSet] : All Connections kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] => kube-system/file-plugin-7bfb8b69bf[ReplicaSet] : All Connections @@ -141,7 +170,10 @@ kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] => default/cog-agents-analyzer[DaemonSet] : All Connections kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] => default/cog-agents[DaemonSet] : All Connections kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] => default/cog-local-analyzer-7d77fb55cc[ReplicaSet] : All Connections +kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] => kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] : TCP dns-tcp-local,UDP dns-local kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] => kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] : TCP 10053,UDP 10053 +kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] => kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] : TCP dns-tcp-local,UDP dns-local +kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] => kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] : TCP dns-tcp-local,UDP dns-local kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] => kube-system/calico-node-frontend[DaemonSet] : All Connections kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] => kube-system/calico-node[DaemonSet] : All Connections kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] => kube-system/file-plugin-7bfb8b69bf[ReplicaSet] : All Connections @@ -159,7 +191,11 @@ kube-system/calico-node-frontend[DaemonSet] => 0.0.0.0-255.255.255.255 : All Con kube-system/calico-node-frontend[DaemonSet] => default/cog-agents-analyzer[DaemonSet] : All Connections kube-system/calico-node-frontend[DaemonSet] => default/cog-agents[DaemonSet] : All Connections kube-system/calico-node-frontend[DaemonSet] => default/cog-local-analyzer-7d77fb55cc[ReplicaSet] : All Connections +kube-system/calico-node-frontend[DaemonSet] => kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] : TCP dns-tcp-local,UDP dns-local kube-system/calico-node-frontend[DaemonSet] => kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] : TCP 10053,UDP 10053 +kube-system/calico-node-frontend[DaemonSet] => kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] : TCP dns-tcp-local,UDP dns-local +kube-system/calico-node-frontend[DaemonSet] => kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] : TCP dns-tcp-local,UDP dns-local +kube-system/calico-node-frontend[DaemonSet] => kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] : TCP dns-tcp-local,UDP dns-local kube-system/calico-node-frontend[DaemonSet] => kube-system/calico-node[DaemonSet] : All Connections kube-system/calico-node-frontend[DaemonSet] => kube-system/file-plugin-7bfb8b69bf[ReplicaSet] : All Connections kube-system/calico-node-frontend[DaemonSet] => kube-system/heapster-7df8cb8c66[ReplicaSet] : All Connections @@ -176,7 +212,11 @@ kube-system/calico-node[DaemonSet] => 0.0.0.0-255.255.255.255 : All Connections kube-system/calico-node[DaemonSet] => default/cog-agents-analyzer[DaemonSet] : All Connections kube-system/calico-node[DaemonSet] => default/cog-agents[DaemonSet] : All Connections kube-system/calico-node[DaemonSet] => default/cog-local-analyzer-7d77fb55cc[ReplicaSet] : All Connections +kube-system/calico-node[DaemonSet] => kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] : TCP dns-tcp-local,UDP dns-local kube-system/calico-node[DaemonSet] => kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] : TCP 10053,UDP 10053 +kube-system/calico-node[DaemonSet] => kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] : TCP dns-tcp-local,UDP dns-local +kube-system/calico-node[DaemonSet] => kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] : TCP dns-tcp-local,UDP dns-local +kube-system/calico-node[DaemonSet] => kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] : TCP dns-tcp-local,UDP dns-local kube-system/calico-node[DaemonSet] => kube-system/calico-node-frontend[DaemonSet] : All Connections kube-system/calico-node[DaemonSet] => kube-system/file-plugin-7bfb8b69bf[ReplicaSet] : All Connections kube-system/calico-node[DaemonSet] => kube-system/heapster-7df8cb8c66[ReplicaSet] : All Connections @@ -193,7 +233,11 @@ kube-system/file-plugin-7bfb8b69bf[ReplicaSet] => 0.0.0.0-255.255.255.255 : All kube-system/file-plugin-7bfb8b69bf[ReplicaSet] => default/cog-agents-analyzer[DaemonSet] : All Connections kube-system/file-plugin-7bfb8b69bf[ReplicaSet] => default/cog-agents[DaemonSet] : All Connections kube-system/file-plugin-7bfb8b69bf[ReplicaSet] => default/cog-local-analyzer-7d77fb55cc[ReplicaSet] : All Connections +kube-system/file-plugin-7bfb8b69bf[ReplicaSet] => kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] : TCP dns-tcp-local,UDP dns-local kube-system/file-plugin-7bfb8b69bf[ReplicaSet] => kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] : TCP 10053,UDP 10053 +kube-system/file-plugin-7bfb8b69bf[ReplicaSet] => kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] : TCP dns-tcp-local,UDP dns-local +kube-system/file-plugin-7bfb8b69bf[ReplicaSet] => kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] : TCP dns-tcp-local,UDP dns-local +kube-system/file-plugin-7bfb8b69bf[ReplicaSet] => kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] : TCP dns-tcp-local,UDP dns-local kube-system/file-plugin-7bfb8b69bf[ReplicaSet] => kube-system/calico-node-frontend[DaemonSet] : All Connections kube-system/file-plugin-7bfb8b69bf[ReplicaSet] => kube-system/calico-node[DaemonSet] : All Connections kube-system/file-plugin-7bfb8b69bf[ReplicaSet] => kube-system/heapster-7df8cb8c66[ReplicaSet] : All Connections @@ -210,7 +254,11 @@ kube-system/heapster-7df8cb8c66[ReplicaSet] => 0.0.0.0-255.255.255.255 : All Con kube-system/heapster-7df8cb8c66[ReplicaSet] => default/cog-agents-analyzer[DaemonSet] : All Connections kube-system/heapster-7df8cb8c66[ReplicaSet] => default/cog-agents[DaemonSet] : All Connections kube-system/heapster-7df8cb8c66[ReplicaSet] => default/cog-local-analyzer-7d77fb55cc[ReplicaSet] : All Connections +kube-system/heapster-7df8cb8c66[ReplicaSet] => kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] : TCP dns-tcp-local,UDP dns-local kube-system/heapster-7df8cb8c66[ReplicaSet] => kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] : TCP 10053,UDP 10053 +kube-system/heapster-7df8cb8c66[ReplicaSet] => kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] : TCP dns-tcp-local,UDP dns-local +kube-system/heapster-7df8cb8c66[ReplicaSet] => kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] : TCP dns-tcp-local,UDP dns-local +kube-system/heapster-7df8cb8c66[ReplicaSet] => kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] : TCP dns-tcp-local,UDP dns-local kube-system/heapster-7df8cb8c66[ReplicaSet] => kube-system/calico-node-frontend[DaemonSet] : All Connections kube-system/heapster-7df8cb8c66[ReplicaSet] => kube-system/calico-node[DaemonSet] : All Connections kube-system/heapster-7df8cb8c66[ReplicaSet] => kube-system/file-plugin-7bfb8b69bf[ReplicaSet] : All Connections @@ -227,7 +275,11 @@ kube-system/keepalived-watcher-not-frontend[DaemonSet] => 0.0.0.0-255.255.255.25 kube-system/keepalived-watcher-not-frontend[DaemonSet] => default/cog-agents-analyzer[DaemonSet] : All Connections kube-system/keepalived-watcher-not-frontend[DaemonSet] => default/cog-agents[DaemonSet] : All Connections kube-system/keepalived-watcher-not-frontend[DaemonSet] => default/cog-local-analyzer-7d77fb55cc[ReplicaSet] : All Connections +kube-system/keepalived-watcher-not-frontend[DaemonSet] => kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] : TCP dns-tcp-local,UDP dns-local kube-system/keepalived-watcher-not-frontend[DaemonSet] => kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] : TCP 10053,UDP 10053 +kube-system/keepalived-watcher-not-frontend[DaemonSet] => kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] : TCP dns-tcp-local,UDP dns-local +kube-system/keepalived-watcher-not-frontend[DaemonSet] => kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] : TCP dns-tcp-local,UDP dns-local +kube-system/keepalived-watcher-not-frontend[DaemonSet] => kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] : TCP dns-tcp-local,UDP dns-local kube-system/keepalived-watcher-not-frontend[DaemonSet] => kube-system/calico-node-frontend[DaemonSet] : All Connections kube-system/keepalived-watcher-not-frontend[DaemonSet] => kube-system/calico-node[DaemonSet] : All Connections kube-system/keepalived-watcher-not-frontend[DaemonSet] => kube-system/file-plugin-7bfb8b69bf[ReplicaSet] : All Connections @@ -244,7 +296,11 @@ kube-system/keepalived-watcher[DaemonSet] => 0.0.0.0-255.255.255.255 : All Conne kube-system/keepalived-watcher[DaemonSet] => default/cog-agents-analyzer[DaemonSet] : All Connections kube-system/keepalived-watcher[DaemonSet] => default/cog-agents[DaemonSet] : All Connections kube-system/keepalived-watcher[DaemonSet] => default/cog-local-analyzer-7d77fb55cc[ReplicaSet] : All Connections +kube-system/keepalived-watcher[DaemonSet] => kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] : TCP dns-tcp-local,UDP dns-local kube-system/keepalived-watcher[DaemonSet] => kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] : TCP 10053,UDP 10053 +kube-system/keepalived-watcher[DaemonSet] => kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] : TCP dns-tcp-local,UDP dns-local +kube-system/keepalived-watcher[DaemonSet] => kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] : TCP dns-tcp-local,UDP dns-local +kube-system/keepalived-watcher[DaemonSet] => kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] : TCP dns-tcp-local,UDP dns-local kube-system/keepalived-watcher[DaemonSet] => kube-system/calico-node-frontend[DaemonSet] : All Connections kube-system/keepalived-watcher[DaemonSet] => kube-system/calico-node[DaemonSet] : All Connections kube-system/keepalived-watcher[DaemonSet] => kube-system/file-plugin-7bfb8b69bf[ReplicaSet] : All Connections @@ -261,7 +317,11 @@ kube-system/kube-fluentd-frontend[DaemonSet] => 0.0.0.0-255.255.255.255 : All Co kube-system/kube-fluentd-frontend[DaemonSet] => default/cog-agents-analyzer[DaemonSet] : All Connections kube-system/kube-fluentd-frontend[DaemonSet] => default/cog-agents[DaemonSet] : All Connections kube-system/kube-fluentd-frontend[DaemonSet] => default/cog-local-analyzer-7d77fb55cc[ReplicaSet] : All Connections +kube-system/kube-fluentd-frontend[DaemonSet] => kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] : TCP dns-tcp-local,UDP dns-local kube-system/kube-fluentd-frontend[DaemonSet] => kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] : TCP 10053,UDP 10053 +kube-system/kube-fluentd-frontend[DaemonSet] => kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] : TCP dns-tcp-local,UDP dns-local +kube-system/kube-fluentd-frontend[DaemonSet] => kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] : TCP dns-tcp-local,UDP dns-local +kube-system/kube-fluentd-frontend[DaemonSet] => kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] : TCP dns-tcp-local,UDP dns-local kube-system/kube-fluentd-frontend[DaemonSet] => kube-system/calico-node-frontend[DaemonSet] : All Connections kube-system/kube-fluentd-frontend[DaemonSet] => kube-system/calico-node[DaemonSet] : All Connections kube-system/kube-fluentd-frontend[DaemonSet] => kube-system/file-plugin-7bfb8b69bf[ReplicaSet] : All Connections @@ -278,7 +338,11 @@ kube-system/kube-fluentd[DaemonSet] => 0.0.0.0-255.255.255.255 : All Connections kube-system/kube-fluentd[DaemonSet] => default/cog-agents-analyzer[DaemonSet] : All Connections kube-system/kube-fluentd[DaemonSet] => default/cog-agents[DaemonSet] : All Connections kube-system/kube-fluentd[DaemonSet] => default/cog-local-analyzer-7d77fb55cc[ReplicaSet] : All Connections +kube-system/kube-fluentd[DaemonSet] => kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] : TCP dns-tcp-local,UDP dns-local kube-system/kube-fluentd[DaemonSet] => kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] : TCP 10053,UDP 10053 +kube-system/kube-fluentd[DaemonSet] => kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] : TCP dns-tcp-local,UDP dns-local +kube-system/kube-fluentd[DaemonSet] => kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] : TCP dns-tcp-local,UDP dns-local +kube-system/kube-fluentd[DaemonSet] => kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] : TCP dns-tcp-local,UDP dns-local kube-system/kube-fluentd[DaemonSet] => kube-system/calico-node-frontend[DaemonSet] : All Connections kube-system/kube-fluentd[DaemonSet] => kube-system/calico-node[DaemonSet] : All Connections kube-system/kube-fluentd[DaemonSet] => kube-system/file-plugin-7bfb8b69bf[ReplicaSet] : All Connections @@ -295,7 +359,11 @@ kube-system/storage-watcher-8494b4b8bb[ReplicaSet] => 0.0.0.0-255.255.255.255 : kube-system/storage-watcher-8494b4b8bb[ReplicaSet] => default/cog-agents-analyzer[DaemonSet] : All Connections kube-system/storage-watcher-8494b4b8bb[ReplicaSet] => default/cog-agents[DaemonSet] : All Connections kube-system/storage-watcher-8494b4b8bb[ReplicaSet] => default/cog-local-analyzer-7d77fb55cc[ReplicaSet] : All Connections +kube-system/storage-watcher-8494b4b8bb[ReplicaSet] => kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] : TCP dns-tcp-local,UDP dns-local kube-system/storage-watcher-8494b4b8bb[ReplicaSet] => kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] : TCP 10053,UDP 10053 +kube-system/storage-watcher-8494b4b8bb[ReplicaSet] => kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] : TCP dns-tcp-local,UDP dns-local +kube-system/storage-watcher-8494b4b8bb[ReplicaSet] => kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] : TCP dns-tcp-local,UDP dns-local +kube-system/storage-watcher-8494b4b8bb[ReplicaSet] => kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] : TCP dns-tcp-local,UDP dns-local kube-system/storage-watcher-8494b4b8bb[ReplicaSet] => kube-system/calico-node-frontend[DaemonSet] : All Connections kube-system/storage-watcher-8494b4b8bb[ReplicaSet] => kube-system/calico-node[DaemonSet] : All Connections kube-system/storage-watcher-8494b4b8bb[ReplicaSet] => kube-system/file-plugin-7bfb8b69bf[ReplicaSet] : All Connections @@ -312,7 +380,11 @@ kube-system/tiller-deploy-5c45c9966b[ReplicaSet] => 0.0.0.0-255.255.255.255 : Al kube-system/tiller-deploy-5c45c9966b[ReplicaSet] => default/cog-agents-analyzer[DaemonSet] : All Connections kube-system/tiller-deploy-5c45c9966b[ReplicaSet] => default/cog-agents[DaemonSet] : All Connections kube-system/tiller-deploy-5c45c9966b[ReplicaSet] => default/cog-local-analyzer-7d77fb55cc[ReplicaSet] : All Connections +kube-system/tiller-deploy-5c45c9966b[ReplicaSet] => kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] : TCP dns-tcp-local,UDP dns-local kube-system/tiller-deploy-5c45c9966b[ReplicaSet] => kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] : TCP 10053,UDP 10053 +kube-system/tiller-deploy-5c45c9966b[ReplicaSet] => kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] : TCP dns-tcp-local,UDP dns-local +kube-system/tiller-deploy-5c45c9966b[ReplicaSet] => kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] : TCP dns-tcp-local,UDP dns-local +kube-system/tiller-deploy-5c45c9966b[ReplicaSet] => kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] : TCP dns-tcp-local,UDP dns-local kube-system/tiller-deploy-5c45c9966b[ReplicaSet] => kube-system/calico-node-frontend[DaemonSet] : All Connections kube-system/tiller-deploy-5c45c9966b[ReplicaSet] => kube-system/calico-node[DaemonSet] : All Connections kube-system/tiller-deploy-5c45c9966b[ReplicaSet] => kube-system/file-plugin-7bfb8b69bf[ReplicaSet] : All Connections @@ -329,7 +401,11 @@ kube-system/vpn-858f6d9777[ReplicaSet] => 0.0.0.0-255.255.255.255 : All Connecti kube-system/vpn-858f6d9777[ReplicaSet] => default/cog-agents-analyzer[DaemonSet] : All Connections kube-system/vpn-858f6d9777[ReplicaSet] => default/cog-agents[DaemonSet] : All Connections kube-system/vpn-858f6d9777[ReplicaSet] => default/cog-local-analyzer-7d77fb55cc[ReplicaSet] : All Connections +kube-system/vpn-858f6d9777[ReplicaSet] => kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] : TCP dns-tcp-local,UDP dns-local kube-system/vpn-858f6d9777[ReplicaSet] => kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] : TCP 10053,UDP 10053 +kube-system/vpn-858f6d9777[ReplicaSet] => kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] : TCP dns-tcp-local,UDP dns-local +kube-system/vpn-858f6d9777[ReplicaSet] => kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] : TCP dns-tcp-local,UDP dns-local +kube-system/vpn-858f6d9777[ReplicaSet] => kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] : TCP dns-tcp-local,UDP dns-local kube-system/vpn-858f6d9777[ReplicaSet] => kube-system/calico-node-frontend[DaemonSet] : All Connections kube-system/vpn-858f6d9777[ReplicaSet] => kube-system/calico-node[DaemonSet] : All Connections kube-system/vpn-858f6d9777[ReplicaSet] => kube-system/file-plugin-7bfb8b69bf[ReplicaSet] : All Connections @@ -346,7 +422,11 @@ vendor-system/barbar-app[ReplicaSet] => 0.0.0.0-255.255.255.255 : All Connection vendor-system/barbar-app[ReplicaSet] => default/cog-agents-analyzer[DaemonSet] : All Connections vendor-system/barbar-app[ReplicaSet] => default/cog-agents[DaemonSet] : All Connections vendor-system/barbar-app[ReplicaSet] => default/cog-local-analyzer-7d77fb55cc[ReplicaSet] : All Connections +vendor-system/barbar-app[ReplicaSet] => kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] : TCP dns-tcp-local,UDP dns-local vendor-system/barbar-app[ReplicaSet] => kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] : TCP 10053,UDP 10053 +vendor-system/barbar-app[ReplicaSet] => kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] : TCP dns-tcp-local,UDP dns-local +vendor-system/barbar-app[ReplicaSet] => kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] : TCP dns-tcp-local,UDP dns-local +vendor-system/barbar-app[ReplicaSet] => kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] : TCP dns-tcp-local,UDP dns-local vendor-system/barbar-app[ReplicaSet] => kube-system/calico-node-frontend[DaemonSet] : All Connections vendor-system/barbar-app[ReplicaSet] => kube-system/calico-node[DaemonSet] : All Connections vendor-system/barbar-app[ReplicaSet] => kube-system/file-plugin-7bfb8b69bf[ReplicaSet] : All Connections @@ -363,7 +443,11 @@ vendor-system/foofoo-app[ReplicaSet] => 0.0.0.0-255.255.255.255 : All Connection vendor-system/foofoo-app[ReplicaSet] => default/cog-agents-analyzer[DaemonSet] : All Connections vendor-system/foofoo-app[ReplicaSet] => default/cog-agents[DaemonSet] : All Connections vendor-system/foofoo-app[ReplicaSet] => default/cog-local-analyzer-7d77fb55cc[ReplicaSet] : All Connections +vendor-system/foofoo-app[ReplicaSet] => kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] : TCP dns-tcp-local,UDP dns-local vendor-system/foofoo-app[ReplicaSet] => kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] : TCP 10053,UDP 10053 +vendor-system/foofoo-app[ReplicaSet] => kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] : TCP dns-tcp-local,UDP dns-local +vendor-system/foofoo-app[ReplicaSet] => kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] : TCP dns-tcp-local,UDP dns-local +vendor-system/foofoo-app[ReplicaSet] => kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] : TCP dns-tcp-local,UDP dns-local vendor-system/foofoo-app[ReplicaSet] => kube-system/calico-node-frontend[DaemonSet] : All Connections vendor-system/foofoo-app[ReplicaSet] => kube-system/calico-node[DaemonSet] : All Connections vendor-system/foofoo-app[ReplicaSet] => kube-system/file-plugin-7bfb8b69bf[ReplicaSet] : All Connections diff --git a/test_outputs/diff/diff_between_test_with_named_ports_changed_netpol_and_test_with_named_ports.txt b/test_outputs/diff/diff_between_test_with_named_ports_changed_netpol_and_test_with_named_ports.txt index 57ad60b7..1adef64d 100644 --- a/test_outputs/diff/diff_between_test_with_named_ports_changed_netpol_and_test_with_named_ports.txt +++ b/test_outputs/diff/diff_between_test_with_named_ports_changed_netpol_and_test_with_named_ports.txt @@ -1,22 +1,106 @@ Connectivity diff: +diff-type: changed, source: 0.0.0.0-255.255.255.255, destination: kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local diff-type: changed, source: 0.0.0.0-255.255.255.255, destination: kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet], ref1: TCP 10053,UDP 10053, ref2: TCP 10053-10054,UDP 10053 +diff-type: changed, source: 0.0.0.0-255.255.255.255, destination: kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local +diff-type: changed, source: 0.0.0.0-255.255.255.255, destination: kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local +diff-type: changed, source: 0.0.0.0-255.255.255.255, destination: kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local +diff-type: changed, source: default/cog-agents-analyzer[DaemonSet], destination: kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local diff-type: changed, source: default/cog-agents-analyzer[DaemonSet], destination: kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet], ref1: TCP 10053,UDP 10053, ref2: TCP 10053-10054,UDP 10053 +diff-type: changed, source: default/cog-agents-analyzer[DaemonSet], destination: kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local +diff-type: changed, source: default/cog-agents-analyzer[DaemonSet], destination: kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local +diff-type: changed, source: default/cog-agents-analyzer[DaemonSet], destination: kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local +diff-type: changed, source: default/cog-agents[DaemonSet], destination: kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local diff-type: changed, source: default/cog-agents[DaemonSet], destination: kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet], ref1: TCP 10053,UDP 10053, ref2: TCP 10053-10054,UDP 10053 +diff-type: changed, source: default/cog-agents[DaemonSet], destination: kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local +diff-type: changed, source: default/cog-agents[DaemonSet], destination: kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local +diff-type: changed, source: default/cog-agents[DaemonSet], destination: kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local +diff-type: changed, source: default/cog-local-analyzer-7d77fb55cc[ReplicaSet], destination: kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local diff-type: changed, source: default/cog-local-analyzer-7d77fb55cc[ReplicaSet], destination: kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet], ref1: TCP 10053,UDP 10053, ref2: TCP 10053-10054,UDP 10053 +diff-type: changed, source: default/cog-local-analyzer-7d77fb55cc[ReplicaSet], destination: kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local +diff-type: changed, source: default/cog-local-analyzer-7d77fb55cc[ReplicaSet], destination: kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local +diff-type: changed, source: default/cog-local-analyzer-7d77fb55cc[ReplicaSet], destination: kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local diff-type: changed, source: kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet], destination: kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet], ref1: TCP 10053,UDP 10053, ref2: TCP 10053-10054,UDP 10053 +diff-type: changed, source: kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet], destination: kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local +diff-type: changed, source: kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet], destination: kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local +diff-type: changed, source: kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet], destination: kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local +diff-type: changed, source: kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet], destination: kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local +diff-type: changed, source: kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet], destination: kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local +diff-type: changed, source: kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet], destination: kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local +diff-type: changed, source: kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet], destination: kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local +diff-type: changed, source: kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet], destination: kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local diff-type: changed, source: kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet], destination: kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet], ref1: TCP 10053,UDP 10053, ref2: TCP 10053-10054,UDP 10053 +diff-type: changed, source: kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet], destination: kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local +diff-type: changed, source: kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet], destination: kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local +diff-type: changed, source: kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet], destination: kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local diff-type: changed, source: kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet], destination: kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet], ref1: TCP 10053,UDP 10053, ref2: TCP 10053-10054,UDP 10053 +diff-type: changed, source: kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet], destination: kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local +diff-type: changed, source: kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet], destination: kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local +diff-type: changed, source: kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet], destination: kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local diff-type: changed, source: kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet], destination: kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet], ref1: TCP 10053,UDP 10053, ref2: TCP 10053-10054,UDP 10053 +diff-type: changed, source: kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet], destination: kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local +diff-type: changed, source: kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet], destination: kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local +diff-type: changed, source: kube-system/calico-node-frontend[DaemonSet], destination: kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local diff-type: changed, source: kube-system/calico-node-frontend[DaemonSet], destination: kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet], ref1: TCP 10053,UDP 10053, ref2: TCP 10053-10054,UDP 10053 +diff-type: changed, source: kube-system/calico-node-frontend[DaemonSet], destination: kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local +diff-type: changed, source: kube-system/calico-node-frontend[DaemonSet], destination: kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local +diff-type: changed, source: kube-system/calico-node-frontend[DaemonSet], destination: kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local +diff-type: changed, source: kube-system/calico-node[DaemonSet], destination: kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local diff-type: changed, source: kube-system/calico-node[DaemonSet], destination: kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet], ref1: TCP 10053,UDP 10053, ref2: TCP 10053-10054,UDP 10053 +diff-type: changed, source: kube-system/calico-node[DaemonSet], destination: kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local +diff-type: changed, source: kube-system/calico-node[DaemonSet], destination: kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local +diff-type: changed, source: kube-system/calico-node[DaemonSet], destination: kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local +diff-type: changed, source: kube-system/file-plugin-7bfb8b69bf[ReplicaSet], destination: kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local diff-type: changed, source: kube-system/file-plugin-7bfb8b69bf[ReplicaSet], destination: kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet], ref1: TCP 10053,UDP 10053, ref2: TCP 10053-10054,UDP 10053 +diff-type: changed, source: kube-system/file-plugin-7bfb8b69bf[ReplicaSet], destination: kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local +diff-type: changed, source: kube-system/file-plugin-7bfb8b69bf[ReplicaSet], destination: kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local +diff-type: changed, source: kube-system/file-plugin-7bfb8b69bf[ReplicaSet], destination: kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local +diff-type: changed, source: kube-system/heapster-7df8cb8c66[ReplicaSet], destination: kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local diff-type: changed, source: kube-system/heapster-7df8cb8c66[ReplicaSet], destination: kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet], ref1: TCP 10053,UDP 10053, ref2: TCP 10053-10054,UDP 10053 +diff-type: changed, source: kube-system/heapster-7df8cb8c66[ReplicaSet], destination: kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local +diff-type: changed, source: kube-system/heapster-7df8cb8c66[ReplicaSet], destination: kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local +diff-type: changed, source: kube-system/heapster-7df8cb8c66[ReplicaSet], destination: kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local +diff-type: changed, source: kube-system/keepalived-watcher-not-frontend[DaemonSet], destination: kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local diff-type: changed, source: kube-system/keepalived-watcher-not-frontend[DaemonSet], destination: kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet], ref1: TCP 10053,UDP 10053, ref2: TCP 10053-10054,UDP 10053 +diff-type: changed, source: kube-system/keepalived-watcher-not-frontend[DaemonSet], destination: kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local +diff-type: changed, source: kube-system/keepalived-watcher-not-frontend[DaemonSet], destination: kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local +diff-type: changed, source: kube-system/keepalived-watcher-not-frontend[DaemonSet], destination: kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local +diff-type: changed, source: kube-system/keepalived-watcher[DaemonSet], destination: kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local diff-type: changed, source: kube-system/keepalived-watcher[DaemonSet], destination: kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet], ref1: TCP 10053,UDP 10053, ref2: TCP 10053-10054,UDP 10053 +diff-type: changed, source: kube-system/keepalived-watcher[DaemonSet], destination: kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local +diff-type: changed, source: kube-system/keepalived-watcher[DaemonSet], destination: kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local +diff-type: changed, source: kube-system/keepalived-watcher[DaemonSet], destination: kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local +diff-type: changed, source: kube-system/kube-fluentd-frontend[DaemonSet], destination: kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local diff-type: changed, source: kube-system/kube-fluentd-frontend[DaemonSet], destination: kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet], ref1: TCP 10053,UDP 10053, ref2: TCP 10053-10054,UDP 10053 +diff-type: changed, source: kube-system/kube-fluentd-frontend[DaemonSet], destination: kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local +diff-type: changed, source: kube-system/kube-fluentd-frontend[DaemonSet], destination: kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local +diff-type: changed, source: kube-system/kube-fluentd-frontend[DaemonSet], destination: kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local +diff-type: changed, source: kube-system/kube-fluentd[DaemonSet], destination: kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local diff-type: changed, source: kube-system/kube-fluentd[DaemonSet], destination: kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet], ref1: TCP 10053,UDP 10053, ref2: TCP 10053-10054,UDP 10053 +diff-type: changed, source: kube-system/kube-fluentd[DaemonSet], destination: kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local +diff-type: changed, source: kube-system/kube-fluentd[DaemonSet], destination: kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local +diff-type: changed, source: kube-system/kube-fluentd[DaemonSet], destination: kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local +diff-type: changed, source: kube-system/storage-watcher-8494b4b8bb[ReplicaSet], destination: kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local diff-type: changed, source: kube-system/storage-watcher-8494b4b8bb[ReplicaSet], destination: kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet], ref1: TCP 10053,UDP 10053, ref2: TCP 10053-10054,UDP 10053 +diff-type: changed, source: kube-system/storage-watcher-8494b4b8bb[ReplicaSet], destination: kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local +diff-type: changed, source: kube-system/storage-watcher-8494b4b8bb[ReplicaSet], destination: kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local +diff-type: changed, source: kube-system/storage-watcher-8494b4b8bb[ReplicaSet], destination: kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local +diff-type: changed, source: kube-system/tiller-deploy-5c45c9966b[ReplicaSet], destination: kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local diff-type: changed, source: kube-system/tiller-deploy-5c45c9966b[ReplicaSet], destination: kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet], ref1: TCP 10053,UDP 10053, ref2: TCP 10053-10054,UDP 10053 +diff-type: changed, source: kube-system/tiller-deploy-5c45c9966b[ReplicaSet], destination: kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local +diff-type: changed, source: kube-system/tiller-deploy-5c45c9966b[ReplicaSet], destination: kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local +diff-type: changed, source: kube-system/tiller-deploy-5c45c9966b[ReplicaSet], destination: kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local +diff-type: changed, source: kube-system/vpn-858f6d9777[ReplicaSet], destination: kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local diff-type: changed, source: kube-system/vpn-858f6d9777[ReplicaSet], destination: kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet], ref1: TCP 10053,UDP 10053, ref2: TCP 10053-10054,UDP 10053 +diff-type: changed, source: kube-system/vpn-858f6d9777[ReplicaSet], destination: kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local +diff-type: changed, source: kube-system/vpn-858f6d9777[ReplicaSet], destination: kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local +diff-type: changed, source: kube-system/vpn-858f6d9777[ReplicaSet], destination: kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local +diff-type: changed, source: vendor-system/barbar-app[ReplicaSet], destination: kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local diff-type: changed, source: vendor-system/barbar-app[ReplicaSet], destination: kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet], ref1: TCP 10053,UDP 10053, ref2: TCP 10053-10054,UDP 10053 -diff-type: changed, source: vendor-system/foofoo-app[ReplicaSet], destination: kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet], ref1: TCP 10053,UDP 10053, ref2: TCP 10053-10054,UDP 10053 \ No newline at end of file +diff-type: changed, source: vendor-system/barbar-app[ReplicaSet], destination: kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local +diff-type: changed, source: vendor-system/barbar-app[ReplicaSet], destination: kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local +diff-type: changed, source: vendor-system/barbar-app[ReplicaSet], destination: kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local +diff-type: changed, source: vendor-system/foofoo-app[ReplicaSet], destination: kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local +diff-type: changed, source: vendor-system/foofoo-app[ReplicaSet], destination: kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet], ref1: TCP 10053,UDP 10053, ref2: TCP 10053-10054,UDP 10053 +diff-type: changed, source: vendor-system/foofoo-app[ReplicaSet], destination: kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local +diff-type: changed, source: vendor-system/foofoo-app[ReplicaSet], destination: kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local +diff-type: changed, source: vendor-system/foofoo-app[ReplicaSet], destination: kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local \ No newline at end of file diff --git a/tests/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports/namespace_and_deployments.yaml b/tests/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports/namespace_and_deployments.yaml new file mode 100644 index 00000000..b7f10e5a --- /dev/null +++ b/tests/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports/namespace_and_deployments.yaml @@ -0,0 +1,34 @@ +--- +apiVersion: v1 +kind: Namespace +metadata: + name: hello-world +spec: {} +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: workload-a + namespace: hello-world + labels: + app: a-app +spec: + selector: + matchLabels: + app: a-app + template: + metadata: + labels: + app: a-app + spec: + containers: + - name: hello-world + image: quay.io/shfa/hello-world:latest + ports: + - name: local-dns + containerPort: 8000 # containerport1 + - name: local-dns2 + containerPort: 8050 # containerport2 + - name: http + containerPort: 8090 # containerport3 +--- diff --git a/tests/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports/policy.yaml b/tests/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports/policy.yaml new file mode 100644 index 00000000..29af6bd2 --- /dev/null +++ b/tests/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports/policy.yaml @@ -0,0 +1,18 @@ +apiVersion: networking.k8s.io/v1 +kind: NetworkPolicy +metadata: + name: ingress-based-on-named-ports + namespace: hello-world +spec: + podSelector: + matchLabels: + app: a-app + policyTypes: + - Ingress + ingress: + - from: + - namespaceSelector: {} + ports: + - port: local-dns + - port: http + - port: new-port diff --git a/tests/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_2/namespace_and_deployments.yaml b/tests/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_2/namespace_and_deployments.yaml new file mode 100644 index 00000000..b7f10e5a --- /dev/null +++ b/tests/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_2/namespace_and_deployments.yaml @@ -0,0 +1,34 @@ +--- +apiVersion: v1 +kind: Namespace +metadata: + name: hello-world +spec: {} +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: workload-a + namespace: hello-world + labels: + app: a-app +spec: + selector: + matchLabels: + app: a-app + template: + metadata: + labels: + app: a-app + spec: + containers: + - name: hello-world + image: quay.io/shfa/hello-world:latest + ports: + - name: local-dns + containerPort: 8000 # containerport1 + - name: local-dns2 + containerPort: 8050 # containerport2 + - name: http + containerPort: 8090 # containerport3 +--- diff --git a/tests/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_2/policy.yaml b/tests/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_2/policy.yaml new file mode 100644 index 00000000..b282a614 --- /dev/null +++ b/tests/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_2/policy.yaml @@ -0,0 +1,18 @@ +apiVersion: networking.k8s.io/v1 +kind: NetworkPolicy +metadata: + name: ingress-based-on-named-ports + namespace: hello-world +spec: + podSelector: + matchLabels: + app: a-app + policyTypes: + - Ingress + ingress: + - from: + - namespaceSelector: {} + ports: + - port: local-dns + - port: http + protocol: UDP diff --git a/tests/netpol_named_port_test/netpol.yaml b/tests/netpol_named_port_test/netpol.yaml new file mode 100644 index 00000000..aa746406 --- /dev/null +++ b/tests/netpol_named_port_test/netpol.yaml @@ -0,0 +1,18 @@ +apiVersion: networking.k8s.io/v1 +kind: NetworkPolicy +metadata: + name: enable-ingress-from-named-port + namespace: helloworld +spec: + podSelector: + matchLabels: + app: app-a + policyTypes: + - Ingress + - Egress + ingress: + - from: + - namespaceSelector: {} + ports: + - port: newport + protocol: UDP diff --git a/tests/netpol_named_port_test/pods.yaml b/tests/netpol_named_port_test/pods.yaml new file mode 100644 index 00000000..619bafed --- /dev/null +++ b/tests/netpol_named_port_test/pods.yaml @@ -0,0 +1,59 @@ +--- +apiVersion: v1 +kind: Namespace +metadata: + name: helloworld +spec: {} +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: pod-a + namespace: helloworld + labels: + app: app-a +spec: + selector: + matchLabels: + app: app-a + template: + metadata: + labels: + app: app-a + spec: + containers: + - name: helloworld + image: quay.io/shfa/app-a:latest + ports: + - name: newport + containerPort: 8956 + protocol: SCTP + - name: udps + containerport: 3535 + protocol: UDP +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: new-pod + namespace: helloworld + labels: + app: app-b +spec: + selector: + matchLabels: + app: app-b + template: + metadata: + labels: + app: app-b + spec: + containers: + - name: helloworld + image: quay.io/shfa/ingress-world:latest + ports: + - containerPort: 8956 # containerport1 + protocol: SCTP + - containerPort: 8050 # containerport2 + - containerPort: 8090 # containerport3 +--- \ No newline at end of file diff --git a/tests/netpol_named_port_test_2/netpol.yaml b/tests/netpol_named_port_test_2/netpol.yaml new file mode 100644 index 00000000..3e090187 --- /dev/null +++ b/tests/netpol_named_port_test_2/netpol.yaml @@ -0,0 +1,24 @@ +apiVersion: networking.k8s.io/v1 +kind: NetworkPolicy +metadata: + name: enable-ingress-from-named-port + namespace: helloworld +spec: + podSelector: + matchLabels: + app: app-b + policyTypes: + - Ingress + - Egress + ingress: + - from: + - namespaceSelector: {} + ports: + - port: newport + protocol: UDP + - port: sctp-port + protocol: SCTP + - port: newport + protocol: SCTP + - port: not-found + protocol: SCTP diff --git a/tests/netpol_named_port_test_2/pods.yaml b/tests/netpol_named_port_test_2/pods.yaml new file mode 100644 index 00000000..a9978a1d --- /dev/null +++ b/tests/netpol_named_port_test_2/pods.yaml @@ -0,0 +1,63 @@ +--- +apiVersion: v1 +kind: Namespace +metadata: + name: helloworld +spec: {} +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: pod-a + namespace: helloworld + labels: + app: app-a +spec: + selector: + matchLabels: + app: app-a + template: + metadata: + labels: + app: app-a + spec: + containers: + - name: helloworld + image: quay.io/shfa/app-a:latest + ports: + - name: newport + containerPort: 8956 + protocol: SCTP + - name: udps + containerport: 3535 + protocol: UDP +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: new-pod + namespace: helloworld + labels: + app: app-b +spec: + selector: + matchLabels: + app: app-b + template: + metadata: + labels: + app: app-b + spec: + containers: + - name: helloworld + image: quay.io/shfa/ingress-world:latest + ports: + - name: sctp-port + containerPort: 8956 + protocol: SCTP + - name: newport + containerPort: 9090 + protocol: SCTP + - containerPort: 8050 + - containerPort: 8090 +--- \ No newline at end of file From 4adf3c81992bb2162f8737880965ad10d1ef4d1f Mon Sep 17 00:00:00 2001 From: shireenf-ibm <82180114+shireenf-ibm@users.noreply.github.com> Date: Mon, 7 Oct 2024 11:07:26 +0300 Subject: [PATCH 2/6] Update pkg/netpol/connlist/internal/ingressanalyzer/ingress_analyzer.go Co-authored-by: Adi Sosnovich <82078442+adisos@users.noreply.github.com> --- .../connlist/internal/ingressanalyzer/ingress_analyzer.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/netpol/connlist/internal/ingressanalyzer/ingress_analyzer.go b/pkg/netpol/connlist/internal/ingressanalyzer/ingress_analyzer.go index de158c3e..765d7245 100644 --- a/pkg/netpol/connlist/internal/ingressanalyzer/ingress_analyzer.go +++ b/pkg/netpol/connlist/internal/ingressanalyzer/ingress_analyzer.go @@ -364,7 +364,7 @@ func (ia *IngressAnalyzer) getIngressPeerConnection(peer eval.Peer, actualServic if err != nil { return nil, err } - // only TCP ports are acceptable + // only TCP ports are acceptable for Ingress resource if protocol != string(corev1.ProtocolTCP) || portInt < 0 { // no matching port for the given named port continue } From 56c58f83cd917acde9c88e23dee3333a38a38114 Mon Sep 17 00:00:00 2001 From: shireenf-ibm Date: Mon, 7 Oct 2024 11:34:20 +0300 Subject: [PATCH 3/6] typo fix --- pkg/netpol/connlist/connlist.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkg/netpol/connlist/connlist.go b/pkg/netpol/connlist/connlist.go index d32aab82..33e09fe5 100644 --- a/pkg/netpol/connlist/connlist.go +++ b/pkg/netpol/connlist/connlist.go @@ -348,9 +348,9 @@ func (c *connection) ProtocolsAndPorts() map[v1.Protocol][]common.PortRange { // returns a *common.ConnectionSet from Peer2PeerConnection data func GetConnectionSetFromP2PConnection(c Peer2PeerConnection) *common.ConnectionSet { protocolsToPortSetMap := make(map[v1.Protocol]*common.PortSet, len(c.ProtocolsAndPorts())) - for protocol, portRageArr := range c.ProtocolsAndPorts() { + for protocol, portRangeArr := range c.ProtocolsAndPorts() { protocolsToPortSetMap[protocol] = common.MakePortSet(false) - for _, p := range portRageArr { // each single port range may contain either named port or an interval of start and end numbers + for _, p := range portRangeArr { // each single port range may contain either named port or an interval of start and end numbers if p.NamedPort() != "" { protocolsToPortSetMap[protocol].AddPort(intstr.FromString(p.NamedPort())) } else { From 78cb719b61271d954a41e438e8c7c291c4beea02 Mon Sep 17 00:00:00 2001 From: shireenf-ibm Date: Mon, 7 Oct 2024 13:33:39 +0300 Subject: [PATCH 4/6] reverting some changes (1 &3 in PR desc.) --- pkg/netpol/connlist/connlist.go | 9 +- pkg/netpol/eval/internal/k8s/netpol.go | 9 +- pkg/netpol/eval/internal/k8s/netpol_test.go | 5 +- pkg/netpol/internal/common/connection.go | 4 - pkg/netpol/internal/common/connectionset.go | 27 ++---- ...tpol_named_port_test_2_connlist_output.txt | 2 +- ...netpol_named_port_test_connlist_output.txt | 3 +- ...d_ports_changed_netpol_connlist_output.txt | 84 ------------------ .../test_with_named_ports_connlist_output.txt | 84 ------------------ ...anged_netpol_and_test_with_named_ports.txt | 86 +------------------ 10 files changed, 19 insertions(+), 294 deletions(-) diff --git a/pkg/netpol/connlist/connlist.go b/pkg/netpol/connlist/connlist.go index 33e09fe5..e4565098 100644 --- a/pkg/netpol/connlist/connlist.go +++ b/pkg/netpol/connlist/connlist.go @@ -36,7 +36,6 @@ import ( "github.com/np-guard/netpol-analyzer/pkg/netpol/internal/common" utilerrors "k8s.io/apimachinery/pkg/util/errors" - "k8s.io/apimachinery/pkg/util/intstr" ) // A ConnlistAnalyzer provides API to recursively scan a directory for Kubernetes resources including network policies, @@ -350,12 +349,8 @@ func GetConnectionSetFromP2PConnection(c Peer2PeerConnection) *common.Connection protocolsToPortSetMap := make(map[v1.Protocol]*common.PortSet, len(c.ProtocolsAndPorts())) for protocol, portRangeArr := range c.ProtocolsAndPorts() { protocolsToPortSetMap[protocol] = common.MakePortSet(false) - for _, p := range portRangeArr { // each single port range may contain either named port or an interval of start and end numbers - if p.NamedPort() != "" { - protocolsToPortSetMap[protocol].AddPort(intstr.FromString(p.NamedPort())) - } else { - protocolsToPortSetMap[protocol].AddPortRange(p.Start(), p.End()) - } + for _, p := range portRangeArr { + protocolsToPortSetMap[protocol].AddPortRange(p.Start(), p.End()) } } connectionSet := &common.ConnectionSet{AllowAll: c.AllProtocolsAndPorts(), AllowedProtocols: protocolsToPortSetMap} diff --git a/pkg/netpol/eval/internal/k8s/netpol.go b/pkg/netpol/eval/internal/k8s/netpol.go index 3a3b8d54..331a67bd 100644 --- a/pkg/netpol/eval/internal/k8s/netpol.go +++ b/pkg/netpol/eval/internal/k8s/netpol.go @@ -137,9 +137,9 @@ func (np *NetworkPolicy) ruleConnections(rulePorts []netv1.NetworkPolicyPort, ds } // valid returned values from `getsPortsRange` : // 1. empty-numbered-range with the string namedPort, if the rule has a named-port which is not (or cannot be) converted to a - // numbered-range by the dst's ports, + // numbered-range by the dst's ports. // 2. non empty-range when the rule ports are numbered or the named-port was converted - if isEmptyPortRange(startPort, endPort) && portName != "" { // (1) && portName != "" may be eliminated + if (dst == nil || isPeerRepresentative(dst)) && isEmptyPortRange(startPort, endPort) && portName != "" { // this func may be called: // 1- for computing cluster-wide exposure of the policy (dst is nil); // 2- in-order to get a connection from a real workload to a representative dst. @@ -147,12 +147,13 @@ func (np *NetworkPolicy) ruleConnections(rulePorts []netv1.NetworkPolicyPort, ds // pod from manifests, so we use the named-port as is. // 3- in order to get a connection from any pod to a real dst. // in the third case the namedPort of the policy rule may not have a match in the Pod's configuration, - // so it will be used as the ports-range of the connection + // so it will be ignored (the pod has no matching named-port in its configuration - unknown connection is not allowed) // 4- in order to get a connection from any pod to an ip dst (will not get here, as named ports are not defined for ip-blocks) // adding portName string to the portSet ports.AddPort(intstr.FromString(portName)) - } else if !isEmptyPortRange(startPort, endPort) { // the else case (2); + } + if !isEmptyPortRange(startPort, endPort) { ports.AddPortRange(int64(startPort), int64(endPort)) } } diff --git a/pkg/netpol/eval/internal/k8s/netpol_test.go b/pkg/netpol/eval/internal/k8s/netpol_test.go index 2c2b958c..e36c0671 100644 --- a/pkg/netpol/eval/internal/k8s/netpol_test.go +++ b/pkg/netpol/eval/internal/k8s/netpol_test.go @@ -87,14 +87,15 @@ var ( func TestNetworkPolicyPortAnalysis(t *testing.T) { // tested function: func ruleConnections(rulePorts []netv1.NetworkPolicyPort, dst Peer) ConnectionSet dst := PodPeer{Pod: &Pod{Name: "A", Namespace: "default"}} - dst.Pod.Ports = []v1.ContainerPort{{Name: PortHello.StrVal, ContainerPort: 22}} // default protocol is TCP + dst.Pod.Ports = []v1.ContainerPort{{Name: PortHello.StrVal, ContainerPort: 22, Protocol: "UDP"}} + // default protocol for containerPort is TCP, if the Protocol is not defined will get a mismatch var AllowNamedPortOnProtocol = netv1.NetworkPolicyPort{ Protocol: &UDP, Port: &PortHello, } n := &NetworkPolicy{} res, err := n.ruleConnections([]netv1.NetworkPolicyPort{AllowNamedPortOnProtocol}, &dst) - expectedConnStr := "UDP hello" // UDP protocol with hello namedPort is a mismatch for the pod port which is TCP hello (which is TCP 22) + expectedConnStr := "UDP 22" if res.String() != expectedConnStr { t.Fatalf("mismatch on ruleConnections result: expected %v, got %v", expectedConnStr, res.String()) } diff --git a/pkg/netpol/internal/common/connection.go b/pkg/netpol/internal/common/connection.go index 9672c47c..b4544bb9 100644 --- a/pkg/netpol/internal/common/connection.go +++ b/pkg/netpol/internal/common/connection.go @@ -22,15 +22,11 @@ type Connection interface { // PortRange describes a port or a range of ports for allowed traffic // If start port equals end port, it represents a single port -// If NamedPort is known but input resources does not give hint for its matching port number, then port-name represents the PortRange type PortRange interface { // Start is the start port Start() int64 // End is the end port End() int64 - // NamedPort is the name of the port - // NamedPort is used when the Start() and End() of the port are unknown - NamedPort() string // String returns a string representation of the PortRange object String() string } diff --git a/pkg/netpol/internal/common/connectionset.go b/pkg/netpol/internal/common/connectionset.go index 73db9426..183e2f6f 100644 --- a/pkg/netpol/internal/common/connectionset.go +++ b/pkg/netpol/internal/common/connectionset.go @@ -237,47 +237,33 @@ func (conn *ConnectionSet) ReplaceNamedPortWithMatchingPortNum(protocol v1.Proto } // portRange implements the PortRange interface -// a port range may be represented by a single interval (start-end) or by a single named-port type portRange struct { - interval interval.Interval - portName string // not empty iff interval is empty + Interval interval.Interval } func (p *portRange) Start() int64 { - return p.interval.Start() + return p.Interval.Start() } func (p *portRange) End() int64 { - return p.interval.End() -} - -func (p *portRange) NamedPort() string { - return p.portName + return p.Interval.End() } func (p *portRange) String() string { - if p.NamedPort() != "" { - return p.NamedPort() - } - if p.interval.End() != p.interval.Start() { + if p.Interval.End() != p.Interval.Start() { return fmt.Sprintf("%d-%d", p.Start(), p.End()) } return fmt.Sprintf("%d", p.Start()) } -// ProtocolsAndPortsMap() returns a map from allowed protocol to list of allowed ports. +// ProtocolsAndPortsMap() returns a map from allowed protocol to list of allowed ports ranges. func (conn *ConnectionSet) ProtocolsAndPortsMap() map[v1.Protocol][]PortRange { res := make(map[v1.Protocol][]PortRange, 0) for protocol, portSet := range conn.AllowedProtocols { res[protocol] = make([]PortRange, 0) // TODO: consider leave the slice of ports empty if portSet covers the full range for _, v := range portSet.Ports.Intervals() { - res[protocol] = append(res[protocol], &portRange{interval: v}) - } - for k := range portSet.NamedPorts { - if portSet.NamedPorts[k] { // if true - res[protocol] = append(res[protocol], &portRange{portName: k}) - } + res[protocol] = append(res[protocol], &portRange{Interval: v}) } } return res @@ -319,7 +305,6 @@ func portsString(ports []PortRange) string { for i := range ports { portsStr[i] = ports[i].String() } - sort.Strings(portsStr) return strings.Join(portsStr, connsAndPortRangeSeparator) } diff --git a/test_outputs/connlist/netpol_named_port_test_2_connlist_output.txt b/test_outputs/connlist/netpol_named_port_test_2_connlist_output.txt index 9a9a24ec..3cebb7b3 100644 --- a/test_outputs/connlist/netpol_named_port_test_2_connlist_output.txt +++ b/test_outputs/connlist/netpol_named_port_test_2_connlist_output.txt @@ -1,3 +1,3 @@ 0.0.0.0-255.255.255.255 => helloworld/pod-a[Deployment] : All Connections helloworld/pod-a[Deployment] => 0.0.0.0-255.255.255.255 : All Connections -helloworld/pod-a[Deployment] => helloworld/new-pod[Deployment] : SCTP 8956,9090,not-found,UDP newport \ No newline at end of file +helloworld/pod-a[Deployment] => helloworld/new-pod[Deployment] : SCTP 8956,9090 \ No newline at end of file diff --git a/test_outputs/connlist/netpol_named_port_test_connlist_output.txt b/test_outputs/connlist/netpol_named_port_test_connlist_output.txt index d86d5a36..3757be36 100644 --- a/test_outputs/connlist/netpol_named_port_test_connlist_output.txt +++ b/test_outputs/connlist/netpol_named_port_test_connlist_output.txt @@ -1,3 +1,2 @@ 0.0.0.0-255.255.255.255 => helloworld/new-pod[Deployment] : All Connections -helloworld/new-pod[Deployment] => 0.0.0.0-255.255.255.255 : All Connections -helloworld/new-pod[Deployment] => helloworld/pod-a[Deployment] : UDP newport \ No newline at end of file +helloworld/new-pod[Deployment] => 0.0.0.0-255.255.255.255 : All Connections \ No newline at end of file diff --git a/test_outputs/connlist/test_with_named_ports_changed_netpol_connlist_output.txt b/test_outputs/connlist/test_with_named_ports_changed_netpol_connlist_output.txt index c5aa2fd9..73327c44 100644 --- a/test_outputs/connlist/test_with_named_ports_changed_netpol_connlist_output.txt +++ b/test_outputs/connlist/test_with_named_ports_changed_netpol_connlist_output.txt @@ -1,11 +1,7 @@ 0.0.0.0-255.255.255.255 => default/cog-agents-analyzer[DaemonSet] : All Connections 0.0.0.0-255.255.255.255 => default/cog-agents[DaemonSet] : All Connections 0.0.0.0-255.255.255.255 => default/cog-local-analyzer-7d77fb55cc[ReplicaSet] : All Connections -0.0.0.0-255.255.255.255 => kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local 0.0.0.0-255.255.255.255 => kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] : TCP 10053-10054,UDP 10053 -0.0.0.0-255.255.255.255 => kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local -0.0.0.0-255.255.255.255 => kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local -0.0.0.0-255.255.255.255 => kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local 0.0.0.0-255.255.255.255 => kube-system/calico-node-frontend[DaemonSet] : All Connections 0.0.0.0-255.255.255.255 => kube-system/calico-node[DaemonSet] : All Connections 0.0.0.0-255.255.255.255 => kube-system/file-plugin-7bfb8b69bf[ReplicaSet] : All Connections @@ -22,11 +18,7 @@ default/cog-agents-analyzer[DaemonSet] => 0.0.0.0-255.255.255.255 : All Connections default/cog-agents-analyzer[DaemonSet] => default/cog-agents[DaemonSet] : All Connections default/cog-agents-analyzer[DaemonSet] => default/cog-local-analyzer-7d77fb55cc[ReplicaSet] : All Connections -default/cog-agents-analyzer[DaemonSet] => kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local default/cog-agents-analyzer[DaemonSet] => kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] : TCP 10053-10054,UDP 10053 -default/cog-agents-analyzer[DaemonSet] => kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local -default/cog-agents-analyzer[DaemonSet] => kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local -default/cog-agents-analyzer[DaemonSet] => kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local default/cog-agents-analyzer[DaemonSet] => kube-system/calico-node-frontend[DaemonSet] : All Connections default/cog-agents-analyzer[DaemonSet] => kube-system/calico-node[DaemonSet] : All Connections default/cog-agents-analyzer[DaemonSet] => kube-system/file-plugin-7bfb8b69bf[ReplicaSet] : All Connections @@ -43,11 +35,7 @@ default/cog-agents-analyzer[DaemonSet] => vendor-system/foofoo-app[ReplicaSet] : default/cog-agents[DaemonSet] => 0.0.0.0-255.255.255.255 : All Connections default/cog-agents[DaemonSet] => default/cog-agents-analyzer[DaemonSet] : All Connections default/cog-agents[DaemonSet] => default/cog-local-analyzer-7d77fb55cc[ReplicaSet] : All Connections -default/cog-agents[DaemonSet] => kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local default/cog-agents[DaemonSet] => kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] : TCP 10053-10054,UDP 10053 -default/cog-agents[DaemonSet] => kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local -default/cog-agents[DaemonSet] => kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local -default/cog-agents[DaemonSet] => kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local default/cog-agents[DaemonSet] => kube-system/calico-node-frontend[DaemonSet] : All Connections default/cog-agents[DaemonSet] => kube-system/calico-node[DaemonSet] : All Connections default/cog-agents[DaemonSet] => kube-system/file-plugin-7bfb8b69bf[ReplicaSet] : All Connections @@ -64,11 +52,7 @@ default/cog-agents[DaemonSet] => vendor-system/foofoo-app[ReplicaSet] : All Conn default/cog-local-analyzer-7d77fb55cc[ReplicaSet] => 0.0.0.0-255.255.255.255 : All Connections default/cog-local-analyzer-7d77fb55cc[ReplicaSet] => default/cog-agents-analyzer[DaemonSet] : All Connections default/cog-local-analyzer-7d77fb55cc[ReplicaSet] => default/cog-agents[DaemonSet] : All Connections -default/cog-local-analyzer-7d77fb55cc[ReplicaSet] => kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local default/cog-local-analyzer-7d77fb55cc[ReplicaSet] => kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] : TCP 10053-10054,UDP 10053 -default/cog-local-analyzer-7d77fb55cc[ReplicaSet] => kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local -default/cog-local-analyzer-7d77fb55cc[ReplicaSet] => kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local -default/cog-local-analyzer-7d77fb55cc[ReplicaSet] => kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local default/cog-local-analyzer-7d77fb55cc[ReplicaSet] => kube-system/calico-node-frontend[DaemonSet] : All Connections default/cog-local-analyzer-7d77fb55cc[ReplicaSet] => kube-system/calico-node[DaemonSet] : All Connections default/cog-local-analyzer-7d77fb55cc[ReplicaSet] => kube-system/file-plugin-7bfb8b69bf[ReplicaSet] : All Connections @@ -87,9 +71,6 @@ kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] => de kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] => default/cog-agents[DaemonSet] : All Connections kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] => default/cog-local-analyzer-7d77fb55cc[ReplicaSet] : All Connections kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] => kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] : TCP 10053-10054,UDP 10053 -kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] => kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local -kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] => kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local -kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] => kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] => kube-system/calico-node-frontend[DaemonSet] : All Connections kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] => kube-system/calico-node[DaemonSet] : All Connections kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] => kube-system/file-plugin-7bfb8b69bf[ReplicaSet] : All Connections @@ -107,10 +88,6 @@ kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] => 0.0.0.0-255. kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] => default/cog-agents-analyzer[DaemonSet] : All Connections kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] => default/cog-agents[DaemonSet] : All Connections kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] => default/cog-local-analyzer-7d77fb55cc[ReplicaSet] : All Connections -kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] => kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local -kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] => kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local -kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] => kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local -kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] => kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] => kube-system/calico-node-frontend[DaemonSet] : All Connections kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] => kube-system/calico-node[DaemonSet] : All Connections kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] => kube-system/file-plugin-7bfb8b69bf[ReplicaSet] : All Connections @@ -128,10 +105,7 @@ kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] => 0.0.0. kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] => default/cog-agents-analyzer[DaemonSet] : All Connections kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] => default/cog-agents[DaemonSet] : All Connections kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] => default/cog-local-analyzer-7d77fb55cc[ReplicaSet] : All Connections -kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] => kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] => kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] : TCP 10053-10054,UDP 10053 -kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] => kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local -kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] => kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] => kube-system/calico-node-frontend[DaemonSet] : All Connections kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] => kube-system/calico-node[DaemonSet] : All Connections kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] => kube-system/file-plugin-7bfb8b69bf[ReplicaSet] : All Connections @@ -149,10 +123,7 @@ kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] => 0.0.0 kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] => default/cog-agents-analyzer[DaemonSet] : All Connections kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] => default/cog-agents[DaemonSet] : All Connections kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] => default/cog-local-analyzer-7d77fb55cc[ReplicaSet] : All Connections -kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] => kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] => kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] : TCP 10053-10054,UDP 10053 -kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] => kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local -kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] => kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] => kube-system/calico-node-frontend[DaemonSet] : All Connections kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] => kube-system/calico-node[DaemonSet] : All Connections kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] => kube-system/file-plugin-7bfb8b69bf[ReplicaSet] : All Connections @@ -170,10 +141,7 @@ kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] => default/cog-agents-analyzer[DaemonSet] : All Connections kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] => default/cog-agents[DaemonSet] : All Connections kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] => default/cog-local-analyzer-7d77fb55cc[ReplicaSet] : All Connections -kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] => kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] => kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] : TCP 10053-10054,UDP 10053 -kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] => kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local -kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] => kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] => kube-system/calico-node-frontend[DaemonSet] : All Connections kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] => kube-system/calico-node[DaemonSet] : All Connections kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] => kube-system/file-plugin-7bfb8b69bf[ReplicaSet] : All Connections @@ -191,11 +159,7 @@ kube-system/calico-node-frontend[DaemonSet] => 0.0.0.0-255.255.255.255 : All Con kube-system/calico-node-frontend[DaemonSet] => default/cog-agents-analyzer[DaemonSet] : All Connections kube-system/calico-node-frontend[DaemonSet] => default/cog-agents[DaemonSet] : All Connections kube-system/calico-node-frontend[DaemonSet] => default/cog-local-analyzer-7d77fb55cc[ReplicaSet] : All Connections -kube-system/calico-node-frontend[DaemonSet] => kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local kube-system/calico-node-frontend[DaemonSet] => kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] : TCP 10053-10054,UDP 10053 -kube-system/calico-node-frontend[DaemonSet] => kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local -kube-system/calico-node-frontend[DaemonSet] => kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local -kube-system/calico-node-frontend[DaemonSet] => kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local kube-system/calico-node-frontend[DaemonSet] => kube-system/calico-node[DaemonSet] : All Connections kube-system/calico-node-frontend[DaemonSet] => kube-system/file-plugin-7bfb8b69bf[ReplicaSet] : All Connections kube-system/calico-node-frontend[DaemonSet] => kube-system/heapster-7df8cb8c66[ReplicaSet] : All Connections @@ -212,11 +176,7 @@ kube-system/calico-node[DaemonSet] => 0.0.0.0-255.255.255.255 : All Connections kube-system/calico-node[DaemonSet] => default/cog-agents-analyzer[DaemonSet] : All Connections kube-system/calico-node[DaemonSet] => default/cog-agents[DaemonSet] : All Connections kube-system/calico-node[DaemonSet] => default/cog-local-analyzer-7d77fb55cc[ReplicaSet] : All Connections -kube-system/calico-node[DaemonSet] => kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local kube-system/calico-node[DaemonSet] => kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] : TCP 10053-10054,UDP 10053 -kube-system/calico-node[DaemonSet] => kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local -kube-system/calico-node[DaemonSet] => kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local -kube-system/calico-node[DaemonSet] => kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local kube-system/calico-node[DaemonSet] => kube-system/calico-node-frontend[DaemonSet] : All Connections kube-system/calico-node[DaemonSet] => kube-system/file-plugin-7bfb8b69bf[ReplicaSet] : All Connections kube-system/calico-node[DaemonSet] => kube-system/heapster-7df8cb8c66[ReplicaSet] : All Connections @@ -233,11 +193,7 @@ kube-system/file-plugin-7bfb8b69bf[ReplicaSet] => 0.0.0.0-255.255.255.255 : All kube-system/file-plugin-7bfb8b69bf[ReplicaSet] => default/cog-agents-analyzer[DaemonSet] : All Connections kube-system/file-plugin-7bfb8b69bf[ReplicaSet] => default/cog-agents[DaemonSet] : All Connections kube-system/file-plugin-7bfb8b69bf[ReplicaSet] => default/cog-local-analyzer-7d77fb55cc[ReplicaSet] : All Connections -kube-system/file-plugin-7bfb8b69bf[ReplicaSet] => kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local kube-system/file-plugin-7bfb8b69bf[ReplicaSet] => kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] : TCP 10053-10054,UDP 10053 -kube-system/file-plugin-7bfb8b69bf[ReplicaSet] => kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local -kube-system/file-plugin-7bfb8b69bf[ReplicaSet] => kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local -kube-system/file-plugin-7bfb8b69bf[ReplicaSet] => kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local kube-system/file-plugin-7bfb8b69bf[ReplicaSet] => kube-system/calico-node-frontend[DaemonSet] : All Connections kube-system/file-plugin-7bfb8b69bf[ReplicaSet] => kube-system/calico-node[DaemonSet] : All Connections kube-system/file-plugin-7bfb8b69bf[ReplicaSet] => kube-system/heapster-7df8cb8c66[ReplicaSet] : All Connections @@ -254,11 +210,7 @@ kube-system/heapster-7df8cb8c66[ReplicaSet] => 0.0.0.0-255.255.255.255 : All Con kube-system/heapster-7df8cb8c66[ReplicaSet] => default/cog-agents-analyzer[DaemonSet] : All Connections kube-system/heapster-7df8cb8c66[ReplicaSet] => default/cog-agents[DaemonSet] : All Connections kube-system/heapster-7df8cb8c66[ReplicaSet] => default/cog-local-analyzer-7d77fb55cc[ReplicaSet] : All Connections -kube-system/heapster-7df8cb8c66[ReplicaSet] => kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local kube-system/heapster-7df8cb8c66[ReplicaSet] => kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] : TCP 10053-10054,UDP 10053 -kube-system/heapster-7df8cb8c66[ReplicaSet] => kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local -kube-system/heapster-7df8cb8c66[ReplicaSet] => kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local -kube-system/heapster-7df8cb8c66[ReplicaSet] => kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local kube-system/heapster-7df8cb8c66[ReplicaSet] => kube-system/calico-node-frontend[DaemonSet] : All Connections kube-system/heapster-7df8cb8c66[ReplicaSet] => kube-system/calico-node[DaemonSet] : All Connections kube-system/heapster-7df8cb8c66[ReplicaSet] => kube-system/file-plugin-7bfb8b69bf[ReplicaSet] : All Connections @@ -275,11 +227,7 @@ kube-system/keepalived-watcher-not-frontend[DaemonSet] => 0.0.0.0-255.255.255.25 kube-system/keepalived-watcher-not-frontend[DaemonSet] => default/cog-agents-analyzer[DaemonSet] : All Connections kube-system/keepalived-watcher-not-frontend[DaemonSet] => default/cog-agents[DaemonSet] : All Connections kube-system/keepalived-watcher-not-frontend[DaemonSet] => default/cog-local-analyzer-7d77fb55cc[ReplicaSet] : All Connections -kube-system/keepalived-watcher-not-frontend[DaemonSet] => kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local kube-system/keepalived-watcher-not-frontend[DaemonSet] => kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] : TCP 10053-10054,UDP 10053 -kube-system/keepalived-watcher-not-frontend[DaemonSet] => kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local -kube-system/keepalived-watcher-not-frontend[DaemonSet] => kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local -kube-system/keepalived-watcher-not-frontend[DaemonSet] => kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local kube-system/keepalived-watcher-not-frontend[DaemonSet] => kube-system/calico-node-frontend[DaemonSet] : All Connections kube-system/keepalived-watcher-not-frontend[DaemonSet] => kube-system/calico-node[DaemonSet] : All Connections kube-system/keepalived-watcher-not-frontend[DaemonSet] => kube-system/file-plugin-7bfb8b69bf[ReplicaSet] : All Connections @@ -296,11 +244,7 @@ kube-system/keepalived-watcher[DaemonSet] => 0.0.0.0-255.255.255.255 : All Conne kube-system/keepalived-watcher[DaemonSet] => default/cog-agents-analyzer[DaemonSet] : All Connections kube-system/keepalived-watcher[DaemonSet] => default/cog-agents[DaemonSet] : All Connections kube-system/keepalived-watcher[DaemonSet] => default/cog-local-analyzer-7d77fb55cc[ReplicaSet] : All Connections -kube-system/keepalived-watcher[DaemonSet] => kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local kube-system/keepalived-watcher[DaemonSet] => kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] : TCP 10053-10054,UDP 10053 -kube-system/keepalived-watcher[DaemonSet] => kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local -kube-system/keepalived-watcher[DaemonSet] => kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local -kube-system/keepalived-watcher[DaemonSet] => kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local kube-system/keepalived-watcher[DaemonSet] => kube-system/calico-node-frontend[DaemonSet] : All Connections kube-system/keepalived-watcher[DaemonSet] => kube-system/calico-node[DaemonSet] : All Connections kube-system/keepalived-watcher[DaemonSet] => kube-system/file-plugin-7bfb8b69bf[ReplicaSet] : All Connections @@ -317,11 +261,7 @@ kube-system/kube-fluentd-frontend[DaemonSet] => 0.0.0.0-255.255.255.255 : All Co kube-system/kube-fluentd-frontend[DaemonSet] => default/cog-agents-analyzer[DaemonSet] : All Connections kube-system/kube-fluentd-frontend[DaemonSet] => default/cog-agents[DaemonSet] : All Connections kube-system/kube-fluentd-frontend[DaemonSet] => default/cog-local-analyzer-7d77fb55cc[ReplicaSet] : All Connections -kube-system/kube-fluentd-frontend[DaemonSet] => kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local kube-system/kube-fluentd-frontend[DaemonSet] => kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] : TCP 10053-10054,UDP 10053 -kube-system/kube-fluentd-frontend[DaemonSet] => kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local -kube-system/kube-fluentd-frontend[DaemonSet] => kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local -kube-system/kube-fluentd-frontend[DaemonSet] => kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local kube-system/kube-fluentd-frontend[DaemonSet] => kube-system/calico-node-frontend[DaemonSet] : All Connections kube-system/kube-fluentd-frontend[DaemonSet] => kube-system/calico-node[DaemonSet] : All Connections kube-system/kube-fluentd-frontend[DaemonSet] => kube-system/file-plugin-7bfb8b69bf[ReplicaSet] : All Connections @@ -338,11 +278,7 @@ kube-system/kube-fluentd[DaemonSet] => 0.0.0.0-255.255.255.255 : All Connections kube-system/kube-fluentd[DaemonSet] => default/cog-agents-analyzer[DaemonSet] : All Connections kube-system/kube-fluentd[DaemonSet] => default/cog-agents[DaemonSet] : All Connections kube-system/kube-fluentd[DaemonSet] => default/cog-local-analyzer-7d77fb55cc[ReplicaSet] : All Connections -kube-system/kube-fluentd[DaemonSet] => kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local kube-system/kube-fluentd[DaemonSet] => kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] : TCP 10053-10054,UDP 10053 -kube-system/kube-fluentd[DaemonSet] => kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local -kube-system/kube-fluentd[DaemonSet] => kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local -kube-system/kube-fluentd[DaemonSet] => kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local kube-system/kube-fluentd[DaemonSet] => kube-system/calico-node-frontend[DaemonSet] : All Connections kube-system/kube-fluentd[DaemonSet] => kube-system/calico-node[DaemonSet] : All Connections kube-system/kube-fluentd[DaemonSet] => kube-system/file-plugin-7bfb8b69bf[ReplicaSet] : All Connections @@ -359,11 +295,7 @@ kube-system/storage-watcher-8494b4b8bb[ReplicaSet] => 0.0.0.0-255.255.255.255 : kube-system/storage-watcher-8494b4b8bb[ReplicaSet] => default/cog-agents-analyzer[DaemonSet] : All Connections kube-system/storage-watcher-8494b4b8bb[ReplicaSet] => default/cog-agents[DaemonSet] : All Connections kube-system/storage-watcher-8494b4b8bb[ReplicaSet] => default/cog-local-analyzer-7d77fb55cc[ReplicaSet] : All Connections -kube-system/storage-watcher-8494b4b8bb[ReplicaSet] => kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local kube-system/storage-watcher-8494b4b8bb[ReplicaSet] => kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] : TCP 10053-10054,UDP 10053 -kube-system/storage-watcher-8494b4b8bb[ReplicaSet] => kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local -kube-system/storage-watcher-8494b4b8bb[ReplicaSet] => kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local -kube-system/storage-watcher-8494b4b8bb[ReplicaSet] => kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local kube-system/storage-watcher-8494b4b8bb[ReplicaSet] => kube-system/calico-node-frontend[DaemonSet] : All Connections kube-system/storage-watcher-8494b4b8bb[ReplicaSet] => kube-system/calico-node[DaemonSet] : All Connections kube-system/storage-watcher-8494b4b8bb[ReplicaSet] => kube-system/file-plugin-7bfb8b69bf[ReplicaSet] : All Connections @@ -380,11 +312,7 @@ kube-system/tiller-deploy-5c45c9966b[ReplicaSet] => 0.0.0.0-255.255.255.255 : Al kube-system/tiller-deploy-5c45c9966b[ReplicaSet] => default/cog-agents-analyzer[DaemonSet] : All Connections kube-system/tiller-deploy-5c45c9966b[ReplicaSet] => default/cog-agents[DaemonSet] : All Connections kube-system/tiller-deploy-5c45c9966b[ReplicaSet] => default/cog-local-analyzer-7d77fb55cc[ReplicaSet] : All Connections -kube-system/tiller-deploy-5c45c9966b[ReplicaSet] => kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local kube-system/tiller-deploy-5c45c9966b[ReplicaSet] => kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] : TCP 10053-10054,UDP 10053 -kube-system/tiller-deploy-5c45c9966b[ReplicaSet] => kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local -kube-system/tiller-deploy-5c45c9966b[ReplicaSet] => kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local -kube-system/tiller-deploy-5c45c9966b[ReplicaSet] => kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local kube-system/tiller-deploy-5c45c9966b[ReplicaSet] => kube-system/calico-node-frontend[DaemonSet] : All Connections kube-system/tiller-deploy-5c45c9966b[ReplicaSet] => kube-system/calico-node[DaemonSet] : All Connections kube-system/tiller-deploy-5c45c9966b[ReplicaSet] => kube-system/file-plugin-7bfb8b69bf[ReplicaSet] : All Connections @@ -401,11 +329,7 @@ kube-system/vpn-858f6d9777[ReplicaSet] => 0.0.0.0-255.255.255.255 : All Connecti kube-system/vpn-858f6d9777[ReplicaSet] => default/cog-agents-analyzer[DaemonSet] : All Connections kube-system/vpn-858f6d9777[ReplicaSet] => default/cog-agents[DaemonSet] : All Connections kube-system/vpn-858f6d9777[ReplicaSet] => default/cog-local-analyzer-7d77fb55cc[ReplicaSet] : All Connections -kube-system/vpn-858f6d9777[ReplicaSet] => kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local kube-system/vpn-858f6d9777[ReplicaSet] => kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] : TCP 10053-10054,UDP 10053 -kube-system/vpn-858f6d9777[ReplicaSet] => kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local -kube-system/vpn-858f6d9777[ReplicaSet] => kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local -kube-system/vpn-858f6d9777[ReplicaSet] => kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local kube-system/vpn-858f6d9777[ReplicaSet] => kube-system/calico-node-frontend[DaemonSet] : All Connections kube-system/vpn-858f6d9777[ReplicaSet] => kube-system/calico-node[DaemonSet] : All Connections kube-system/vpn-858f6d9777[ReplicaSet] => kube-system/file-plugin-7bfb8b69bf[ReplicaSet] : All Connections @@ -422,11 +346,7 @@ vendor-system/barbar-app[ReplicaSet] => 0.0.0.0-255.255.255.255 : All Connection vendor-system/barbar-app[ReplicaSet] => default/cog-agents-analyzer[DaemonSet] : All Connections vendor-system/barbar-app[ReplicaSet] => default/cog-agents[DaemonSet] : All Connections vendor-system/barbar-app[ReplicaSet] => default/cog-local-analyzer-7d77fb55cc[ReplicaSet] : All Connections -vendor-system/barbar-app[ReplicaSet] => kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local vendor-system/barbar-app[ReplicaSet] => kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] : TCP 10053-10054,UDP 10053 -vendor-system/barbar-app[ReplicaSet] => kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local -vendor-system/barbar-app[ReplicaSet] => kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local -vendor-system/barbar-app[ReplicaSet] => kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local vendor-system/barbar-app[ReplicaSet] => kube-system/calico-node-frontend[DaemonSet] : All Connections vendor-system/barbar-app[ReplicaSet] => kube-system/calico-node[DaemonSet] : All Connections vendor-system/barbar-app[ReplicaSet] => kube-system/file-plugin-7bfb8b69bf[ReplicaSet] : All Connections @@ -443,11 +363,7 @@ vendor-system/foofoo-app[ReplicaSet] => 0.0.0.0-255.255.255.255 : All Connection vendor-system/foofoo-app[ReplicaSet] => default/cog-agents-analyzer[DaemonSet] : All Connections vendor-system/foofoo-app[ReplicaSet] => default/cog-agents[DaemonSet] : All Connections vendor-system/foofoo-app[ReplicaSet] => default/cog-local-analyzer-7d77fb55cc[ReplicaSet] : All Connections -vendor-system/foofoo-app[ReplicaSet] => kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local vendor-system/foofoo-app[ReplicaSet] => kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] : TCP 10053-10054,UDP 10053 -vendor-system/foofoo-app[ReplicaSet] => kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local -vendor-system/foofoo-app[ReplicaSet] => kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local -vendor-system/foofoo-app[ReplicaSet] => kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] : TCP dns-tcp-local,metrics,UDP dns-local vendor-system/foofoo-app[ReplicaSet] => kube-system/calico-node-frontend[DaemonSet] : All Connections vendor-system/foofoo-app[ReplicaSet] => kube-system/calico-node[DaemonSet] : All Connections vendor-system/foofoo-app[ReplicaSet] => kube-system/file-plugin-7bfb8b69bf[ReplicaSet] : All Connections diff --git a/test_outputs/connlist/test_with_named_ports_connlist_output.txt b/test_outputs/connlist/test_with_named_ports_connlist_output.txt index d14daf4e..722cb7fa 100644 --- a/test_outputs/connlist/test_with_named_ports_connlist_output.txt +++ b/test_outputs/connlist/test_with_named_ports_connlist_output.txt @@ -1,11 +1,7 @@ 0.0.0.0-255.255.255.255 => default/cog-agents-analyzer[DaemonSet] : All Connections 0.0.0.0-255.255.255.255 => default/cog-agents[DaemonSet] : All Connections 0.0.0.0-255.255.255.255 => default/cog-local-analyzer-7d77fb55cc[ReplicaSet] : All Connections -0.0.0.0-255.255.255.255 => kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] : TCP dns-tcp-local,UDP dns-local 0.0.0.0-255.255.255.255 => kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] : TCP 10053,UDP 10053 -0.0.0.0-255.255.255.255 => kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] : TCP dns-tcp-local,UDP dns-local -0.0.0.0-255.255.255.255 => kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] : TCP dns-tcp-local,UDP dns-local -0.0.0.0-255.255.255.255 => kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] : TCP dns-tcp-local,UDP dns-local 0.0.0.0-255.255.255.255 => kube-system/calico-node-frontend[DaemonSet] : All Connections 0.0.0.0-255.255.255.255 => kube-system/calico-node[DaemonSet] : All Connections 0.0.0.0-255.255.255.255 => kube-system/file-plugin-7bfb8b69bf[ReplicaSet] : All Connections @@ -22,11 +18,7 @@ default/cog-agents-analyzer[DaemonSet] => 0.0.0.0-255.255.255.255 : All Connections default/cog-agents-analyzer[DaemonSet] => default/cog-agents[DaemonSet] : All Connections default/cog-agents-analyzer[DaemonSet] => default/cog-local-analyzer-7d77fb55cc[ReplicaSet] : All Connections -default/cog-agents-analyzer[DaemonSet] => kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] : TCP dns-tcp-local,UDP dns-local default/cog-agents-analyzer[DaemonSet] => kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] : TCP 10053,UDP 10053 -default/cog-agents-analyzer[DaemonSet] => kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] : TCP dns-tcp-local,UDP dns-local -default/cog-agents-analyzer[DaemonSet] => kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] : TCP dns-tcp-local,UDP dns-local -default/cog-agents-analyzer[DaemonSet] => kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] : TCP dns-tcp-local,UDP dns-local default/cog-agents-analyzer[DaemonSet] => kube-system/calico-node-frontend[DaemonSet] : All Connections default/cog-agents-analyzer[DaemonSet] => kube-system/calico-node[DaemonSet] : All Connections default/cog-agents-analyzer[DaemonSet] => kube-system/file-plugin-7bfb8b69bf[ReplicaSet] : All Connections @@ -43,11 +35,7 @@ default/cog-agents-analyzer[DaemonSet] => vendor-system/foofoo-app[ReplicaSet] : default/cog-agents[DaemonSet] => 0.0.0.0-255.255.255.255 : All Connections default/cog-agents[DaemonSet] => default/cog-agents-analyzer[DaemonSet] : All Connections default/cog-agents[DaemonSet] => default/cog-local-analyzer-7d77fb55cc[ReplicaSet] : All Connections -default/cog-agents[DaemonSet] => kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] : TCP dns-tcp-local,UDP dns-local default/cog-agents[DaemonSet] => kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] : TCP 10053,UDP 10053 -default/cog-agents[DaemonSet] => kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] : TCP dns-tcp-local,UDP dns-local -default/cog-agents[DaemonSet] => kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] : TCP dns-tcp-local,UDP dns-local -default/cog-agents[DaemonSet] => kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] : TCP dns-tcp-local,UDP dns-local default/cog-agents[DaemonSet] => kube-system/calico-node-frontend[DaemonSet] : All Connections default/cog-agents[DaemonSet] => kube-system/calico-node[DaemonSet] : All Connections default/cog-agents[DaemonSet] => kube-system/file-plugin-7bfb8b69bf[ReplicaSet] : All Connections @@ -64,11 +52,7 @@ default/cog-agents[DaemonSet] => vendor-system/foofoo-app[ReplicaSet] : All Conn default/cog-local-analyzer-7d77fb55cc[ReplicaSet] => 0.0.0.0-255.255.255.255 : All Connections default/cog-local-analyzer-7d77fb55cc[ReplicaSet] => default/cog-agents-analyzer[DaemonSet] : All Connections default/cog-local-analyzer-7d77fb55cc[ReplicaSet] => default/cog-agents[DaemonSet] : All Connections -default/cog-local-analyzer-7d77fb55cc[ReplicaSet] => kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] : TCP dns-tcp-local,UDP dns-local default/cog-local-analyzer-7d77fb55cc[ReplicaSet] => kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] : TCP 10053,UDP 10053 -default/cog-local-analyzer-7d77fb55cc[ReplicaSet] => kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] : TCP dns-tcp-local,UDP dns-local -default/cog-local-analyzer-7d77fb55cc[ReplicaSet] => kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] : TCP dns-tcp-local,UDP dns-local -default/cog-local-analyzer-7d77fb55cc[ReplicaSet] => kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] : TCP dns-tcp-local,UDP dns-local default/cog-local-analyzer-7d77fb55cc[ReplicaSet] => kube-system/calico-node-frontend[DaemonSet] : All Connections default/cog-local-analyzer-7d77fb55cc[ReplicaSet] => kube-system/calico-node[DaemonSet] : All Connections default/cog-local-analyzer-7d77fb55cc[ReplicaSet] => kube-system/file-plugin-7bfb8b69bf[ReplicaSet] : All Connections @@ -87,9 +71,6 @@ kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] => de kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] => default/cog-agents[DaemonSet] : All Connections kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] => default/cog-local-analyzer-7d77fb55cc[ReplicaSet] : All Connections kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] => kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] : TCP 10053,UDP 10053 -kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] => kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] : TCP dns-tcp-local,UDP dns-local -kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] => kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] : TCP dns-tcp-local,UDP dns-local -kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] => kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] : TCP dns-tcp-local,UDP dns-local kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] => kube-system/calico-node-frontend[DaemonSet] : All Connections kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] => kube-system/calico-node[DaemonSet] : All Connections kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] => kube-system/file-plugin-7bfb8b69bf[ReplicaSet] : All Connections @@ -107,10 +88,6 @@ kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] => 0.0.0.0-255. kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] => default/cog-agents-analyzer[DaemonSet] : All Connections kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] => default/cog-agents[DaemonSet] : All Connections kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] => default/cog-local-analyzer-7d77fb55cc[ReplicaSet] : All Connections -kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] => kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] : TCP dns-tcp-local,UDP dns-local -kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] => kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] : TCP dns-tcp-local,UDP dns-local -kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] => kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] : TCP dns-tcp-local,UDP dns-local -kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] => kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] : TCP dns-tcp-local,UDP dns-local kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] => kube-system/calico-node-frontend[DaemonSet] : All Connections kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] => kube-system/calico-node[DaemonSet] : All Connections kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] => kube-system/file-plugin-7bfb8b69bf[ReplicaSet] : All Connections @@ -128,10 +105,7 @@ kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] => 0.0.0. kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] => default/cog-agents-analyzer[DaemonSet] : All Connections kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] => default/cog-agents[DaemonSet] : All Connections kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] => default/cog-local-analyzer-7d77fb55cc[ReplicaSet] : All Connections -kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] => kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] : TCP dns-tcp-local,UDP dns-local kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] => kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] : TCP 10053,UDP 10053 -kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] => kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] : TCP dns-tcp-local,UDP dns-local -kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] => kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] : TCP dns-tcp-local,UDP dns-local kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] => kube-system/calico-node-frontend[DaemonSet] : All Connections kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] => kube-system/calico-node[DaemonSet] : All Connections kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] => kube-system/file-plugin-7bfb8b69bf[ReplicaSet] : All Connections @@ -149,10 +123,7 @@ kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] => 0.0.0 kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] => default/cog-agents-analyzer[DaemonSet] : All Connections kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] => default/cog-agents[DaemonSet] : All Connections kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] => default/cog-local-analyzer-7d77fb55cc[ReplicaSet] : All Connections -kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] => kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] : TCP dns-tcp-local,UDP dns-local kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] => kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] : TCP 10053,UDP 10053 -kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] => kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] : TCP dns-tcp-local,UDP dns-local -kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] => kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] : TCP dns-tcp-local,UDP dns-local kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] => kube-system/calico-node-frontend[DaemonSet] : All Connections kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] => kube-system/calico-node[DaemonSet] : All Connections kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] => kube-system/file-plugin-7bfb8b69bf[ReplicaSet] : All Connections @@ -170,10 +141,7 @@ kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] => default/cog-agents-analyzer[DaemonSet] : All Connections kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] => default/cog-agents[DaemonSet] : All Connections kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] => default/cog-local-analyzer-7d77fb55cc[ReplicaSet] : All Connections -kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] => kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] : TCP dns-tcp-local,UDP dns-local kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] => kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] : TCP 10053,UDP 10053 -kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] => kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] : TCP dns-tcp-local,UDP dns-local -kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] => kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] : TCP dns-tcp-local,UDP dns-local kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] => kube-system/calico-node-frontend[DaemonSet] : All Connections kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] => kube-system/calico-node[DaemonSet] : All Connections kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] => kube-system/file-plugin-7bfb8b69bf[ReplicaSet] : All Connections @@ -191,11 +159,7 @@ kube-system/calico-node-frontend[DaemonSet] => 0.0.0.0-255.255.255.255 : All Con kube-system/calico-node-frontend[DaemonSet] => default/cog-agents-analyzer[DaemonSet] : All Connections kube-system/calico-node-frontend[DaemonSet] => default/cog-agents[DaemonSet] : All Connections kube-system/calico-node-frontend[DaemonSet] => default/cog-local-analyzer-7d77fb55cc[ReplicaSet] : All Connections -kube-system/calico-node-frontend[DaemonSet] => kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] : TCP dns-tcp-local,UDP dns-local kube-system/calico-node-frontend[DaemonSet] => kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] : TCP 10053,UDP 10053 -kube-system/calico-node-frontend[DaemonSet] => kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] : TCP dns-tcp-local,UDP dns-local -kube-system/calico-node-frontend[DaemonSet] => kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] : TCP dns-tcp-local,UDP dns-local -kube-system/calico-node-frontend[DaemonSet] => kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] : TCP dns-tcp-local,UDP dns-local kube-system/calico-node-frontend[DaemonSet] => kube-system/calico-node[DaemonSet] : All Connections kube-system/calico-node-frontend[DaemonSet] => kube-system/file-plugin-7bfb8b69bf[ReplicaSet] : All Connections kube-system/calico-node-frontend[DaemonSet] => kube-system/heapster-7df8cb8c66[ReplicaSet] : All Connections @@ -212,11 +176,7 @@ kube-system/calico-node[DaemonSet] => 0.0.0.0-255.255.255.255 : All Connections kube-system/calico-node[DaemonSet] => default/cog-agents-analyzer[DaemonSet] : All Connections kube-system/calico-node[DaemonSet] => default/cog-agents[DaemonSet] : All Connections kube-system/calico-node[DaemonSet] => default/cog-local-analyzer-7d77fb55cc[ReplicaSet] : All Connections -kube-system/calico-node[DaemonSet] => kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] : TCP dns-tcp-local,UDP dns-local kube-system/calico-node[DaemonSet] => kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] : TCP 10053,UDP 10053 -kube-system/calico-node[DaemonSet] => kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] : TCP dns-tcp-local,UDP dns-local -kube-system/calico-node[DaemonSet] => kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] : TCP dns-tcp-local,UDP dns-local -kube-system/calico-node[DaemonSet] => kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] : TCP dns-tcp-local,UDP dns-local kube-system/calico-node[DaemonSet] => kube-system/calico-node-frontend[DaemonSet] : All Connections kube-system/calico-node[DaemonSet] => kube-system/file-plugin-7bfb8b69bf[ReplicaSet] : All Connections kube-system/calico-node[DaemonSet] => kube-system/heapster-7df8cb8c66[ReplicaSet] : All Connections @@ -233,11 +193,7 @@ kube-system/file-plugin-7bfb8b69bf[ReplicaSet] => 0.0.0.0-255.255.255.255 : All kube-system/file-plugin-7bfb8b69bf[ReplicaSet] => default/cog-agents-analyzer[DaemonSet] : All Connections kube-system/file-plugin-7bfb8b69bf[ReplicaSet] => default/cog-agents[DaemonSet] : All Connections kube-system/file-plugin-7bfb8b69bf[ReplicaSet] => default/cog-local-analyzer-7d77fb55cc[ReplicaSet] : All Connections -kube-system/file-plugin-7bfb8b69bf[ReplicaSet] => kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] : TCP dns-tcp-local,UDP dns-local kube-system/file-plugin-7bfb8b69bf[ReplicaSet] => kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] : TCP 10053,UDP 10053 -kube-system/file-plugin-7bfb8b69bf[ReplicaSet] => kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] : TCP dns-tcp-local,UDP dns-local -kube-system/file-plugin-7bfb8b69bf[ReplicaSet] => kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] : TCP dns-tcp-local,UDP dns-local -kube-system/file-plugin-7bfb8b69bf[ReplicaSet] => kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] : TCP dns-tcp-local,UDP dns-local kube-system/file-plugin-7bfb8b69bf[ReplicaSet] => kube-system/calico-node-frontend[DaemonSet] : All Connections kube-system/file-plugin-7bfb8b69bf[ReplicaSet] => kube-system/calico-node[DaemonSet] : All Connections kube-system/file-plugin-7bfb8b69bf[ReplicaSet] => kube-system/heapster-7df8cb8c66[ReplicaSet] : All Connections @@ -254,11 +210,7 @@ kube-system/heapster-7df8cb8c66[ReplicaSet] => 0.0.0.0-255.255.255.255 : All Con kube-system/heapster-7df8cb8c66[ReplicaSet] => default/cog-agents-analyzer[DaemonSet] : All Connections kube-system/heapster-7df8cb8c66[ReplicaSet] => default/cog-agents[DaemonSet] : All Connections kube-system/heapster-7df8cb8c66[ReplicaSet] => default/cog-local-analyzer-7d77fb55cc[ReplicaSet] : All Connections -kube-system/heapster-7df8cb8c66[ReplicaSet] => kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] : TCP dns-tcp-local,UDP dns-local kube-system/heapster-7df8cb8c66[ReplicaSet] => kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] : TCP 10053,UDP 10053 -kube-system/heapster-7df8cb8c66[ReplicaSet] => kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] : TCP dns-tcp-local,UDP dns-local -kube-system/heapster-7df8cb8c66[ReplicaSet] => kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] : TCP dns-tcp-local,UDP dns-local -kube-system/heapster-7df8cb8c66[ReplicaSet] => kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] : TCP dns-tcp-local,UDP dns-local kube-system/heapster-7df8cb8c66[ReplicaSet] => kube-system/calico-node-frontend[DaemonSet] : All Connections kube-system/heapster-7df8cb8c66[ReplicaSet] => kube-system/calico-node[DaemonSet] : All Connections kube-system/heapster-7df8cb8c66[ReplicaSet] => kube-system/file-plugin-7bfb8b69bf[ReplicaSet] : All Connections @@ -275,11 +227,7 @@ kube-system/keepalived-watcher-not-frontend[DaemonSet] => 0.0.0.0-255.255.255.25 kube-system/keepalived-watcher-not-frontend[DaemonSet] => default/cog-agents-analyzer[DaemonSet] : All Connections kube-system/keepalived-watcher-not-frontend[DaemonSet] => default/cog-agents[DaemonSet] : All Connections kube-system/keepalived-watcher-not-frontend[DaemonSet] => default/cog-local-analyzer-7d77fb55cc[ReplicaSet] : All Connections -kube-system/keepalived-watcher-not-frontend[DaemonSet] => kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] : TCP dns-tcp-local,UDP dns-local kube-system/keepalived-watcher-not-frontend[DaemonSet] => kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] : TCP 10053,UDP 10053 -kube-system/keepalived-watcher-not-frontend[DaemonSet] => kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] : TCP dns-tcp-local,UDP dns-local -kube-system/keepalived-watcher-not-frontend[DaemonSet] => kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] : TCP dns-tcp-local,UDP dns-local -kube-system/keepalived-watcher-not-frontend[DaemonSet] => kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] : TCP dns-tcp-local,UDP dns-local kube-system/keepalived-watcher-not-frontend[DaemonSet] => kube-system/calico-node-frontend[DaemonSet] : All Connections kube-system/keepalived-watcher-not-frontend[DaemonSet] => kube-system/calico-node[DaemonSet] : All Connections kube-system/keepalived-watcher-not-frontend[DaemonSet] => kube-system/file-plugin-7bfb8b69bf[ReplicaSet] : All Connections @@ -296,11 +244,7 @@ kube-system/keepalived-watcher[DaemonSet] => 0.0.0.0-255.255.255.255 : All Conne kube-system/keepalived-watcher[DaemonSet] => default/cog-agents-analyzer[DaemonSet] : All Connections kube-system/keepalived-watcher[DaemonSet] => default/cog-agents[DaemonSet] : All Connections kube-system/keepalived-watcher[DaemonSet] => default/cog-local-analyzer-7d77fb55cc[ReplicaSet] : All Connections -kube-system/keepalived-watcher[DaemonSet] => kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] : TCP dns-tcp-local,UDP dns-local kube-system/keepalived-watcher[DaemonSet] => kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] : TCP 10053,UDP 10053 -kube-system/keepalived-watcher[DaemonSet] => kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] : TCP dns-tcp-local,UDP dns-local -kube-system/keepalived-watcher[DaemonSet] => kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] : TCP dns-tcp-local,UDP dns-local -kube-system/keepalived-watcher[DaemonSet] => kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] : TCP dns-tcp-local,UDP dns-local kube-system/keepalived-watcher[DaemonSet] => kube-system/calico-node-frontend[DaemonSet] : All Connections kube-system/keepalived-watcher[DaemonSet] => kube-system/calico-node[DaemonSet] : All Connections kube-system/keepalived-watcher[DaemonSet] => kube-system/file-plugin-7bfb8b69bf[ReplicaSet] : All Connections @@ -317,11 +261,7 @@ kube-system/kube-fluentd-frontend[DaemonSet] => 0.0.0.0-255.255.255.255 : All Co kube-system/kube-fluentd-frontend[DaemonSet] => default/cog-agents-analyzer[DaemonSet] : All Connections kube-system/kube-fluentd-frontend[DaemonSet] => default/cog-agents[DaemonSet] : All Connections kube-system/kube-fluentd-frontend[DaemonSet] => default/cog-local-analyzer-7d77fb55cc[ReplicaSet] : All Connections -kube-system/kube-fluentd-frontend[DaemonSet] => kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] : TCP dns-tcp-local,UDP dns-local kube-system/kube-fluentd-frontend[DaemonSet] => kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] : TCP 10053,UDP 10053 -kube-system/kube-fluentd-frontend[DaemonSet] => kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] : TCP dns-tcp-local,UDP dns-local -kube-system/kube-fluentd-frontend[DaemonSet] => kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] : TCP dns-tcp-local,UDP dns-local -kube-system/kube-fluentd-frontend[DaemonSet] => kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] : TCP dns-tcp-local,UDP dns-local kube-system/kube-fluentd-frontend[DaemonSet] => kube-system/calico-node-frontend[DaemonSet] : All Connections kube-system/kube-fluentd-frontend[DaemonSet] => kube-system/calico-node[DaemonSet] : All Connections kube-system/kube-fluentd-frontend[DaemonSet] => kube-system/file-plugin-7bfb8b69bf[ReplicaSet] : All Connections @@ -338,11 +278,7 @@ kube-system/kube-fluentd[DaemonSet] => 0.0.0.0-255.255.255.255 : All Connections kube-system/kube-fluentd[DaemonSet] => default/cog-agents-analyzer[DaemonSet] : All Connections kube-system/kube-fluentd[DaemonSet] => default/cog-agents[DaemonSet] : All Connections kube-system/kube-fluentd[DaemonSet] => default/cog-local-analyzer-7d77fb55cc[ReplicaSet] : All Connections -kube-system/kube-fluentd[DaemonSet] => kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] : TCP dns-tcp-local,UDP dns-local kube-system/kube-fluentd[DaemonSet] => kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] : TCP 10053,UDP 10053 -kube-system/kube-fluentd[DaemonSet] => kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] : TCP dns-tcp-local,UDP dns-local -kube-system/kube-fluentd[DaemonSet] => kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] : TCP dns-tcp-local,UDP dns-local -kube-system/kube-fluentd[DaemonSet] => kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] : TCP dns-tcp-local,UDP dns-local kube-system/kube-fluentd[DaemonSet] => kube-system/calico-node-frontend[DaemonSet] : All Connections kube-system/kube-fluentd[DaemonSet] => kube-system/calico-node[DaemonSet] : All Connections kube-system/kube-fluentd[DaemonSet] => kube-system/file-plugin-7bfb8b69bf[ReplicaSet] : All Connections @@ -359,11 +295,7 @@ kube-system/storage-watcher-8494b4b8bb[ReplicaSet] => 0.0.0.0-255.255.255.255 : kube-system/storage-watcher-8494b4b8bb[ReplicaSet] => default/cog-agents-analyzer[DaemonSet] : All Connections kube-system/storage-watcher-8494b4b8bb[ReplicaSet] => default/cog-agents[DaemonSet] : All Connections kube-system/storage-watcher-8494b4b8bb[ReplicaSet] => default/cog-local-analyzer-7d77fb55cc[ReplicaSet] : All Connections -kube-system/storage-watcher-8494b4b8bb[ReplicaSet] => kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] : TCP dns-tcp-local,UDP dns-local kube-system/storage-watcher-8494b4b8bb[ReplicaSet] => kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] : TCP 10053,UDP 10053 -kube-system/storage-watcher-8494b4b8bb[ReplicaSet] => kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] : TCP dns-tcp-local,UDP dns-local -kube-system/storage-watcher-8494b4b8bb[ReplicaSet] => kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] : TCP dns-tcp-local,UDP dns-local -kube-system/storage-watcher-8494b4b8bb[ReplicaSet] => kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] : TCP dns-tcp-local,UDP dns-local kube-system/storage-watcher-8494b4b8bb[ReplicaSet] => kube-system/calico-node-frontend[DaemonSet] : All Connections kube-system/storage-watcher-8494b4b8bb[ReplicaSet] => kube-system/calico-node[DaemonSet] : All Connections kube-system/storage-watcher-8494b4b8bb[ReplicaSet] => kube-system/file-plugin-7bfb8b69bf[ReplicaSet] : All Connections @@ -380,11 +312,7 @@ kube-system/tiller-deploy-5c45c9966b[ReplicaSet] => 0.0.0.0-255.255.255.255 : Al kube-system/tiller-deploy-5c45c9966b[ReplicaSet] => default/cog-agents-analyzer[DaemonSet] : All Connections kube-system/tiller-deploy-5c45c9966b[ReplicaSet] => default/cog-agents[DaemonSet] : All Connections kube-system/tiller-deploy-5c45c9966b[ReplicaSet] => default/cog-local-analyzer-7d77fb55cc[ReplicaSet] : All Connections -kube-system/tiller-deploy-5c45c9966b[ReplicaSet] => kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] : TCP dns-tcp-local,UDP dns-local kube-system/tiller-deploy-5c45c9966b[ReplicaSet] => kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] : TCP 10053,UDP 10053 -kube-system/tiller-deploy-5c45c9966b[ReplicaSet] => kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] : TCP dns-tcp-local,UDP dns-local -kube-system/tiller-deploy-5c45c9966b[ReplicaSet] => kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] : TCP dns-tcp-local,UDP dns-local -kube-system/tiller-deploy-5c45c9966b[ReplicaSet] => kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] : TCP dns-tcp-local,UDP dns-local kube-system/tiller-deploy-5c45c9966b[ReplicaSet] => kube-system/calico-node-frontend[DaemonSet] : All Connections kube-system/tiller-deploy-5c45c9966b[ReplicaSet] => kube-system/calico-node[DaemonSet] : All Connections kube-system/tiller-deploy-5c45c9966b[ReplicaSet] => kube-system/file-plugin-7bfb8b69bf[ReplicaSet] : All Connections @@ -401,11 +329,7 @@ kube-system/vpn-858f6d9777[ReplicaSet] => 0.0.0.0-255.255.255.255 : All Connecti kube-system/vpn-858f6d9777[ReplicaSet] => default/cog-agents-analyzer[DaemonSet] : All Connections kube-system/vpn-858f6d9777[ReplicaSet] => default/cog-agents[DaemonSet] : All Connections kube-system/vpn-858f6d9777[ReplicaSet] => default/cog-local-analyzer-7d77fb55cc[ReplicaSet] : All Connections -kube-system/vpn-858f6d9777[ReplicaSet] => kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] : TCP dns-tcp-local,UDP dns-local kube-system/vpn-858f6d9777[ReplicaSet] => kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] : TCP 10053,UDP 10053 -kube-system/vpn-858f6d9777[ReplicaSet] => kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] : TCP dns-tcp-local,UDP dns-local -kube-system/vpn-858f6d9777[ReplicaSet] => kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] : TCP dns-tcp-local,UDP dns-local -kube-system/vpn-858f6d9777[ReplicaSet] => kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] : TCP dns-tcp-local,UDP dns-local kube-system/vpn-858f6d9777[ReplicaSet] => kube-system/calico-node-frontend[DaemonSet] : All Connections kube-system/vpn-858f6d9777[ReplicaSet] => kube-system/calico-node[DaemonSet] : All Connections kube-system/vpn-858f6d9777[ReplicaSet] => kube-system/file-plugin-7bfb8b69bf[ReplicaSet] : All Connections @@ -422,11 +346,7 @@ vendor-system/barbar-app[ReplicaSet] => 0.0.0.0-255.255.255.255 : All Connection vendor-system/barbar-app[ReplicaSet] => default/cog-agents-analyzer[DaemonSet] : All Connections vendor-system/barbar-app[ReplicaSet] => default/cog-agents[DaemonSet] : All Connections vendor-system/barbar-app[ReplicaSet] => default/cog-local-analyzer-7d77fb55cc[ReplicaSet] : All Connections -vendor-system/barbar-app[ReplicaSet] => kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] : TCP dns-tcp-local,UDP dns-local vendor-system/barbar-app[ReplicaSet] => kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] : TCP 10053,UDP 10053 -vendor-system/barbar-app[ReplicaSet] => kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] : TCP dns-tcp-local,UDP dns-local -vendor-system/barbar-app[ReplicaSet] => kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] : TCP dns-tcp-local,UDP dns-local -vendor-system/barbar-app[ReplicaSet] => kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] : TCP dns-tcp-local,UDP dns-local vendor-system/barbar-app[ReplicaSet] => kube-system/calico-node-frontend[DaemonSet] : All Connections vendor-system/barbar-app[ReplicaSet] => kube-system/calico-node[DaemonSet] : All Connections vendor-system/barbar-app[ReplicaSet] => kube-system/file-plugin-7bfb8b69bf[ReplicaSet] : All Connections @@ -443,11 +363,7 @@ vendor-system/foofoo-app[ReplicaSet] => 0.0.0.0-255.255.255.255 : All Connection vendor-system/foofoo-app[ReplicaSet] => default/cog-agents-analyzer[DaemonSet] : All Connections vendor-system/foofoo-app[ReplicaSet] => default/cog-agents[DaemonSet] : All Connections vendor-system/foofoo-app[ReplicaSet] => default/cog-local-analyzer-7d77fb55cc[ReplicaSet] : All Connections -vendor-system/foofoo-app[ReplicaSet] => kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet] : TCP dns-tcp-local,UDP dns-local vendor-system/foofoo-app[ReplicaSet] => kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet] : TCP 10053,UDP 10053 -vendor-system/foofoo-app[ReplicaSet] => kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet] : TCP dns-tcp-local,UDP dns-local -vendor-system/foofoo-app[ReplicaSet] => kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet] : TCP dns-tcp-local,UDP dns-local -vendor-system/foofoo-app[ReplicaSet] => kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet] : TCP dns-tcp-local,UDP dns-local vendor-system/foofoo-app[ReplicaSet] => kube-system/calico-node-frontend[DaemonSet] : All Connections vendor-system/foofoo-app[ReplicaSet] => kube-system/calico-node[DaemonSet] : All Connections vendor-system/foofoo-app[ReplicaSet] => kube-system/file-plugin-7bfb8b69bf[ReplicaSet] : All Connections diff --git a/test_outputs/diff/diff_between_test_with_named_ports_changed_netpol_and_test_with_named_ports.txt b/test_outputs/diff/diff_between_test_with_named_ports_changed_netpol_and_test_with_named_ports.txt index 1adef64d..57ad60b7 100644 --- a/test_outputs/diff/diff_between_test_with_named_ports_changed_netpol_and_test_with_named_ports.txt +++ b/test_outputs/diff/diff_between_test_with_named_ports_changed_netpol_and_test_with_named_ports.txt @@ -1,106 +1,22 @@ Connectivity diff: -diff-type: changed, source: 0.0.0.0-255.255.255.255, destination: kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local diff-type: changed, source: 0.0.0.0-255.255.255.255, destination: kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet], ref1: TCP 10053,UDP 10053, ref2: TCP 10053-10054,UDP 10053 -diff-type: changed, source: 0.0.0.0-255.255.255.255, destination: kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local -diff-type: changed, source: 0.0.0.0-255.255.255.255, destination: kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local -diff-type: changed, source: 0.0.0.0-255.255.255.255, destination: kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local -diff-type: changed, source: default/cog-agents-analyzer[DaemonSet], destination: kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local diff-type: changed, source: default/cog-agents-analyzer[DaemonSet], destination: kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet], ref1: TCP 10053,UDP 10053, ref2: TCP 10053-10054,UDP 10053 -diff-type: changed, source: default/cog-agents-analyzer[DaemonSet], destination: kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local -diff-type: changed, source: default/cog-agents-analyzer[DaemonSet], destination: kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local -diff-type: changed, source: default/cog-agents-analyzer[DaemonSet], destination: kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local -diff-type: changed, source: default/cog-agents[DaemonSet], destination: kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local diff-type: changed, source: default/cog-agents[DaemonSet], destination: kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet], ref1: TCP 10053,UDP 10053, ref2: TCP 10053-10054,UDP 10053 -diff-type: changed, source: default/cog-agents[DaemonSet], destination: kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local -diff-type: changed, source: default/cog-agents[DaemonSet], destination: kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local -diff-type: changed, source: default/cog-agents[DaemonSet], destination: kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local -diff-type: changed, source: default/cog-local-analyzer-7d77fb55cc[ReplicaSet], destination: kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local diff-type: changed, source: default/cog-local-analyzer-7d77fb55cc[ReplicaSet], destination: kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet], ref1: TCP 10053,UDP 10053, ref2: TCP 10053-10054,UDP 10053 -diff-type: changed, source: default/cog-local-analyzer-7d77fb55cc[ReplicaSet], destination: kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local -diff-type: changed, source: default/cog-local-analyzer-7d77fb55cc[ReplicaSet], destination: kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local -diff-type: changed, source: default/cog-local-analyzer-7d77fb55cc[ReplicaSet], destination: kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local diff-type: changed, source: kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet], destination: kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet], ref1: TCP 10053,UDP 10053, ref2: TCP 10053-10054,UDP 10053 -diff-type: changed, source: kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet], destination: kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local -diff-type: changed, source: kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet], destination: kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local -diff-type: changed, source: kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet], destination: kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local -diff-type: changed, source: kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet], destination: kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local -diff-type: changed, source: kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet], destination: kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local -diff-type: changed, source: kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet], destination: kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local -diff-type: changed, source: kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet], destination: kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local -diff-type: changed, source: kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet], destination: kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local diff-type: changed, source: kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet], destination: kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet], ref1: TCP 10053,UDP 10053, ref2: TCP 10053-10054,UDP 10053 -diff-type: changed, source: kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet], destination: kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local -diff-type: changed, source: kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet], destination: kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local -diff-type: changed, source: kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet], destination: kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local diff-type: changed, source: kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet], destination: kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet], ref1: TCP 10053,UDP 10053, ref2: TCP 10053-10054,UDP 10053 -diff-type: changed, source: kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet], destination: kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local -diff-type: changed, source: kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet], destination: kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local -diff-type: changed, source: kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet], destination: kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local diff-type: changed, source: kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet], destination: kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet], ref1: TCP 10053,UDP 10053, ref2: TCP 10053-10054,UDP 10053 -diff-type: changed, source: kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet], destination: kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local -diff-type: changed, source: kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet], destination: kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local -diff-type: changed, source: kube-system/calico-node-frontend[DaemonSet], destination: kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local diff-type: changed, source: kube-system/calico-node-frontend[DaemonSet], destination: kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet], ref1: TCP 10053,UDP 10053, ref2: TCP 10053-10054,UDP 10053 -diff-type: changed, source: kube-system/calico-node-frontend[DaemonSet], destination: kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local -diff-type: changed, source: kube-system/calico-node-frontend[DaemonSet], destination: kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local -diff-type: changed, source: kube-system/calico-node-frontend[DaemonSet], destination: kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local -diff-type: changed, source: kube-system/calico-node[DaemonSet], destination: kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local diff-type: changed, source: kube-system/calico-node[DaemonSet], destination: kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet], ref1: TCP 10053,UDP 10053, ref2: TCP 10053-10054,UDP 10053 -diff-type: changed, source: kube-system/calico-node[DaemonSet], destination: kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local -diff-type: changed, source: kube-system/calico-node[DaemonSet], destination: kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local -diff-type: changed, source: kube-system/calico-node[DaemonSet], destination: kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local -diff-type: changed, source: kube-system/file-plugin-7bfb8b69bf[ReplicaSet], destination: kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local diff-type: changed, source: kube-system/file-plugin-7bfb8b69bf[ReplicaSet], destination: kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet], ref1: TCP 10053,UDP 10053, ref2: TCP 10053-10054,UDP 10053 -diff-type: changed, source: kube-system/file-plugin-7bfb8b69bf[ReplicaSet], destination: kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local -diff-type: changed, source: kube-system/file-plugin-7bfb8b69bf[ReplicaSet], destination: kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local -diff-type: changed, source: kube-system/file-plugin-7bfb8b69bf[ReplicaSet], destination: kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local -diff-type: changed, source: kube-system/heapster-7df8cb8c66[ReplicaSet], destination: kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local diff-type: changed, source: kube-system/heapster-7df8cb8c66[ReplicaSet], destination: kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet], ref1: TCP 10053,UDP 10053, ref2: TCP 10053-10054,UDP 10053 -diff-type: changed, source: kube-system/heapster-7df8cb8c66[ReplicaSet], destination: kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local -diff-type: changed, source: kube-system/heapster-7df8cb8c66[ReplicaSet], destination: kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local -diff-type: changed, source: kube-system/heapster-7df8cb8c66[ReplicaSet], destination: kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local -diff-type: changed, source: kube-system/keepalived-watcher-not-frontend[DaemonSet], destination: kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local diff-type: changed, source: kube-system/keepalived-watcher-not-frontend[DaemonSet], destination: kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet], ref1: TCP 10053,UDP 10053, ref2: TCP 10053-10054,UDP 10053 -diff-type: changed, source: kube-system/keepalived-watcher-not-frontend[DaemonSet], destination: kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local -diff-type: changed, source: kube-system/keepalived-watcher-not-frontend[DaemonSet], destination: kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local -diff-type: changed, source: kube-system/keepalived-watcher-not-frontend[DaemonSet], destination: kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local -diff-type: changed, source: kube-system/keepalived-watcher[DaemonSet], destination: kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local diff-type: changed, source: kube-system/keepalived-watcher[DaemonSet], destination: kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet], ref1: TCP 10053,UDP 10053, ref2: TCP 10053-10054,UDP 10053 -diff-type: changed, source: kube-system/keepalived-watcher[DaemonSet], destination: kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local -diff-type: changed, source: kube-system/keepalived-watcher[DaemonSet], destination: kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local -diff-type: changed, source: kube-system/keepalived-watcher[DaemonSet], destination: kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local -diff-type: changed, source: kube-system/kube-fluentd-frontend[DaemonSet], destination: kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local diff-type: changed, source: kube-system/kube-fluentd-frontend[DaemonSet], destination: kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet], ref1: TCP 10053,UDP 10053, ref2: TCP 10053-10054,UDP 10053 -diff-type: changed, source: kube-system/kube-fluentd-frontend[DaemonSet], destination: kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local -diff-type: changed, source: kube-system/kube-fluentd-frontend[DaemonSet], destination: kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local -diff-type: changed, source: kube-system/kube-fluentd-frontend[DaemonSet], destination: kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local -diff-type: changed, source: kube-system/kube-fluentd[DaemonSet], destination: kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local diff-type: changed, source: kube-system/kube-fluentd[DaemonSet], destination: kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet], ref1: TCP 10053,UDP 10053, ref2: TCP 10053-10054,UDP 10053 -diff-type: changed, source: kube-system/kube-fluentd[DaemonSet], destination: kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local -diff-type: changed, source: kube-system/kube-fluentd[DaemonSet], destination: kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local -diff-type: changed, source: kube-system/kube-fluentd[DaemonSet], destination: kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local -diff-type: changed, source: kube-system/storage-watcher-8494b4b8bb[ReplicaSet], destination: kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local diff-type: changed, source: kube-system/storage-watcher-8494b4b8bb[ReplicaSet], destination: kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet], ref1: TCP 10053,UDP 10053, ref2: TCP 10053-10054,UDP 10053 -diff-type: changed, source: kube-system/storage-watcher-8494b4b8bb[ReplicaSet], destination: kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local -diff-type: changed, source: kube-system/storage-watcher-8494b4b8bb[ReplicaSet], destination: kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local -diff-type: changed, source: kube-system/storage-watcher-8494b4b8bb[ReplicaSet], destination: kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local -diff-type: changed, source: kube-system/tiller-deploy-5c45c9966b[ReplicaSet], destination: kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local diff-type: changed, source: kube-system/tiller-deploy-5c45c9966b[ReplicaSet], destination: kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet], ref1: TCP 10053,UDP 10053, ref2: TCP 10053-10054,UDP 10053 -diff-type: changed, source: kube-system/tiller-deploy-5c45c9966b[ReplicaSet], destination: kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local -diff-type: changed, source: kube-system/tiller-deploy-5c45c9966b[ReplicaSet], destination: kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local -diff-type: changed, source: kube-system/tiller-deploy-5c45c9966b[ReplicaSet], destination: kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local -diff-type: changed, source: kube-system/vpn-858f6d9777[ReplicaSet], destination: kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local diff-type: changed, source: kube-system/vpn-858f6d9777[ReplicaSet], destination: kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet], ref1: TCP 10053,UDP 10053, ref2: TCP 10053-10054,UDP 10053 -diff-type: changed, source: kube-system/vpn-858f6d9777[ReplicaSet], destination: kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local -diff-type: changed, source: kube-system/vpn-858f6d9777[ReplicaSet], destination: kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local -diff-type: changed, source: kube-system/vpn-858f6d9777[ReplicaSet], destination: kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local -diff-type: changed, source: vendor-system/barbar-app[ReplicaSet], destination: kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local diff-type: changed, source: vendor-system/barbar-app[ReplicaSet], destination: kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet], ref1: TCP 10053,UDP 10053, ref2: TCP 10053-10054,UDP 10053 -diff-type: changed, source: vendor-system/barbar-app[ReplicaSet], destination: kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local -diff-type: changed, source: vendor-system/barbar-app[ReplicaSet], destination: kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local -diff-type: changed, source: vendor-system/barbar-app[ReplicaSet], destination: kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local -diff-type: changed, source: vendor-system/foofoo-app[ReplicaSet], destination: kube-system-dummy-to-ignore/calico-kube-controllers-7694668c77[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local -diff-type: changed, source: vendor-system/foofoo-app[ReplicaSet], destination: kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet], ref1: TCP 10053,UDP 10053, ref2: TCP 10053-10054,UDP 10053 -diff-type: changed, source: vendor-system/foofoo-app[ReplicaSet], destination: kube-system-dummy-to-ignore/kube-dns-autoscaler-78f5fdbd46[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local -diff-type: changed, source: vendor-system/foofoo-app[ReplicaSet], destination: kube-system-dummy-to-ignore/kubernetes-dashboard-5b5f985bcf[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local -diff-type: changed, source: vendor-system/foofoo-app[ReplicaSet], destination: kube-system-dummy-to-ignore/public-cre08b89c167414305a1afb205d0bd346f-alb1-8489b8458f[ReplicaSet], ref1: TCP dns-tcp-local,UDP dns-local, ref2: TCP dns-tcp-local,metrics,UDP dns-local \ No newline at end of file +diff-type: changed, source: vendor-system/foofoo-app[ReplicaSet], destination: kube-system-dummy-to-ignore/kube-dns-amd64-d66bf76db[ReplicaSet], ref1: TCP 10053,UDP 10053, ref2: TCP 10053-10054,UDP 10053 \ No newline at end of file From 8c7fe385e6fbcd6ccd3797151a9969eb82544545 Mon Sep 17 00:00:00 2001 From: shireenf-ibm Date: Mon, 7 Oct 2024 16:25:39 +0300 Subject: [PATCH 5/6] deleting un-necessary tests (results same as main) --- pkg/netpol/connlist/connlist_test.go | 10 ---- ...nmatched_named_ports_2_exposure_output.csv | 10 ---- ...nmatched_named_ports_2_exposure_output.dot | 13 ---- ...ched_named_ports_2_exposure_output.dot.png | Bin 19314 -> 0 bytes ...ched_named_ports_2_exposure_output.dot.svg | 56 ------------------ ...matched_named_ports_2_exposure_output.json | 30 ---------- ...unmatched_named_ports_2_exposure_output.md | 14 ----- ...nmatched_named_ports_2_exposure_output.txt | 12 ---- ..._unmatched_named_ports_exposure_output.csv | 10 ---- ..._unmatched_named_ports_exposure_output.dot | 13 ---- ...atched_named_ports_exposure_output.dot.png | Bin 19775 -> 0 bytes ...atched_named_ports_exposure_output.dot.svg | 56 ------------------ ...unmatched_named_ports_exposure_output.json | 30 ---------- ...d_unmatched_named_ports_exposure_output.md | 14 ----- ..._unmatched_named_ports_exposure_output.txt | 12 ---- .../namespace_and_deployments.yaml | 34 ----------- .../policy.yaml | 18 ------ .../namespace_and_deployments.yaml | 34 ----------- .../policy.yaml | 18 ------ 19 files changed, 384 deletions(-) delete mode 100644 test_outputs/connlist/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_2_exposure_output.csv delete mode 100644 test_outputs/connlist/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_2_exposure_output.dot delete mode 100644 test_outputs/connlist/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_2_exposure_output.dot.png delete mode 100644 test_outputs/connlist/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_2_exposure_output.dot.svg delete mode 100644 test_outputs/connlist/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_2_exposure_output.json delete mode 100644 test_outputs/connlist/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_2_exposure_output.md delete mode 100644 test_outputs/connlist/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_2_exposure_output.txt delete mode 100644 test_outputs/connlist/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_exposure_output.csv delete mode 100644 test_outputs/connlist/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_exposure_output.dot delete mode 100644 test_outputs/connlist/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_exposure_output.dot.png delete mode 100644 test_outputs/connlist/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_exposure_output.dot.svg delete mode 100644 test_outputs/connlist/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_exposure_output.json delete mode 100644 test_outputs/connlist/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_exposure_output.md delete mode 100644 test_outputs/connlist/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_exposure_output.txt delete mode 100644 tests/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports/namespace_and_deployments.yaml delete mode 100644 tests/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports/policy.yaml delete mode 100644 tests/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_2/namespace_and_deployments.yaml delete mode 100644 tests/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_2/policy.yaml diff --git a/pkg/netpol/connlist/connlist_test.go b/pkg/netpol/connlist/connlist_test.go index 0485f95c..ec8a32c5 100644 --- a/pkg/netpol/connlist/connlist_test.go +++ b/pkg/netpol/connlist/connlist_test.go @@ -840,16 +840,6 @@ var goodPathTests = []struct { exposureAnalysis: true, outputFormats: ValidFormats, }, - { - testDirName: "exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports", - exposureAnalysis: true, - outputFormats: ValidFormats, - }, - { - testDirName: "exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_2", - exposureAnalysis: true, - outputFormats: ValidFormats, - }, { testDirName: "exposure_test_egress_with_named_port", exposureAnalysis: true, diff --git a/test_outputs/connlist/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_2_exposure_output.csv b/test_outputs/connlist/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_2_exposure_output.csv deleted file mode 100644 index d6f9e646..00000000 --- a/test_outputs/connlist/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_2_exposure_output.csv +++ /dev/null @@ -1,10 +0,0 @@ -src,dst,conn -hello-world/workload-a[Deployment],0.0.0.0-255.255.255.255,All Connections -Exposure Analysis Result:,, -Egress Exposure:,, -src,dst,conn -hello-world/workload-a[Deployment],0.0.0.0-255.255.255.255,All Connections -hello-world/workload-a[Deployment],entire-cluster,All Connections -Ingress Exposure:,, -dst,src,conn -hello-world/workload-a[Deployment],entire-cluster,"TCP 8000,UDP http" diff --git a/test_outputs/connlist/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_2_exposure_output.dot b/test_outputs/connlist/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_2_exposure_output.dot deleted file mode 100644 index 6a055046..00000000 --- a/test_outputs/connlist/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_2_exposure_output.dot +++ /dev/null @@ -1,13 +0,0 @@ -digraph { - subgraph "cluster_hello_world" { - color="black" - fontcolor="black" - "hello-world/workload-a[Deployment]" [label="workload-a[Deployment]" color="blue" fontcolor="blue"] - label="hello-world" - } - "0.0.0.0-255.255.255.255" [label="0.0.0.0-255.255.255.255" color="red2" fontcolor="red2"] - "entire-cluster" [label="entire-cluster" color="red2" fontcolor="red2" shape=diamond] - "entire-cluster" -> "hello-world/workload-a[Deployment]" [label="TCP 8000,UDP http" color="darkorange2" fontcolor="darkgreen" weight=1 style=dashed] - "hello-world/workload-a[Deployment]" -> "0.0.0.0-255.255.255.255" [label="All Connections" color="gold2" fontcolor="darkgreen" weight=1] - "hello-world/workload-a[Deployment]" -> "entire-cluster" [label="All Connections" color="darkorange4" fontcolor="darkgreen" weight=0.5 style=dashed] -} \ No newline at end of file diff --git a/test_outputs/connlist/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_2_exposure_output.dot.png b/test_outputs/connlist/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_2_exposure_output.dot.png deleted file mode 100644 index 1d206a8ef4ea79db0aef86061cffca61aa8b379c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19314 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 - - - - - - - -cluster_hello_world - -hello-world - - - -hello-world/workload-a[Deployment] - -workload-a[Deployment] - - - -0.0.0.0-255.255.255.255 - -0.0.0.0-255.255.255.255 - - - -hello-world/workload-a[Deployment]->0.0.0.0-255.255.255.255 - - -All Connections - - - -entire-cluster - -entire-cluster - - - -hello-world/workload-a[Deployment]->entire-cluster - - -All Connections - - - -entire-cluster->hello-world/workload-a[Deployment] - - -TCP 8000,UDP http - - - diff --git a/test_outputs/connlist/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_2_exposure_output.json b/test_outputs/connlist/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_2_exposure_output.json deleted file mode 100644 index 418800ea..00000000 --- a/test_outputs/connlist/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_2_exposure_output.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "connlist_results": [ - { - "src": "hello-world/workload-a[Deployment]", - "dst": "0.0.0.0-255.255.255.255", - "conn": "All Connections" - } - ], - "exposure_results": { - "egress_exposure": [ - { - "src": "hello-world/workload-a[Deployment]", - "dst": "0.0.0.0-255.255.255.255", - "conn": "All Connections" - }, - { - "src": "hello-world/workload-a[Deployment]", - "dst": "entire-cluster", - "conn": "All Connections" - } - ], - "ingress_exposure": [ - { - "src": "entire-cluster", - "dst": "hello-world/workload-a[Deployment]", - "conn": "TCP 8000,UDP http" - } - ] - } -} \ No newline at end of file diff --git a/test_outputs/connlist/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_2_exposure_output.md b/test_outputs/connlist/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_2_exposure_output.md deleted file mode 100644 index a5db45e9..00000000 --- a/test_outputs/connlist/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_2_exposure_output.md +++ /dev/null @@ -1,14 +0,0 @@ -| src | dst | conn | -|-----|-----|------| -| hello-world/workload-a[Deployment] | 0.0.0.0-255.255.255.255 | All Connections | -## Exposure Analysis Result: -### Egress Exposure: -| src | dst | conn | -|-----|-----|------| -| hello-world/workload-a[Deployment] | 0.0.0.0-255.255.255.255 | All Connections | -| hello-world/workload-a[Deployment] | entire-cluster | All Connections | - -### Ingress Exposure: -| dst | src | conn | -|-----|-----|------| -| hello-world/workload-a[Deployment] | entire-cluster | TCP 8000,UDP http | diff --git a/test_outputs/connlist/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_2_exposure_output.txt b/test_outputs/connlist/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_2_exposure_output.txt deleted file mode 100644 index 4e481a88..00000000 --- a/test_outputs/connlist/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_2_exposure_output.txt +++ /dev/null @@ -1,12 +0,0 @@ -hello-world/workload-a[Deployment] => 0.0.0.0-255.255.255.255 : All Connections - -Exposure Analysis Result: -Egress Exposure: -hello-world/workload-a[Deployment] => 0.0.0.0-255.255.255.255 : All Connections -hello-world/workload-a[Deployment] => entire-cluster : All Connections - -Ingress Exposure: -hello-world/workload-a[Deployment] <= entire-cluster : TCP 8000,UDP http - -Workloads not protected by network policies: -hello-world/workload-a[Deployment] is not protected on Egress diff --git a/test_outputs/connlist/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_exposure_output.csv b/test_outputs/connlist/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_exposure_output.csv deleted file mode 100644 index fbb857c9..00000000 --- a/test_outputs/connlist/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_exposure_output.csv +++ /dev/null @@ -1,10 +0,0 @@ -src,dst,conn -hello-world/workload-a[Deployment],0.0.0.0-255.255.255.255,All Connections -Exposure Analysis Result:,, -Egress Exposure:,, -src,dst,conn -hello-world/workload-a[Deployment],0.0.0.0-255.255.255.255,All Connections -hello-world/workload-a[Deployment],entire-cluster,All Connections -Ingress Exposure:,, -dst,src,conn -hello-world/workload-a[Deployment],entire-cluster,"TCP 8000,8090,new-port" diff --git a/test_outputs/connlist/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_exposure_output.dot b/test_outputs/connlist/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_exposure_output.dot deleted file mode 100644 index 898c3c74..00000000 --- a/test_outputs/connlist/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_exposure_output.dot +++ /dev/null @@ -1,13 +0,0 @@ -digraph { - subgraph "cluster_hello_world" { - color="black" - fontcolor="black" - "hello-world/workload-a[Deployment]" [label="workload-a[Deployment]" color="blue" fontcolor="blue"] - label="hello-world" - } - "0.0.0.0-255.255.255.255" [label="0.0.0.0-255.255.255.255" color="red2" fontcolor="red2"] - "entire-cluster" [label="entire-cluster" color="red2" fontcolor="red2" shape=diamond] - "entire-cluster" -> "hello-world/workload-a[Deployment]" [label="TCP 8000,8090,new-port" color="darkorange2" fontcolor="darkgreen" weight=1 style=dashed] - "hello-world/workload-a[Deployment]" -> "0.0.0.0-255.255.255.255" [label="All Connections" color="gold2" fontcolor="darkgreen" weight=1] - "hello-world/workload-a[Deployment]" -> "entire-cluster" [label="All Connections" color="darkorange4" fontcolor="darkgreen" weight=0.5 style=dashed] -} \ No newline at end of file diff --git a/test_outputs/connlist/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_exposure_output.dot.png b/test_outputs/connlist/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_exposure_output.dot.png deleted file mode 100644 index be77385afbe6c7842f454d0b8e2f80216c1eea5f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19775 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 diff --git a/test_outputs/connlist/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_exposure_output.dot.svg b/test_outputs/connlist/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_exposure_output.dot.svg deleted file mode 100644 index 9a1f0b04..00000000 --- a/test_outputs/connlist/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_exposure_output.dot.svg +++ /dev/null @@ -1,56 +0,0 @@ - - - - - - - - -cluster_hello_world - -hello-world - - - -hello-world/workload-a[Deployment] - -workload-a[Deployment] - - - -0.0.0.0-255.255.255.255 - -0.0.0.0-255.255.255.255 - - - -hello-world/workload-a[Deployment]->0.0.0.0-255.255.255.255 - - -All Connections - - - -entire-cluster - -entire-cluster - - - -hello-world/workload-a[Deployment]->entire-cluster - - -All Connections - - - -entire-cluster->hello-world/workload-a[Deployment] - - -TCP 8000,8090,new-port - - - diff --git a/test_outputs/connlist/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_exposure_output.json b/test_outputs/connlist/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_exposure_output.json deleted file mode 100644 index e3395518..00000000 --- a/test_outputs/connlist/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_exposure_output.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "connlist_results": [ - { - "src": "hello-world/workload-a[Deployment]", - "dst": "0.0.0.0-255.255.255.255", - "conn": "All Connections" - } - ], - "exposure_results": { - "egress_exposure": [ - { - "src": "hello-world/workload-a[Deployment]", - "dst": "0.0.0.0-255.255.255.255", - "conn": "All Connections" - }, - { - "src": "hello-world/workload-a[Deployment]", - "dst": "entire-cluster", - "conn": "All Connections" - } - ], - "ingress_exposure": [ - { - "src": "entire-cluster", - "dst": "hello-world/workload-a[Deployment]", - "conn": "TCP 8000,8090,new-port" - } - ] - } -} \ No newline at end of file diff --git a/test_outputs/connlist/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_exposure_output.md b/test_outputs/connlist/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_exposure_output.md deleted file mode 100644 index 30b1bba4..00000000 --- a/test_outputs/connlist/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_exposure_output.md +++ /dev/null @@ -1,14 +0,0 @@ -| src | dst | conn | -|-----|-----|------| -| hello-world/workload-a[Deployment] | 0.0.0.0-255.255.255.255 | All Connections | -## Exposure Analysis Result: -### Egress Exposure: -| src | dst | conn | -|-----|-----|------| -| hello-world/workload-a[Deployment] | 0.0.0.0-255.255.255.255 | All Connections | -| hello-world/workload-a[Deployment] | entire-cluster | All Connections | - -### Ingress Exposure: -| dst | src | conn | -|-----|-----|------| -| hello-world/workload-a[Deployment] | entire-cluster | TCP 8000,8090,new-port | diff --git a/test_outputs/connlist/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_exposure_output.txt b/test_outputs/connlist/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_exposure_output.txt deleted file mode 100644 index 0bfa839a..00000000 --- a/test_outputs/connlist/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_exposure_output.txt +++ /dev/null @@ -1,12 +0,0 @@ -hello-world/workload-a[Deployment] => 0.0.0.0-255.255.255.255 : All Connections - -Exposure Analysis Result: -Egress Exposure: -hello-world/workload-a[Deployment] => 0.0.0.0-255.255.255.255 : All Connections -hello-world/workload-a[Deployment] => entire-cluster : All Connections - -Ingress Exposure: -hello-world/workload-a[Deployment] <= entire-cluster : TCP 8000,8090,new-port - -Workloads not protected by network policies: -hello-world/workload-a[Deployment] is not protected on Egress diff --git a/tests/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports/namespace_and_deployments.yaml b/tests/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports/namespace_and_deployments.yaml deleted file mode 100644 index b7f10e5a..00000000 --- a/tests/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports/namespace_and_deployments.yaml +++ /dev/null @@ -1,34 +0,0 @@ ---- -apiVersion: v1 -kind: Namespace -metadata: - name: hello-world -spec: {} ---- -apiVersion: apps/v1 -kind: Deployment -metadata: - name: workload-a - namespace: hello-world - labels: - app: a-app -spec: - selector: - matchLabels: - app: a-app - template: - metadata: - labels: - app: a-app - spec: - containers: - - name: hello-world - image: quay.io/shfa/hello-world:latest - ports: - - name: local-dns - containerPort: 8000 # containerport1 - - name: local-dns2 - containerPort: 8050 # containerport2 - - name: http - containerPort: 8090 # containerport3 ---- diff --git a/tests/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports/policy.yaml b/tests/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports/policy.yaml deleted file mode 100644 index 29af6bd2..00000000 --- a/tests/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports/policy.yaml +++ /dev/null @@ -1,18 +0,0 @@ -apiVersion: networking.k8s.io/v1 -kind: NetworkPolicy -metadata: - name: ingress-based-on-named-ports - namespace: hello-world -spec: - podSelector: - matchLabels: - app: a-app - policyTypes: - - Ingress - ingress: - - from: - - namespaceSelector: {} - ports: - - port: local-dns - - port: http - - port: new-port diff --git a/tests/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_2/namespace_and_deployments.yaml b/tests/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_2/namespace_and_deployments.yaml deleted file mode 100644 index b7f10e5a..00000000 --- a/tests/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_2/namespace_and_deployments.yaml +++ /dev/null @@ -1,34 +0,0 @@ ---- -apiVersion: v1 -kind: Namespace -metadata: - name: hello-world -spec: {} ---- -apiVersion: apps/v1 -kind: Deployment -metadata: - name: workload-a - namespace: hello-world - labels: - app: a-app -spec: - selector: - matchLabels: - app: a-app - template: - metadata: - labels: - app: a-app - spec: - containers: - - name: hello-world - image: quay.io/shfa/hello-world:latest - ports: - - name: local-dns - containerPort: 8000 # containerport1 - - name: local-dns2 - containerPort: 8050 # containerport2 - - name: http - containerPort: 8090 # containerport3 ---- diff --git a/tests/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_2/policy.yaml b/tests/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_2/policy.yaml deleted file mode 100644 index b282a614..00000000 --- a/tests/exposure_test_ingress_from_entire_cluster_with_matched_and_unmatched_named_ports_2/policy.yaml +++ /dev/null @@ -1,18 +0,0 @@ -apiVersion: networking.k8s.io/v1 -kind: NetworkPolicy -metadata: - name: ingress-based-on-named-ports - namespace: hello-world -spec: - podSelector: - matchLabels: - app: a-app - policyTypes: - - Ingress - ingress: - - from: - - namespaceSelector: {} - ports: - - port: local-dns - - port: http - protocol: UDP From b5068536a1928745e976b1890d170d5da617f2d8 Mon Sep 17 00:00:00 2001 From: shireenf-ibm Date: Wed, 9 Oct 2024 10:51:53 +0300 Subject: [PATCH 6/6] comments --- pkg/netpol/connlist/connlist_test.go | 7 +++++++ tests/netpol_named_port_test/netpol.yaml | 2 +- tests/netpol_named_port_test_2/netpol.yaml | 8 ++++---- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/pkg/netpol/connlist/connlist_test.go b/pkg/netpol/connlist/connlist_test.go index ec8a32c5..0bff0ecb 100644 --- a/pkg/netpol/connlist/connlist_test.go +++ b/pkg/netpol/connlist/connlist_test.go @@ -1125,10 +1125,17 @@ var goodPathTests = []struct { outputFormats: []string{output.DefaultFormat}, }, { + // the netpol allows connection to pod-a on a named port "newport" with "protocol UDP", + // but since the configuration of "pod-a" contains a port with same name but a different protocol, + // i.e. there is no matching named port in the pod's configuration; then the output does not contain + // a connection from new-pod to pod-a testDirName: "netpol_named_port_test", outputFormats: []string{output.DefaultFormat}, }, { + // the netpol allows connection to "pod-b" on multiple named-ports; + // only some of the ports have a matching named-port + protocol in the pod's configuration + // so we see only the successfully converted ports in the connlist output testDirName: "netpol_named_port_test_2", outputFormats: []string{output.DefaultFormat}, }, diff --git a/tests/netpol_named_port_test/netpol.yaml b/tests/netpol_named_port_test/netpol.yaml index aa746406..ee2f0f5f 100644 --- a/tests/netpol_named_port_test/netpol.yaml +++ b/tests/netpol_named_port_test/netpol.yaml @@ -14,5 +14,5 @@ spec: - from: - namespaceSelector: {} ports: - - port: newport + - port: newport # this port with its protocol has no match in the pod configuration protocol: UDP diff --git a/tests/netpol_named_port_test_2/netpol.yaml b/tests/netpol_named_port_test_2/netpol.yaml index 3e090187..e91364cf 100644 --- a/tests/netpol_named_port_test_2/netpol.yaml +++ b/tests/netpol_named_port_test_2/netpol.yaml @@ -14,11 +14,11 @@ spec: - from: - namespaceSelector: {} ports: - - port: newport + - port: newport # this port with its protocol has no match in the pod configuration protocol: UDP - - port: sctp-port + - port: sctp-port # its matching port number in the pod configuration is 8956 protocol: SCTP - - port: newport + - port: newport # its matching port number in the pod configuration is 9090 protocol: SCTP - - port: not-found + - port: not-found # this port with its protocol has no match in the pod configuration protocol: SCTP