Enable Plan Upgrades
This page describes the steps which are necessary to enable plan upgrades for both MariaDB and Redis.
Service plans consist of two different parts. The plan size and its SLA.
We currently have two SLA levels:
SLA changes can be configured separately and don’t need any of the setup described below.
We currently support five different plan sizes:
You can look at the corresponding Redis or MariaDB pages to see what these translate to. Plan size changes are only supported if the following setup has been done. Updates are only valid from smaller to bigger plan sizes. Shrinking a service instance isn’t supported.
The set of plan changes which are allowed can be configured on the Service Broker.
For example, if the Service Broker is configured to for example allow a plan change from
Since there’s no programmatic guards against invalid plan changes in place, users have to ensure they don’t allow invalid plan changes when configuring the Service Broker.
As the name should tell you the StatefulSet Resize Controller manages the resizing of StatefulSets. It needs to be deployed on every cluster running the actual service workload.
Whenever a StatefulSet is updated to request a larger persistent volume, the controller will scale down the StatfulSet, resize its volumes, move the existing data, and scale it back up.
The Crossplane composition need to support changing resource requirements of StatefulSets.
To expose the plan size upgrade capabilities as part of the Open Service Broker API, the feature needs to be explicitly enabled.
Plan size upgrades are only supported the
crossplane-service-broker v0.6.0 or higher and the
swisscom-service-broker v0.5.0 or higher.
The feature can be enabled by configuring the allowed plan size changes by setting the
OSB_PLAN_UPDATE_SIZE_RULES environment variable.
The environment variable takes a white-list of allowed plan size changes in the form of
xsmall>small|xsmall>medium, which would allow upgrades from
medium and deny all other plan size changes.
The list isn’t transitive, so it will deny changes from
It’s possible to allow changes to smaller plan sizes, for example
However, such changes aren’t valid and will fail to apply correctly.
This should only ever be enabled if both the StatefulSets Resize Controller deployment and the Composition update have been successful. Enabling plan upgrades at the broker, without these updates can lead to unexpected issues when trying to upgrade plan.
Both the SLA and plan size change rules are specified in a custom white-list format.
rule = rule|rule rule = plan>plan examples: planA>planB|planB>planC foo>bar planA>planB|plabB>planA|planC>planA
The list isn’t transitive.
That means the rule