Skip to content

Consistent service offering/plans guid across restarts #71

@gberche-orange

Description

@gberche-orange

Expected behavior

As an overview-broker user deployed in cloudfoundry

  • in order to support application restarts while still serving incoming OSB requests
  • I need that offering/plans guid to not change across application restarts

Observed behavior

Following e11bba2 the uuids are randomly generated at application restart.

Consequently, if the overview broker was registered in cloudfoundry the following errors will be observed

  • service instance provisionning requests fail with message Could not find service 895749e2-8543-4f9d-8134-3a71b4a388c4, plan 8fb7951a-f309-496a-89b2-7cbdec5a3dcc
  • if there are existing service instances, errors will occur while trying to deprovision them with message Could not find service 895749e2-8543-4f9d-8134-3a71b4a388c4, plan 8fb7951a-f309-496a-89b2-7cbdec5a3dcc
  • if the broker registration in cloudfoundry is requested, then it fails with the following message, because the services are already registered with a same name but distinct ids
Server error, status code: 502, error code: 270012, message: Service broker catalog is invalid: 

Service names must be unique within a broker. Services with names ["overview-service"] already exist

Workaround

Systematically perform a cf purge-service-offering -f overview-service -b overview-broker prior to execute a cf update-service-broker

Suggested fix

  • Use consistent hash (e.g. md5) from names (respectively service name and service plan name) as Guids
  • Add an opt-in (e.g. OSB_GUID_OFFSET) which adds an offset to the consistent hash, enabling registration of multiple overview broker instances in K8S svcat (CF support multi service registration out of the box)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions