diff --git a/Dockerfile.dapper b/Dockerfile.dapper index ba0c4d7fc..0bf4eb822 100644 --- a/Dockerfile.dapper +++ b/Dockerfile.dapper @@ -24,6 +24,7 @@ RUN echo "Acquire::http { Proxy \"$APTPROXY\"; };" >> /etc/apt/apt.conf.d/01prox libselinux1-dev \ locales \ module-init-tools \ + mtools \ openssh-client \ pkg-config \ qemu \ diff --git a/scripts/run b/scripts/run index db0a51b1b..b393ee140 100755 --- a/scripts/run +++ b/scripts/run @@ -250,8 +250,10 @@ if [ "$QIND" != "1" ]; then CLOUD_CONFIG_DISK="-cdrom ${BASE}/state/configdrive.iso" ;; fat) - echo "TODO: implement a vfat formated qemu img & copy the config files into it" - exit 1 + truncate --size 2M ${BASE}/state/configdrive.img + mkfs.vfat -n config-2 ${BASE}/state/configdrive.img + mcopy -osi ${BASE}/state/configdrive.img ${CCROOT}/* :: + CLOUD_CONFIG_DISK="-hdb ${BASE}/state/configdrive.img" ;; *) CLOUD_CONFIG_DISK="-fsdev local,security_model=passthrough,readonly,id=fsdev0,path=${CCROOT} \ diff --git a/tests/cloud_init_test.go b/tests/cloud_init_test.go index 756a4254c..a83f854e0 100644 --- a/tests/cloud_init_test.go +++ b/tests/cloud_init_test.go @@ -28,3 +28,13 @@ func (s *QemuSuite) TestIsoCloudConfig(c *C) { s.CheckCall(c, `ls .ssh/authorized_keys`) } + +func (s *QemuSuite) TestFatCloudConfig(c *C) { + runArgs := []string{ + "--fresh", + "--cloud-config-fat", + } + s.RunQemuWith(c, runArgs...) + + s.CheckCall(c, `ls .ssh/authorized_keys`) +}