kubernetes-retired / service-catalog

Consume services in Kubernetes using the Open Service Broker API
https://svc-cat.io
Apache License 2.0
1.05k stars 385 forks source link

Prevent users from updating ServiceInstance parameters if PlanUpdatable is false #1906

Closed luksa closed 6 years ago

luksa commented 6 years ago

There is an admission control plugin that prevents users from changing the plan on a ServiceInstance if PlanUpdatable is false, but it doesn't prevent them from changing the parameters. According to the OSB spec, when PlanUpdatable is false, the platform should not try to update the service instance:

If "plan_updateable": true is declared for a plan in the Catalog endpoint, the Platform MAY request an update of a Service Instance using the given plan. Otherwise, Platforms MUST NOT make an update request to the Service Broker for any Service Instance using the given plan.

In other words, PlanUpdatable doesn't just mean that the Plan on a ServiceInstance can't be updated. It means that the service instance (on the broker) should not be updated in any way.

n3wscott commented 6 years ago

In the table, the spec says:

Whether the service supports upgrade/downgrade for some plans.

It looks like https://github.com/openservicebrokerapi/servicebroker/blob/master/spec.md#updating-a-service-instance is just wrong.

luksa commented 6 years ago

I'm closing this, because updating parameters should be allowed even if PlanUpdatable is false. I've submitted a PR that fixes the spec: https://github.com/openservicebrokerapi/servicebroker/pull/519