almost a year ago did something similar to what you may be after, I face the same challenge and I end up using variables being passed to the KS
1- I used a wrapper script where the variables were captured and kept to be used later. User entry were hostname , IP, netmask, etc
2- the script dynamically creates the packer file including these variables, below is an example of the entry for the boot_command
"boot_command": [
"<tab> text inst.ks=http://{{user \`ks_server\`}}/{{user \`ks_path\`}}/{{user \`ks_file\`}} IP=`echo $_IP` NM=`echo $_NM` GW=`echo $_GW` HN=`echo $_HN` <enter><wait>"
3- Then I captured the /proc/cmdline to identify what the user has passed and based on that, build the machine
4- I then integrated the whole solution with Jenkins and each and everyone with the right permissions in Jenkins could spin up a CentOS server..
I reckon you can do something similar where you capture the version of the Linux you want to build and whatever other option you want to consider and build the machine based on this information..