@@ -42,7 +42,6 @@ prep() {
4242 fi
4343
4444 # Enable lvm on second partition
45- cmd yum -y install lvm2
4645 cmd pvcreate /dev/sda2
4746 cmd vgcreate cinder-volumes /dev/sda2
4847 cmd vgchange -ay
@@ -58,15 +57,19 @@ packstack-install() {
5857
5958post-install-config () {
6059 cmd echo " INFO: Starting function 'prepare-host'"
61- # Enable discards for lvm
62- cmd sed -i -e ' s/issue_discards = .*$/issue_discards = 1/' /etc/lvm/lvm.conf
6360
61+ openstack-config --set /etc/cinder/cinder.conf lvm volume_clear none
62+ openstack-config --set /etc/cinder/cinder.conf lvm image_upload_use_cinder_backend True
63+ openstack-config --set /etc/cinder/cinder.conf lvm lvm_type thin
64+ openstack-config --set /etc/cinder/cinder.conf DEFAULT glance_api_version 2
65+ openstack-config --set /etc/cinder/cinder.conf DEFAULT allowed_direct_url_schemes cinder
66+ openstack-config --set /etc/glance/glance-api.conf glance_store stores file,http,swift,cinder
67+ openstack-config --set /etc/glance/glance-api.conf DEFAULT show_multiple_locations True
6468 openstack-config --set /etc/nova/nova.conf DEFAULT scheduler_default_filters RetryFilter,AvailabilityZoneFilter,RamFilter,ComputeFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,ServerGroupAntiAffinityFilter,ServerGroupAffinityFilter,CoreFilter
6569 openstack-config --set /etc/nova/nova.conf libvirt virt_type kvm
6670 openstack-config --set /etc/nova/nova.conf libvirt cpu_mode host-passthrough
6771 openstack-config --set /etc/nova/nova.conf libvirt hw_disk_discard unmap
6872 openstack-config --set /etc/nova/nova.conf libvirt use_usb_tablet false
69- openstack-config --set /etc/cinder/cinder.conf lvm volume_clear none
7073 openstack-config --set /etc/nova/nova.conf DEFAULT block_device_allocate_retries 120
7174 openstack-config --set /etc/nova/nova.conf DEFAULT block_device_allocate_retries_interval 10
7275 if " ${EXTERNAL_ONLY} " == " true"
@@ -142,33 +145,94 @@ chown ${USERNAME}:${USERNAME} /home/${USERNAME}/keystonerc_${USERNAME}
142145}
143146
144147create-images () {
145- # Logging everything except the image creation
146- cmd echo " INFO: Starting function 'create-images'"
147- if [ " ${IMAGE_IS_PUBLIC} " = true ]
148+ # image creation
149+ cmd echo " INFO: Starting function 'create-images'"
150+ source /root/keystonerc_${USERNAME}
151+
152+ if ! glance image-list | grep image-base-src
148153 then
149- source /root/keystonerc_admin
150- IMAGE_IS_PUBLIC_OPTION=" --public"
151- else
152- source /root/keystonerc_${USERNAME}
153- IMAGE_IS_PUBLIC_OPTION=
154+ cmd openstack image create \
155+ --disk-format raw \
156+ --container-format bare \
157+ --property hw_scsi_model=virtio-scsi \
158+ --property hw_disk_bus=scsi \
159+ --min-disk 10 \
160+ --file ${OPENSHIFT_IMAGE_PATH} \
161+ image-base-src
162+ fi
163+ # wait for image to become active
164+ echo -en " \nWaiting for image-base-src image to create"
165+ counter=0
166+ while :
167+ do
168+ counter=$(( $counter + 1 ))
169+ echo -n " ."
170+ sleep 1
171+ if openstack image show image-base-src -f value -c status | grep -q active
172+ then
173+ break
174+ fi
175+ if [ $counter -gt $TIMEOUT ]
176+ then
177+ echo ERROR: something went wrong - check console
178+ exit 1
179+ elif [ $counter -eq $TIMEOUT_WARN ]
180+ then
181+ echo -n " WARN: this is taking longer than expected"
182+ fi
183+ done
184+ echo " "
185+ if ! glance image-list | grep ${OPENSHIFT_VM_NAME}
186+ then
187+ cmd openstack volume create \
188+ --image image-base-src \
189+ --size 10 \
190+ ${OPENSHIFT_VM_NAME}
191+ cmd openstack image create \
192+ --disk-format raw \
193+ --protected \
194+ --container-format bare \
195+ --property hw_scsi_model=virtio-scsi \
196+ --property hw_disk_bus=scsi \
197+ --min-disk 10 \
198+ ${OPENSHIFT_VM_NAME}
199+ echo -en " \nWaiting for ${OPENSHIFT_VM_NAME} volume to create"
200+ counter=0
201+ while :
202+ do
203+ counter=$(( $counter + 1 ))
204+ echo -n " ."
205+ sleep 2
206+ if openstack volume show ${OPENSHIFT_VM_NAME} -f value -c status | grep -q available
207+ then
208+ break
209+ fi
210+ if [ $counter -gt $TIMEOUT ]
211+ then
212+ echo ERROR: something went wrong - check console
213+ exit 1
214+ elif [ $counter -eq $TIMEOUT_WARN ]
215+ then
216+ echo -n " WARN: this is taking longer than expected"
217+ fi
218+ done
219+ echo " "
220+ VOLUME_ID=$( openstack volume show ${OPENSHIFT_VM_NAME} -f value -c id)
221+ IMAGE_ID=$( openstack image show ${OPENSHIFT_VM_NAME} -f value -c id)
222+ if openstack image list | grep -qi error
223+ then
224+ echo " ERROR: Image creation failed"
225+ exit 1
226+ fi
227+ if openstack volume list | grep -qi error
228+ then
229+ echo " ERROR: Volume creation failed"
230+ exit 1
231+ fi
232+ cmd glance location-add ${IMAGE_ID} --url cinder://${VOLUME_ID}
233+ cmd virt-sparsify /dev/cinder-volumes/volume-${VOLUME_ID} --in-place
234+ cmd openstack image delete image-base-src
154235 fi
155- if [ " ${VERBOSE} " = true ]
156- then
157- echo " INFO: Setting IMAGE_IS_PUBLIC_OPTION to '${IMAGE_IS_PUBLIC_OPTION} '"
158- fi
159- if ! glance image-list | grep ${OPENSHIFT_VM_NAME}
160- then
161- cmd openstack image create \
162- ${IMAGE_IS_PUBLIC_OPTION} \
163- --disk-format qcow2 \
164- --protected \
165- --container-format bare \
166- --property hw_scsi_model=virtio-scsi \
167- --property hw_disk_bus=scsi \
168- --min-disk 10 \
169- --file ${OPENSHIFT_IMAGE_PATH} \
170- ${OPENSHIFT_VM_NAME}
171- fi
172236 cmd openstack image show ${OPENSHIFT_VM_NAME}
173237 cmd rm -vf ${OPENSHIFT_IMAGE_PATH}
174238}
@@ -246,9 +310,9 @@ build-instances() {
246310 then
247311 echo ERROR: something went wrong - check console
248312 exit 1
249- elif [ $counter -gt $TIMEOUT_WARN ]
313+ elif [ $counter -eq $TIMEOUT_WARN ]
250314 then
251- echo WARN: this is taking longer than expected
315+ echo -n " WARN: this is taking longer than expected"
252316 fi
253317 done
254318 echo " "
@@ -279,11 +343,11 @@ verify-networking() {
279343 fi
280344 if [ $counter -gt $TIMEOUT ]
281345 then
282- echo ERROR: something went wrong - check console
346+ echo " ERROR: something went wrong - check console"
283347 exit 1
284- elif [ $counter -gt $TIMEOUT_WARN ]
348+ elif [ $counter -eq $TIMEOUT_WARN ]
285349 then
286- echo WARN: this is taking longer than expected
350+ echo -n " WARN: this is taking longer than expected"
287351 fi
288352 done
289353 echo " "
@@ -309,14 +373,14 @@ cleanup() {
309373 fi
310374 if [ $counter -gt $TIMEOUT ]
311375 then
312- echo ERROR: something went wrong - check console
376+ echo " ERROR: something went wrong - check console"
313377 exit 1
314- elif [ $counter -gt $TIMEOUT_WARN ]
378+ elif [ $counter -eq $TIMEOUT_WARN ]
315379 then
316- echo WARN: this is taking longer than expected
380+ echo -n " WARN: this is taking longer than expected"
317381 fi
318382 done
319- echo " "
383+ echo " "
320384 echo -n " Waiting for openshift-base-volume to be deleted"
321385 counter=0
322386 while :
@@ -330,11 +394,11 @@ cleanup() {
330394 fi
331395 if [ $counter -gt $TIMEOUT ]
332396 then
333- echo ERROR: something went wrong - check console
397+ echo " ERROR: something went wrong - check console"
334398 exit 1
335- elif [ $counter -gt $TIMEOUT_WARN ]
399+ elif [ $counter -eq $TIMEOUT_WARN ]
336400 then
337- echo WARN: this is taking longer than expected
401+ echo -n " WARN: this is taking longer than expected"
338402 fi
339403 done
340404 echo " "
@@ -349,6 +413,7 @@ post-install-config 2>&1 | tee -a ${LOGFILE}
349413post-install-admin-tasks 2>&1 | tee -a ${LOGFILE}
350414create-images 2>&1 | tee -a ${LOGFILE}
351415post-install-user-tasks 2>&1 | tee -a ${LOGFILE}
416+ # Commenting out the following functions intentionally to avoid local image cache creation in /var/lib/nova/instances
352417# build-instances 2>&1 | tee -a ${LOGFILE}
353418# source /root/keystonerc_${USERNAME}
354419# if nova list | grep ERROR
0 commit comments