Skip to content

Commit

Permalink
e2e: Validate ExcludeTopology field
Browse files Browse the repository at this point in the history
Add an End2End to validate two different
SriovNetworkNodePolicies can't specify different
`ExcludeTopology` values for the same resource.

Signed-off-by: Andrea Panattoni <[email protected]>
  • Loading branch information
zeeke committed Jun 1, 2023
1 parent dc36e94 commit 2390dd5
Showing 1 changed file with 62 additions and 0 deletions.
62 changes: 62 additions & 0 deletions test/conformance/tests/test_sriov_operator.go
Original file line number Diff line number Diff line change
Expand Up @@ -1368,6 +1368,68 @@ var _ = Describe("[sriov] operator", func() {
Expect(stdout).To(ContainSubstring("2 packets transmitted, 2 received, 0% packet loss"))
})
})

Context("ExcludeTopology", func() {
BeforeEach(func() {
if discovery.Enabled() {
Skip("Test unsuitable to be run in discovery mode")
}
})

It("multiple values for the same resource should not be allowed", func() {
node := sriovInfos.Nodes[0]
sriovDeviceList, err := sriovInfos.FindSriovDevices(node)
Expect(err).ToNot(HaveOccurred())
unusedSriovDevices, err := findUnusedSriovDevices(node, sriovDeviceList)
Expect(err).ToNot(HaveOccurred())

intf := unusedSriovDevices[0]

excludeTopologyTrue := &sriovv1.SriovNetworkNodePolicy{
ObjectMeta: metav1.ObjectMeta{
Name: "test-exclude-topology-true",
Namespace: operatorNamespace,
},

Spec: sriovv1.SriovNetworkNodePolicySpec{
NumVfs: 10,
ResourceName: "resourceXXX",
NodeSelector: map[string]string{"kubernetes.io/hostname": node},
NicSelector: sriovv1.SriovNetworkNicSelector{
PfNames: []string{intf.Name + "#0-4"},
},
ExcludeTopology: true,
},
}

err = clients.Create(context.Background(), excludeTopologyTrue)
Expect(err).ToNot(HaveOccurred())

excludeTopologyFalse := &sriovv1.SriovNetworkNodePolicy{
ObjectMeta: metav1.ObjectMeta{
Name: "test-exclude-topology-false",
Namespace: operatorNamespace,
},

Spec: sriovv1.SriovNetworkNodePolicySpec{
NumVfs: 10,
ResourceName: "resourceXXX",
NodeSelector: map[string]string{"kubernetes.io/hostname": node},
NicSelector: sriovv1.SriovNetworkNicSelector{
PfNames: []string{intf.Name + "#5-9"},
},
ExcludeTopology: false,
},
}

err = clients.Create(context.Background(), excludeTopologyFalse)
Expect(err).To(HaveOccurred())

Expect(err.Error()).To(ContainSubstring(
"excludeTopology[false] field conflicts with policy [test-exclude-topology-true].ExcludeTopology[true]" +
" as they target the same resource[resourceXXX]"))
})
})
})

Context("Nic Validation", func() {
Expand Down

0 comments on commit 2390dd5

Please sign in to comment.