From a21cd596a7b9fa0740454f087f43f7d6c281bade Mon Sep 17 00:00:00 2001 From: hu-weihua Date: Thu, 6 Feb 2020 12:06:50 +0800 Subject: [PATCH 01/15] add test case for 24688 --- .../defaults/main.yml | 12 +++++++++++ .../files/test_storageclasses.yml | 7 +++++++ .../ocp-24688-storageclasses/tasks/deploy.yml | 4 ++++ roles/ocp-24688-storageclasses/tasks/main.yml | 21 +++++++++++++++++++ .../tasks/validate-source.yml | 6 ++++++ .../tasks/validate-target.yml | 11 ++++++++++ 6 files changed, 61 insertions(+) create mode 100644 roles/ocp-24688-storageclasses/defaults/main.yml create mode 100644 roles/ocp-24688-storageclasses/files/test_storageclasses.yml create mode 100644 roles/ocp-24688-storageclasses/tasks/deploy.yml create mode 100644 roles/ocp-24688-storageclasses/tasks/main.yml create mode 100644 roles/ocp-24688-storageclasses/tasks/validate-source.yml create mode 100644 roles/ocp-24688-storageclasses/tasks/validate-target.yml diff --git a/roles/ocp-24688-storageclasses/defaults/main.yml b/roles/ocp-24688-storageclasses/defaults/main.yml new file mode 100644 index 0000000..d15aceb --- /dev/null +++ b/roles/ocp-24688-storageclasses/defaults/main.yml @@ -0,0 +1,12 @@ +namespace: ocp-24688-storageclasses + +migration_sample_name: "{{ namespace }}" +migration_plan_name: "{{ migration_sample_name }}-migplan-{{ ansible_date_time.epoch }}" +migration_name: "{{ migration_sample_name }}-mig-{{ ansible_date_time.epoch }}" +with_deploy: true +with_migrate: true +with_cleanup: true +with_validate: true +pv: false +quiesce: false + diff --git a/roles/ocp-24688-storageclasses/files/test_storageclasses.yml b/roles/ocp-24688-storageclasses/files/test_storageclasses.yml new file mode 100644 index 0000000..8ebfa1d --- /dev/null +++ b/roles/ocp-24688-storageclasses/files/test_storageclasses.yml @@ -0,0 +1,7 @@ +apiVersion: storage.k8s.io/v1 +kind: StorageClass +metadata: + name: test-storageclass +provisioner: kubernetes.io/no-provisioner +reclaimPolicy: Delete +volumeBindingMode: WaitForFirstConsumer diff --git a/roles/ocp-24688-storageclasses/tasks/deploy.yml b/roles/ocp-24688-storageclasses/tasks/deploy.yml new file mode 100644 index 0000000..bab92eb --- /dev/null +++ b/roles/ocp-24688-storageclasses/tasks/deploy.yml @@ -0,0 +1,4 @@ +- name: Create bogus storageclasses in migration source cluster + k8s: + state: present + definition: "{{ lookup('file', 'test_storageclasses.yml') }}" diff --git a/roles/ocp-24688-storageclasses/tasks/main.yml b/roles/ocp-24688-storageclasses/tasks/main.yml new file mode 100644 index 0000000..32c212d --- /dev/null +++ b/roles/ocp-24688-storageclasses/tasks/main.yml @@ -0,0 +1,21 @@ +- name: Cleanup resources + include_role: + name: migration_cleanup + when: with_cleanup|bool + +- name: Create bogus storageclasses in migration source cluster + import_tasks: deploy.yml + when: with_deploy|bool + +- name: Create bogus storageclasses in migration target cluster + import_tasks: deploy.yml + when: with_migrate|bool + +- name: Validate source + import_tasks: validate-source.yml + when: (with_validate|bool) and (with_deploy|bool) + +- name: Validate migration + import_tasks: validate-target.yml + when: (with_validate|bool) and (with_migrate|bool) + diff --git a/roles/ocp-24688-storageclasses/tasks/validate-source.yml b/roles/ocp-24688-storageclasses/tasks/validate-source.yml new file mode 100644 index 0000000..b8f6408 --- /dev/null +++ b/roles/ocp-24688-storageclasses/tasks/validate-source.yml @@ -0,0 +1,6 @@ +- debug: + msg: "aaaaaaaaaaaaaaaa" + + +#- name: verify bogus storageclasses setting in migration source cluster + diff --git a/roles/ocp-24688-storageclasses/tasks/validate-target.yml b/roles/ocp-24688-storageclasses/tasks/validate-target.yml new file mode 100644 index 0000000..60d4c60 --- /dev/null +++ b/roles/ocp-24688-storageclasses/tasks/validate-target.yml @@ -0,0 +1,11 @@ +- name: verify bogus storageclasses setting in migration target cluster + k8s_facts: + kind: sc + namespace: default + register: sc_list + until: sc_list.resources | length > 0 + retries: 30 + +- debug: + msg: "{{ sc_list }}" + From 8afa87128dad7a84667463abb5ce780b04388bee Mon Sep 17 00:00:00 2001 From: hu-weihua Date: Thu, 6 Feb 2020 15:20:36 +0800 Subject: [PATCH 02/15] update1 --- roles/ocp-24688-storageclasses/tasks/deploy_source.yml | 4 ++++ roles/ocp-24688-storageclasses/tasks/deploy_target.yml | 4 ++++ roles/ocp-24688-storageclasses/tasks/main.yml | 4 ++-- 3 files changed, 10 insertions(+), 2 deletions(-) create mode 100644 roles/ocp-24688-storageclasses/tasks/deploy_source.yml create mode 100644 roles/ocp-24688-storageclasses/tasks/deploy_target.yml diff --git a/roles/ocp-24688-storageclasses/tasks/deploy_source.yml b/roles/ocp-24688-storageclasses/tasks/deploy_source.yml new file mode 100644 index 0000000..bab92eb --- /dev/null +++ b/roles/ocp-24688-storageclasses/tasks/deploy_source.yml @@ -0,0 +1,4 @@ +- name: Create bogus storageclasses in migration source cluster + k8s: + state: present + definition: "{{ lookup('file', 'test_storageclasses.yml') }}" diff --git a/roles/ocp-24688-storageclasses/tasks/deploy_target.yml b/roles/ocp-24688-storageclasses/tasks/deploy_target.yml new file mode 100644 index 0000000..28bd269 --- /dev/null +++ b/roles/ocp-24688-storageclasses/tasks/deploy_target.yml @@ -0,0 +1,4 @@ +- name: Create bogus storageclasses in migration target cluster + k8s: + state: present + definition: "{{ lookup('file', 'test_storageclasses.yml') }}" diff --git a/roles/ocp-24688-storageclasses/tasks/main.yml b/roles/ocp-24688-storageclasses/tasks/main.yml index 32c212d..f905362 100644 --- a/roles/ocp-24688-storageclasses/tasks/main.yml +++ b/roles/ocp-24688-storageclasses/tasks/main.yml @@ -4,11 +4,11 @@ when: with_cleanup|bool - name: Create bogus storageclasses in migration source cluster - import_tasks: deploy.yml + import_tasks: deploy_source.yml when: with_deploy|bool - name: Create bogus storageclasses in migration target cluster - import_tasks: deploy.yml + import_tasks: deploy_target.yml when: with_migrate|bool - name: Validate source From 7b49fcb06a14082e391907e4825f561871e83a3d Mon Sep 17 00:00:00 2001 From: hu-weihua Date: Thu, 6 Feb 2020 15:21:20 +0800 Subject: [PATCH 03/15] deploy.yml --- roles/ocp-24688-storageclasses/tasks/deploy.yml | 4 ---- 1 file changed, 4 deletions(-) delete mode 100644 roles/ocp-24688-storageclasses/tasks/deploy.yml diff --git a/roles/ocp-24688-storageclasses/tasks/deploy.yml b/roles/ocp-24688-storageclasses/tasks/deploy.yml deleted file mode 100644 index bab92eb..0000000 --- a/roles/ocp-24688-storageclasses/tasks/deploy.yml +++ /dev/null @@ -1,4 +0,0 @@ -- name: Create bogus storageclasses in migration source cluster - k8s: - state: present - definition: "{{ lookup('file', 'test_storageclasses.yml') }}" From adfb951deefc75944cba88b55bb763f054eab464 Mon Sep 17 00:00:00 2001 From: hu-weihua Date: Thu, 6 Feb 2020 15:36:09 +0800 Subject: [PATCH 04/15] add ns cleanup --- .../defaults/main.yml | 2 ++ .../tasks/deploy_target.yml | 31 +++++++++++++++++++ 2 files changed, 33 insertions(+) diff --git a/roles/ocp-24688-storageclasses/defaults/main.yml b/roles/ocp-24688-storageclasses/defaults/main.yml index d15aceb..61b927d 100644 --- a/roles/ocp-24688-storageclasses/defaults/main.yml +++ b/roles/ocp-24688-storageclasses/defaults/main.yml @@ -1,5 +1,7 @@ namespace: ocp-24688-storageclasses +bogus_storageclass_name: test-storageclass + migration_sample_name: "{{ namespace }}" migration_plan_name: "{{ migration_sample_name }}-migplan-{{ ansible_date_time.epoch }}" migration_name: "{{ migration_sample_name }}-mig-{{ ansible_date_time.epoch }}" diff --git a/roles/ocp-24688-storageclasses/tasks/deploy_target.yml b/roles/ocp-24688-storageclasses/tasks/deploy_target.yml index 28bd269..23b56d7 100644 --- a/roles/ocp-24688-storageclasses/tasks/deploy_target.yml +++ b/roles/ocp-24688-storageclasses/tasks/deploy_target.yml @@ -1,3 +1,34 @@ +- name: Check existing StorageClass for {{ bogus_storageclass_name }} + k8s_facts: + api_version: v1alpha1 + kind: StorageClass + namespace: "default" + register: all_sc + +- block: + + - name: Extract StorageClass for {{ bogus_storageclass_name }} + set_fact: + sc_to_remove: "{{ all_sc | json_query('resources[].metadata.name') | select('match', bogus_storageclass_name) | list }}" + + - debug: + msg: + - "These existing StorageClass will be removed :" + - "{{ sc_to_remove }}" + + - name: Remove existing storageclass for {{ bogus_storageclass_name }} + k8s: + state: absent + api_version: v1alpha1 + kind: StorageClass + namespace: "{{ migration_namespace }}" + name: "{{ item }}" + wait: yes + loop: "{{ sc_to_remove }}" + + when: "bogus_storageclass_name in (all_sc | json_query('resources[].metadata.name') | string )" + + - name: Create bogus storageclasses in migration target cluster k8s: state: present From fcdce1d4b65f2174f963e19071a71e824ddb41ea Mon Sep 17 00:00:00 2001 From: hu-weihua Date: Thu, 6 Feb 2020 20:45:31 +0800 Subject: [PATCH 05/15] update --- .../tasks/deploy_source.yml | 34 ++++++++++- .../tasks/deploy_target.yml | 19 +++--- .../tasks/validate-source.yml | 18 ++++-- .../tasks/validate-target.yml | 59 ++++++++++++++++--- 4 files changed, 109 insertions(+), 21 deletions(-) diff --git a/roles/ocp-24688-storageclasses/tasks/deploy_source.yml b/roles/ocp-24688-storageclasses/tasks/deploy_source.yml index bab92eb..ff9cd88 100644 --- a/roles/ocp-24688-storageclasses/tasks/deploy_source.yml +++ b/roles/ocp-24688-storageclasses/tasks/deploy_source.yml @@ -1,4 +1,36 @@ -- name: Create bogus storageclasses in migration source cluster +- name: Check existing StorageClass for {{ bogus_storageclass_name }} in migration source cluster {{ migcluster_source_name }} + k8s_info: + api_version: v1 + kind: StorageClass + register: all_sc + +#- debug: +# msg: "{{ all_sc }}" + +- block: + + - name: Extract StorageClass for {{ bogus_storageclass_name }} in migration source cluster {{ migcluster_source_name }} + set_fact: + sc_to_remove: "{{ all_sc | json_query('resources[].metadata.name') | select('match', bogus_storageclass_name) | list }}" + + - debug: + msg: + - "These existing StorageClass will be removed :" + - "{{ sc_to_remove }}" + + - name: Remove existing storageclass for {{ bogus_storageclass_name }} from migration source cluster {{ migcluster_source_name }} + k8s: + state: absent + api_version: v1 + kind: StorageClass + name: "{{ item }}" + wait: yes + loop: "{{ sc_to_remove }}" + + when: "bogus_storageclass_name in (all_sc | json_query('resources[].metadata.name') | string )" + + +- name: Create bogus storageclasses in migration source cluster {{ migcluster_source_name }} k8s: state: present definition: "{{ lookup('file', 'test_storageclasses.yml') }}" diff --git a/roles/ocp-24688-storageclasses/tasks/deploy_target.yml b/roles/ocp-24688-storageclasses/tasks/deploy_target.yml index 23b56d7..5eeb665 100644 --- a/roles/ocp-24688-storageclasses/tasks/deploy_target.yml +++ b/roles/ocp-24688-storageclasses/tasks/deploy_target.yml @@ -1,13 +1,15 @@ -- name: Check existing StorageClass for {{ bogus_storageclass_name }} - k8s_facts: - api_version: v1alpha1 +- name: Check existing StorageClass for {{ bogus_storageclass_name }} in migration target cluster {{ migcluster_target_name }} + k8s_info: + api_version: v1 kind: StorageClass - namespace: "default" register: all_sc +#- debug: +# msg: "{{ all_sc }}" + - block: - - name: Extract StorageClass for {{ bogus_storageclass_name }} + - name: Extract StorageClass for {{ bogus_storageclass_name }} in migration target cluster {{ migcluster_target_name }} set_fact: sc_to_remove: "{{ all_sc | json_query('resources[].metadata.name') | select('match', bogus_storageclass_name) | list }}" @@ -16,12 +18,11 @@ - "These existing StorageClass will be removed :" - "{{ sc_to_remove }}" - - name: Remove existing storageclass for {{ bogus_storageclass_name }} + - name: Remove existing storageclass for {{ bogus_storageclass_name }} from migration target cluster {{ migcluster_target_name }} k8s: state: absent - api_version: v1alpha1 + api_version: v1 kind: StorageClass - namespace: "{{ migration_namespace }}" name: "{{ item }}" wait: yes loop: "{{ sc_to_remove }}" @@ -29,7 +30,7 @@ when: "bogus_storageclass_name in (all_sc | json_query('resources[].metadata.name') | string )" -- name: Create bogus storageclasses in migration target cluster +- name: Create bogus storageclasses in migration target cluster {{ migcluster_target_name }} k8s: state: present definition: "{{ lookup('file', 'test_storageclasses.yml') }}" diff --git a/roles/ocp-24688-storageclasses/tasks/validate-source.yml b/roles/ocp-24688-storageclasses/tasks/validate-source.yml index b8f6408..3b945d4 100644 --- a/roles/ocp-24688-storageclasses/tasks/validate-source.yml +++ b/roles/ocp-24688-storageclasses/tasks/validate-source.yml @@ -1,6 +1,16 @@ -- debug: - msg: "aaaaaaaaaaaaaaaa" +- name: get all storageclasses infornamtion of migration target cluster + k8s_info: + api_version: v1 + kind: StorageClass + register: all_sc + +- name: get all storageclasses name list of migration target cluster + set_fact: + sc_name_list: "{{ all_sc | json_query('resources[].metadata.name') |list }}" + +- name: verify bogus storageclasses setting in migration target cluster + fail: + msg: "setting bogus storageclasses {{ bogus_storageclass_name }} failed in migration target cluster" + when: "bogus_storageclass_name not in (sc_name_list | string )" - -#- name: verify bogus storageclasses setting in migration source cluster diff --git a/roles/ocp-24688-storageclasses/tasks/validate-target.yml b/roles/ocp-24688-storageclasses/tasks/validate-target.yml index 60d4c60..abc1b84 100644 --- a/roles/ocp-24688-storageclasses/tasks/validate-target.yml +++ b/roles/ocp-24688-storageclasses/tasks/validate-target.yml @@ -1,11 +1,56 @@ +- name: get all storageclasses infornamtion of migration target cluster + k8s_info: + api_version: v1 + kind: StorageClass + register: all_sc + +- name: get all storageclasses name list of migration target cluster + set_fact: + sc_name_list: "{{ all_sc | json_query('resources[].metadata.name') |list }}" + - name: verify bogus storageclasses setting in migration target cluster - k8s_facts: - kind: sc - namespace: default - register: sc_list - until: sc_list.resources | length > 0 + fail: + msg: "setting bogus storageclasses {{ bogus_storageclass_name }} failed in migration target cluster" + when: "bogus_storageclass_name not in (sc_name_list | string )" + + +- name: verify migcluster definition of target cluster {{ migcluster_target_name }} + k8s_info: + api_version: v1alpha1 + kind: MigCluster + namespace: "{{ migration_namespace }}" + field_selectors: + - metadata.name={{ migcluster_target_name }} + register: target_sc + until: sc_name_list |difference(target_sc | json_query('resources[].spec.storageClasses[].name')|list)| length == 0 + retries: 30 + +- name: set fact for string + set_fact: + expected_string: "The cluster is ready" + +#- debug: +# msg: "{{ target_sc }}" + +- name: Vefify migcluster definition of target cluster is ready + fail: + msg: "there is no statement {{ expected_string }} in migcluter definition of target cluster {{ migcluster_target_name }}" + when: "expected_string not in (target_sc| json_query('resources[].status.conditions[].message')|string)" + +- name: Verity migcluster definition of source cluster {{ migcluster_source_name }} + k8s_info: + api_version: v1alpha1 + kind: MigCluster + namespace: "{{ migration_namespace }}" + field_selectors: + - metadata.name={{ migcluster_source_name }} + register: source_sc + until: "bogus_storageclass_name in (source_sc | json_query('resources[].spec.storageClasses[].name') | string)" retries: 30 -- debug: - msg: "{{ sc_list }}" +- name: Vefify migcluster definition of source cluster is ready + fail: + msg: "there is no statement {{ expected_string }} in migcluter definition of source cluster {{ migcluster_source_name }}" + when: "expected_string not in (source_sc| json_query('resources[].status.conditions[].message')|string)" + From a4ece87c1863966b016b61d075dc1ad64cc23b99 Mon Sep 17 00:00:00 2001 From: hu-weihua Date: Fri, 7 Feb 2020 15:14:57 +0800 Subject: [PATCH 06/15] update --- .../tasks/deploy_target.yml | 13 ++++++ .../tasks/validate-target.yml | 40 ++++++++++++++----- 2 files changed, 43 insertions(+), 10 deletions(-) diff --git a/roles/ocp-24688-storageclasses/tasks/deploy_target.yml b/roles/ocp-24688-storageclasses/tasks/deploy_target.yml index 5eeb665..b6dcdf5 100644 --- a/roles/ocp-24688-storageclasses/tasks/deploy_target.yml +++ b/roles/ocp-24688-storageclasses/tasks/deploy_target.yml @@ -34,3 +34,16 @@ k8s: state: present definition: "{{ lookup('file', 'test_storageclasses.yml') }}" + +- name: clear the expired source cluster sc name list in tmp file + file: + path: "{{ source_cluster_sc_name_list_tmp_file }}" + state: absent + when: source_cluster_sc_name_list_tmp_file is defined + +- name: save the source cluster sc name list to tmp file + copy: + content: "{{ all_sc | json_query('resources[].metadata.name') |list }}" + dest: "{{ source_cluster_sc_name_list_tmp_file }}" + + diff --git a/roles/ocp-24688-storageclasses/tasks/validate-target.yml b/roles/ocp-24688-storageclasses/tasks/validate-target.yml index abc1b84..1b19f10 100644 --- a/roles/ocp-24688-storageclasses/tasks/validate-target.yml +++ b/roles/ocp-24688-storageclasses/tasks/validate-target.yml @@ -37,16 +37,36 @@ msg: "there is no statement {{ expected_string }} in migcluter definition of target cluster {{ migcluster_target_name }}" when: "expected_string not in (target_sc| json_query('resources[].status.conditions[].message')|string)" -- name: Verity migcluster definition of source cluster {{ migcluster_source_name }} - k8s_info: - api_version: v1alpha1 - kind: MigCluster - namespace: "{{ migration_namespace }}" - field_selectors: - - metadata.name={{ migcluster_source_name }} - register: source_sc - until: "bogus_storageclass_name in (source_sc | json_query('resources[].spec.storageClasses[].name') | string)" - retries: 30 +- when: source_cluster_sc_name_list_tmp_file is defined + block: + - name: extract source cluster sc name list from tmp file + shell: cat {{ source_cluster_sc_name_list_tmp_file }} + register: source_sc_name_list + + - name: Verity migcluster definition of source cluster {{ migcluster_source_name }} + k8s_info: + api_version: v1alpha1 + kind: MigCluster + namespace: "{{ migration_namespace }}" + field_selectors: + - metadata.name={{ migcluster_source_name }} + register: source_sc + until: "source_sc_name_list.stdout |difference(source_sc | json_query('resources[].spec.storageClasses[].name')|list)| length == 0" + retries: 30 + + +- when: source_cluster_sc_name_list_tmp_file not is defined + block: + - name: Verity migcluster definition of source cluster {{ migcluster_source_name }} + k8s_info: + api_version: v1alpha1 + kind: MigCluster + namespace: "{{ migration_namespace }}" + field_selectors: + - metadata.name={{ migcluster_source_name }} + register: source_sc + until: "bogus_storageclass_name in (source_sc | json_query('resources[].spec.storageClasses[].name') | string)" + retries: 30 - name: Vefify migcluster definition of source cluster is ready From 445e26ad2096e4a91312d309583ab11b53f52ca2 Mon Sep 17 00:00:00 2001 From: hu-weihua Date: Fri, 7 Feb 2020 15:18:05 +0800 Subject: [PATCH 07/15] add attribute --- roles/ocp-24688-storageclasses/defaults/main.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/roles/ocp-24688-storageclasses/defaults/main.yml b/roles/ocp-24688-storageclasses/defaults/main.yml index 61b927d..ddac51f 100644 --- a/roles/ocp-24688-storageclasses/defaults/main.yml +++ b/roles/ocp-24688-storageclasses/defaults/main.yml @@ -1,6 +1,7 @@ namespace: ocp-24688-storageclasses bogus_storageclass_name: test-storageclass +source_cluster_sc_name_list_tmp_file: ./roles/{{ namespace }}/files/source_cluster_sc_name_list_tmp_file.tmp migration_sample_name: "{{ namespace }}" migration_plan_name: "{{ migration_sample_name }}-migplan-{{ ansible_date_time.epoch }}" From 1080a51eb44f98f40fa51fb900640c040ab71138 Mon Sep 17 00:00:00 2001 From: hu-weihua Date: Fri, 7 Feb 2020 15:36:04 +0800 Subject: [PATCH 08/15] update --- .../tasks/deploy_source.yml | 13 +++++++++++++ .../tasks/deploy_target.yml | 11 ----------- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/roles/ocp-24688-storageclasses/tasks/deploy_source.yml b/roles/ocp-24688-storageclasses/tasks/deploy_source.yml index ff9cd88..e59289f 100644 --- a/roles/ocp-24688-storageclasses/tasks/deploy_source.yml +++ b/roles/ocp-24688-storageclasses/tasks/deploy_source.yml @@ -34,3 +34,16 @@ k8s: state: present definition: "{{ lookup('file', 'test_storageclasses.yml') }}" + + +- name: clear the expired source cluster sc name list in tmp file + file: + path: "{{ source_cluster_sc_name_list_tmp_file }}" + state: absent + when: source_cluster_sc_name_list_tmp_file is defined + +- name: save the source cluster sc name list to tmp file + copy: + content: "{{ all_sc | json_query('resources[].metadata.name') |list }}" + dest: "{{ source_cluster_sc_name_list_tmp_file }}" + diff --git a/roles/ocp-24688-storageclasses/tasks/deploy_target.yml b/roles/ocp-24688-storageclasses/tasks/deploy_target.yml index b6dcdf5..e575360 100644 --- a/roles/ocp-24688-storageclasses/tasks/deploy_target.yml +++ b/roles/ocp-24688-storageclasses/tasks/deploy_target.yml @@ -35,15 +35,4 @@ state: present definition: "{{ lookup('file', 'test_storageclasses.yml') }}" -- name: clear the expired source cluster sc name list in tmp file - file: - path: "{{ source_cluster_sc_name_list_tmp_file }}" - state: absent - when: source_cluster_sc_name_list_tmp_file is defined - -- name: save the source cluster sc name list to tmp file - copy: - content: "{{ all_sc | json_query('resources[].metadata.name') |list }}" - dest: "{{ source_cluster_sc_name_list_tmp_file }}" - From 3e21cbb0a9a87488bd344ad2f88d84e144038dd7 Mon Sep 17 00:00:00 2001 From: hu-weihua Date: Mon, 10 Feb 2020 14:14:17 +0800 Subject: [PATCH 09/15] replaced k8s_info by k8s_facts --- roles/ocp-24688-storageclasses/tasks/deploy_source.yml | 2 +- roles/ocp-24688-storageclasses/tasks/deploy_target.yml | 2 +- roles/ocp-24688-storageclasses/tasks/validate-source.yml | 2 +- roles/ocp-24688-storageclasses/tasks/validate-target.yml | 8 ++++---- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/roles/ocp-24688-storageclasses/tasks/deploy_source.yml b/roles/ocp-24688-storageclasses/tasks/deploy_source.yml index e59289f..db64e1d 100644 --- a/roles/ocp-24688-storageclasses/tasks/deploy_source.yml +++ b/roles/ocp-24688-storageclasses/tasks/deploy_source.yml @@ -1,5 +1,5 @@ - name: Check existing StorageClass for {{ bogus_storageclass_name }} in migration source cluster {{ migcluster_source_name }} - k8s_info: + k8s_facts: api_version: v1 kind: StorageClass register: all_sc diff --git a/roles/ocp-24688-storageclasses/tasks/deploy_target.yml b/roles/ocp-24688-storageclasses/tasks/deploy_target.yml index e575360..df76bb3 100644 --- a/roles/ocp-24688-storageclasses/tasks/deploy_target.yml +++ b/roles/ocp-24688-storageclasses/tasks/deploy_target.yml @@ -1,5 +1,5 @@ - name: Check existing StorageClass for {{ bogus_storageclass_name }} in migration target cluster {{ migcluster_target_name }} - k8s_info: + k8s_facts: api_version: v1 kind: StorageClass register: all_sc diff --git a/roles/ocp-24688-storageclasses/tasks/validate-source.yml b/roles/ocp-24688-storageclasses/tasks/validate-source.yml index 3b945d4..b8191a1 100644 --- a/roles/ocp-24688-storageclasses/tasks/validate-source.yml +++ b/roles/ocp-24688-storageclasses/tasks/validate-source.yml @@ -1,5 +1,5 @@ - name: get all storageclasses infornamtion of migration target cluster - k8s_info: + k8s_facts: api_version: v1 kind: StorageClass register: all_sc diff --git a/roles/ocp-24688-storageclasses/tasks/validate-target.yml b/roles/ocp-24688-storageclasses/tasks/validate-target.yml index 1b19f10..cf4ee6c 100644 --- a/roles/ocp-24688-storageclasses/tasks/validate-target.yml +++ b/roles/ocp-24688-storageclasses/tasks/validate-target.yml @@ -1,5 +1,5 @@ - name: get all storageclasses infornamtion of migration target cluster - k8s_info: + k8s_facts: api_version: v1 kind: StorageClass register: all_sc @@ -15,7 +15,7 @@ - name: verify migcluster definition of target cluster {{ migcluster_target_name }} - k8s_info: + k8s_facts: api_version: v1alpha1 kind: MigCluster namespace: "{{ migration_namespace }}" @@ -44,7 +44,7 @@ register: source_sc_name_list - name: Verity migcluster definition of source cluster {{ migcluster_source_name }} - k8s_info: + k8s_facts: api_version: v1alpha1 kind: MigCluster namespace: "{{ migration_namespace }}" @@ -58,7 +58,7 @@ - when: source_cluster_sc_name_list_tmp_file not is defined block: - name: Verity migcluster definition of source cluster {{ migcluster_source_name }} - k8s_info: + k8s_facts: api_version: v1alpha1 kind: MigCluster namespace: "{{ migration_namespace }}" From 1526dcc69551a9036e872ecb0b3859786e3ab642 Mon Sep 17 00:00:00 2001 From: hu-weihua Date: Thu, 13 Feb 2020 09:12:45 +0800 Subject: [PATCH 10/15] add case 24688 to e2e_mig_samples --- e2e_mig_samples.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/e2e_mig_samples.yml b/e2e_mig_samples.yml index 930076b..8fe586e 100644 --- a/e2e_mig_samples.yml +++ b/e2e_mig_samples.yml @@ -23,6 +23,7 @@ - { role: ocp-26160-max-pvs, tags: ["ocp-26160-max-pvs", "ocp"] } - { role: ocp-24787-redis, tags: ["ocp-24787-redis", "ocp"] } - { role: ocp-24797-mongodb, tags: ["ocp-24797-mongodb", "ocp"] } + - { role: ocp-24688-storageclasses, tags: ["ocp-24688-storageclasses", "ocp"] } vars_files: - "{{ playbook_dir }}/config/mig_controller.yml" - "{{ playbook_dir }}/config/defaults.yml" From 4d9ae9dab1c54829eb80b88d68a5b44470160131 Mon Sep 17 00:00:00 2001 From: hu-weihua Date: Sun, 16 Feb 2020 17:03:57 +0800 Subject: [PATCH 11/15] add sleep for configuation working --- roles/ocp-24688-storageclasses/tasks/deploy_source.yml | 3 +++ roles/ocp-24688-storageclasses/tasks/validate-target.yml | 1 + 2 files changed, 4 insertions(+) diff --git a/roles/ocp-24688-storageclasses/tasks/deploy_source.yml b/roles/ocp-24688-storageclasses/tasks/deploy_source.yml index db64e1d..cc7b67e 100644 --- a/roles/ocp-24688-storageclasses/tasks/deploy_source.yml +++ b/roles/ocp-24688-storageclasses/tasks/deploy_source.yml @@ -42,6 +42,9 @@ state: absent when: source_cluster_sc_name_list_tmp_file is defined +- name: sleep a while to wait configuration working + shell: sleep 60 + - name: save the source cluster sc name list to tmp file copy: content: "{{ all_sc | json_query('resources[].metadata.name') |list }}" diff --git a/roles/ocp-24688-storageclasses/tasks/validate-target.yml b/roles/ocp-24688-storageclasses/tasks/validate-target.yml index cf4ee6c..a3316b8 100644 --- a/roles/ocp-24688-storageclasses/tasks/validate-target.yml +++ b/roles/ocp-24688-storageclasses/tasks/validate-target.yml @@ -24,6 +24,7 @@ register: target_sc until: sc_name_list |difference(target_sc | json_query('resources[].spec.storageClasses[].name')|list)| length == 0 retries: 30 + delay: 10 - name: set fact for string set_fact: From be741f1d39891373b82bfd5493a19063f9b98220 Mon Sep 17 00:00:00 2001 From: hu-weihua Date: Sun, 16 Feb 2020 18:42:05 +0800 Subject: [PATCH 12/15] make the check more stably --- .../defaults/main.yml | 1 + .../tasks/validate-target.yml | 39 ++++++++++++------- 2 files changed, 26 insertions(+), 14 deletions(-) diff --git a/roles/ocp-24688-storageclasses/defaults/main.yml b/roles/ocp-24688-storageclasses/defaults/main.yml index ddac51f..fa68836 100644 --- a/roles/ocp-24688-storageclasses/defaults/main.yml +++ b/roles/ocp-24688-storageclasses/defaults/main.yml @@ -2,6 +2,7 @@ namespace: ocp-24688-storageclasses bogus_storageclass_name: test-storageclass source_cluster_sc_name_list_tmp_file: ./roles/{{ namespace }}/files/source_cluster_sc_name_list_tmp_file.tmp +source_cluster_sc_name_list_tmp_file2: ./roles/{{ namespace }}/files/source_cluster_sc_name_list_tmp_file.tmp2 migration_sample_name: "{{ namespace }}" migration_plan_name: "{{ migration_sample_name }}-migplan-{{ ansible_date_time.epoch }}" diff --git a/roles/ocp-24688-storageclasses/tasks/validate-target.yml b/roles/ocp-24688-storageclasses/tasks/validate-target.yml index a3316b8..82fae64 100644 --- a/roles/ocp-24688-storageclasses/tasks/validate-target.yml +++ b/roles/ocp-24688-storageclasses/tasks/validate-target.yml @@ -38,12 +38,8 @@ msg: "there is no statement {{ expected_string }} in migcluter definition of target cluster {{ migcluster_target_name }}" when: "expected_string not in (target_sc| json_query('resources[].status.conditions[].message')|string)" -- when: source_cluster_sc_name_list_tmp_file is defined +- when: source_cluster_sc_name_list_tmp_file is not defined block: - - name: extract source cluster sc name list from tmp file - shell: cat {{ source_cluster_sc_name_list_tmp_file }} - register: source_sc_name_list - - name: Verity migcluster definition of source cluster {{ migcluster_source_name }} k8s_facts: api_version: v1alpha1 @@ -52,11 +48,15 @@ field_selectors: - metadata.name={{ migcluster_source_name }} register: source_sc - until: "source_sc_name_list.stdout |difference(source_sc | json_query('resources[].spec.storageClasses[].name')|list)| length == 0" + until: "bogus_storageclass_name in (source_sc | json_query('resources[].spec.storageClasses[].name') | string)" retries: 30 - -- when: source_cluster_sc_name_list_tmp_file not is defined + - name: Vefify migcluster definition of source cluster is ready + fail: + msg: "there is no statement {{ expected_string }} in migcluter definition of source cluster {{ migcluster_source_name }}" + when: "expected_string not in (source_sc| json_query('resources[].status.conditions[].message')|string)" + +- when: source_cluster_sc_name_list_tmp_file is defined block: - name: Verity migcluster definition of source cluster {{ migcluster_source_name }} k8s_facts: @@ -66,12 +66,23 @@ field_selectors: - metadata.name={{ migcluster_source_name }} register: source_sc - until: "bogus_storageclass_name in (source_sc | json_query('resources[].spec.storageClasses[].name') | string)" - retries: 30 + - name: save the source cluster sc name list in migcluster definition to tmp file + copy: + content: "{{ source_sc | json_query('resources[].spec.storageClasses[].name')|list }}" + dest: "{{ source_cluster_sc_name_list_tmp_file2 }}" + + - name: compare the 2 tmp files + shell: diff -y {{ source_cluster_sc_name_list_tmp_file }} {{ source_cluster_sc_name_list_tmp_file2 }} + register: diff_result + + - name: check the diff result + fail: + msg: "the StorageClass of source cluster in migcluster {{ migcluster_source_name }} is wrong" + when: diff_result.rc != 0 -- name: Vefify migcluster definition of source cluster is ready - fail: - msg: "there is no statement {{ expected_string }} in migcluter definition of source cluster {{ migcluster_source_name }}" - when: "expected_string not in (source_sc| json_query('resources[].status.conditions[].message')|string)" + - name: Vefify migcluster definition of source cluster is ready + fail: + msg: "there is no statement {{ expected_string }} in migcluter definition of source cluster {{ migcluster_source_name }}" + when: "expected_string not in (source_sc| json_query('resources[].status.conditions[].message')|string)" From fbef3605fce90248216c618989e38c77e3f82fa9 Mon Sep 17 00:00:00 2001 From: hu-weihua Date: Mon, 27 Apr 2020 20:37:52 +0800 Subject: [PATCH 13/15] update typo --- roles/ocp-24688-storageclasses/tasks/deploy_source.yml | 5 +++-- roles/ocp-24688-storageclasses/tasks/validate-source.yml | 2 +- roles/ocp-24688-storageclasses/tasks/validate-target.yml | 2 +- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/roles/ocp-24688-storageclasses/tasks/deploy_source.yml b/roles/ocp-24688-storageclasses/tasks/deploy_source.yml index cc7b67e..179fbbf 100644 --- a/roles/ocp-24688-storageclasses/tasks/deploy_source.yml +++ b/roles/ocp-24688-storageclasses/tasks/deploy_source.yml @@ -43,8 +43,9 @@ when: source_cluster_sc_name_list_tmp_file is defined - name: sleep a while to wait configuration working - shell: sleep 60 - + pause: + seconds: "60" + - name: save the source cluster sc name list to tmp file copy: content: "{{ all_sc | json_query('resources[].metadata.name') |list }}" diff --git a/roles/ocp-24688-storageclasses/tasks/validate-source.yml b/roles/ocp-24688-storageclasses/tasks/validate-source.yml index b8191a1..c4cdaad 100644 --- a/roles/ocp-24688-storageclasses/tasks/validate-source.yml +++ b/roles/ocp-24688-storageclasses/tasks/validate-source.yml @@ -1,4 +1,4 @@ -- name: get all storageclasses infornamtion of migration target cluster +- name: get all storageclasses information of migration target cluster k8s_facts: api_version: v1 kind: StorageClass diff --git a/roles/ocp-24688-storageclasses/tasks/validate-target.yml b/roles/ocp-24688-storageclasses/tasks/validate-target.yml index 82fae64..9ab9223 100644 --- a/roles/ocp-24688-storageclasses/tasks/validate-target.yml +++ b/roles/ocp-24688-storageclasses/tasks/validate-target.yml @@ -1,4 +1,4 @@ -- name: get all storageclasses infornamtion of migration target cluster +- name: get all storageclasses information of migration target cluster k8s_facts: api_version: v1 kind: StorageClass From 0ed80eb59f6a93a4f921a1a9ac71b113f139d599 Mon Sep 17 00:00:00 2001 From: hu-weihua Date: Mon, 27 Apr 2020 22:09:38 +0800 Subject: [PATCH 14/15] fix some logic error --- .../tasks/deploy_source.yml | 15 ++++++++++++--- .../tasks/validate-source.yml | 8 ++++---- 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/roles/ocp-24688-storageclasses/tasks/deploy_source.yml b/roles/ocp-24688-storageclasses/tasks/deploy_source.yml index 179fbbf..8b820c8 100644 --- a/roles/ocp-24688-storageclasses/tasks/deploy_source.yml +++ b/roles/ocp-24688-storageclasses/tasks/deploy_source.yml @@ -4,8 +4,8 @@ kind: StorageClass register: all_sc -#- debug: -# msg: "{{ all_sc }}" +- debug: + msg: "{{ all_sc }}" - block: @@ -46,8 +46,17 @@ pause: seconds: "60" +- name: Check existing StorageClass for {{ bogus_storageclass_name }} in migration source cluster {{ migcluster_source_name }} again + k8s_facts: + api_version: v1 + kind: StorageClass + register: all_sc_1 + +- debug: + msg: "{{ all_sc_1 }}" + - name: save the source cluster sc name list to tmp file copy: - content: "{{ all_sc | json_query('resources[].metadata.name') |list }}" + content: "{{ all_sc_1 | json_query('resources[].metadata.name') |list }}" dest: "{{ source_cluster_sc_name_list_tmp_file }}" diff --git a/roles/ocp-24688-storageclasses/tasks/validate-source.yml b/roles/ocp-24688-storageclasses/tasks/validate-source.yml index c4cdaad..6761f72 100644 --- a/roles/ocp-24688-storageclasses/tasks/validate-source.yml +++ b/roles/ocp-24688-storageclasses/tasks/validate-source.yml @@ -1,16 +1,16 @@ -- name: get all storageclasses information of migration target cluster +- name: get all storageclasses information of migration source cluster k8s_facts: api_version: v1 kind: StorageClass register: all_sc -- name: get all storageclasses name list of migration target cluster +- name: get all storageclasses name list of migration source cluster set_fact: sc_name_list: "{{ all_sc | json_query('resources[].metadata.name') |list }}" -- name: verify bogus storageclasses setting in migration target cluster +- name: verify bogus storageclasses setting in migration source cluster fail: - msg: "setting bogus storageclasses {{ bogus_storageclass_name }} failed in migration target cluster" + msg: "setting bogus storageclasses {{ bogus_storageclass_name }} failed in migration source cluster" when: "bogus_storageclass_name not in (sc_name_list | string )" From 06228b4546dfd86a32ee580b76f674242c132b5a Mon Sep 17 00:00:00 2001 From: hu-weihua Date: Tue, 28 Apr 2020 09:45:19 +0800 Subject: [PATCH 15/15] remove TC 24688 from e2e_mig_samples.yml --- e2e_mig_samples.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/e2e_mig_samples.yml b/e2e_mig_samples.yml index 8fe586e..930076b 100644 --- a/e2e_mig_samples.yml +++ b/e2e_mig_samples.yml @@ -23,7 +23,6 @@ - { role: ocp-26160-max-pvs, tags: ["ocp-26160-max-pvs", "ocp"] } - { role: ocp-24787-redis, tags: ["ocp-24787-redis", "ocp"] } - { role: ocp-24797-mongodb, tags: ["ocp-24797-mongodb", "ocp"] } - - { role: ocp-24688-storageclasses, tags: ["ocp-24688-storageclasses", "ocp"] } vars_files: - "{{ playbook_dir }}/config/mig_controller.yml" - "{{ playbook_dir }}/config/defaults.yml"