On-Demand Services SDK Release Notes

v0.15.3 Release Notes

Minimum Version Requirements

  • BOSH 257+ (261+ for lifecycle errands) / BOSH lite v9000.131.0
  • CF 238+

Known Issues

On PCF for GCP deployments, Ops Manager service network VMs are not assigned the correct firewall rules. As a result, these VMs cannot communicate with the BOSH Director and service tiles that use the On-Demand Service Broker (ODB) fail to create service instances. As a workaround, if you are deploying a service network in GCP, modify your firewall to use subnet CIDR-based rules.

New Features

Service Instance Locking Before Upgrades

  • Operators can make any change to the service plan (stemcell, releases, properties) and the ODB will detect a pending-change. Once an instance has a pending change only the operator can upgrade it via the upgrade-all-service-instances errand. The CF user will be shown an error when they try to update an instance with pending-changes.
    • ODB only detects service instance deployment manifest changes, not Cloud Config or Runtime Config changes.
  • This feature protects application developers from accidently triggering an upgrade that might contain breaking changes.
  • The platform operator should still roll out the upgrade by using the upgrade errand.

Service Instance Lifecycle Errands

  • Lifecycle errands (post-deploy & pre-delete) for service instances deployments. Docs
    • Service authors can now add errands to their service instance deployments manifests.
    • Post-Deploy: Operators can configure the ODB to run an errand that is present in a service instance after a deployment.
    • Pre-Delete: Operators can configure the ODB to run an errand that is present in a service instance before a deployment is deleted.
    • If operators configure service instance lifecycle errands and the BOSH director is not v261+ then the ODB will fail to start.

Other Enhancements

  • For create/update/delete operations that fail, the cf user will now be presented with a detailed error message that includes: odb-request-id, service-name, service-instance-guid, bosh-task-id, operator-type.
    • This should allow for quicker debugging interactions between the app developer and the operator
  • Operator can enable/disable service access for plans or opt to manually manage service access. Docs
    • To disable service access, set plan.cf_service_access to disable - default is to enable.
    • To manually manage service access, set plan.cf_service_access to manual. You must then enable access via the cf cli.
  • Operators can set a global quota to limit the total number of service instances that can be created across all plans. Docs
    • To set a global quota, set service_catalog.global_quotas.service_instance_limit to the total number of instances (recommended maximum is 50 for support reasons).
  • Support null objects in the plan array. ODB still requires at least one plan to be configured.
  • Plans and VM extensions can now be configured with ~ or null to represent an unused plan. This is to work around OpsManager issues when using certain selectors.
  • Support “Cross Deploymentment Consumes Links” in the Go SDK [0.15.3]

Breaking Changes

  • latest no longer permitted as an accepted value for broker.service_deployment stemcell and release versions as exact versions are required for the new cf update-service ODB workflow.
  • generate-manifest is now called twice by the ODB as part of the update service instance lifecyle. This means generate-manifest should be a pure function when call with a manifest in previous-manifest-YAML argument, respecting any previously set arbitary parameters in the previous-manifest-YAML object.
  • active flag for plans has been replaced with cf_service_access. Docs
  • timeout_minutes removed from the delete-all-service-instances job spec.

Bug Fixes

  • Resolves issues with ODB upgrade/delete errands not being able to work with over 50 service instances [0.15.1]
  • pre-start no longer changes ownership of co-located jobs packages [0.15.2]
  • Lifecycle errands are transactionally safe when upgrading the on-demand broker [0.15.3]
  • Orphan deployment errand now exits non-zero when the errand detects orphans. This makes it useful in automation workflows [0.15.3]
  • Upgrade-all-service-instances now has summary messages on a single line, making them easily grep-able [0.15.3]
  • Handle null for vm_extensions array. OpsManager can provide a null value for this field.
  • Reject requests to modify instances that have ongoing BOSH operations.
  • Report ODB metrics for quotas when there are 0 service instances.
  • Return 410 when an instance no longer exists to allow CF’s orphan mitigation to cleanup unused instances.
  • Do not report that a create failed while a task is still in a cancelling state in BOSH.
Create a pull request or raise an issue on the source for this page in GitHub