F5Networks / f5-appsvcs-extension

F5 BIG-IP Application Services 3 Extension
Apache License 2.0
164 stars 53 forks source link

add option to ignore changes to the value of adminState in the Pool_Member class #698

Open person50002 opened 1 year ago

person50002 commented 1 year ago

Is your feature request related to a problem? Please describe.

We have many applications owners for whom we only give access to enable and disable pool members of their applications, all other configuration is done by the networking department. We would like give these application owners the ability to enable and disable pool members of their application without AS3 by using the TMUI. It would be very difficult to train them all how to commit changes to version control and deploy their changes. We would rather configure everything else using AS3 and leave the adminState to whatever is configured on the BigIP. The problem is that when we deploy the AS3 declaration, AS3 will overwrite whatever the application owner has configured on the BigIP.

Describe the solution you'd like

We would like something similar to the ignoreChanges option that is already implemented on many AS3 classes like Access_Profile, Certificate_passphrase and Data_Group. When this option is set to true, the value of the adminState key should only be applied if the pool member is being added for the first time to BigIP, but if the pool member is already present on the BigIP, the value configured in the AS3 declaration should be ignored and the value configured on the BigIP should be left alone.

Describe alternatives you've considered

One alternative would be, to add a feature to the FAST templating engine, to provide the address of the BigIP, query the BigIP for the current value of adminState and use that to render the AS3 declaration.

Additional context

Although this feature would violate the idempotency pattern, the alternative would be that we will not be able to utilize AS3 at all.

person50002 commented 1 year ago

One possible solution would be to use "addressDiscovery" (https://clouddocs.f5.com/products/extensions/f5-appsvcs-extension/latest/declarations/discovery.html), but it does not provide Priority group functionality.