mirror of
				https://github.com/k3s-io/kubernetes.git
				synced 2025-10-31 13:50:01 +00:00 
			
		
		
		
	Merge pull request #90689 from aojea/nfsv6
add ipv6 support to the e2e nfs tests
This commit is contained in:
		| @@ -78,14 +78,14 @@ var _ = ginkgo.Describe("[sig-storage] GCP Volumes", func() { | |||||||
| 	//////////////////////////////////////////////////////////////////////// | 	//////////////////////////////////////////////////////////////////////// | ||||||
| 	ginkgo.Describe("NFSv4", func() { | 	ginkgo.Describe("NFSv4", func() { | ||||||
| 		ginkgo.It("should be mountable for NFSv4", func() { | 		ginkgo.It("should be mountable for NFSv4", func() { | ||||||
| 			config, _, serverIP := e2evolume.NewNFSServer(c, namespace.Name, []string{}) | 			config, _, serverHost := e2evolume.NewNFSServer(c, namespace.Name, []string{}) | ||||||
| 			defer e2evolume.TestServerCleanup(f, config) | 			defer e2evolume.TestServerCleanup(f, config) | ||||||
|  |  | ||||||
| 			tests := []e2evolume.Test{ | 			tests := []e2evolume.Test{ | ||||||
| 				{ | 				{ | ||||||
| 					Volume: v1.VolumeSource{ | 					Volume: v1.VolumeSource{ | ||||||
| 						NFS: &v1.NFSVolumeSource{ | 						NFS: &v1.NFSVolumeSource{ | ||||||
| 							Server:   serverIP, | 							Server:   serverHost, | ||||||
| 							Path:     "/", | 							Path:     "/", | ||||||
| 							ReadOnly: true, | 							ReadOnly: true, | ||||||
| 						}, | 						}, | ||||||
| @@ -102,14 +102,14 @@ var _ = ginkgo.Describe("[sig-storage] GCP Volumes", func() { | |||||||
|  |  | ||||||
| 	ginkgo.Describe("NFSv3", func() { | 	ginkgo.Describe("NFSv3", func() { | ||||||
| 		ginkgo.It("should be mountable for NFSv3", func() { | 		ginkgo.It("should be mountable for NFSv3", func() { | ||||||
| 			config, _, serverIP := e2evolume.NewNFSServer(c, namespace.Name, []string{}) | 			config, _, serverHost := e2evolume.NewNFSServer(c, namespace.Name, []string{}) | ||||||
| 			defer e2evolume.TestServerCleanup(f, config) | 			defer e2evolume.TestServerCleanup(f, config) | ||||||
|  |  | ||||||
| 			tests := []e2evolume.Test{ | 			tests := []e2evolume.Test{ | ||||||
| 				{ | 				{ | ||||||
| 					Volume: v1.VolumeSource{ | 					Volume: v1.VolumeSource{ | ||||||
| 						NFS: &v1.NFSVolumeSource{ | 						NFS: &v1.NFSVolumeSource{ | ||||||
| 							Server:   serverIP, | 							Server:   serverHost, | ||||||
| 							Path:     "/exports", | 							Path:     "/exports", | ||||||
| 							ReadOnly: true, | 							ReadOnly: true, | ||||||
| 						}, | 						}, | ||||||
|   | |||||||
| @@ -44,6 +44,7 @@ import ( | |||||||
| 	"fmt" | 	"fmt" | ||||||
| 	"path/filepath" | 	"path/filepath" | ||||||
| 	"strconv" | 	"strconv" | ||||||
|  | 	"strings" | ||||||
| 	"time" | 	"time" | ||||||
|  |  | ||||||
| 	v1 "k8s.io/api/core/v1" | 	v1 "k8s.io/api/core/v1" | ||||||
| @@ -143,7 +144,7 @@ type Test struct { | |||||||
| } | } | ||||||
|  |  | ||||||
| // NewNFSServer is a NFS-specific wrapper for CreateStorageServer. | // NewNFSServer is a NFS-specific wrapper for CreateStorageServer. | ||||||
| func NewNFSServer(cs clientset.Interface, namespace string, args []string) (config TestConfig, pod *v1.Pod, ip string) { | func NewNFSServer(cs clientset.Interface, namespace string, args []string) (config TestConfig, pod *v1.Pod, host string) { | ||||||
| 	config = TestConfig{ | 	config = TestConfig{ | ||||||
| 		Namespace:          namespace, | 		Namespace:          namespace, | ||||||
| 		Prefix:             "nfs", | 		Prefix:             "nfs", | ||||||
| @@ -155,8 +156,11 @@ func NewNFSServer(cs clientset.Interface, namespace string, args []string) (conf | |||||||
| 	if len(args) > 0 { | 	if len(args) > 0 { | ||||||
| 		config.ServerArgs = args | 		config.ServerArgs = args | ||||||
| 	} | 	} | ||||||
| 	pod, ip = CreateStorageServer(cs, config) | 	pod, host = CreateStorageServer(cs, config) | ||||||
| 	return config, pod, ip | 	if strings.Contains(host, ":") { | ||||||
|  | 		host = "[" + host + "]" | ||||||
|  | 	} | ||||||
|  | 	return config, pod, host | ||||||
| } | } | ||||||
|  |  | ||||||
| // NewGlusterfsServer is a GlusterFS-specific wrapper for CreateStorageServer. Also creates the gluster endpoints object. | // NewGlusterfsServer is a GlusterFS-specific wrapper for CreateStorageServer. Also creates the gluster endpoints object. | ||||||
|   | |||||||
| @@ -81,9 +81,9 @@ type nfsDriver struct { | |||||||
| } | } | ||||||
|  |  | ||||||
| type nfsVolume struct { | type nfsVolume struct { | ||||||
| 	serverIP  string | 	serverHost string | ||||||
| 	serverPod *v1.Pod | 	serverPod  *v1.Pod | ||||||
| 	f         *framework.Framework | 	f          *framework.Framework | ||||||
| } | } | ||||||
|  |  | ||||||
| var _ testsuites.TestDriver = &nfsDriver{} | var _ testsuites.TestDriver = &nfsDriver{} | ||||||
| @@ -129,7 +129,7 @@ func (n *nfsDriver) GetVolumeSource(readOnly bool, fsType string, e2evolume test | |||||||
| 	framework.ExpectEqual(ok, true, "Failed to cast test volume to NFS test volume") | 	framework.ExpectEqual(ok, true, "Failed to cast test volume to NFS test volume") | ||||||
| 	return &v1.VolumeSource{ | 	return &v1.VolumeSource{ | ||||||
| 		NFS: &v1.NFSVolumeSource{ | 		NFS: &v1.NFSVolumeSource{ | ||||||
| 			Server:   nv.serverIP, | 			Server:   nv.serverHost, | ||||||
| 			Path:     "/", | 			Path:     "/", | ||||||
| 			ReadOnly: readOnly, | 			ReadOnly: readOnly, | ||||||
| 		}, | 		}, | ||||||
| @@ -141,7 +141,7 @@ func (n *nfsDriver) GetPersistentVolumeSource(readOnly bool, fsType string, e2ev | |||||||
| 	framework.ExpectEqual(ok, true, "Failed to cast test volume to NFS test volume") | 	framework.ExpectEqual(ok, true, "Failed to cast test volume to NFS test volume") | ||||||
| 	return &v1.PersistentVolumeSource{ | 	return &v1.PersistentVolumeSource{ | ||||||
| 		NFS: &v1.NFSVolumeSource{ | 		NFS: &v1.NFSVolumeSource{ | ||||||
| 			Server:   nv.serverIP, | 			Server:   nv.serverHost, | ||||||
| 			Path:     "/", | 			Path:     "/", | ||||||
| 			ReadOnly: readOnly, | 			ReadOnly: readOnly, | ||||||
| 		}, | 		}, | ||||||
| @@ -199,12 +199,12 @@ func (n *nfsDriver) CreateVolume(config *testsuites.PerTestConfig, volType testp | |||||||
| 	case testpatterns.InlineVolume: | 	case testpatterns.InlineVolume: | ||||||
| 		fallthrough | 		fallthrough | ||||||
| 	case testpatterns.PreprovisionedPV: | 	case testpatterns.PreprovisionedPV: | ||||||
| 		c, serverPod, serverIP := e2evolume.NewNFSServer(cs, ns.Name, []string{}) | 		c, serverPod, serverHost := e2evolume.NewNFSServer(cs, ns.Name, []string{}) | ||||||
| 		config.ServerConfig = &c | 		config.ServerConfig = &c | ||||||
| 		return &nfsVolume{ | 		return &nfsVolume{ | ||||||
| 			serverIP:  serverIP, | 			serverHost: serverHost, | ||||||
| 			serverPod: serverPod, | 			serverPod:  serverPod, | ||||||
| 			f:         f, | 			f:          f, | ||||||
| 		} | 		} | ||||||
| 	case testpatterns.DynamicPV: | 	case testpatterns.DynamicPV: | ||||||
| 		// Do nothing | 		// Do nothing | ||||||
|   | |||||||
| @@ -78,15 +78,15 @@ var _ = utils.SIGDescribe("NFSPersistentVolumes[Disruptive][Flaky]", func() { | |||||||
|  |  | ||||||
| 	f := framework.NewDefaultFramework("disruptive-pv") | 	f := framework.NewDefaultFramework("disruptive-pv") | ||||||
| 	var ( | 	var ( | ||||||
| 		c                         clientset.Interface | 		c                           clientset.Interface | ||||||
| 		ns                        string | 		ns                          string | ||||||
| 		nfsServerPod              *v1.Pod | 		nfsServerPod                *v1.Pod | ||||||
| 		nfsPVconfig               e2epv.PersistentVolumeConfig | 		nfsPVconfig                 e2epv.PersistentVolumeConfig | ||||||
| 		pvcConfig                 e2epv.PersistentVolumeClaimConfig | 		pvcConfig                   e2epv.PersistentVolumeClaimConfig | ||||||
| 		nfsServerIP, clientNodeIP string | 		nfsServerHost, clientNodeIP string | ||||||
| 		clientNode                *v1.Node | 		clientNode                  *v1.Node | ||||||
| 		volLabel                  labels.Set | 		volLabel                    labels.Set | ||||||
| 		selector                  *metav1.LabelSelector | 		selector                    *metav1.LabelSelector | ||||||
| 	) | 	) | ||||||
|  |  | ||||||
| 	ginkgo.BeforeEach(func() { | 	ginkgo.BeforeEach(func() { | ||||||
| @@ -99,13 +99,13 @@ var _ = utils.SIGDescribe("NFSPersistentVolumes[Disruptive][Flaky]", func() { | |||||||
| 		volLabel = labels.Set{e2epv.VolumeSelectorKey: ns} | 		volLabel = labels.Set{e2epv.VolumeSelectorKey: ns} | ||||||
| 		selector = metav1.SetAsLabelSelector(volLabel) | 		selector = metav1.SetAsLabelSelector(volLabel) | ||||||
| 		// Start the NFS server pod. | 		// Start the NFS server pod. | ||||||
| 		_, nfsServerPod, nfsServerIP = e2evolume.NewNFSServer(c, ns, []string{"-G", "777", "/exports"}) | 		_, nfsServerPod, nfsServerHost = e2evolume.NewNFSServer(c, ns, []string{"-G", "777", "/exports"}) | ||||||
| 		nfsPVconfig = e2epv.PersistentVolumeConfig{ | 		nfsPVconfig = e2epv.PersistentVolumeConfig{ | ||||||
| 			NamePrefix: "nfs-", | 			NamePrefix: "nfs-", | ||||||
| 			Labels:     volLabel, | 			Labels:     volLabel, | ||||||
| 			PVSource: v1.PersistentVolumeSource{ | 			PVSource: v1.PersistentVolumeSource{ | ||||||
| 				NFS: &v1.NFSVolumeSource{ | 				NFS: &v1.NFSVolumeSource{ | ||||||
| 					Server:   nfsServerIP, | 					Server:   nfsServerHost, | ||||||
| 					Path:     "/exports", | 					Path:     "/exports", | ||||||
| 					ReadOnly: false, | 					ReadOnly: false, | ||||||
| 				}, | 				}, | ||||||
|   | |||||||
| @@ -123,17 +123,17 @@ var _ = utils.SIGDescribe("PersistentVolumes", func() { | |||||||
|  |  | ||||||
| 		var ( | 		var ( | ||||||
| 			nfsServerPod *v1.Pod | 			nfsServerPod *v1.Pod | ||||||
| 			serverIP     string | 			serverHost   string | ||||||
| 		) | 		) | ||||||
|  |  | ||||||
| 		ginkgo.BeforeEach(func() { | 		ginkgo.BeforeEach(func() { | ||||||
| 			_, nfsServerPod, serverIP = e2evolume.NewNFSServer(c, ns, []string{"-G", "777", "/exports"}) | 			_, nfsServerPod, serverHost = e2evolume.NewNFSServer(c, ns, []string{"-G", "777", "/exports"}) | ||||||
| 			pvConfig = e2epv.PersistentVolumeConfig{ | 			pvConfig = e2epv.PersistentVolumeConfig{ | ||||||
| 				NamePrefix: "nfs-", | 				NamePrefix: "nfs-", | ||||||
| 				Labels:     volLabel, | 				Labels:     volLabel, | ||||||
| 				PVSource: v1.PersistentVolumeSource{ | 				PVSource: v1.PersistentVolumeSource{ | ||||||
| 					NFS: &v1.NFSVolumeSource{ | 					NFS: &v1.NFSVolumeSource{ | ||||||
| 						Server:   serverIP, | 						Server:   serverHost, | ||||||
| 						Path:     "/exports", | 						Path:     "/exports", | ||||||
| 						ReadOnly: false, | 						ReadOnly: false, | ||||||
| 					}, | 					}, | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user