mirror of
https://github.com/kubernetes-sigs/node-feature-discovery.git
synced 2025-03-31 04:04:51 +00:00
test/e2e: test nodefeaturegroup templating and backrefs
This commit is contained in:
parent
de04740d50
commit
0ef859fd41
3 changed files with 85 additions and 0 deletions
|
@ -21,6 +21,7 @@ spec:
|
|||
fake.instance:
|
||||
elements:
|
||||
- attributes:
|
||||
name: "instance-x"
|
||||
attr_1: "true"
|
||||
attr_2: "9"
|
||||
# Labels to be created
|
||||
|
|
54
test/e2e/data/nodefeaturegroup-2.yaml
Normal file
54
test/e2e/data/nodefeaturegroup-2.yaml
Normal file
|
@ -0,0 +1,54 @@
|
|||
apiVersion: nfd.k8s-sigs.io/v1alpha1
|
||||
kind: NodeFeatureGroup
|
||||
metadata:
|
||||
name: e2e-test-2
|
||||
spec:
|
||||
featureGroupRules:
|
||||
- name: "e2e-matchany-test-1"
|
||||
vars:
|
||||
e2e-matchany-test-1: "true"
|
||||
matchAny:
|
||||
- matchFeatures:
|
||||
- feature: "fake.instance"
|
||||
matchExpressions:
|
||||
"attr_1": {op: In, value: ["nomatch"]}
|
||||
- matchFeatures:
|
||||
- feature: "fake.instance"
|
||||
matchExpressions:
|
||||
"attr_3": {op: In, value: ["100"]}
|
||||
|
||||
#
|
||||
# Test templating
|
||||
#
|
||||
- name: "e2e-template-test-1"
|
||||
varsTemplate: |
|
||||
{{ range .fake.instance }}e2e-template-test-1-{{ .name }}=found
|
||||
{{ end }}
|
||||
matchFeatures:
|
||||
- feature: "fake.instance"
|
||||
matchExpressions:
|
||||
"attr_1": {op: In, value: ["true"]}
|
||||
|
||||
- name: "e2e-template-test-2"
|
||||
varsTemplate: |
|
||||
{{ range .fake.attribute }}e2e-template-test-2-{{ .Name }}={{ .Value }}
|
||||
{{ end }}
|
||||
matchFeatures:
|
||||
- feature: "fake.attribute"
|
||||
matchExpressions:
|
||||
# expect attr_2 overridden from nodefeature-1.yaml
|
||||
"attr_2": {op: IsTrue}
|
||||
matchName: {op: In, value: ["attr_3"]}
|
||||
|
||||
#
|
||||
# Test backreference
|
||||
#
|
||||
- name: "e2e-backreference-test-1"
|
||||
matchFeatures:
|
||||
- feature: "rule.matched"
|
||||
matchExpressions:
|
||||
"e2e-matchany-test-1:": {op: IsTrue}
|
||||
"e2e-template-test-1-instance_1": {op: In, value: ["found"]}
|
||||
"e2e-template-test-1-instance_2": {op: Exists}
|
||||
"e2e-template-test-2-attr_2": {op: IsTrue}
|
||||
"e2e-template-test-2-attr_3": {op: In, value: ["10"]}
|
|
@ -887,6 +887,36 @@ core:
|
|||
}
|
||||
return reflect.DeepEqual(group.Status, expectedGroup.Status)
|
||||
}, 5*time.Minute, 5*time.Second).Should(BeTrue())
|
||||
|
||||
// Deploy node feature object to have one different node
|
||||
targetNodeName := nodes[0].Name
|
||||
By("Creating NodeFeature object")
|
||||
nodeFeatures, err := testutils.CreateOrUpdateNodeFeaturesFromFile(ctx, nfdClient, "nodefeature-1.yaml", f.Namespace.Name, targetNodeName)
|
||||
Expect(err).NotTo(HaveOccurred())
|
||||
|
||||
By("Creating NodeFeatureGroups #2")
|
||||
Expect(testutils.CreateNodeFeatureGroupsFromFile(ctx, nfdClient, f.Namespace.Name, "nodefeaturegroup-2.yaml")).NotTo(HaveOccurred())
|
||||
|
||||
By("Verifying NodeFeatureGroups #2")
|
||||
Eventually(func() bool {
|
||||
group, err := nfdClient.NfdV1alpha1().NodeFeatureGroups(f.Namespace.Name).Get(ctx, "e2e-test-2", metav1.GetOptions{})
|
||||
if err != nil {
|
||||
return false
|
||||
}
|
||||
return len(group.Status.Nodes) == 1 && group.Status.Nodes[0].Name == targetNodeName
|
||||
}, 1*time.Minute, 5*time.Second).Should(BeTrue())
|
||||
|
||||
By("Deleting NodeFeature object")
|
||||
err = nfdClient.NfdV1alpha1().NodeFeatures(f.Namespace.Name).Delete(ctx, nodeFeatures[0], metav1.DeleteOptions{})
|
||||
Expect(err).NotTo(HaveOccurred())
|
||||
|
||||
Eventually(func() bool {
|
||||
group, err := nfdClient.NfdV1alpha1().NodeFeatureGroups(f.Namespace.Name).Get(ctx, "e2e-test-2", metav1.GetOptions{})
|
||||
if err != nil {
|
||||
return false
|
||||
}
|
||||
return len(group.Status.Nodes) == 0
|
||||
}, 1*time.Minute, 5*time.Second).Should(BeTrue())
|
||||
})
|
||||
})
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue