mirror of
				https://github.com/k3s-io/kubernetes.git
				synced 2025-11-03 23:40:03 +00:00 
			
		
		
		
	Add test for supplemental gid annotation to pv e2e test
This commit is contained in:
		@@ -28,6 +28,7 @@ import (
 | 
			
		||||
	"k8s.io/kubernetes/pkg/api/testapi"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/api/unversioned"
 | 
			
		||||
	client "k8s.io/kubernetes/pkg/client/unversioned"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/volume/util/volumehelper"
 | 
			
		||||
	"k8s.io/kubernetes/test/e2e/framework"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
@@ -343,8 +344,9 @@ var _ = framework.KubeDescribe("PersistentVolumes", func() {
 | 
			
		||||
	NFSconfig = VolumeTestConfig{
 | 
			
		||||
		namespace:   api.NamespaceDefault,
 | 
			
		||||
		prefix:      "nfs",
 | 
			
		||||
		serverImage: "gcr.io/google_containers/volume-nfs:0.6",
 | 
			
		||||
		serverImage: "gcr.io/google_containers/volume-nfs:0.7",
 | 
			
		||||
		serverPorts: []int{2049},
 | 
			
		||||
		serverArgs:  []string{"-G", "777", "/exports"},
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	BeforeEach(func() {
 | 
			
		||||
@@ -486,6 +488,9 @@ func makePersistentVolume(serverIP string, pvc *api.PersistentVolumeClaim) *api.
 | 
			
		||||
	return &api.PersistentVolume{
 | 
			
		||||
		ObjectMeta: api.ObjectMeta{
 | 
			
		||||
			GenerateName: "nfs-",
 | 
			
		||||
			Annotations: map[string]string{
 | 
			
		||||
				volumehelper.VolumeGidAnnotationKey: "777",
 | 
			
		||||
			},
 | 
			
		||||
		},
 | 
			
		||||
		Spec: api.PersistentVolumeSpec{
 | 
			
		||||
			PersistentVolumeReclaimPolicy: api.PersistentVolumeReclaimRecycle,
 | 
			
		||||
@@ -555,7 +560,7 @@ func makeWritePod(ns string, pvcName string) *api.Pod {
 | 
			
		||||
					Name:    "write-pod",
 | 
			
		||||
					Image:   "gcr.io/google_containers/busybox:1.24",
 | 
			
		||||
					Command: []string{"/bin/sh"},
 | 
			
		||||
					Args:    []string{"-c", "touch /mnt/SUCCESS && exit 0 || exit 1"},
 | 
			
		||||
					Args:    []string{"-c", "touch /mnt/SUCCESS && (id -G | grep -E '\\b777\\b')"},
 | 
			
		||||
					VolumeMounts: []api.VolumeMount{
 | 
			
		||||
						{
 | 
			
		||||
							Name:      "nfs-pvc",
 | 
			
		||||
 
 | 
			
		||||
@@ -68,6 +68,8 @@ type VolumeTestConfig struct {
 | 
			
		||||
	serverImage string
 | 
			
		||||
	// Ports to export from the server pod. TCP only.
 | 
			
		||||
	serverPorts []int
 | 
			
		||||
	// Arguments to pass to the container image.
 | 
			
		||||
	serverArgs []string
 | 
			
		||||
	// Volumes needed to be mounted to the server container from the host
 | 
			
		||||
	// map <host (source) path> -> <container (dst.) path>
 | 
			
		||||
	volumes map[string]string
 | 
			
		||||
@@ -134,6 +136,7 @@ func startVolumeServer(client *client.Client, config VolumeTestConfig) *api.Pod
 | 
			
		||||
					SecurityContext: &api.SecurityContext{
 | 
			
		||||
						Privileged: privileged,
 | 
			
		||||
					},
 | 
			
		||||
					Args:         config.serverArgs,
 | 
			
		||||
					Ports:        serverPodPorts,
 | 
			
		||||
					VolumeMounts: mounts,
 | 
			
		||||
				},
 | 
			
		||||
 
 | 
			
		||||
@@ -23,4 +23,5 @@ RUN chmod 644 /tmp/index.html
 | 
			
		||||
# expose mountd 20048/tcp and nfsd 2049/tcp
 | 
			
		||||
EXPOSE 2049/tcp 20048/tcp
 | 
			
		||||
 | 
			
		||||
ENTRYPOINT ["/usr/local/bin/run_nfs.sh", "/exports", "/"]
 | 
			
		||||
ENTRYPOINT ["/usr/local/bin/run_nfs.sh"]
 | 
			
		||||
CMD ["/exports", "/"]
 | 
			
		||||
 
 | 
			
		||||
@@ -12,7 +12,7 @@
 | 
			
		||||
# See the License for the specific language governing permissions and
 | 
			
		||||
# limitations under the License.
 | 
			
		||||
 | 
			
		||||
TAG = 0.6
 | 
			
		||||
TAG = 0.7
 | 
			
		||||
PREFIX = gcr.io/google_containers
 | 
			
		||||
 | 
			
		||||
all: push
 | 
			
		||||
 
 | 
			
		||||
@@ -2,6 +2,9 @@
 | 
			
		||||
 | 
			
		||||
This container exports '/' directory with an index.html inside. NFSv4 only.
 | 
			
		||||
 | 
			
		||||
Accepts a -G option for specifying a group id to give exported directories.
 | 
			
		||||
Clients in the specified group will have full rwx permissions, others none.
 | 
			
		||||
 | 
			
		||||
Inspired by https://github.com/cpuguy83/docker-nfs-server.
 | 
			
		||||
 | 
			
		||||
Used by test/e2e/* to test NFSVolumeSource. Not for production use!
 | 
			
		||||
 
 | 
			
		||||
@@ -17,10 +17,23 @@
 | 
			
		||||
function start()
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
    unset gid
 | 
			
		||||
    # accept "-G gid" option
 | 
			
		||||
    while getopts "G:" opt; do
 | 
			
		||||
        case ${opt} in
 | 
			
		||||
            G) gid=${OPTARG};;
 | 
			
		||||
        esac
 | 
			
		||||
    done
 | 
			
		||||
    shift $(($OPTIND - 1))
 | 
			
		||||
 | 
			
		||||
    # prepare /etc/exports
 | 
			
		||||
    for i in "$@"; do
 | 
			
		||||
        # fsid=0: needed for NFSv4
 | 
			
		||||
        echo "$i *(rw,fsid=0,insecure,no_root_squash)" >> /etc/exports
 | 
			
		||||
        if [ -v gid ] ; then
 | 
			
		||||
            chmod 070 $i
 | 
			
		||||
            chgrp $gid $i
 | 
			
		||||
        fi
 | 
			
		||||
        # move index.html to here
 | 
			
		||||
        /bin/cp /tmp/index.html $i/
 | 
			
		||||
        chmod 644 $i/index.html
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user