mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-20 18:31:15 +00:00
Merge pull request #89011 from oomichi/move-GetClusterZones
Move GetClusterZones() to e2enode
This commit is contained in:
commit
df989a45f0
@ -471,3 +471,24 @@ func PodNodePairs(c clientset.Interface, ns string) ([]PodNode, error) {
|
|||||||
|
|
||||||
return result, nil
|
return result, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetClusterZones returns the values of zone label collected from all nodes.
|
||||||
|
func GetClusterZones(c clientset.Interface) (sets.String, error) {
|
||||||
|
nodes, err := c.CoreV1().Nodes().List(context.TODO(), metav1.ListOptions{})
|
||||||
|
if err != nil {
|
||||||
|
return nil, fmt.Errorf("Error getting nodes while attempting to list cluster zones: %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
// collect values of zone label from all nodes
|
||||||
|
zones := sets.NewString()
|
||||||
|
for _, node := range nodes.Items {
|
||||||
|
if zone, found := node.Labels[v1.LabelZoneFailureDomain]; found {
|
||||||
|
zones.Insert(zone)
|
||||||
|
}
|
||||||
|
|
||||||
|
if zone, found := node.Labels[v1.LabelZoneFailureDomainStable]; found {
|
||||||
|
zones.Insert(zone)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return zones, nil
|
||||||
|
}
|
||||||
|
@ -16,6 +16,7 @@ go_library(
|
|||||||
"//staging/src/k8s.io/client-go/dynamic:go_default_library",
|
"//staging/src/k8s.io/client-go/dynamic:go_default_library",
|
||||||
"//staging/src/k8s.io/client-go/kubernetes:go_default_library",
|
"//staging/src/k8s.io/client-go/kubernetes:go_default_library",
|
||||||
"//test/e2e/framework:go_default_library",
|
"//test/e2e/framework:go_default_library",
|
||||||
|
"//test/e2e/framework/node:go_default_library",
|
||||||
"//test/e2e/framework/ssh:go_default_library",
|
"//test/e2e/framework/ssh:go_default_library",
|
||||||
"//vendor/github.com/onsi/ginkgo:go_default_library",
|
"//vendor/github.com/onsi/ginkgo:go_default_library",
|
||||||
],
|
],
|
||||||
|
@ -38,6 +38,7 @@ import (
|
|||||||
clientset "k8s.io/client-go/kubernetes"
|
clientset "k8s.io/client-go/kubernetes"
|
||||||
"k8s.io/kubernetes/pkg/features"
|
"k8s.io/kubernetes/pkg/features"
|
||||||
"k8s.io/kubernetes/test/e2e/framework"
|
"k8s.io/kubernetes/test/e2e/framework"
|
||||||
|
e2enode "k8s.io/kubernetes/test/e2e/framework/node"
|
||||||
e2essh "k8s.io/kubernetes/test/e2e/framework/ssh"
|
e2essh "k8s.io/kubernetes/test/e2e/framework/ssh"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -178,7 +179,7 @@ func SkipUnlessProviderIs(supportedProviders ...string) {
|
|||||||
|
|
||||||
// SkipUnlessMultizone skips if the cluster does not have multizone.
|
// SkipUnlessMultizone skips if the cluster does not have multizone.
|
||||||
func SkipUnlessMultizone(c clientset.Interface) {
|
func SkipUnlessMultizone(c clientset.Interface) {
|
||||||
zones, err := framework.GetClusterZones(c)
|
zones, err := e2enode.GetClusterZones(c)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
skipInternalf(1, "Error listing cluster zones")
|
skipInternalf(1, "Error listing cluster zones")
|
||||||
}
|
}
|
||||||
@ -189,7 +190,7 @@ func SkipUnlessMultizone(c clientset.Interface) {
|
|||||||
|
|
||||||
// SkipIfMultizone skips if the cluster has multizone.
|
// SkipIfMultizone skips if the cluster has multizone.
|
||||||
func SkipIfMultizone(c clientset.Interface) {
|
func SkipIfMultizone(c clientset.Interface) {
|
||||||
zones, err := framework.GetClusterZones(c)
|
zones, err := e2enode.GetClusterZones(c)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
skipInternalf(1, "Error listing cluster zones")
|
skipInternalf(1, "Error listing cluster zones")
|
||||||
}
|
}
|
||||||
|
@ -1710,27 +1710,6 @@ func DsFromData(data []byte) (*appsv1.DaemonSet, error) {
|
|||||||
return &ds, nil
|
return &ds, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetClusterZones returns the values of zone label collected from all nodes.
|
|
||||||
func GetClusterZones(c clientset.Interface) (sets.String, error) {
|
|
||||||
nodes, err := c.CoreV1().Nodes().List(context.TODO(), metav1.ListOptions{})
|
|
||||||
if err != nil {
|
|
||||||
return nil, fmt.Errorf("Error getting nodes while attempting to list cluster zones: %v", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
// collect values of zone label from all nodes
|
|
||||||
zones := sets.NewString()
|
|
||||||
for _, node := range nodes.Items {
|
|
||||||
if zone, found := node.Labels[v1.LabelZoneFailureDomain]; found {
|
|
||||||
zones.Insert(zone)
|
|
||||||
}
|
|
||||||
|
|
||||||
if zone, found := node.Labels[v1.LabelZoneFailureDomainStable]; found {
|
|
||||||
zones.Insert(zone)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return zones, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// GetFileModeRegex returns a file mode related regex which should be matched by the mounttest pods' output.
|
// GetFileModeRegex returns a file mode related regex which should be matched by the mounttest pods' output.
|
||||||
// If the given mask is nil, then the regex will contain the default OS file modes, which are 0644 for Linux and 0775 for Windows.
|
// If the given mask is nil, then the regex will contain the default OS file modes, which are 0644 for Linux and 0775 for Windows.
|
||||||
func GetFileModeRegex(filePath string, mask *int32) string {
|
func GetFileModeRegex(filePath string, mask *int32) string {
|
||||||
|
@ -30,6 +30,7 @@ import (
|
|||||||
"k8s.io/apimachinery/pkg/util/uuid"
|
"k8s.io/apimachinery/pkg/util/uuid"
|
||||||
clientset "k8s.io/client-go/kubernetes"
|
clientset "k8s.io/client-go/kubernetes"
|
||||||
"k8s.io/kubernetes/test/e2e/framework"
|
"k8s.io/kubernetes/test/e2e/framework"
|
||||||
|
e2enode "k8s.io/kubernetes/test/e2e/framework/node"
|
||||||
e2epod "k8s.io/kubernetes/test/e2e/framework/pod"
|
e2epod "k8s.io/kubernetes/test/e2e/framework/pod"
|
||||||
e2erc "k8s.io/kubernetes/test/e2e/framework/rc"
|
e2erc "k8s.io/kubernetes/test/e2e/framework/rc"
|
||||||
e2eskipper "k8s.io/kubernetes/test/e2e/framework/skipper"
|
e2eskipper "k8s.io/kubernetes/test/e2e/framework/skipper"
|
||||||
@ -113,7 +114,7 @@ func SpreadServiceOrFail(f *framework.Framework, replicaCount int, image string)
|
|||||||
framework.ExpectNoError(err)
|
framework.ExpectNoError(err)
|
||||||
|
|
||||||
// Now make sure they're spread across zones
|
// Now make sure they're spread across zones
|
||||||
zoneNames, err := framework.GetClusterZones(f.ClientSet)
|
zoneNames, err := e2enode.GetClusterZones(f.ClientSet)
|
||||||
framework.ExpectNoError(err)
|
framework.ExpectNoError(err)
|
||||||
checkZoneSpreading(f.ClientSet, pods, zoneNames.List())
|
checkZoneSpreading(f.ClientSet, pods, zoneNames.List())
|
||||||
}
|
}
|
||||||
@ -131,7 +132,7 @@ func getZoneNameForNode(node v1.Node) (string, error) {
|
|||||||
|
|
||||||
// Return the number of zones in which we have nodes in this cluster.
|
// Return the number of zones in which we have nodes in this cluster.
|
||||||
func getZoneCount(c clientset.Interface) (int, error) {
|
func getZoneCount(c clientset.Interface) (int, error) {
|
||||||
zoneNames, err := framework.GetClusterZones(c)
|
zoneNames, err := e2enode.GetClusterZones(c)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return -1, err
|
return -1, err
|
||||||
}
|
}
|
||||||
@ -227,7 +228,7 @@ func SpreadRCOrFail(f *framework.Framework, replicaCount int32, image string, ar
|
|||||||
framework.ExpectNoError(err)
|
framework.ExpectNoError(err)
|
||||||
|
|
||||||
// Now make sure they're spread across zones
|
// Now make sure they're spread across zones
|
||||||
zoneNames, err := framework.GetClusterZones(f.ClientSet)
|
zoneNames, err := e2enode.GetClusterZones(f.ClientSet)
|
||||||
framework.ExpectNoError(err)
|
framework.ExpectNoError(err)
|
||||||
checkZoneSpreading(f.ClientSet, pods, zoneNames.List())
|
checkZoneSpreading(f.ClientSet, pods, zoneNames.List())
|
||||||
}
|
}
|
||||||
|
@ -29,6 +29,7 @@ import (
|
|||||||
"k8s.io/apimachinery/pkg/util/sets"
|
"k8s.io/apimachinery/pkg/util/sets"
|
||||||
"k8s.io/apimachinery/pkg/util/uuid"
|
"k8s.io/apimachinery/pkg/util/uuid"
|
||||||
"k8s.io/kubernetes/test/e2e/framework"
|
"k8s.io/kubernetes/test/e2e/framework"
|
||||||
|
e2enode "k8s.io/kubernetes/test/e2e/framework/node"
|
||||||
e2epod "k8s.io/kubernetes/test/e2e/framework/pod"
|
e2epod "k8s.io/kubernetes/test/e2e/framework/pod"
|
||||||
"k8s.io/kubernetes/test/e2e/framework/providers/gce"
|
"k8s.io/kubernetes/test/e2e/framework/providers/gce"
|
||||||
e2epv "k8s.io/kubernetes/test/e2e/framework/pv"
|
e2epv "k8s.io/kubernetes/test/e2e/framework/pv"
|
||||||
@ -189,7 +190,7 @@ func PodsUseStaticPVsOrFail(f *framework.Framework, podCount int, image string)
|
|||||||
c := f.ClientSet
|
c := f.ClientSet
|
||||||
ns := f.Namespace.Name
|
ns := f.Namespace.Name
|
||||||
|
|
||||||
zones, err := framework.GetClusterZones(c)
|
zones, err := e2enode.GetClusterZones(c)
|
||||||
framework.ExpectNoError(err)
|
framework.ExpectNoError(err)
|
||||||
zonelist := zones.List()
|
zonelist := zones.List()
|
||||||
ginkgo.By("Creating static PVs across zones")
|
ginkgo.By("Creating static PVs across zones")
|
||||||
|
@ -40,6 +40,7 @@ import (
|
|||||||
volumehelpers "k8s.io/cloud-provider/volume/helpers"
|
volumehelpers "k8s.io/cloud-provider/volume/helpers"
|
||||||
podutil "k8s.io/kubernetes/pkg/api/v1/pod"
|
podutil "k8s.io/kubernetes/pkg/api/v1/pod"
|
||||||
"k8s.io/kubernetes/test/e2e/framework"
|
"k8s.io/kubernetes/test/e2e/framework"
|
||||||
|
e2enode "k8s.io/kubernetes/test/e2e/framework/node"
|
||||||
e2epod "k8s.io/kubernetes/test/e2e/framework/pod"
|
e2epod "k8s.io/kubernetes/test/e2e/framework/pod"
|
||||||
e2epv "k8s.io/kubernetes/test/e2e/framework/pv"
|
e2epv "k8s.io/kubernetes/test/e2e/framework/pv"
|
||||||
e2eskipper "k8s.io/kubernetes/test/e2e/framework/skipper"
|
e2eskipper "k8s.io/kubernetes/test/e2e/framework/skipper"
|
||||||
@ -140,7 +141,7 @@ func testVolumeProvisioning(c clientset.Interface, ns string) {
|
|||||||
|
|
||||||
err := checkGCEPD(volume, "pd-standard")
|
err := checkGCEPD(volume, "pd-standard")
|
||||||
framework.ExpectNoError(err, "checkGCEPD")
|
framework.ExpectNoError(err, "checkGCEPD")
|
||||||
zones, err := framework.GetClusterZones(c)
|
zones, err := e2enode.GetClusterZones(c)
|
||||||
framework.ExpectNoError(err, "GetClusterZones")
|
framework.ExpectNoError(err, "GetClusterZones")
|
||||||
err = verifyZonesInPV(volume, zones, false /* match */)
|
err = verifyZonesInPV(volume, zones, false /* match */)
|
||||||
framework.ExpectNoError(err, "verifyZonesInPV")
|
framework.ExpectNoError(err, "verifyZonesInPV")
|
||||||
@ -547,7 +548,7 @@ func newPodTemplate(labels map[string]string) *v1.PodTemplateSpec {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func getTwoRandomZones(c clientset.Interface) []string {
|
func getTwoRandomZones(c clientset.Interface) []string {
|
||||||
zones, err := framework.GetClusterZones(c)
|
zones, err := e2enode.GetClusterZones(c)
|
||||||
framework.ExpectNoError(err)
|
framework.ExpectNoError(err)
|
||||||
gomega.Expect(zones.Len()).To(gomega.BeNumerically(">=", 2),
|
gomega.Expect(zones.Len()).To(gomega.BeNumerically(">=", 2),
|
||||||
"The test should only be run in multizone clusters.")
|
"The test should only be run in multizone clusters.")
|
||||||
|
@ -46,6 +46,7 @@ import (
|
|||||||
storageutil "k8s.io/kubernetes/pkg/apis/storage/v1/util"
|
storageutil "k8s.io/kubernetes/pkg/apis/storage/v1/util"
|
||||||
"k8s.io/kubernetes/test/e2e/framework"
|
"k8s.io/kubernetes/test/e2e/framework"
|
||||||
"k8s.io/kubernetes/test/e2e/framework/auth"
|
"k8s.io/kubernetes/test/e2e/framework/auth"
|
||||||
|
e2enode "k8s.io/kubernetes/test/e2e/framework/node"
|
||||||
e2epod "k8s.io/kubernetes/test/e2e/framework/pod"
|
e2epod "k8s.io/kubernetes/test/e2e/framework/pod"
|
||||||
"k8s.io/kubernetes/test/e2e/framework/providers/gce"
|
"k8s.io/kubernetes/test/e2e/framework/providers/gce"
|
||||||
e2epv "k8s.io/kubernetes/test/e2e/framework/pv"
|
e2epv "k8s.io/kubernetes/test/e2e/framework/pv"
|
||||||
@ -1056,7 +1057,7 @@ func deleteProvisionedVolumesAndDisks(c clientset.Interface, pvs []*v1.Persisten
|
|||||||
}
|
}
|
||||||
|
|
||||||
func getRandomClusterZone(c clientset.Interface) string {
|
func getRandomClusterZone(c clientset.Interface) string {
|
||||||
zones, err := framework.GetClusterZones(c)
|
zones, err := e2enode.GetClusterZones(c)
|
||||||
framework.ExpectNoError(err)
|
framework.ExpectNoError(err)
|
||||||
framework.ExpectNotEqual(len(zones), 0)
|
framework.ExpectNotEqual(len(zones), 0)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user