From b8f0db5c6c5a6513a86aadb2239f93f5768ae9f8 Mon Sep 17 00:00:00 2001 From: Bowei Du Date: Fri, 6 Feb 2026 13:32:16 -0800 Subject: [PATCH 1/6] go mod --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 821e720..e312d18 100644 --- a/go.mod +++ b/go.mod @@ -28,7 +28,7 @@ require ( k8s.io/klog/v2 v2.130.1 k8s.io/utils v0.0.0-20250604170112-4c0f3b243397 // Temporarily reference latest network-policy-api in anticipation of Beta. - sigs.k8s.io/network-policy-api v0.1.8-0.20251003212904-40eeb18096dd + sigs.k8s.io/network-policy-api v0.1.8-0.20260204182954-2c8a1a8b9f3b ) require ( diff --git a/go.sum b/go.sum index c24ac42..25300f0 100644 --- a/go.sum +++ b/go.sum @@ -288,8 +288,8 @@ k8s.io/utils v0.0.0-20250604170112-4c0f3b243397 h1:hwvWFiBzdWw1FhfY1FooPn3kzWuJ8 k8s.io/utils v0.0.0-20250604170112-4c0f3b243397/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8 h1:gBQPwqORJ8d8/YNZWEjoZs7npUVDpVXUUOFfW6CgAqE= sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8/go.mod h1:mdzfpAEoE6DHQEN0uh9ZbOCuHbLK5wOm7dK4ctXE9Tg= -sigs.k8s.io/network-policy-api v0.1.8-0.20251003212904-40eeb18096dd h1:PgKfYtCMrBE8ORSI2yPld0QBB2+EfZEULd5cA0dOzCU= -sigs.k8s.io/network-policy-api v0.1.8-0.20251003212904-40eeb18096dd/go.mod h1:vBELsuxm/GD1hlMmg2cD/enDqxM7KZmSWq6VP6b5yw0= +sigs.k8s.io/network-policy-api v0.1.8-0.20260204182954-2c8a1a8b9f3b h1:MVOXGoqzxYiRJQ3x9jIWkTct+Z3tFelJuHiMdFOoinY= +sigs.k8s.io/network-policy-api v0.1.8-0.20260204182954-2c8a1a8b9f3b/go.mod h1:xYIHRc47QPAIiPkl+oXfu5we8jACNlt7WuKc7ZP0sGU= sigs.k8s.io/randfill v1.0.0 h1:JfjMILfT8A6RbawdsK2JXGBR5AQVfd+9TbzrlneTyrU= sigs.k8s.io/randfill v1.0.0/go.mod h1:XeLlZ/jmk4i1HRopwe7/aU3H5n1zNUcX6TM94b3QxOY= sigs.k8s.io/structured-merge-diff/v6 v6.3.0 h1:jTijUJbW353oVOd9oTlifJqOGEkUw2jB/fXCbTiQEco= From f600cd6985f1834379e812e5b6c04388770812b8 Mon Sep 17 00:00:00 2001 From: Bowei Du Date: Fri, 30 Jan 2026 09:54:48 -0800 Subject: [PATCH 2/6] Clarify the API interfaces for Evaluate{Ingress,Egress} --- pkg/api/interfaces.go | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/pkg/api/interfaces.go b/pkg/api/interfaces.go index fe0649b..cb98322 100644 --- a/pkg/api/interfaces.go +++ b/pkg/api/interfaces.go @@ -44,8 +44,18 @@ type PolicyEvaluator interface { // Ready returns true if the evaluator is initialized and ready to work. Ready() bool - // EvaluateIngress/EvaluateEgress perform the runtime packet evaluation. + // EvaluateIngress performs runtime packet evaluation on the path into the + // Pod. + // + // srcPod can be nil if the source of the network traffic is not a + // Kubernetes pod (e.g. external traffic). EvaluateIngress(ctx context.Context, p *network.Packet, srcPod, dstPod *PodInfo) (Verdict, error) + + // EvaluateEgress performs runtime packet evaluation on the path coming out + // from the Pod. + // + // dstPod can be nil if the destination of the network traffic is not a + // Kubernetes pod (e.g., external traffic). EvaluateEgress(ctx context.Context, p *network.Packet, srcPod, dstPod *PodInfo) (Verdict, error) // SetDataplaneSyncCallback allows the dataplane to provide a callback function. From 926433a58fc140a3af3d88c1a6e30e259ca5ef4a Mon Sep 17 00:00:00 2001 From: Bowei Du Date: Thu, 29 Jan 2026 16:43:30 -0800 Subject: [PATCH 3/6] Update ClusterNetworkPolicy implementation to match API changes --- plugins/npa-v1alpha2/clusternetworkpolicy.go | 81 +++-- .../npa-v1alpha2/clusternetworkpolicy_test.go | 290 ++++++++++++++++-- 2 files changed, 324 insertions(+), 47 deletions(-) diff --git a/plugins/npa-v1alpha2/clusternetworkpolicy.go b/plugins/npa-v1alpha2/clusternetworkpolicy.go index f63a0f6..3528acb 100644 --- a/plugins/npa-v1alpha2/clusternetworkpolicy.go +++ b/plugins/npa-v1alpha2/clusternetworkpolicy.go @@ -144,8 +144,8 @@ func (c *ClusterNetworkPolicy) evaluateClusterEgress( ) npav1alpha2.ClusterNetworkPolicyRuleAction { for _, policy := range policies { for _, rule := range policy.Spec.Egress { - if rule.Ports != nil { - if !evaluateClusterNetworkPolicyPort(*rule.Ports, dstPod, dstPort, protocol) { + if rule.Protocols != nil { + if !evaluateProtocols(rule.Protocols, dstPod, dstPort, protocol) { continue } } @@ -197,8 +197,8 @@ func (c *ClusterNetworkPolicy) evaluateClusterIngress( } for _, policy := range policies { for _, rule := range policy.Spec.Ingress { - if rule.Ports != nil { - if !evaluateClusterNetworkPolicyPort(*rule.Ports, dstPod, dstPort, protocol) { + if rule.Protocols != nil { + if !evaluateProtocols(rule.Protocols, dstPod, dstPort, protocol) { continue } } @@ -218,40 +218,63 @@ func (c *ClusterNetworkPolicy) evaluateClusterIngress( return npav1alpha2.ClusterNetworkPolicyRuleActionPass } -// evaluateClusterNetworkPolicyPort checks if a specific port and protocol match any port selectors. -func evaluateClusterNetworkPolicyPort( - policyPorts []npav1alpha2.ClusterNetworkPolicyPort, +func matchProtocolDestinationNamedPort(namedPort string, pod *api.PodInfo, protocol v1.Protocol, port int) bool { + if pod == nil { + return false + } + for _, containerPort := range pod.ContainerPorts { + if containerPort.Name == namedPort && v1.Protocol(containerPort.Protocol) == protocol && containerPort.Port == int32(port) { + return true + } + } + return false +} + +func matchPort(policyPort *npav1alpha2.Port, port int) bool { + if policyPort == nil { + // If DestinationPort is nil, it means all ports are allowed for that protocol. + return true + } + if policyPort.Number != 0 && policyPort.Number == int32(port) { + return true + } + if policyPort.Range != nil && + policyPort.Range.Start <= int32(port) && + policyPort.Range.End >= int32(port) { + return true + } + return false +} + +// evaluateProtocols checks if a specific port and protocol match any protocol selectors. +func evaluateProtocols( + policyProtocols []npav1alpha2.ClusterNetworkPolicyProtocol, pod *api.PodInfo, port int, protocol v1.Protocol, ) bool { - if len(policyPorts) == 0 { + if len(policyProtocols) == 0 { return true } - for _, policyPort := range policyPorts { - if policyPort.PortNumber != nil && - policyPort.PortNumber.Port == int32(port) && - policyPort.PortNumber.Protocol == protocol { - return true - } - - if policyPort.NamedPort != nil { - if pod == nil { - continue + for _, policyProtocol := range policyProtocols { + switch { + case policyProtocol.DestinationNamedPort != "": + if matchProtocolDestinationNamedPort(policyProtocol.DestinationNamedPort, pod, protocol, port) { + return true } - for _, containerPort := range pod.ContainerPorts { - if containerPort.Name == *policyPort.NamedPort && v1.Protocol(containerPort.Protocol) == protocol && containerPort.Port == int32(port) { - return true - } + case policyProtocol.TCP != nil && protocol == v1.ProtocolTCP: + if matchPort(policyProtocol.TCP.DestinationPort, port) { + return true + } + case policyProtocol.UDP != nil && protocol == v1.ProtocolUDP: + if matchPort(policyProtocol.UDP.DestinationPort, port) { + return true + } + case policyProtocol.SCTP != nil && protocol == v1.ProtocolSCTP: + if matchPort(policyProtocol.SCTP.DestinationPort, port) { + return true } - } - - if policyPort.PortRange != nil && - policyPort.PortRange.Protocol == protocol && - policyPort.PortRange.Start <= int32(port) && - policyPort.PortRange.End >= int32(port) { - return true } } return false diff --git a/plugins/npa-v1alpha2/clusternetworkpolicy_test.go b/plugins/npa-v1alpha2/clusternetworkpolicy_test.go index 4a3e070..2485e79 100644 --- a/plugins/npa-v1alpha2/clusternetworkpolicy_test.go +++ b/plugins/npa-v1alpha2/clusternetworkpolicy_test.go @@ -11,7 +11,6 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/component-base/logs" "k8s.io/klog/v2" - "k8s.io/utils/ptr" "sigs.k8s.io/kube-network-policies/pkg/api" "sigs.k8s.io/kube-network-policies/pkg/network" @@ -283,14 +282,14 @@ func verdictToBool(v api.Verdict) bool { } // --- Port Evaluation Test --- -func Test_evaluateClusterNetworkPolicyPort(t *testing.T) { +func Test_evaluateProtocols(t *testing.T) { tests := []struct { - name string - policyPorts []npav1alpha2.ClusterNetworkPolicyPort - pod *v1.Pod - port int - protocol v1.Protocol - want bool + name string + policyProtocols []npav1alpha2.ClusterNetworkPolicyProtocol + pod *v1.Pod + port int + protocol v1.Protocol + want bool }{ { name: "empty ports match all", @@ -299,8 +298,12 @@ func Test_evaluateClusterNetworkPolicyPort(t *testing.T) { }, { name: "match port number", - policyPorts: []npav1alpha2.ClusterNetworkPolicyPort{{ - PortNumber: &npav1alpha2.Port{Protocol: v1.ProtocolTCP, Port: 80}, + policyProtocols: []npav1alpha2.ClusterNetworkPolicyProtocol{{ + TCP: &npav1alpha2.ClusterNetworkPolicyProtocolTCP{ + DestinationPort: &npav1alpha2.Port{ + Number: 80, + }, + }, }}, port: 80, protocol: v1.ProtocolTCP, @@ -308,8 +311,8 @@ func Test_evaluateClusterNetworkPolicyPort(t *testing.T) { }, { name: "match named port", - policyPorts: []npav1alpha2.ClusterNetworkPolicyPort{{ - NamedPort: ptr.To[string]("http"), + policyProtocols: []npav1alpha2.ClusterNetworkPolicyProtocol{{ + DestinationNamedPort: "http", }}, pod: makePod("test", "nstest", "192.168.1.1"), port: 80, @@ -318,28 +321,279 @@ func Test_evaluateClusterNetworkPolicyPort(t *testing.T) { }, { name: "match port range", - policyPorts: []npav1alpha2.ClusterNetworkPolicyPort{{ - PortRange: &npav1alpha2.PortRange{Protocol: v1.ProtocolTCP, Start: 80, End: 90}, + policyProtocols: []npav1alpha2.ClusterNetworkPolicyProtocol{{ + TCP: &npav1alpha2.ClusterNetworkPolicyProtocolTCP{ + DestinationPort: &npav1alpha2.Port{ + Range: &npav1alpha2.PortRange{ + Start: 80, + End: 90, + }, + }, + }, }}, port: 85, protocol: v1.ProtocolTCP, want: true, }, + { + name: "match port range start", + policyProtocols: []npav1alpha2.ClusterNetworkPolicyProtocol{{ + TCP: &npav1alpha2.ClusterNetworkPolicyProtocolTCP{ + DestinationPort: &npav1alpha2.Port{ + Range: &npav1alpha2.PortRange{ + Start: 80, + End: 90, + }, + }, + }, + }}, + port: 80, + protocol: v1.ProtocolTCP, + want: true, + }, + { + name: "match port range end", + policyProtocols: []npav1alpha2.ClusterNetworkPolicyProtocol{{ + TCP: &npav1alpha2.ClusterNetworkPolicyProtocolTCP{ + DestinationPort: &npav1alpha2.Port{ + Range: &npav1alpha2.PortRange{ + Start: 80, + End: 90, + }, + }, + }, + }}, + port: 90, + protocol: v1.ProtocolTCP, + want: true, + }, + { + name: "no match port below range", + policyProtocols: []npav1alpha2.ClusterNetworkPolicyProtocol{{ + TCP: &npav1alpha2.ClusterNetworkPolicyProtocolTCP{ + DestinationPort: &npav1alpha2.Port{ + Range: &npav1alpha2.PortRange{ + Start: 80, + End: 90, + }, + }, + }, + }}, + port: 79, + protocol: v1.ProtocolTCP, + want: false, + }, + { + name: "no match port above range", + policyProtocols: []npav1alpha2.ClusterNetworkPolicyProtocol{{ + TCP: &npav1alpha2.ClusterNetworkPolicyProtocolTCP{ + DestinationPort: &npav1alpha2.Port{ + Range: &npav1alpha2.PortRange{ + Start: 80, + End: 90, + }, + }, + }, + }}, + port: 91, + protocol: v1.ProtocolTCP, + want: false, + }, { name: "no match port number", - policyPorts: []npav1alpha2.ClusterNetworkPolicyPort{{ - PortNumber: &npav1alpha2.Port{Protocol: v1.ProtocolTCP, Port: 80}, + policyProtocols: []npav1alpha2.ClusterNetworkPolicyProtocol{{ + TCP: &npav1alpha2.ClusterNetworkPolicyProtocolTCP{ + DestinationPort: &npav1alpha2.Port{ + Number: 80, + }, + }, }}, port: 443, protocol: v1.ProtocolTCP, want: false, }, + { + name: "no match different protocol", + policyProtocols: []npav1alpha2.ClusterNetworkPolicyProtocol{{ + TCP: &npav1alpha2.ClusterNetworkPolicyProtocolTCP{ + DestinationPort: &npav1alpha2.Port{ + Number: 80, + }, + }, + }}, + port: 80, + protocol: v1.ProtocolUDP, + want: false, + }, + { + name: "match udp protocol", + policyProtocols: []npav1alpha2.ClusterNetworkPolicyProtocol{{ + UDP: &npav1alpha2.ClusterNetworkPolicyProtocolUDP{ + DestinationPort: &npav1alpha2.Port{ + Number: 53, + }, + }, + }}, + port: 53, + protocol: v1.ProtocolUDP, + want: true, + }, + { + name: "match sctp protocol", + policyProtocols: []npav1alpha2.ClusterNetworkPolicyProtocol{{ + SCTP: &npav1alpha2.ClusterNetworkPolicyProtocolSCTP{ + DestinationPort: &npav1alpha2.Port{ + Number: 9090, + }, + }, + }}, + port: 9090, + protocol: v1.ProtocolSCTP, + want: true, + }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { podInfo := api.NewPodInfo(tt.pod, makeNamespace("foo").Labels, makeNode("testnode").Labels, "id") - if got := evaluateClusterNetworkPolicyPort(tt.policyPorts, podInfo, tt.port, tt.protocol); got != tt.want { - t.Errorf("evaluateClusterNetworkPolicyPort() = %v, want %v", got, tt.want) + if got := evaluateProtocols(tt.policyProtocols, podInfo, tt.port, tt.protocol); got != tt.want { + t.Errorf("evaluateProtocols() = %v, want %v", got, tt.want) + } + }) + } +} + +func Test_matchProtocolDestinationNamedPort(t *testing.T) { + pod := makePod("test", "nstest", "192.168.1.1") + podInfo := api.NewPodInfo(pod, makeNamespace("nstest").Labels, makeNode("testnode").Labels, "id") + + tests := []struct { + name string + namedPort string + podInfo *api.PodInfo + protocol v1.Protocol + port int + want bool + }{ + { + name: "match exact named port", + namedPort: "http", + podInfo: podInfo, + protocol: v1.ProtocolTCP, + port: 80, + want: true, + }, + { + name: "no match wrong protocol", + namedPort: "http", + podInfo: podInfo, + protocol: v1.ProtocolUDP, + port: 80, + want: false, + }, + { + name: "no match wrong port", + namedPort: "http", + podInfo: podInfo, + protocol: v1.ProtocolTCP, + port: 8080, + want: false, + }, + { + name: "no match wrong name", + namedPort: "https", + podInfo: podInfo, + protocol: v1.ProtocolTCP, + port: 80, + want: false, + }, + { + name: "nil pod info", + namedPort: "http", + podInfo: nil, + protocol: v1.ProtocolTCP, + port: 80, + want: false, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + if got := matchProtocolDestinationNamedPort(tt.namedPort, tt.podInfo, tt.protocol, tt.port); got != tt.want { + t.Errorf("matchProtocolDestinationNamedPort() = %v, want %v", got, tt.want) + } + }) + } +} + +func Test_matchPort(t *testing.T) { + tests := []struct { + name string + policyPort *npav1alpha2.Port + port int + want bool + }{ + { + name: "nil policy port", + policyPort: nil, + port: 80, + want: true, + }, + { + name: "match exact port", + policyPort: &npav1alpha2.Port{Number: 80}, + port: 80, + want: true, + }, + { + name: "no match exact port", + policyPort: &npav1alpha2.Port{Number: 80}, + port: 443, + want: false, + }, + { + name: "match port in range", + policyPort: &npav1alpha2.Port{ + Range: &npav1alpha2.PortRange{Start: 80, End: 90}, + }, + port: 85, + want: true, + }, + { + name: "match range start", + policyPort: &npav1alpha2.Port{ + Range: &npav1alpha2.PortRange{Start: 80, End: 90}, + }, + port: 80, + want: true, + }, + { + name: "match range end", + policyPort: &npav1alpha2.Port{ + Range: &npav1alpha2.PortRange{Start: 80, End: 90}, + }, + port: 90, + want: true, + }, + { + name: "no match below range", + policyPort: &npav1alpha2.Port{ + Range: &npav1alpha2.PortRange{Start: 80, End: 90}, + }, + port: 79, + want: false, + }, + { + name: "no match above range", + policyPort: &npav1alpha2.Port{ + Range: &npav1alpha2.PortRange{Start: 80, End: 90}, + }, + port: 91, + want: false, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + if got := matchPort(tt.policyPort, tt.port); got != tt.want { + t.Errorf("matchPort() = %v, want %v", got, tt.want) } }) } From 4cb813c0280907cd2074f3bffdf2a9027200ebf4 Mon Sep 17 00:00:00 2001 From: Bowei Du Date: Fri, 20 Feb 2026 09:24:42 -0800 Subject: [PATCH 4/6] Fix Bats test to match new API --- tests/e2e_npa_v1alpha2.bats | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/tests/e2e_npa_v1alpha2.bats b/tests/e2e_npa_v1alpha2.bats index d41fab7..e88a9d6 100644 --- a/tests/e2e_npa_v1alpha2.bats +++ b/tests/e2e_npa_v1alpha2.bats @@ -85,13 +85,13 @@ spec: - domainNames: - "blog.kubernetes.io" - "*.k8s.io" - ports: - - portNumber: - protocol: TCP - port: 80 - - portNumber: - protocol: TCP - port: 443 + protocols: + - tcp: + destinationPort: + number: 80 + - tcp: + destinationPort: + number: 443 - name: "default-deny" action: "Deny" to: From 73a329e85b259a96cff7aa81440f18d251fdb90d Mon Sep 17 00:00:00 2001 From: Bowei Du Date: Tue, 24 Feb 2026 12:03:55 -0800 Subject: [PATCH 5/6] update to new version of network-policy-api --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index e312d18..a7c41b4 100644 --- a/go.mod +++ b/go.mod @@ -28,7 +28,7 @@ require ( k8s.io/klog/v2 v2.130.1 k8s.io/utils v0.0.0-20250604170112-4c0f3b243397 // Temporarily reference latest network-policy-api in anticipation of Beta. - sigs.k8s.io/network-policy-api v0.1.8-0.20260204182954-2c8a1a8b9f3b + sigs.k8s.io/network-policy-api v0.1.8-0.20260217173220-6bb86defe1a7 ) require ( diff --git a/go.sum b/go.sum index 25300f0..dd97ac1 100644 --- a/go.sum +++ b/go.sum @@ -288,8 +288,8 @@ k8s.io/utils v0.0.0-20250604170112-4c0f3b243397 h1:hwvWFiBzdWw1FhfY1FooPn3kzWuJ8 k8s.io/utils v0.0.0-20250604170112-4c0f3b243397/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8 h1:gBQPwqORJ8d8/YNZWEjoZs7npUVDpVXUUOFfW6CgAqE= sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8/go.mod h1:mdzfpAEoE6DHQEN0uh9ZbOCuHbLK5wOm7dK4ctXE9Tg= -sigs.k8s.io/network-policy-api v0.1.8-0.20260204182954-2c8a1a8b9f3b h1:MVOXGoqzxYiRJQ3x9jIWkTct+Z3tFelJuHiMdFOoinY= -sigs.k8s.io/network-policy-api v0.1.8-0.20260204182954-2c8a1a8b9f3b/go.mod h1:xYIHRc47QPAIiPkl+oXfu5we8jACNlt7WuKc7ZP0sGU= +sigs.k8s.io/network-policy-api v0.1.8-0.20260217173220-6bb86defe1a7 h1:pi2y+2LjP907yJM9XFty5BVBx4VI+KlwjQHcIGAY9Gg= +sigs.k8s.io/network-policy-api v0.1.8-0.20260217173220-6bb86defe1a7/go.mod h1:xYIHRc47QPAIiPkl+oXfu5we8jACNlt7WuKc7ZP0sGU= sigs.k8s.io/randfill v1.0.0 h1:JfjMILfT8A6RbawdsK2JXGBR5AQVfd+9TbzrlneTyrU= sigs.k8s.io/randfill v1.0.0/go.mod h1:XeLlZ/jmk4i1HRopwe7/aU3H5n1zNUcX6TM94b3QxOY= sigs.k8s.io/structured-merge-diff/v6 v6.3.0 h1:jTijUJbW353oVOd9oTlifJqOGEkUw2jB/fXCbTiQEco= From 4cf1cf6bd5afab6f1e00f03d30c2e0a57b4c2353 Mon Sep 17 00:00:00 2001 From: Bowei Du Date: Tue, 24 Feb 2026 15:13:08 -0800 Subject: [PATCH 6/6] Adjust go test timeout --- .github/workflows/npa.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/npa.yml b/.github/workflows/npa.yml index 8bec67b..348791f 100644 --- a/.github/workflows/npa.yml +++ b/.github/workflows/npa.yml @@ -144,7 +144,7 @@ jobs: git clone --branch v0.1.7 --depth=1 https://github.com/kubernetes-sigs/network-policy-api.git cd network-policy-api/ go mod download - go test -v ./conformance -run TestConformanceProfiles -args --conformance-profiles=AdminNetworkPolicy,BaselineAdminNetworkPolicy --organization=kubernetes --project=kube-network-policies --url=https://github.com/kubernetes-sigs/kube-network-policies --version=0.1.1 --contact=antonio.ojea.garcia@gmail.com --additional-info=https://github.com/kubernetes-sigs/kube-network-policies + go test -v ./conformance -run TestConformanceProfiles --timeout 20m -args --conformance-profiles=AdminNetworkPolicy,BaselineAdminNetworkPolicy --organization=kubernetes --project=kube-network-policies --url=https://github.com/kubernetes-sigs/kube-network-policies --version=0.1.1 --contact=antonio.ojea.garcia@gmail.com --additional-info=https://github.com/kubernetes-sigs/kube-network-policies cd - - name: Upload Junit Reports @@ -254,7 +254,7 @@ jobs: git clone https://github.com/kubernetes-sigs/network-policy-api.git cd network-policy-api/ go mod download - go test -v ./conformance -run TestConformanceProfiles -args --conformance-profiles=ClusterNetworkPolicy --organization=kubernetes --project=kube-network-policies --url=https://github.com/kubernetes-sigs/kube-network-policies --version=0.1.1 --contact=antonio.ojea.garcia@gmail.com --additional-info=https://github.com/kubernetes-sigs/kube-network-policies + go test -v ./conformance -run TestConformanceProfiles --timeout 20m --args --conformance-profiles=ClusterNetworkPolicy --organization=kubernetes --project=kube-network-policies --url=https://github.com/kubernetes-sigs/kube-network-policies --version=0.1.1 --contact=antonio.ojea.garcia@gmail.com --additional-info=https://github.com/kubernetes-sigs/kube-network-policies cd - - name: Upload Junit Reports @@ -274,4 +274,4 @@ jobs: uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v5 with: name: kind-logs-v1alpha2-${{ env.JOB_NAME }}-${{ github.run_id }} - path: ./_artifacts/logs \ No newline at end of file + path: ./_artifacts/logs