swift volume device path on Openstack added
[ta/caas-lcm.git] / su / roles / su_prepare / tasks / main.yml
1 ---
2 # Copyright 2019 Nokia
3 #
4 # Licensed under the Apache License, Version 2.0 (the "License");
5 # you may not use this file except in compliance with the License.
6 # You may obtain a copy of the License at
7 #
8 #     http://www.apache.org/licenses/LICENSE-2.0
9 #
10 # Unless required by applicable law or agreed to in writing, software
11 # distributed under the License is distributed on an "AS IS" BASIS,
12 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 # See the License for the specific language governing permissions and
14 # limitations under the License.
15
16 - set_fact:
17     start_time: "{{ lookup('pipe', 'date +%Y%m%d-%H:%M:%S') }}"
18
19 - file:
20     path: "/var/log/sw_package_load.log"
21     state: absent
22   become: true
23
24
25 - lineinfile:
26     dest: "/var/log/sw_package_load.log"
27     create: yes
28     line: "start_time: {{ start_time }}"
29   become: true
30
31 - block:
32     - name: Compose the device path of swift volume on Openstack
33       set_fact:
34         swift_dev: "/dev/disk/by-id/virtio-{{ swift_volume }}"
35
36     - name: Run what_is_the_filesystem.yml
37       include_role:
38         name: common_tasks
39         tasks_from: what_is_the_filesystem.yml
40       vars:
41         device: "{{swift_dev}}"
42
43     - name: Mount the device
44       mount:
45         name: /srv/node/swift-update/
46         src: "{{swift_dev}}"
47         fstype: "{{ filesystem_type.stdout | lower | default('ext4') }}"
48         state: mounted
49       become: true
50   when: swift_volume is defined and swift_volume  != ""
51   
52 - block:
53     - name: Compose the device path of swift volume on BareMetal
54       set_fact:
55         swift_dev: "{{ swift_image_path }}"
56
57     - name: Run what_is_the_filesystem.yml
58       include_role:
59         name: common_tasks
60         tasks_from: what_is_the_filesystem.yml
61       vars:
62         device: "{{swift_dev}}"
63
64     - name: Mount the device
65       mount:
66         name: /srv/node/swift-update/
67         src: "{{swift_dev}}"
68         fstype: "{{ filesystem_type.stdout | lower | default('ext4') }}"
69         state: mounted
70       become: true
71   when: swift_image_path is defined and swift_image_path != ""
72
73 - name: Prepare mount dir
74   file:
75     path: /srv/node/swift-update/
76     state: directory
77     mode: 0755
78     owner: 146
79     group: 146
80     recurse: yes
81   become: true
82
83 - block:
84     - include: tasks/start_vnfc.yml
85       vars:
86         vnfcs:
87           - swift_update
88           - swift_update_service
89           - docker-registry-update
90           - update_registry_service
91
92     - include: tasks/wait_pod_start.yml
93       vars:
94         name: swift-update
95         ccount: 1
96
97     - name: wait for container service - swift-update
98       wait_for:
99         host: "{{ groups.caas_master[0] }}"
100         port: "{{ caas.update_swift_port }}"
101         state: started
102         timeout: 300
103
104     - include: tasks/wait_pod_start.yml
105       vars:
106         name: registry-update
107         ccount: 1
108
109     - name: wait for registry-update kubernetes service to start
110       wait_for:
111         host: "{{ caas.update_registry_url }}"
112         port: "{{ caas.update_registry_port }}"
113         state: started
114         timeout: 60
115
116
117     - name: wait for swift-update kubernetes service to start
118       wait_for:
119         host: "{{ caas.swift_update_url }}"
120         port: "{{ caas.update_swift_port }}"
121         state: started
122         timeout: 60
123
124     - include: merge-charts.yml
125     - include: merge-images.yml
126
127   rescue:
128     - debug:
129         msg: Something went wrong during merge.
130
131   always:
132     - name: clean after charts upload
133       file:
134         state: absent
135         path: /tmp/su_chart
136
137     - name: Delete the registry and swift for su
138       shell: kubectl delete -f {{ caas.manifests_directory }}/{{item}}
139       with_items:
140         - update_registry_service.yml
141         - docker-registry-update.yml
142         - swift_update_service.yml
143         - swift_update.yml
144
145     - name: Wait for registry and swift deleted
146       shell: kubectl get pods --all-namespaces | grep -c {{item}}
147       register: ret_rc
148       until: ret_rc.stdout == "0"
149       failed_when: ret_rc.stdout == ""
150       retries: 60
151       delay: 5
152       with_items:
153         - swift-update
154         - registry-update
155
156     - name: Umount the device of the new swift volume
157       mount:
158         name: /srv/node/swift-update/
159         src: "{{swift_dev}}"
160         state: unmounted
161       become: true
162
163     - name: Make sure the fstab entry is removed
164       mount:
165         name: /srv/node/swift-update/
166         src: "{{swift_dev}}"
167         state: absent
168       become: true
169
170     - lineinfile:
171         dest: "/var/log/sw_package_load.log"
172         state: present
173         line: "end_time: {{ lookup('pipe', 'date +%Y%m%d-%H:%M:%S') }}"
174       become: true
175