2015-12-09 15:48:45 |
Ryan Beisner |
description |
OS-charms should check for expected services/processes before setting workload status to a ready state.
As of the 15.10 charms, workload status can be set to "Unit is Ready," even when a critical service has failed to start.
Taking it one step further: a hook should probably fail in those cases.
I've observed bug leaks in the following, where this type of sanity check within the charm would have raised red flags before charm commits or SRUs:
- nova-compute
- swift-*
- rabbitmq-server
This is targeted to the nova-compute charm for initial discussion. However, all OpenStack charms should be considered for this enhancement. |
OS-charms should check for expected services/processes before setting workload status to a ready state.
As of the 15.10 charms, workload status can be set to "Unit is Ready," even when a critical service has failed to start.
Taking it one step further: a hook should probably fail in those cases.
I've observed bug leaks in the following, where this type of sanity check within the charm would have raised red flags before charm commits or SRUs:
- nova-compute
- swift-*
- rabbitmq-server
This also impacts automation and testability of our charms in that:
1. The amulet tests, mojo spec tests, and other tests, wait for the charm to advertise "I'm Ready" via workload status before commencing tests. Service checks in the Amulet tests will catch this leak, but other functional tests which may not inspect or exercise all relevant processes may not catch it.
2. Systems of automation, such as autopilot, mojo specs, and generic bundle deployment would be better-served by early failure, ie. a failed hook or a not-ready service, before moving on to next steps of the deployment automation.
This is targeted to the nova-compute charm for initial discussion. However, all OpenStack charms should be considered for this enhancement. |
|