ec2: Add support for using userdata_renderer to template userdata_file

This commit is contained in:
Erik Johnson 2017-03-31 10:55:42 -05:00
parent eddbd41265
commit be8d34c59b

View file

@ -1681,6 +1681,9 @@ def request_instance(vm_=None, call=None):
userdata_file = config.get_cloud_config_value(
'userdata_file', vm_, __opts__, search_global=False, default=None
)
userdata_renderer = config.get_cloud_config_value(
'userdata_renderer', vm_, __opts__, search_global=False, default=None
)
if userdata_file is None:
userdata = config.get_cloud_config_value(
'userdata', vm_, __opts__, search_global=False, default=None
@ -1694,7 +1697,11 @@ def request_instance(vm_=None, call=None):
if userdata is not None:
render_opts = __opts__.copy()
render_opts.update(vm_)
renderer = __opts__.get('renderer', 'yaml_jinja')
# Use the cloud profile's userdata_renderer, otherwise get it from the
# master configuration file.
renderer = __opts__.get('userdata_renderer', 'jinja') \
if userdata_renderer is None
else userdata_renderer
rend = salt.loader.render(render_opts, {})
blacklist = __opts__['renderer_blacklist']
whitelist = __opts__['renderer_whitelist']