mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-21 10:51:29 +00:00
Merge pull request #59211 from vmware/fix-node-lables-for-e2e-tests
Automatic merge from submit-queue (batch tested with PRs 58645, 59211). If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>. Fixing node labels assignment for random order tests execution **What this PR does / why we need it**: For some vsphere cloud provider e2e test cases, we are setting node labels to control pod scheduling on specific node. When these e2e tests are executed in random order from testsuite, they are overwriting node labels, so some tests were failing to schedule pod on desired node. Tests are failing with following error. ``` “FailedScheduling: No nodes are available that match all of the predicates: MatchNodeSelector (5), NodeUnschedulable (1). ``` This PR is fixing the above issue with setting distinct node label key for each test group within test suite. **Which issue(s) this PR fixes** Fixes # **Special notes for your reviewer**: Executed testsuites containing tests from both files using following script. ``` GINKGO_FOCUS[0]="Volume\sPlacement" GINKGO_FOCUS[1]="Volume\sDisk\sFormat" REGEX="--ginkgo.focus="$(IFS='|' ; echo "${GINKGO_FOCUS[*]}") go run hack/e2e.go --check-version-skew=false --v --test --test_args="${REGEX}" ``` All test passed. **Release note**: ```release-note NONE ```
This commit is contained in:
commit
3cf94ef125
@ -52,6 +52,9 @@ import (
|
||||
|
||||
var _ = utils.SIGDescribe("Volume Disk Format [Feature:vsphere]", func() {
|
||||
f := framework.NewDefaultFramework("volume-disk-format")
|
||||
const (
|
||||
NodeLabelKey = "vsphere_e2e_label_volume_diskformat"
|
||||
)
|
||||
var (
|
||||
client clientset.Interface
|
||||
namespace string
|
||||
@ -73,15 +76,15 @@ var _ = utils.SIGDescribe("Volume Disk Format [Feature:vsphere]", func() {
|
||||
if !isNodeLabeled {
|
||||
nodeLabelValue = "vsphere_e2e_" + string(uuid.NewUUID())
|
||||
nodeKeyValueLabel = make(map[string]string)
|
||||
nodeKeyValueLabel["vsphere_e2e_label"] = nodeLabelValue
|
||||
framework.AddOrUpdateLabelOnNode(client, nodeName, "vsphere_e2e_label", nodeLabelValue)
|
||||
nodeKeyValueLabel[NodeLabelKey] = nodeLabelValue
|
||||
framework.AddOrUpdateLabelOnNode(client, nodeName, NodeLabelKey, nodeLabelValue)
|
||||
isNodeLabeled = true
|
||||
}
|
||||
})
|
||||
framework.AddCleanupAction(func() {
|
||||
// Cleanup actions will be called even when the tests are skipped and leaves namespace unset.
|
||||
if len(namespace) > 0 && len(nodeLabelValue) > 0 {
|
||||
framework.RemoveLabelOffNode(client, nodeName, "vsphere_e2e_label")
|
||||
framework.RemoveLabelOffNode(client, nodeName, NodeLabelKey)
|
||||
}
|
||||
})
|
||||
|
||||
|
@ -35,6 +35,9 @@ import (
|
||||
|
||||
var _ = utils.SIGDescribe("Volume Placement", func() {
|
||||
f := framework.NewDefaultFramework("volume-placement")
|
||||
const (
|
||||
NodeLabelKey = "vsphere_e2e_label_volume_placement"
|
||||
)
|
||||
var (
|
||||
c clientset.Interface
|
||||
ns string
|
||||
@ -80,10 +83,10 @@ var _ = utils.SIGDescribe("Volume Placement", func() {
|
||||
// Cleanup actions will be called even when the tests are skipped and leaves namespace unset.
|
||||
if len(ns) > 0 {
|
||||
if len(node1KeyValueLabel) > 0 {
|
||||
framework.RemoveLabelOffNode(c, node1Name, "vsphere_e2e_label")
|
||||
framework.RemoveLabelOffNode(c, node1Name, NodeLabelKey)
|
||||
}
|
||||
if len(node2KeyValueLabel) > 0 {
|
||||
framework.RemoveLabelOffNode(c, node2Name, "vsphere_e2e_label")
|
||||
framework.RemoveLabelOffNode(c, node2Name, NodeLabelKey)
|
||||
}
|
||||
}
|
||||
})
|
||||
@ -339,13 +342,13 @@ func testSetupVolumePlacement(client clientset.Interface, namespace string) (nod
|
||||
node2Name = nodes.Items[1].Name
|
||||
node1LabelValue := "vsphere_e2e_" + string(uuid.NewUUID())
|
||||
node1KeyValueLabel = make(map[string]string)
|
||||
node1KeyValueLabel["vsphere_e2e_label"] = node1LabelValue
|
||||
framework.AddOrUpdateLabelOnNode(client, node1Name, "vsphere_e2e_label", node1LabelValue)
|
||||
node1KeyValueLabel[NodeLabelKey] = node1LabelValue
|
||||
framework.AddOrUpdateLabelOnNode(client, node1Name, NodeLabelKey, node1LabelValue)
|
||||
|
||||
node2LabelValue := "vsphere_e2e_" + string(uuid.NewUUID())
|
||||
node2KeyValueLabel = make(map[string]string)
|
||||
node2KeyValueLabel["vsphere_e2e_label"] = node2LabelValue
|
||||
framework.AddOrUpdateLabelOnNode(client, node2Name, "vsphere_e2e_label", node2LabelValue)
|
||||
node2KeyValueLabel[NodeLabelKey] = node2LabelValue
|
||||
framework.AddOrUpdateLabelOnNode(client, node2Name, NodeLabelKey, node2LabelValue)
|
||||
return node1Name, node1KeyValueLabel, node2Name, node2KeyValueLabel
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user