f5-declarative-onboarding icon indicating copy to clipboard operation
f5-declarative-onboarding copied to clipboard

DO does not remove DbVariables from TMOS when a DB var is removed from the declaration

Open megamattzilla opened this issue 2 years ago • 3 comments

Environment

  • Declarative Onboarding Version: 1.31
  • BIG-IP Version: 15.1.5.1

Summary

DO does not remove DbVariables from TMOS when a DB var is removed from the declaration.

Steps To Reproduce

Steps to reproduce the behavior:

  1. Observe current db var value:
(tmos)# list sys db merged.method
sys db merged.method {
    value "fast_merge"
}

Then Submit the following declaration:

        "dbvars": {
            "class": "DbVariables",
            "setup.run": false,
            "kernel.pti": "disable",
            "provision.1nicautoconfig": "disable",
            "provision.extramb": 2048,
            "provision.tomcat.extramb": 20,
            "restjavad.useextramb": true,
            "merged.method": "slow_merge",
            "ui.advisory.enabled": true,
            "ui.advisory.color": "red",
            "ui.system.preferences.recordsperscreen": "250",
            "ui.advisory.text": "{{ inventory_hostname }} - ext_ip:{{ hostvars[inventory_hostname].ipv4_extaddress }} int_ip:{{ hostvars[inventory_hostname].ipv4_intaddress }} - Managed by Automation!"
        }
  1. Declaration is successful. DB var change can be confirmed via TMSH:
(tmos)# list sys db merged.method
sys db merged.method {
    value "slow_merge"
}
  1. Submit declaration with DB var merged.method removed:
        "dbvars": {
            "class": "DbVariables",
            "setup.run": false,
            "kernel.pti": "disable",
            "provision.1nicautoconfig": "disable",
            "provision.extramb": 2048,
            "provision.tomcat.extramb": 20,
            "restjavad.useextramb": true,
            "ui.advisory.enabled": true,
            "ui.advisory.color": "red",
            "ui.system.preferences.recordsperscreen": "250",
            "ui.advisory.text": "{{ inventory_hostname }} - ext_ip:{{ hostvars[inventory_hostname].ipv4_extaddress }} int_ip:{{ hostvars[inventory_hostname].ipv4_intaddress }} - Managed by Automation!"
        }

Expected Behavior

Declaration successful and DB var merged.method is reverted to value "fast_merge".

Actual Behavior

Declaration successful and DB var merged.method is still modified value "slow_merge".

The DB var should get reverted to the TMOS default value.

megamattzilla avatar Oct 27 '22 16:10 megamattzilla

I did notice if the entire class "DbVariables" is removed from the declaration (along with all db vars)- all db vars revert to TMOS default values. It seems they will get rolled back properly, but only when the entire class is removed.

megamattzilla avatar Oct 27 '22 16:10 megamattzilla

It seems the behavior is that the declaration looks at the class level and not and sub-levels.

According to the F5 Docs, these variables should be set to default if not declared. See comment on related issue: https://github.com/F5Networks/f5-declarative-onboarding/issues/328#issuecomment-1293905910

Important: No matter what you send in a subsequent declaration, BIG-IP Declarative Onboarding will never unlicense a BIG-IP device, it will never delete a user, and it never break the device trust once it has been established.

It does not mention dbvars.

barakbd avatar Oct 27 '22 21:10 barakbd

Jira AUTOTOOL-3547

mdditt2000 avatar Nov 01 '22 19:11 mdditt2000