From 3f44a3373884e36bd89c351873756e77b464eb9a Mon Sep 17 00:00:00 2001 From: southquist Date: Wed, 14 Feb 2018 10:17:06 +0100 Subject: [PATCH 1/2] allow for configurable openstack storage class --- .../persistent_volumes/openstack/defaults/main.yml | 5 +++++ .../persistent_volumes/openstack/tasks/main.yml | 14 ++++++-------- .../templates/openstack-storage-class.yml | 10 ---------- .../templates/openstack-storage-class.yml.j2 | 14 ++++++++++++++ 4 files changed, 25 insertions(+), 18 deletions(-) delete mode 100644 roles/kubernetes-apps/persistent_volumes/openstack/templates/openstack-storage-class.yml create mode 100644 roles/kubernetes-apps/persistent_volumes/openstack/templates/openstack-storage-class.yml.j2 diff --git a/roles/kubernetes-apps/persistent_volumes/openstack/defaults/main.yml b/roles/kubernetes-apps/persistent_volumes/openstack/defaults/main.yml index 8553ec5e2..05a3d944e 100644 --- a/roles/kubernetes-apps/persistent_volumes/openstack/defaults/main.yml +++ b/roles/kubernetes-apps/persistent_volumes/openstack/defaults/main.yml @@ -1,2 +1,7 @@ --- persistent_volumes_enabled: false +storage_classes: + - name: standard + is_default: true + parameters: + availability: nova diff --git a/roles/kubernetes-apps/persistent_volumes/openstack/tasks/main.yml b/roles/kubernetes-apps/persistent_volumes/openstack/tasks/main.yml index e4d1b138c..80d5fdd29 100644 --- a/roles/kubernetes-apps/persistent_volumes/openstack/tasks/main.yml +++ b/roles/kubernetes-apps/persistent_volumes/openstack/tasks/main.yml @@ -1,21 +1,19 @@ --- - name: Kubernetes Persistent Volumes | Lay down OpenStack Cinder Storage Class template template: - src: "{{item.file}}" - dest: "{{kube_config_dir}}/{{item.file}}" - with_items: - - {file: openstack-storage-class.yml, type: StorageClass, name: storage-class } + src: "openstack-storage-class.yml.j2" + dest: "{{kube_config_dir}}/openstack-storage-class.yml" register: manifests when: - inventory_hostname == groups['kube-master'][0] - name: Kubernetes Persistent Volumes | Add OpenStack Cinder Storage Class kube: - name: "{{item.item.name}}" + name: storage-class kubectl: "{{bin_dir}}/kubectl" - resource: "{{item.item.type}}" - filename: "{{kube_config_dir}}/{{item.item.file}}" + resource: StorageClass + filename: "{{kube_config_dir}}/openstack-storage-class.yml" state: "latest" - with_items: "{{ manifests.results }}" when: - inventory_hostname == groups['kube-master'][0] + - manifests.changed diff --git a/roles/kubernetes-apps/persistent_volumes/openstack/templates/openstack-storage-class.yml b/roles/kubernetes-apps/persistent_volumes/openstack/templates/openstack-storage-class.yml deleted file mode 100644 index 02d39dd97..000000000 --- a/roles/kubernetes-apps/persistent_volumes/openstack/templates/openstack-storage-class.yml +++ /dev/null @@ -1,10 +0,0 @@ ---- -kind: StorageClass -apiVersion: storage.k8s.io/v1 -metadata: - name: standard - annotations: - storageclass.kubernetes.io/is-default-class: "true" -provisioner: kubernetes.io/cinder -parameters: - availability: nova 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 new file mode 100644 index 000000000..5b1f5caed --- /dev/null +++ b/roles/kubernetes-apps/persistent_volumes/openstack/templates/openstack-storage-class.yml.j2 @@ -0,0 +1,14 @@ +{% for class in storage_classes %} +--- +kind: StorageClass +apiVersion: storage.k8s.io/v1 +metadata: + name: "{{ class.name }}" + annotations: + storageclass.kubernetes.io/is-default-class: "{{ class.is_default | default(false) }}" +provisioner: kubernetes.io/cinder +parameters: +{% for key, value in (class.parameters | default({})).items() %} + "{{ key }}": "{{ value }}" +{% endfor %} +{% endfor %} From ba2107ea8c39fd2129ffc807119e247af4d6795d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20S=C3=B6derqvist?= Date: Thu, 15 Feb 2018 10:51:42 +0100 Subject: [PATCH 2/2] is-default-class is case sensative so we must return a lowercase string --- .../openstack/templates/openstack-storage-class.yml.j2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 5b1f5caed..629c1f0a3 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 @@ -5,7 +5,7 @@ apiVersion: storage.k8s.io/v1 metadata: name: "{{ class.name }}" annotations: - storageclass.kubernetes.io/is-default-class: "{{ class.is_default | default(false) }}" + storageclass.kubernetes.io/is-default-class: "{{ class.is_default | default(false) | ternary("true","false") }}" provisioner: kubernetes.io/cinder parameters: {% for key, value in (class.parameters | default({})).items() %}