On-Demand Services SDK v0.15

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.

On Demand Broker log files in `/var/vcap/sys/log/broker/*` will be truncated when the broker process restarts via Monit. If you have syslog forwarding configured there should be no impact. Reccomendation is to upgrade to ODB 0.17.0 to resolve this issue.

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