It should be easy for the users to create customized images, that may for e.g. non-Debian packages or configurations.
User should use the same tools for their customized images as Debian will use for the official ones. IMO putting configuration into packages (as Neil suggests) is not an option, since we should not force users to learn how to put config into packages and build deb packages. Since official images should only contain things from main, it must be very easy to create images that do include things outside from main. Maybe we could already provide some examples of "non-free" configs including useful cloud stuff, but we do not use or enable this config when building the official images. I've looked at some existing tools and often configuration data and code was not separated cleanly. IMO this is a very important feature that is needed, so users (they are not developers) can create their own customized configuration and their own image without changing the code. I also prefer a mixture of low level changes (like adding package name, changing a user account name, timezone, locale) and high level changes. A configuration item on a high level could be to customized an image to become a LAMP server (adding packages and special config files) or to create a image for a software developer machine (including a lot of packages like compilers, debugger,...). A config that customized an image to be different from Debian d-i to better fit into a GCE, EC2, Azure or openstack environment should also be a high level config option that can be enabled/disabled or added. Some tools implemented such things as plugin/task/hook/provider or are called similar. -- regards Thomas
