Description of problem: When controller manager looks for a recycler for a NFS volume, it calls nfsPlugin.CanSupport(), which checks for presence of /sbin/mount.nfs or /sbin/mount.nfs4. Since controller manager is containerized, it does not see any such executables and returns false. This is related to issue #14244, volume plugins are used both by kubelet, where checking for mount.nfs makes sense, and by controller manager, which does not need mount.nfs at all. Version-Release number of selected component (if applicable): How reproducible: Steps to Reproduce: 1. 2. 3. Actual results: Expected results: Additional info:
Upstream issue: https://github.com/kubernetes/kubernetes/issues/16727
Fix has been merged into Origin: https://github.com/openshift/origin/pull/5672
Checked on build, # openshift version openshift v1.0.7-291-g9bd5fb9 kubernetes v1.2.0-alpha.1-1107-g4c8e6f4 etcd 2.1.2 with following steps, 1.Pull the latest images # docker pull openshift/origin # docker pull openshift/origin-pod # docker pull openshift/origin-deployer 2.Check the images # docker images | grep openshift/origin openshift/origin-release latest 579330f53578 3 hours ago 677.9 MB openshift/origin-deployer latest 07228235dfce 12 hours ago 449.4 MB openshift/origin latest 2b0d7910737d 12 hours ago 449.4 MB openshift/origin-pod latest 0a6edb1f57e4 12 hours ago 1.105 MB openshift/origin-deployer v1.0.7 259546496c0b 8 days ago 447.5 MB openshift/origin-pod v1.0.7 efa9c0d84260 6 weeks ago 1.105 MB 3.Launch the server in a Docker container # docker run -d --name "origin" \ --privileged --pid=host --net=host \ -v /:/rootfs:ro -v /var/run:/var/run:rw -v /sys:/sys \ -v /var/lib/docker:/var/lib/docker:rw \ -v /var/lib/openshift/openshift.local.volumes:/var/lib/openshift/openshift.local.volumes \ openshift/origin start 4.After the container is started, you can open a console inside the container # docker exec -it origin bash 5.Create a PV and PVC for NFS. In the Persistent Volume, the recycle policy is 'Recycle' # oc create -f https://raw.githubusercontent.com/openshift-qe/v3-testfiles/master/persistent-volumes/nfs/nfs-recycle-rwo.json # oc create -f https://raw.githubusercontent.com/openshift-qe/v3-testfiles/master/persistent-volumes/nfs/claim-rwo.json # oc get pv # oc get pvc 6.Create a pod that has the Persistent Volume Claim # oc create -f https://raw.githubusercontent.com/openshift-qe/v3-testfiles/master/persistent-volumes/nfs/pod.json 7.Verify user can read/write in the mounted path # oc exec nfs -it -- bash "ls -lR /mnt/nfs/ ; touch /mnt/nfs/file{1..10}" 8.Verify the files created in step 7 exist on NFS server 9.Delete pod and PVC # oc delete pods nfs # oc delete pvc nfsc 10.Verify PV's status change, Bound->Released->Available 11.Verify the files created in step 7 are deleted on NFS server 12.Create another PVC, verify it can bound to this PV 13.Create another pod, verify the files created in step 7 does not occur in the mounted path, and user can read/write in the mounted path. So in short, the NFS server can be used(mount/read/write/umount/recycle) by pods in origin which is running in a docker Container. Move bug to verified.
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://access.redhat.com/errata/RHSA-2016:0070