a9s Deployment Updater Errand
This section describes the operation of the a9s Deployment Updater component.
The a9s Deployment Updater is intended to provide an automated way to update existing Service Instances, so that a all Service Instances can run with the latest version of the used BOSH releases, stemcell or cloud config.
Overview
The a9s Deployment Updater is a BOSH errand that is part of each a9s Data Service deployment manifest as a dedicated Instance Group. The a9s Deployment Updater errand is not executed automatically during a deploy of a a9s Data Service but it is executed upon operator's request after the deploy task has finished.
The a9s Deployment Updater relies on the a9s Service Broker that is part of each a9s Data Service deployment to receive a list of Service Instances that should be updated or recreated. For each of these Service Instances, the corresponding endpoint in the a9s Service Broker is then called to trigger the desired action.
Strategies
The a9s Deployment Updater supports two different strategies to update Service Instances of a given a9s Service Broker. When a strategy is chosen, the a9s Deployment Updater requests a list of Service Instances with a specified state and that are known by the configured a9s Service Broker.
Update
For each of these Service Instances an update is triggered at the a9s Service Broker, which in the end leads to a
bosh deploy
.
The Platform Operator can configure the a9s Deployment Updater to use a specific number of Service Instances as canaries to ensure that the update will run successfully. Additionally, the a9s Deployment Updater can be configured to run the Service Instance updates in parallel.
For more information, see Strategy Configuration - Update.
Error Handling
When updating the Service Instances, one or all of the following three errors can happen:
- The Application Developer has blocked automatic maintenance update: In this case the Service Instance is just skipped. These kind of Service Instances don't affect the success of the a9s Deployment Updater. The amount of affected Service Instances can be seen in the output of the BOSH errand. See also Allow Automatic Updates.
- The Service Instance could not be updated because of an ongoing operation for this Service Instance: Depending on the configuration, the a9s Deployment Updater will reattempt to update the corresponding Service Instance once the others have been updated. In case the a9s Deployment Updater is not ultimately able to update all Service Instances, the a9s Deployment Updater will fail. The amount of affected Service Instances can be seen in the output of the BOSH errand. See also a9s Service Broker.
- An unspecified error occurred while updating the Service Instance: In such a case the a9s Deployment Updater will stop updating further Service Instances and finish the currently executing updates only. As soon as all ongoing updates are finished, the a9s Deployment Updater will fail. The amount of affected Service Instances can be seen in the output of the BOSH errand.
Recreate
For each of these Service Instances a recreate is triggered at the a9s Service Broker, which in the end leads to a
bosh recreate --fix
.
The strategy recreate
can be used for example if the Platform Operator wants to rotate the NATS certificates used by
the BOSH director and its agents.
For more information how to configure the recreate
strategy, see Strategy Configuration - Recreate.
The BOSH recreate command is executed with the option --fix
. This way a Service Instance with an unresponsive agent is
also recreated instead of erroring. For more information see the BOSH documentation.