diff --git a/elements/cloud-init-growpart-lvm/README.rst b/elements/cloud-init-growpart-lvm/README.rst new file mode 100644 index 0000000..8391807 --- /dev/null +++ b/elements/cloud-init-growpart-lvm/README.rst @@ -0,0 +1,14 @@ +============= +cloud-init-growpart-lvm +============= + +This element enables growpart for OS images with LVM. +To enable this element simply include it in the elements list. + +* ``DIB_CLOUD_INIT_GROWPART_DEVICES`` list of partition names that needs to be + populated in order for cloud-init to grow it. Populating it is mandatory. + +Dependencies: +* ``/usr/bin/growpart`` is needed on the system in order to grow the partition. + However it is part of different packages depending on linux family. That + is already taken care of by package-installs. \ No newline at end of file diff --git a/elements/cloud-init-growpart-lvm/element-deps b/elements/cloud-init-growpart-lvm/element-deps new file mode 100644 index 0000000..53a079f --- /dev/null +++ b/elements/cloud-init-growpart-lvm/element-deps @@ -0,0 +1,2 @@ +pkg-map +package-installs diff --git a/elements/cloud-init-growpart-lvm/package-installs.yaml b/elements/cloud-init-growpart-lvm/package-installs.yaml new file mode 100644 index 0000000..46a7087 --- /dev/null +++ b/elements/cloud-init-growpart-lvm/package-installs.yaml @@ -0,0 +1 @@ +growpart_package: diff --git a/elements/cloud-init-growpart-lvm/pkg-map b/elements/cloud-init-growpart-lvm/pkg-map new file mode 100644 index 0000000..4bfbc20 --- /dev/null +++ b/elements/cloud-init-growpart-lvm/pkg-map @@ -0,0 +1,10 @@ +{ + "family": { + "redhat": { + "growpart_package": "cloud-utils-growpart" + }, + "debian": { + "growpart_package": "cloud-guest-utils" + } + } +} diff --git a/elements/cloud-init-growpart-lvm/post-install.d/55-growpart-lvm b/elements/cloud-init-growpart-lvm/post-install.d/55-growpart-lvm new file mode 100755 index 0000000..e4e20c4 --- /dev/null +++ b/elements/cloud-init-growpart-lvm/post-install.d/55-growpart-lvm @@ -0,0 +1,21 @@ +#!/bin/bash + +if [ ${DIB_DEBUG_TRACE:-1} -gt 0 ]; then + set -x +fi +set -euo pipefail + +if [[ -n ${DIB_CLOUD_INIT_GROWPART_DEVICES} ]]; then + if [ -d /etc/cloud/cloud.cfg.d ]; then + cat > /etc/cloud/cloud.cfg.d/55-growpart-lvm.cfg <