Browse Source

Allow for blank StorageClass in PVC creation

In the case where a default StorageClass is already defined and a PV's
storage kind is not 'dynamic', allows for the storageClassName of the
associated PVC to be blank so as to not use the default SC.

Signed-off-by: Jose A. Rivera <jarrpa@redhat.com>
Jose A. Rivera 7 years ago
parent
commit
0101c000a6

+ 7 - 1
roles/lib_utils/action_plugins/generate_pv_pvcs_list.py

@@ -118,10 +118,16 @@ class ActionModule(ActionBase):
                     create_pvc = self._templar.template(create_pvc)
                     if kind != 'object' and create_pv and create_pvc:
                         volume, size, _, access_modes = self.build_common(varname=varname)
+                        storageclass = self.task_vars.get(str(varname) + '_storageclass')
+                        if storageclass:
+                            storageclass = self._templar.template(storageclass)
+                        elif storageclass is None and kind != 'dynamic':
+                            storageclass = ''
                         return dict(
                             name="{0}-claim".format(volume),
                             capacity=size,
-                            access_modes=access_modes)
+                            access_modes=access_modes,
+                            storageclass=storageclass)
         return None
 
     def run(self, tmp=None, task_vars=None):

+ 3 - 0
roles/openshift_persistent_volumes/templates/persistent-volume-claim.yml.j2

@@ -12,4 +12,7 @@ items:
     resources:
       requests:
         storage: "{{ claim.capacity }}"
+{% if claim.storageclass is not None %}
+    storageClassName: "{{ claim.storageclass }}"
+{% endif %}
 {% endfor %}