aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClark Laughlin <clark.laughlin@linaro.org>2015-04-15 10:57:34 +0000
committerClark Laughlin <clark.laughlin@linaro.org>2015-04-15 10:57:34 +0000
commit65de60875c35ac427d3637abeecfae7d8e94165c (patch)
tree7838fbbebc4785708ed38d98e78cf5d5bbe0141e
parente260729b381233b93692115db7c538ba53c9b519 (diff)
add support to upload arm64 image
-rwxr-xr-xcloud-deploy/6-upload-image.sh8
-rw-r--r--cloud-deploy/import-image-parts.sh38
2 files changed, 45 insertions, 1 deletions
diff --git a/cloud-deploy/6-upload-image.sh b/cloud-deploy/6-upload-image.sh
index 566eca9..7324c7c 100755
--- a/cloud-deploy/6-upload-image.sh
+++ b/cloud-deploy/6-upload-image.sh
@@ -1,2 +1,8 @@
-juju ssh nova-cloud-controller/0 ". ./stackrc ; wget http://cloud-images.ubuntu.com/trusty/current/trusty-server-cloudimg-amd64-disk1.img ; glance image-create --name=trusty_amd64 --disk-format=qcow2 --container-format=ovf --progress --is-public=True < trusty-server-cloudimg-amd64-disk1.img ; rm trusty-server-cloudimg-amd64-disk1.img"
+juju ssh nova-cloud-controller/0 "sudo apt-get install -y cloud-image-utils"
+juju scp import-image-parts.sh nova-cloud-controller/0:~
+#upload amd64 image
+#juju ssh nova-cloud-controller/0 ". ./stackrc ; wget http://cloud-images.ubuntu.com/trusty/current/trusty-server-cloudimg-amd64-disk1.img ; glance image-create --name=trusty_amd64 --disk-format=qcow2 --container-format=ovf --progress --is-public=True < trusty-server-cloudimg-amd64-disk1.img ; rm trusty-server-cloudimg-amd64-disk1.img"
+
+#upload arm64 image
+juju ssh nova-cloud-controller/0 ". ./stackrc ; bash -x ./import-image-parts.sh arm64"
diff --git a/cloud-deploy/import-image-parts.sh b/cloud-deploy/import-image-parts.sh
new file mode 100644
index 0000000..6b33e8d
--- /dev/null
+++ b/cloud-deploy/import-image-parts.sh
@@ -0,0 +1,38 @@
+#!/bin/bash
+
+ARCH=${1}
+
+cd "$(mktemp -d)"
+
+IMAGE_NAME=trusty_${ARCH}
+IMAGE_URL=http://cloud-images.ubuntu.com/trusty/current/trusty-server-cloudimg-${ARCH}.tar.gz
+
+wget --progress=dot -e dotbytes=10M -O uec.tar.gz $IMAGE_URL
+
+mkdir uec && cd uec && tar xfz ../uec.tar.gz
+
+KERNEL=$(for f in "./"*-vmlinuz* "./"aki-*/image; do
+ [ -f "$f" ] && echo "$f" && break; done; true)
+IMAGE=$(for f in "./"*.img "./"ami-*/image; do
+ [ -f "$f" ] && echo "$f" && break; done; true)
+
+IMG_PROPERTY=" --property hw_machine_type=virt --property hw_cdrom_bus=virtio"
+
+sudo mount-image-callback --verbose $IMAGE -- sh -xc 'cp -v $MOUNTPOINT/boot/initrd* . && chmod ugo+r initrd*' || true
+
+if [ -e initrd* ]; then
+ RAMDISK_ID=$(glance image-create --name "$IMAGE_NAME-ramdisk" --is-public True --container-format ari --disk-format ari < initrd* | grep ' id ' | awk -F'[ \t]*\\|[ \t]*' '{ print $3 }')
+ IMG_PROPERTY="$IMG_PROPERTY --property ramdisk_id=$RAMDISK_ID"
+ COMMANDLINE="root=LABEL=cloudimg-rootfs rw rootwait console=ttyAMA0"
+else
+ COMMANDLINE=""
+fi
+
+KERNEL_ID=$(glance image-create --name "$IMAGE_NAME-kernel" --is-public True --container-format aki --disk-format aki < "$KERNEL" | grep ' id ' | awk -F'[ \t]*\\|[ \t]*' '{ print $3 }')
+IMG_PROPERTY="$IMG_PROPERTY --property kernel_id=$KERNEL_ID"
+IMAGE_UUID=$(glance image-create --name "${IMAGE_NAME}" $IMG_PROPERTY --is-public True --container-format ami --disk-format ami < "${IMAGE}" | grep ' id ' | awk -F'[ \t]*\\|[ \t]*' '{ print $3 }')
+
+if [ -n "$COMMANDLINE" ]; then
+ glance image-update $IMAGE_UUID --property os_command_line="$COMMANDLINE"
+fi
+