F5Networks / f5-appsvcs-extension

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

Azure ScaleSet Discovery via BIG-IQ - validation error #547

Open nergalex opened 2 years ago

nergalex commented 2 years ago

Environment

Summary

Declaration OK to a BIG-IP but get an error via BIG-IQ for same declaration Same behavior using tagKey and tagValue keys in _PoolMember in spite of scaleset

Steps To Reproduce

Steps to reproduce the behavior:

  1. Submit the following declaration via BIG-IQ:

    {
    "$schema": "https://raw.githubusercontent.com/F5Networks/f5-appsvcs-extension/master/schema/latest/as3-schema.json",
    "persist": true,
    "class": "AS3",
    "declaration": {
        "id": "id_app1",
        "schemaVersion": "3.33.0",
        "app1.f5cloudbuilder.dev": {
            "defaultRouteDomain": 0,
            "class": "Tenant",
            "app1.f5cloudbuilder.dev_http": {
                "pool_app1_default": {
                    "loadBalancingMode": "least-connections-member",
                    "monitors": [
                        "http"
                    ],
                    "members": [
                        {
                            "directoryId": "**************",
                            "resourceType": "scaleSet",
                            "resourceId": "app1",
                            "servicePort": 80,
                            "resourceGroup": "rg-app1",
                            "credentialUpdate": false,
                            "addressDiscovery": "azure",
                            "addressRealm": "private",
                            "subscriptionId": "**************",
                            "applicationId": "**************",
                            "updateInterval": 1,
                            "apiAccessKey": "**************"
                        }
                    ],
                    "class": "Pool"
                },
                "template": "http",
                "statsProfile": {
                    "collectMethod": true,
                    "collectedStatsExternalLogging": true,
                    "collectMaxTpsAndThroughput": true,
                    "collectPageLoadTime": true,
                    "class": "Analytics_Profile",
                    "capturedTrafficInternalLogging": false,
                    "collectUrl": true,
                    "collectClientSideStatistics": true,
                    "collectedStatsInternalLogging": true,
                    "collectUserAgent": true,
                    "capturedTrafficExternalLogging": false,
                    "collectIp": true,
                    "collectGeo": true,
                    "collectResponseCode": true,
                    "collectOsAndBrowser": true,
                    "collectUserSession": true
                },
                "waf_policy_app1": {
                    "url": "https://raw.githubusercontent.com/nergalex/f5-awaf-policies/master/policy/API_security_template.xml",
                    "ignoreChanges": true,
                    "class": "WAF_Policy"
                },
                "serviceMain": {
                    "allowVlans": [
                        "/Common/external"
                    ],
                    "securityLogProfiles": [
                        {
                            "bigip": "/Common/Shared/asm_log_bigiq"
                        }
                    ],
                    "virtualPort": 80,
                    "profileHTTP": {
                        "use": "profile_http_app1"
                    },
                    "policyWAF": {
                        "use": "waf_policy_app1"
                    },
                    "virtualAddresses": [
                        "10.100.10.1"
                    ],
                    "profileAnalytics": {
                        "use": "statsProfile"
                    },
                    "snat": "auto",
                    "class": "Service_HTTP",
                    "pool": "pool_app1_default"
                },
                "profile_http_app1": {
                    "proxyType": "reverse",
                    "responseChunking": "rechunk",
                    "class": "HTTP_Profile",
                    "xForwardedFor": true,
                    "requestChunking": "rechunk"
                },
                "class": "Application"
            }
        },
        "target": {
            "address": "10.100.0.5"
        },
        "class": "ADC"
    }
    }
  2. Observe the following error response:

    {
    "id": "425965ed-fdb6-4294-8d57-c2f36c1e00e8",
    "results": [
        {
            "code": 422,
            "errors": [
                "/app1.f5cloudbuilder.dev/app1.f5cloudbuilder.dev_http/pool_app1_default/members/0: 0 is NOT valid"
            ],
            "declarationFullId": "",
            "message": "declaration is invalid"
        }
    ],
    "declaration": {}
    }

Expected Behavior

Pass AS3 validation on BIG-IQ

Actual Behavior

BIG-IQ block AS3 validation

dstokesf5 commented 2 years ago

Thank you for your feedback. I have added this to our internal product backlog as AUTOTOOL-2967.

sunitharonan commented 1 year ago

Please reach out to us at automation_toolchain_pm@f5.com in order for us to prioritize. Thanks.