diff --git a/inventory/sample/group_vars/all/openstack.yml b/inventory/sample/group_vars/all/openstack.yml index 0fec79ad5..cac548f84 100644 --- a/inventory/sample/group_vars/all/openstack.yml +++ b/inventory/sample/group_vars/all/openstack.yml @@ -48,3 +48,13 @@ ## Make sure to source in the openstack credentials # cinder_csi_enabled: true # cinder_csi_controller_replicas: 1 +# storage_classes: +# - name: "cinder-csi" +# provisioner: "kubernetes.io/cinder" +# mount_options: +# - "discard" +# parameters: +# type: "thin" +# availability: "nova" +# reclaim_policy: "Delete" +# volume_binding_mode: "WaitForFirstConsumer" diff --git a/roles/kubernetes-apps/persistent_volumes/openstack/templates/openstack-storage-class.yml.j2 b/roles/kubernetes-apps/persistent_volumes/openstack/templates/openstack-storage-class.yml.j2 index 0551e1535..973353c4c 100644 --- a/roles/kubernetes-apps/persistent_volumes/openstack/templates/openstack-storage-class.yml.j2 +++ b/roles/kubernetes-apps/persistent_volumes/openstack/templates/openstack-storage-class.yml.j2 @@ -7,9 +7,21 @@ metadata: annotations: storageclass.kubernetes.io/is-default-class: "{{ class.is_default | default(false) | ternary("true","false") }}" provisioner: kubernetes.io/cinder +{% if class.mount_options is defined %} +mountOptions: +{% for option in class.mount_options | default([]) %} + - "{{ option }}" +{% endfor %} +{% endif %} parameters: {% for key, value in (class.parameters | default({})).items() %} "{{ key }}": "{{ value }}" {% endfor %} +{% if class.reclaim_policy is defined %} +reclaimPolicy: "{{ class.reclaim_policy }}" +{% endif %} +{% if class.volume_binding_mode is defined %} +volumeBindingMode: "{{ class.volume_binding_mode }}" +{% endif %} allowVolumeExpansion: {{ expand_persistent_volumes }} {% endfor %}