9d3de26fb1
The kickstart template is supplied by the user and it needs to be validated to make sure it includes all the expected variables and nothing else. We validate the template by rendering it using expected variables. If any of the expected variables are not present in the template or unexpected variables are defined in the template we raise InvalidKickstartTemplate exception Once we render the template into kickstart file we pass the file to 'ksvalidator' tool if it is present on the system to validate the rendered kickstart file for correctness. 'ksvalidator' tool comes from pykickstart libarary and it is GPLv2 licensed. GPLv2 license is incompatible with Openstack. So we do not explicitly include the library in requirements.txt instead rely on it being pre-existing on the conductor. If the 'ksvalidator' binary is not present on the system, kickstart validation will be skipped Change-Id: I3e040bbdbcefb8764c93355d0ba7179e2110b9c6
42 lines
1.5 KiB
Cheetah
42 lines
1.5 KiB
Cheetah
lang en_US
|
|
keyboard us
|
|
timezone UTC --utc
|
|
#platform x86, AMD64, or Intel EM64T
|
|
text
|
|
cmdline
|
|
reboot
|
|
selinux --enforcing
|
|
firewall --enabled
|
|
firstboot --disabled
|
|
|
|
bootloader --location=mbr --append="rhgb quiet crashkernel=auto"
|
|
zerombr
|
|
clearpart --all --initlabel
|
|
autopart
|
|
|
|
# Downloading and installing OS image using liveimg section is mandatory
|
|
liveimg --url {{ ks_options.liveimg_url }}
|
|
|
|
# Following %pre, %onerror and %trackback sections are mandatory
|
|
%pre
|
|
/usr/bin/curl -X PUT -H 'Content-Type: application/json' -H 'Accept:application/json' -d '{"agent_token": {{ ks_options.agent_token }}, "agent_status": "start"}' {{ ks_options.heartbeat_url }}
|
|
%end
|
|
|
|
%onerror
|
|
/usr/bin/curl -X PUT -H 'Content-Type: application/json' -H 'Accept:application/json' -d '{"agent_token": {{ ks_options.agent_token }}, "agent_status": "Error: Deploying using anaconda. Check console for more information."}' {{ ks_options.heartbeat_url }}
|
|
%end
|
|
|
|
%traceback
|
|
/usr/bin/curl -X PUT -H 'Content-Type: application/json' -H 'Accept:application/json' -d '{"agent_token": {{ ks_options.agent_token }}, "agent_status": "Error: Installer crashed unexpectedly."}' {{ ks_options.heartbeat_url }}
|
|
%end
|
|
|
|
# Sending callback after the installation is mandatory
|
|
%post
|
|
/usr/bin/curl -X PUT -H 'Content-Type: application/json' -H 'Accept:application/json' -d '{"agent_token": {{ ks_options.agent_token }}, "agent_status": "success"}' {{ ks_options.heartbeat_url }}
|
|
%end
|
|
|
|
# config_drive is an extra variable and should raise an exception
|
|
%post
|
|
{{ config_drive }}
|
|
%end
|