OS::Heat::SoftwareDeployment failed due SSL certificate verification error
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Heat |
Triaged
|
Medium
|
Unassigned | ||
os-collect-config |
Triaged
|
Medium
|
Unassigned |
Bug Description
When SSL is enforced, the resource OS::Heat:
#follow is the log
Aug 5 12:46:37 nnie-example-
Aug 5 12:46:37 nnie-example-
Aug 5 12:46:37 nnie-example-
In /etc/os-
[DEFAULT]
command = os-refresh-config
[cfn]
metadata_url = https:/
stack_name = nnie-example-
secret_access_key = 42ee9b138aaa47e
access_key_id = fdba6c55f1944ac
path = server.Metadata
Root cause: in python module requests, the default value for “verify” is set to True, which means to enforce the certificate check. But there is no certificate info in user_data, which is set by heat.
Question: is it expected that the certificate should be installed in VM beforehand? If so, heat needs to add certificate into user_data. Or is it reasonable to relax the certificate check for this type cases?
#source of heat/engine/
elif self.transport_
}
#source of os_collect_
try:
Regards,
Neil
Changed in heat: | |
assignee: | nobody → Rico Lin (rico-lin) |
Changed in heat: | |
status: | New → Triaged |
importance: | Undecided → Medium |
Changed in os-collect-config: | |
status: | New → Triaged |
importance: | Undecided → Medium |
Changed in heat: | |
assignee: | Rico Lin (rico-lin) → nobody |
Changed in heat: | |
assignee: | Abhishek Chanda (abhishek-i) → Steve Baker (steve-stevebaker) |
Changed in heat: | |
assignee: | Steve Baker (steve-stevebaker) → Rico Lin (rico-lin) |
Changed in heat: | |
status: | In Progress → Triaged |
Changed in heat: | |
assignee: | Rico Lin (rico-lin) → nobody |
Changed in heat: | |
milestone: | none → no-priority-tag-bugs |
This likely requires some coordination between heat and os-collect-config.
The absolute bare minimum would be for os-collect- config. conf [cfn] and [heat] to gain an 'insecure' option, and for heat to populate that from its own /etc/heat/heat.conf [clients_heat] insecure.
Beyond that, /etc/heat/heat.conf [clients_heat] also has options ca_file, cert_file, key_file. We would need security expert input on whether it is appropriate to populate boot user_data with the contents of these files to allow similar options to be set in os-collec- config. conf.
If this is appropriate then the heat user_data cloud-init items can include the contents of ca_file, cert_file, key_file and heat can also populate os-collect- config. conf with the resulting paths.
If this is not appropriate then os-collect-config will need to check for cert paths by convention, and the image building process needs to copy in those cert files.