#!/bin/sh -ex
# /!\ This requires sudo to import the intermediate lxd image

# FIXME: metadata.yaml should be generated on the fly -- vila 2021-12-29

# This script creates an amazonlinux image with tweaks to make it usable with
# byov
ROOT_DIR=$(readlink -f $(dirname $(dirname $0)))
echo root dir: $ROOT_DIR
RELEASE=2
ARCH=amd64
LXD_ARCH=x86_64
VM=amazon-$RELEASE-$ARCH
YUM_OPTIONS="-y -t"
PACKAGES="openssh-server cloud-init"
IMAGE=amazonlinux/$RELEASE/$ARCH
EXEC="lxc exec $VM -- "
lxc delete --force $VM || true
dir=$(mktemp -d -q) && {
    lxc image export images:amazonlinux/$ARCH $dir
    tar Jcf $dir/meta.xz -C $ROOT_DIR/images/amazonlinux/ metadata.yaml templates
    sudo lxc image import $dir/meta.xz $dir/rootfs.squashfs --alias tmp-al2 -v
}
rm -fr $dir
lxc launch tmp-al2 $VM
$EXEC amazon-linux-extras install epel -y
$EXEC yum upgrade
$EXEC yum install $YUM_OPTIONS $PACKAGES
$EXEC systemctl enable sshd.service
file=$(mktemp -q) && {
    cat <<EOC > $file
# Generated by byov at $(date)
datasource_list: [NoCloud, None]
EOC
lxc file push --mode 644 $file $VM/etc/cloud/cloud.cfg.d/99_byov.cfg
}
rm -f $file
lxc stop --force $VM
lxc image delete $IMAGE || true
lxc publish $VM --alias $IMAGE --public
lxc delete $VM
lxc image delete tmp-al2
