Skip to content

Commit

Permalink
#546 Add new storage type
Browse files Browse the repository at this point in the history
  • Loading branch information
fketelaars committed Nov 8, 2023
1 parent 32303ae commit c3adc1f
Show file tree
Hide file tree
Showing 4 changed files with 54 additions and 49 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,10 @@
_storage_type: 'ibm-classic-storage'
when: _openshift_storage_classes.stdout is search("ibmc-file-gold-gid")

- set_fact:
_storage_type: 'ibm-vpc-storage'
when: _openshift_storage_classes.stdout is search("ibmc-vpc-file-dp2")

- set_fact:
_storage_type: 'nfs'
when: _openshift_storage_classes.stdout is search("managed-nfs-storage")
Expand Down
Original file line number Diff line number Diff line change
@@ -1,59 +1,50 @@
---
- name: Validate if Dynamic NFS Storage {{ nfs_storage_class_name }} class exists
- name: Login to IBM Cloud
include_role:
name: login-ibmcloud

- name: Check if vpc-file-csi-driver add-on is installed
shell: |
oc get sc {{ nfs_storage_class_name }}
ibmcloud oc cluster addon get \
--addon vpc-file-csi-driver \
--cluster {{ current_openshift_cluster.name }} \
--output json
register: _vpc_file_csi_addon
failed_when: False
register: _oc_storage_class_exists

- name: Install VPC File CSI driver
block:

- name: Login to IBM Cloud
include_role:
name: login-ibmcloud
- name: Show result of vpc-file-csi-driver add-on check
debug:
var: _vpc_file_csi_addon

- name: Check if vpc-file-csi-driver add-on is installed
- block:
- name: Get versions of the vpc-file-csi-driver add-on
shell: |
ibmcloud oc cluster addon get \
--addon vpc-file-csi-driver \
--cluster {{ current_openshift_cluster.name }} \
--output json
register: _vpc_file_csi_addon
failed_when: False
ibmcloud oc cluster addon versions --addon vpc-file-csi-driver --output json
register: _vpc_file_csi_driver_versions

- name: Show result of vpc-file-csi-driver add-on check
debug:
var: _vpc_file_csi_addon
- name: Get latest version
set_fact:
_vpc_file_csi_driver_version: "{{ (_vpc_file_csi_driver_versions.stdout | from_json | last).version }}"

- name: Enable vpc-file-csi-driver add-on for ROKS cluster {{ current_openshift_cluster.name }}
shell: |
ibmcloud oc cluster addon enable vpc-file-csi-driver \
--cluster {{ current_openshift_cluster.name }}
when: _vpc_file_csi_addon.rc != 0

- name: Wait until vpc-file-csi-driver add-on is ready
shell: |
ibmcloud oc cluster addon get --addon vpc-file-csi-driver \
--cluster {{ current_openshift_cluster.name }} \
--output json
register: _vpc_file_csi_addon
failed_when: False
retries: 60
delay: 30
until: ((_vpc_file_csi_addon.stdout | from_json).healthState | default("")) == "normal"
vars:
ansible_callback_diy_runner_retry_msg: >-
{%- set result = ansible_callback_diy.result.output -%}
{%- set retries_left = result.retries - result.attempts -%}
Retrying: {{ ansible_callback_diy.task.name }} ({{ retries_left }} Retries left) ...
--version {{ _vpc_file_csi_driver_version }}
when: _vpc_file_csi_addon.rc != 0

- name: Create storage class {{ nfs_storage_class_name }} file in {{ status_dir }}/openshift/ibm-clou-{{ nfs_storage_class_name }}.yaml
template:
src: ibm-cloud-nfs-storage-class.j2
dest: "{{ status_dir }}/openshift/ibm-cloud-{{ nfs_storage_class_name }}.yaml"

- name: Process {{ status_dir }}/openshift/ibm-cloud-{{ nfs_storage_class_name }}.yaml
shell: |
oc apply -f {{ status_dir }}/openshift/ibm-cloud-{{ nfs_storage_class_name }}.yaml
when: _oc_storage_class_exists.rc != 0
- name: Wait until vpc-file-csi-driver add-on is ready
shell: |
ibmcloud oc cluster addon get --addon vpc-file-csi-driver \
--cluster {{ current_openshift_cluster.name }} \
--output json
register: _vpc_file_csi_addon
failed_when: False
retries: 60
delay: 30
until: ((_vpc_file_csi_addon.stdout | from_json).healthState | default("")) == "normal"
vars:
ansible_callback_diy_runner_retry_msg: >-
{%- set result = ansible_callback_diy.result.output -%}
{%- set retries_left = result.retries - result.attempts -%}
Retrying: {{ ansible_callback_diy.task.name }} ({{ retries_left }} Retries left) ...
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,13 @@
_storage_type: 'ibm-classic-storage'
when: _openshift_storage_classes.stdout is search("ibmc-file-gold-gid")

- set_fact:
_storage_type: 'ibm-classic-storage'
when: _openshift_storage_classes.stdout is search("ibmc-file-gold-gid")

- set_fact:
_storage_type: 'nfs'
when: _openshift_storage_classes.stdout is search("managed-nfs-storage")
_storage_type: 'ibm-vpc-storage'
when: _openshift_storage_classes.stdout is search("ibmc-vpc-file-dp2")

- set_fact:
_storage_type: 'ocs'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,13 +46,14 @@
- include_tasks: auto-detect-storage-type.yml
when: _storage_type == 'auto'

- fail: msg="Valid values for storage type are 'nfs', 'ocs', 'pwx', 'aws-elastic' and 'custom'"
- fail: msg="Valid values for storage type are 'nfs', 'ocs', 'pwx', 'aws-elastic', 'ibm-classic-storage', 'ibm-vpc-storage' and 'custom'"
when:
- _storage_type != 'nfs'
- _storage_type != 'ocs'
- _storage_type != 'pwx'
- _storage_type != 'aws-elastic'
- _storage_type != 'ibm-classic-storage'
- _storage_type != 'ibm-vpc-storage'
- _storage_type != 'custom'

- set_fact:
Expand Down Expand Up @@ -103,6 +104,11 @@
ocp_storage_class_block: "{{ _selected_openshift_storage.ocp_storage_class_block | default('ibmc-block-gold') }}"
when: _storage_type == 'ibm-classic-storage'

- set_fact:
ocp_storage_class_file: "{{ _selected_openshift_storage.ocp_storage_class_file | default('ibmc-vpc-file-dp2') }}"
ocp_storage_class_block: "{{ _selected_openshift_storage.ocp_storage_class_block | default('ibmc-vpc-block-10iops-tier') }}"
when: _storage_type == 'ibm-vpc-storage'

- name: Check if file storage class {{ ocp_storage_class_file }} exists in OpenShift
shell:
oc get sc {{ ocp_storage_class_file }}
Expand Down

0 comments on commit c3adc1f

Please sign in to comment.