Some initial thoughts on image repo layout for discussion
Layout:
-
Whole images of all the required types should be generated and stored in the repo
-
Images should be spliced and portions extracted so as to isolate specific FS
units (tables, trees, attributes, etc) -
images/
-
base/ basic images to test general components
- simple/
- localdev/
- invalid/
-
combined/ images w/ combined features of others (multiple partitions, fs’, etc)
-
virt/ images based on specific virt technologies
- qcow/
- vmware/
- rhevm/
- ms/
-
structures/
- part/ data structures related to specific partition types
- dos/
- mbrs/
- partitions/
- extended/
- gpt/
- headers/
- partitions/
-
fs/ data structures related to specific filesystem types
- ext3/
- superblocks/
- inodes/
- groups/
- directories/
- ext4/
- trees/
- fat/
- boot_sectors/
- directories/
- tables/
- iso9660/
- ntfs/
- attributes/
- files/
- mfts/
- ext3/
-
reiserfs/
-
xfs/
- superblocks/
- inodes/
- directories/
- trees/
-
application/ images with application specific content
- systems/ operating systems
- services/ sysvinit & systemd services
- packages/ package system content
- userdata/ files and specific content
-
meta/ additional image & repo related metadata content
Strategy:
Write small tasks / utility library to:
- Generate filesystem layout locally
- Generate specified disk images, parameterized, making use of some sort of image descriptor representation (templates?)
- Extract specific content from disk images and write to fs
- Sync image content on remote server from local fs
- Sync image content in local fs from remote server
- Optionally generate image metadata & repo metadata to be pulled into other applications