Remove cf_service_binding non implemented resource doc #60
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Removal of
cf_service_binding
resource which is not implemented and whose support is currently in cf_app.service_binding resourceAs discussed during weekly meeting on Feb 26th implementing a
cf_service_binding
resource would create the following problems:1- cf_app.service_binding resource would overlap with the cf_service_binding resource.
As a result, two TF resources are potentially competing to manage the same CF resource, leading to race conditions.
I searched for definitive guidance over such syntaxic sugar practices in resource modeling and ran so far in hashicorp/terraform#2957 (comment)
hashicorp/terraform#2081 (comment)
There seems to have examples of such overlapping modeling in the AWS reference provider, e.g. https://www.terraform.io/docs/providers/aws/r/elb_attachment.html or https://www.terraform.io/docs/providers/aws/r/autoscaling_attachment.html and hint users with:
We would therefore have to warn users about conflict between the two syntaxes.
2- Lack of orchestration between cf_service_binding and cf_app
The cf_service_binding resource can not be created before the app, and an app can not have an explicit depends_on to the service binding in order to avoid a restaging.
This comes down to the desired app state and orchestration.
Similar work in progress on AWS instance
hashicorp/terraform-provider-aws#569
This could for instance require the cf_service_binding to restage an app upon modification of the cf_service_binding (which may trigger race condition with the independent update of the cf_app resource)
3- Duplicated code and its maintenance.
Duplicated code implies work and feature mismatch e.g. #31
The following upcoming OSB API/ CF API changes might increase the maintenance cost of the overlapping modeling, and duplicated code between cf_app.service_binding and cf_service_binding