mirror of
https://github.com/kubernetes-sigs/node-feature-discovery.git
synced 2025-03-17 05:48:21 +00:00
test/e2e: stricter validation of node annotations
Now that the hard-to-predict version annotations are gone we can do strict validation of nfd-generated node annotations.
This commit is contained in:
parent
6144f3db61
commit
28132fb274
1 changed files with 15 additions and 8 deletions
|
@ -708,9 +708,14 @@ core:
|
||||||
expectedLabels["*"][nfdv1alpha1.FeatureLabelNs+"/e2e-template-test-1-instance_1"] = "found"
|
expectedLabels["*"][nfdv1alpha1.FeatureLabelNs+"/e2e-template-test-1-instance_1"] = "found"
|
||||||
expectedLabels["*"][nfdv1alpha1.FeatureLabelNs+"/e2e-template-test-1-instance_2"] = "found"
|
expectedLabels["*"][nfdv1alpha1.FeatureLabelNs+"/e2e-template-test-1-instance_2"] = "found"
|
||||||
expectedLabels["*"][nfdv1alpha1.FeatureLabelNs+"/dynamic-label"] = "true"
|
expectedLabels["*"][nfdv1alpha1.FeatureLabelNs+"/dynamic-label"] = "true"
|
||||||
|
expectedAnnotations := map[string]k8sAnnotations{
|
||||||
|
"*": {
|
||||||
|
"nfd.node.kubernetes.io/feature-labels": "dynamic-label,e2e-attribute-test-1,e2e-flag-test-1,e2e-instance-test-1,e2e-matchany-test-1,e2e-template-test-1-instance_1,e2e-template-test-1-instance_2"},
|
||||||
|
}
|
||||||
|
|
||||||
By("Verifying node labels from NodeFeatureRules #1 and #2")
|
By("Verifying node labels from NodeFeatureRules #1 and #2")
|
||||||
eventuallyNonControlPlaneNodes(ctx, f.ClientSet).Should(MatchLabels(expectedLabels, nodes, false))
|
eventuallyNonControlPlaneNodes(ctx, f.ClientSet).Should(MatchLabels(expectedLabels, nodes, false))
|
||||||
|
eventuallyNonControlPlaneNodes(ctx, f.ClientSet).Should(MatchAnnotations(expectedAnnotations, nodes, false))
|
||||||
|
|
||||||
// Add features from NodeFeatureRule #3
|
// Add features from NodeFeatureRule #3
|
||||||
By("Creating NodeFeatureRules #3")
|
By("Creating NodeFeatureRules #3")
|
||||||
|
@ -736,12 +741,10 @@ core:
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
expectedAnnotations := map[string]k8sAnnotations{
|
expectedAnnotations["*"]["nfd.node.kubernetes.io/taints"] = "feature.node.kubernetes.io/fake-special-node=exists:PreferNoSchedule,feature.node.kubernetes.io/fake-dedicated-node=true:NoExecute,feature.node.kubernetes.io/performance-optimized-node=true:NoExecute"
|
||||||
"*": {
|
|
||||||
"nfd.node.kubernetes.io/taints": "feature.node.kubernetes.io/fake-special-node=exists:PreferNoSchedule,feature.node.kubernetes.io/fake-dedicated-node=true:NoExecute,feature.node.kubernetes.io/performance-optimized-node=true:NoExecute"},
|
|
||||||
}
|
|
||||||
eventuallyNonControlPlaneNodes(ctx, f.ClientSet).Should(MatchTaints(expectedTaints, nodes, false))
|
eventuallyNonControlPlaneNodes(ctx, f.ClientSet).Should(MatchTaints(expectedTaints, nodes, false))
|
||||||
eventuallyNonControlPlaneNodes(ctx, f.ClientSet).Should(MatchAnnotations(expectedAnnotations, nodes, true))
|
eventuallyNonControlPlaneNodes(ctx, f.ClientSet).Should(MatchAnnotations(expectedAnnotations, nodes, false))
|
||||||
|
|
||||||
By("Re-applying NodeFeatureRules #3 with updated taints")
|
By("Re-applying NodeFeatureRules #3 with updated taints")
|
||||||
Expect(testutils.UpdateNodeFeatureRulesFromFile(ctx, nfdClient, "nodefeaturerule-3-updated.yaml")).NotTo(HaveOccurred())
|
Expect(testutils.UpdateNodeFeatureRulesFromFile(ctx, nfdClient, "nodefeaturerule-3-updated.yaml")).NotTo(HaveOccurred())
|
||||||
|
@ -761,15 +764,17 @@ core:
|
||||||
|
|
||||||
By("Verifying updated node taints and annotation from NodeFeatureRules #3")
|
By("Verifying updated node taints and annotation from NodeFeatureRules #3")
|
||||||
eventuallyNonControlPlaneNodes(ctx, f.ClientSet).Should(MatchTaints(expectedTaints, nodes, false))
|
eventuallyNonControlPlaneNodes(ctx, f.ClientSet).Should(MatchTaints(expectedTaints, nodes, false))
|
||||||
eventuallyNonControlPlaneNodes(ctx, f.ClientSet).Should(MatchAnnotations(expectedAnnotations, nodes, true))
|
eventuallyNonControlPlaneNodes(ctx, f.ClientSet).Should(MatchAnnotations(expectedAnnotations, nodes, false))
|
||||||
|
|
||||||
By("Deleting NodeFeatureRule object")
|
By("Deleting NodeFeatureRule object")
|
||||||
err = nfdClient.NfdV1alpha1().NodeFeatureRules().Delete(ctx, "e2e-test-3", metav1.DeleteOptions{})
|
err = nfdClient.NfdV1alpha1().NodeFeatureRules().Delete(ctx, "e2e-test-3", metav1.DeleteOptions{})
|
||||||
Expect(err).NotTo(HaveOccurred())
|
Expect(err).NotTo(HaveOccurred())
|
||||||
expectedTaints["*"] = []corev1.Taint{}
|
expectedTaints["*"] = []corev1.Taint{}
|
||||||
|
delete(expectedAnnotations["*"], "nfd.node.kubernetes.io/taints")
|
||||||
eventuallyNonControlPlaneNodes(ctx, f.ClientSet).Should(MatchTaints(expectedTaints, nodes, false))
|
eventuallyNonControlPlaneNodes(ctx, f.ClientSet).Should(MatchTaints(expectedTaints, nodes, false))
|
||||||
|
eventuallyNonControlPlaneNodes(ctx, f.ClientSet).Should(MatchAnnotations(expectedAnnotations, nodes, false))
|
||||||
|
|
||||||
expectedAnnotations["*"] = k8sAnnotations{"nfd.node.kubernetes.io/extended-resources": "nons,vendor.feature.node.kubernetes.io/static,vendor.io/dynamic"}
|
expectedAnnotations["*"]["nfd.node.kubernetes.io/extended-resources"] = "nons,vendor.feature.node.kubernetes.io/static,vendor.io/dynamic"
|
||||||
|
|
||||||
expectedCapacity := map[string]corev1.ResourceList{
|
expectedCapacity := map[string]corev1.ResourceList{
|
||||||
"*": {
|
"*": {
|
||||||
|
@ -783,7 +788,7 @@ core:
|
||||||
Expect(testutils.CreateNodeFeatureRulesFromFile(ctx, nfdClient, "nodefeaturerule-4.yaml")).NotTo(HaveOccurred())
|
Expect(testutils.CreateNodeFeatureRulesFromFile(ctx, nfdClient, "nodefeaturerule-4.yaml")).NotTo(HaveOccurred())
|
||||||
|
|
||||||
By("Verifying node annotations from NodeFeatureRules #4")
|
By("Verifying node annotations from NodeFeatureRules #4")
|
||||||
eventuallyNonControlPlaneNodes(ctx, f.ClientSet).Should(MatchAnnotations(expectedAnnotations, nodes, true))
|
eventuallyNonControlPlaneNodes(ctx, f.ClientSet).Should(MatchAnnotations(expectedAnnotations, nodes, false))
|
||||||
|
|
||||||
By("Verfiying node status capacity from NodeFeatureRules #4")
|
By("Verfiying node status capacity from NodeFeatureRules #4")
|
||||||
eventuallyNonControlPlaneNodes(ctx, f.ClientSet).Should(MatchCapacity(expectedCapacity, nodes, false))
|
eventuallyNonControlPlaneNodes(ctx, f.ClientSet).Should(MatchCapacity(expectedCapacity, nodes, false))
|
||||||
|
@ -794,7 +799,9 @@ core:
|
||||||
|
|
||||||
By("Verfiying node status capacity from NodeFeatureRules #4")
|
By("Verfiying node status capacity from NodeFeatureRules #4")
|
||||||
expectedCapacity = map[string]corev1.ResourceList{"*": {}}
|
expectedCapacity = map[string]corev1.ResourceList{"*": {}}
|
||||||
|
delete(expectedAnnotations["*"], "nfd.node.kubernetes.io/extended-resources")
|
||||||
eventuallyNonControlPlaneNodes(ctx, f.ClientSet).Should(MatchCapacity(expectedCapacity, nodes, false))
|
eventuallyNonControlPlaneNodes(ctx, f.ClientSet).Should(MatchCapacity(expectedCapacity, nodes, false))
|
||||||
|
eventuallyNonControlPlaneNodes(ctx, f.ClientSet).Should(MatchAnnotations(expectedAnnotations, nodes, false))
|
||||||
|
|
||||||
By("Deleting nfd-worker daemonset")
|
By("Deleting nfd-worker daemonset")
|
||||||
err = f.ClientSet.AppsV1().DaemonSets(f.Namespace.Name).Delete(ctx, workerDS.Name, metav1.DeleteOptions{})
|
err = f.ClientSet.AppsV1().DaemonSets(f.Namespace.Name).Delete(ctx, workerDS.Name, metav1.DeleteOptions{})
|
||||||
|
|
Loading…
Add table
Reference in a new issue