F5Networks / f5-appsvcs-extension

F5 BIG-IP Application Services 3 Extension
Apache License 2.0
163 stars 52 forks source link

Declaration deployment produces an non-descriptive error message "betaOptions"! #830

Closed jewettg closed 1 month ago

jewettg commented 1 month ago

Environment

Summary

I have F5 support also looking into this with case 00601595. Strange "betaOptions" error presented with no other context to indicate what the failure is, when submitting the declaration. I am using the Ansible module to deploy the declaration as follows:

- name: "Deploy AS3 configuration to tenant"
  f5networks.f5_bigip.bigip_as3_deploy:
    content: "{{ gh_content }}"
    tenant: Common

Steps To Reproduce

Steps to reproduce the behavior:

  1. Submit the following declaration:
    
    {
    "class": "ADC",
    "schemaVersion": "3.37.0",
    "id": "urn:uuid:e8721eba-8d92-4b3d-a8fa-04effbcc7bc3",
    "label": "Converted Declaration",
    "remark": "Generated by Automation Config Converter",
    "Common": {
        "class": "Tenant",
        "Shared": {
            "class": "Application",
            "template": "shared",
            "five_alive_80_vs": {
                "remark": "fivealive-n",
                "layer4": "tcp",
                "iRules": [
                    {
                        "use": "/Common/Shared/five_alive_ir"
                    }
                ],
                "translateServerAddress": true,
                "translateServerPort": true,
                "class": "Service_HTTP",
                "profileHTTP": {
                    "use": "/Common/Shared/std_http_prof",
                    "bigip": "/Common/tcp"
                },
                "profileTCP": {
                    "bigip": "/Common/tcp"
                },
                "virtualAddresses": [
                    "146.6.219.130"
                ],
                "virtualPort": 80,
                "snat": "none"
            },
            "std_http_prof": {
                "unknownMethodAction": "allow",
                "insertHeader": {
                    "name": "nsclientip",
                    "value": "[IP::remote_addr]"
                },
                "xForwardedFor": true,
                "proxyType": "reverse",
                "class": "HTTP_Profile"
            },
            "five_alive_ir": {
                "class": "iRule",
                "iRule": {
                    "base64": "d2hlbiBIVFRQX1JFUVVFU1QgewogICAgSFRUUDo6cmVzcG9uZCAyMDAgLXZlcnNpb24gYXV0byBjb250ZW50IHsKICAgICAgICA8aHRtbD4KICAgICAgICAgICAgPGhlYWQ+CiAgICAgICAgICAgICAgICA8dGl0bGU+CiAgICAgICAgICAgICAgICAgICAgU3VjY2VzcyEKICAgICAgICAgICAgICAgIDwvdGl0bGU+CiAgICAgICAgICAgIDwvaGVhZD4KICAgICAgICAgICAgPGJvZHk+CiAgICAgICAgICAgICAgICBZb3UgZm91bmQgdXMhCiAgICAgICAgICAgIDwvYm9keT4KICAgICAgICA8L2h0bWw+CiAgICB9Cn0="
                }
            }
        }
    }
    }

2. Observe the following error response:
```json
fatal: [f5-r5900-test-a.its.utexas.edu]: FAILED! => {
    "changed": false,
    "module_stderr": "'betaOptions'",
    "module_stdout": "",
    "msg": "MODULE FAILURE\nSee stdout/stderr for the exact error"
}

Expected Behavior

Deployment of configuration to succeed.

Actual Behavior

An odd and and very non-descriptive error message "betaOptions" is presented upon declaration deployment attempt.

jewettg commented 1 month ago

UPDATE

This appears to be behavior introduced in 3.50.x versions. The above "betaOptions" error appears in both 3.50.1-2 and 3.50.2-3.

Upon downgrading the AS3 package on my F5 to version (3.49.0-6), the error message is no longer presented and the declaration deploys successfully.

QUESTION remains, what does "betaOptions" mean, and why is that a valid error message?

mdditt2000 commented 1 month ago

@jewettg we introduced beta options for Per-APP-API. However Per-App API went GA is version 50.

If you GET https://10.192.75.63:443/mgmt/shared/appsvcs/settings using pre as3-50 you will see betaOptions. Post 3-50 you now see

{ "asyncTaskStorage": "data-group", "perAppDeploymentAllowed": true, "burstHandlingEnabled": false, ---- Replaced beta options. "performanceTracingEnabled": false, "performanceTracingEndpoint": "", "serializeFileUploads": false, "serviceDiscoveryEnabled": true, "webhook": "" }

mdditt2000 commented 1 month ago

@jewettg remove line 25 "bigip": "/Common/tcp" from HTTP Profile. Works fine on AS3 50.

image

Closing issue