terraform-provider-bigip
terraform-provider-bigip copied to clipboard
Changes to a custom PARENT profile values and not pushed on to CHILD profile
We have a use case where in we build custom PARENT profiles for different applications/setup. These parent profiles are then inherited by CHILD profiles, which are applied to VIPs.
OBSERVED ISSUE: Whenever a custom resource attribute is changed from default value using TF provider, this causes all the check-boxes in the LTM GUI to be set. Ideally only the custom value that is changed should have the check-box ticked.
For e.g. I built a custom profile "PFL_FL4_OBO_EVAL" which inherits config from another custom PARENT PROFILE "PFL_FL4_OBO_PARENT"

This is how the config looks like in LTM GUI,

If you notice, the "CUSTOM" check-box is selected for all the parameters. F5 recommends that only values that need to be changed/modified from the custom values should be set with a check mark. Having all boxes check affects performance as well.
For my use case, since "PFL_FL4_OBO_EVAL" is inheriting attributes from custom PARENT PROFILE "PFL_FL4_OBO_PARENT", the config should look like this,

Another issue observed, is that the change in parent profile does not reflect in the CHILD, if all the custom attributes are "CHECKED"
For , e.g. I change the idle_timeout value to chage from "300" to 301. Resource config and TF plan output below

Changes are applied on the LTM, however, "idle_timeout" value is not inherited by the child profile.

`
If remove the custom checkbox manually in GUI, I see that the attribute has been inherited.

It's observed in other profiles too( fasthttp,http2), but in some profiles ( like tcp, ssl ) custom attributes are checked only in parent , not in child with the proper inheritance.
It is important to keep in mind that Terraform itself is declarative, so the concept of having a parent objective drive inheritance can cause some anti-patterns.
Tracking via multiple backlog items TER.
with v1.3.2, the resource bigip_ltm_profile_fastL4 is fixed. We will keep working on the different profiles over the following releases
Over the last few releases we have fixed several other resources:
v.1.6.0 bigip_ltm_persistence_profile_srcaddr bigip_ltm_persistence_profile_cookie
v1.5.0 bigip_ltm_profile_oneconnect bigip_ltm_profile_httpcompress
v1.4.0 bigip_ltm_profile_http2 bigip_ltm_profile_tcp
looks like in v1.6.0 bigip_ltm_profile_client_ssl is also fixed