diff --git a/npc/analyser.go b/npc/analyser.go index 51b64e81..7fb3313c 100644 --- a/npc/analyser.go +++ b/npc/analyser.go @@ -25,7 +25,7 @@ func (ns *ns) analysePolicyLegacy(policy *extnapi.NetworkPolicy) ( rules = make(map[string]*ruleSpec) policyTypes := []policyType{ingressPolicy} - targetSelector, err := newSelectorSpec(&policy.Spec.PodSelector, true, policyTypes, ns.name, ipset.HashIP) + targetSelector, err := newSelectorSpec(&policy.Spec.PodSelector, policyTypes, ns.name, ipset.HashIP) if err != nil { return nil, nil, nil, err } @@ -62,14 +62,14 @@ func (ns *ns) analysePolicyLegacy(policy *extnapi.NetworkPolicy) ( for _, peer := range ingressRule.From { var srcSelector *selectorSpec if peer.PodSelector != nil { - srcSelector, err = newSelectorSpec(peer.PodSelector, false, nil, ns.name, ipset.HashIP) + srcSelector, err = newSelectorSpec(peer.PodSelector, nil, ns.name, ipset.HashIP) if err != nil { return nil, nil, nil, err } podSelectors[srcSelector.key] = srcSelector } if peer.NamespaceSelector != nil { - srcSelector, err = newSelectorSpec(peer.NamespaceSelector, false, nil, "", ipset.ListSet) + srcSelector, err = newSelectorSpec(peer.NamespaceSelector, nil, "", ipset.ListSet) if err != nil { return nil, nil, nil, err } @@ -114,7 +114,7 @@ func (ns *ns) analysePolicy(policy *networkingv1.NetworkPolicy) ( } } // If empty, matches all pods in a namespace - targetSelector, err := newSelectorSpec(&policy.Spec.PodSelector, true, policyTypes, ns.name, ipset.HashIP) + targetSelector, err := newSelectorSpec(&policy.Spec.PodSelector, policyTypes, ns.name, ipset.HashIP) if err != nil { return nil, nil, nil, err } @@ -150,14 +150,14 @@ func (ns *ns) analysePolicy(policy *networkingv1.NetworkPolicy) ( // NetworkPolicyPeer describes a peer to allow traffic from. // Exactly one of its fields must be specified. if peer.PodSelector != nil { - srcSelector, err = newSelectorSpec(peer.PodSelector, false, nil, ns.name, ipset.HashIP) + srcSelector, err = newSelectorSpec(peer.PodSelector, nil, ns.name, ipset.HashIP) if err != nil { return nil, nil, nil, err } addIfNotExist(srcSelector, podSelectors) } else if peer.NamespaceSelector != nil { - srcSelector, err = newSelectorSpec(peer.NamespaceSelector, false, nil, "", ipset.ListSet) + srcSelector, err = newSelectorSpec(peer.NamespaceSelector, nil, "", ipset.ListSet) if err != nil { return nil, nil, nil, err } @@ -203,14 +203,14 @@ func (ns *ns) analysePolicy(policy *networkingv1.NetworkPolicy) ( // NetworkPolicyPeer describes a peer to allow traffic from. // Exactly one of its fields must be specified. if peer.PodSelector != nil { - dstSelector, err = newSelectorSpec(peer.PodSelector, false, nil, ns.name, ipset.HashIP) + dstSelector, err = newSelectorSpec(peer.PodSelector, nil, ns.name, ipset.HashIP) if err != nil { return nil, nil, nil, err } addIfNotExist(dstSelector, podSelectors) } else if peer.NamespaceSelector != nil { - dstSelector, err = newSelectorSpec(peer.NamespaceSelector, false, nil, "", ipset.ListSet) + dstSelector, err = newSelectorSpec(peer.NamespaceSelector, nil, "", ipset.ListSet) if err != nil { return nil, nil, nil, err } diff --git a/npc/namespace.go b/npc/namespace.go index 80299d9f..780f1174 100644 --- a/npc/namespace.go +++ b/npc/namespace.go @@ -46,7 +46,7 @@ type ns struct { } func newNS(name, nodeName string, legacy bool, ipt iptables.Interface, ips ipset.Interface, nsSelectors *selectorSet) (*ns, error) { - allPods, err := newSelectorSpec(&metav1.LabelSelector{}, false, nil, name, ipset.HashIP) + allPods, err := newSelectorSpec(&metav1.LabelSelector{}, nil, name, ipset.HashIP) if err != nil { return nil, err } diff --git a/npc/selector.go b/npc/selector.go index 763191c1..4affe0ca 100644 --- a/npc/selector.go +++ b/npc/selector.go @@ -12,15 +12,14 @@ import ( type selectorSpec struct { key string // string representation (for hash keying/equality comparison) selector labels.Selector // k8s Selector object (for matching) - dst bool // destination selector TODO(brb) not relevant - policyTypes []policyType // TODO(brb) repharse: netpol types (egress, ingress or both) which initiated the target selector + policyTypes []policyType // If non-empty, then selectorSpec is a target selector for given policyTypes. ipsetType ipset.Type // type of ipset to provision ipsetName ipset.Name // generated ipset name nsName string // Namespace name } -func newSelectorSpec(json *metav1.LabelSelector, dst bool, policyType []policyType, nsName string, ipsetType ipset.Type) (*selectorSpec, error) { +func newSelectorSpec(json *metav1.LabelSelector, policyType []policyType, nsName string, ipsetType ipset.Type) (*selectorSpec, error) { selector, err := metav1.LabelSelectorAsSelector(json) if err != nil { return nil, err @@ -29,7 +28,6 @@ func newSelectorSpec(json *metav1.LabelSelector, dst bool, policyType []policyTy return &selectorSpec{ key: key, selector: selector, - dst: dst, policyTypes: policyType, // We prefix the selector string with the namespace name when generating // the shortname because you can specify the same selector in multiple