Lazy set combined with $(error) will fail a recipe nicely if the user hasn’t provided the value for the var
REQUIRED_VAR = $(error Please supply a value for REQUIRED_VAR)
envsubst
Kickstart default template tries to install puppet-agent package in the %packages section, but the http://yum.puppetlabs.com/fedora/f27/PC1/x86_64/ repo which is set up in the kickstart file only contains puppetlabs-release-pc1.
It looks like only Puppet 5 is supported on FC27. Puppet 5 repo package is available via different URL: http://yum.puppetlabs.com/puppet5/fedora/27/x86_64/ and name: puppet-release
There is no right or wrong, just preferences
Well designed CLI interface: ./concourse web --help
Do not use bond-slave, team-slave or bridge-slave as values for the connection.type property. These always default to to 802-3-ethernet connection types. Set specific type (802-3-ethernet or wifi, etc) and the connection.master and connection.slave-type properties instead.