Skip to content

Commit 011df01

Browse files
committed
Avoid downloading growpart
github is not exactly reliable these days. use sfdisk, which is also used by growpart internally Signed-off-by: Gaëtan Lehmann <gaetan.lehmann@vates.tech>
1 parent f167fd6 commit 011df01

1 file changed

Lines changed: 3 additions & 9 deletions

File tree

lib/vm.py

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -510,13 +510,7 @@ def detect_package_manager(self) -> PackageManagerEnum:
510510

511511
def grow_root_partition(self) -> int | None:
512512
if self.detect_package_manager() == PackageManagerEnum.APK:
513-
# growpart is not available in alpine 3.12
514-
# vm.ssh('apk add cloud-utils-growpart e2fsprogs-extra')
515-
self.ssh('apk add gawk util-linux e2fsprogs-extra')
516-
self.ssh(
517-
'wget https://raw.githubusercontent.com/canonical/cloud-utils/main/bin/growpart -O /usr/bin/growpart'
518-
)
519-
self.ssh('chmod +x /usr/bin/growpart')
513+
self.ssh('apk add util-linux e2fsprogs-extra')
520514
else:
521515
return None
522516
mount_output = self.ssh('mount').strip()
@@ -526,8 +520,8 @@ def grow_root_partition(self) -> int | None:
526520
if not typ.startswith('ext'):
527521
logging.debug(f"Unsupported filesystem: {typ}")
528522
return None
529-
growpart_returncode = self.ssh_with_result(f'growpart /dev/{disk} {partition}').returncode
530-
assert growpart_returncode in [0, 1] # growpart returns 1 if the size is already the expected one
523+
self.ssh(f'echo ", +" | sfdisk --no-reread --force -N {partition} /dev/{disk}')
524+
self.ssh(f'partx -u -n {partition}:{partition} /dev/{disk}')
531525
self.ssh(f'resize2fs /dev/{disk}{p}{partition}')
532526
df_output = self.ssh('df /')
533527
return int(df_output.splitlines()[-1].split()[3]) * KiB

0 commit comments

Comments
 (0)