Heat's implementation of Fn::Base64 is a pass-through, despite documentation to the contrary.
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Heat |
Fix Released
|
Medium
|
Qiming Teng |
Bug Description
I need to pass some data from a stack parameter to my user data. The data in the stack parameter may or may not contain whitespaces or carriage returns. In any case, I want the data to show up without breaking the yaml formatting of my userdata. It is silly to require that the value of the parameter know what yaml context it is going to be interpolated in, so the solution to this problem for AWS cloudformation would be to use Fn::Base64 to encode the data before stuffing it into the userdata.
"UserData": { "Fn::Base64", {"Fn::Join", [ "", [
"#cloud-init\n",
"runcmd:\n",
" - |\n",
" echo ",{"Fn::Base64": {"Ref": "InputParameter"}}, "| base64 -d > /etc/myfile.conf\n"
" EOF\n"
]]}}
Now, I understand that openstack does not like base64 encoded userdata, so if need be, I am happy to eliminate the outer Base64. The inner base64 is more important.
At the very least, UPDATE THE DOCUMENTATION TO SHOW THAT FN::BASE64 IS A PASSTHROUGH!!!!!
Changed in heat: | |
status: | New → Triaged |
importance: | Undecided → Medium |
Changed in heat: | |
milestone: | none → kilo-1 |
status: | Fix Committed → Fix Released |
Changed in heat: | |
milestone: | kilo-1 → 2015.1.0 |
Fix proposed to branch: master /review. openstack. org/137747
Review: https:/