Bug 1360171

Summary: Prebound pv is bound to request pvc with mismatched volume size
Product: OpenShift Container Platform Reporter: Chao Yang <chaoyang>
Component: StorageAssignee: Jan Safranek <jsafrane>
Status: CLOSED ERRATA QA Contact: Chao Yang <chaoyang>
Severity: medium Docs Contact:
Priority: medium    
Version: 3.3.0CC: agoldste, aos-bugs, bchilds, eboyd, eparis, jhou, tdawson
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: No Doc Update
Doc Text:
this bug was not in any public OpenShift release.
Story Points: ---
Clone Of: Environment:
Last Closed: 2016-09-27 09:41:46 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Chao Yang 2016-07-26 07:18:03 UTC
Description of problem:
Prebound pv is bound to the request pvc with mismatched volume size

Version-Release number of selected component (if applicable):
openshift v3.3.0.10
kubernetes v1.3.0+57fb9ac
etcd 2.3.0+git

How reproducible:
Always

Steps to Reproduce:
1.Create a prebound pv with volume size is 1Gi
apiVersion: v1
kind: PersistentVolume
metadata:
  name: nfs1
spec:
  capacity:
    storage: 1Gi
  accessModes:
     - ReadWriteOnce
  nfs:
    path: /chaotest
    server: 10.14.6.144
  claimRef:
    namespace: default
    name: nfsclaim1

2. Create a pvc with request volume size is 2Gi

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: nfsclaim1
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 2Gi

3.Check the PV and PVC status
[root@ip-172-18-5-166 ~]# oc get pvc
NAME          STATUS    VOLUME         CAPACITY   ACCESSMODES   AGE
nfsclaim1     Bound     nfs1           0                        2s


Actual results:
PV and PVC is bound

Expected results:
PVC is pending
PV is available

Additional info:

Comment 1 Bradley Childs 2016-08-03 13:54:04 UTC
This may be one of the unfortunate side-effects of allowing "pre-bound" volumes.  We would like to deprecate this (unintentional) feature at some point.

In your case, are you specifying the claim in the PV, or the PV in the claim? Please provide the yaml for PV and PVC.

Assigning to jsafrane for further investigation.

Comment 2 Jan Safranek 2016-08-04 09:35:23 UTC
In current implementation, pre-binding volume to a claim (and claim to a volume) trumps everything, including label checks, size, access modes and storage class in future. User wants a specific volume/claim and he gets it.

Erin, is this common understanding or should we do something about it.

Comment 3 Erin Boyd 2016-08-11 18:58:50 UTC
This is worked as expected. If a PV contains a ClaimRef, access and size should be ignored.

Comment 4 Chao Yang 2016-08-12 03:32:16 UTC
Thanks, will udpate the test case

Comment 5 Chao Yang 2016-08-18 06:03:13 UTC
re-open this bug according to https://bugzilla.redhat.com/show_bug.cgi?id=1366500#c4

Comment 6 Bradley Childs 2016-08-18 13:04:05 UTC
Ok, per the two BZs the updated behavior is here: https://github.com/kubernetes/kubernetes/pull/30690 

marking as 'post' while we backport & merge into openshift.

Comment 7 Eric Paris 2016-08-18 19:56:13 UTC
Need origin PR...

Comment 8 Andy Goldstein 2016-08-19 12:52:12 UTC
https://github.com/openshift/origin/pull/10522

Comment 9 Chao Yang 2016-08-23 02:28:49 UTC
This is passed on
openshift v3.3.0.24-dirty
kubernetes v1.3.0+507d3a7
etcd 2.3.0+git

After create pv and pvc using https://bugzilla.redhat.com/show_bug.cgi?id=1360171#c0
pv is avaiable and pvc is pending

Comment 11 errata-xmlrpc 2016-09-27 09:41:46 UTC
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/RHBA-2016:1933