[RFE] Collect deployment logs from IPA
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Ironic |
Fix Released
|
Wishlist
|
Lucas Alvares Gomes | ||
ironic-python-agent |
Fix Released
|
Wishlist
|
Lucas Alvares Gomes |
Bug Description
Link to the spec: https:/
Problem
-------
Currently, there are few ways to access the logs from the IPA ramdisk when a deployment fails. None of the ways are easy to use or is intended to be used in production, e.g:
One could have a console session opened and watch the logs there. While this works, it's hard to use because we don't know which node will be pick by the scheduler at deployment time. Also, not all drivers do support console.
Another way is to disable powering off a node upon a deployment failure [0]. This method has some problems per-si:
0) It does not work in conjunction with nova, nova will call destroy() on the virt driver upon a failure which will power the node off in Ironic.
1) Leaving the nodes powered on after a failure is not desirable in some deployments.
Proposal
--------
This RFE introduces the work to retrieve the IPA system logs via its API and upload it to Swift.
Changes in IPA
~~~~~~~~~~~~~~
A new extension called "log" would be added to IPA, this extension will introduce a new command called "collect_
The logs will be collected from journald and if not present we should fallback and get the logs from the /var/log/* folder as well as dmesg and so on.
Changes in Ironic
~~~~~~~~~~~~~~~~~
The new IPA method will be be invoked upon a node deployment failure, if the command is not supported a warning message will be logged to alert the operator about it.
Two new configuration options will be added to Ironic:
0) "agent_
1) "agent_
Changed in ironic: | |
assignee: | nobody → Lucas Alvares Gomes (lucasagomes) |
importance: | Undecided → Wishlist |
tags: | added: rfe |
description: | updated |
Changed in ironic: | |
status: | New → Confirmed |
Changed in ironic-python-agent: | |
status: | New → Confirmed |
status: | Confirmed → In Progress |
Changed in ironic-python-agent: | |
status: | In Progress → Fix Released |
Would there be a possibility to avoid providing IPA with credentials? Ironic currently gives IPA a tempurl for image download via Swift and uses unauthenticated means of doing the lookup and heartbeat.
Is there a possibility to provide a tempurl to upload a Swift object?
Could Ironic query IPA for it's logs and upload that to Swift or simply log it itself, avoiding Swift? What amount of logs are we looking at?