Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GSLB WideIP - "poolsCname" object is not allowed along with "pools" #885

Open
GWilczek opened this issue Oct 20, 2024 · 0 comments
Open
Labels
bug Something isn't working untriaged Issue needs to be reviewed for validity

Comments

@GWilczek
Copy link

GWilczek commented Oct 20, 2024

Environment

  • Application Services Version: 3.53
  • BIG-IP Version: 16.1.3.3

Summary

Trying to create a Wide-IP with two pools, A and CNAME. Schema does not allowed to do it in this way:

                    "pools": [
                        {
                            "use": "a_pool"
                        }
                    ],
                    "poolsCname": [
                        {
                            "use": "cname_pool"
                        }
                    ],

or adding both pools to list pools - generating error - for referencing to non existing object, as cname_pool is not A pool.

                    "pools": [
                        {
                            "use": "a_pool"
                        }.
                        {
                            "use": "cname_pool"
                        }
                    ],

Steps To Reproduce

Steps to reproduce the behavior:

  1. Submit the following declaration:
{
    "$schema": "https://raw.githubusercontent.com/F5Networks/f5-appsvcs-extension/master/schema/latest/as3-schema.json",
    "class": "AS3",
    "action": "deploy",
    "declaration": {
        "class": "ADC",
        "schemaVersion": "3.45.0",
        "controls": {
            "class": "Controls",
            "trace": true,
            "logLevel": "debug",
            "traceResponse": true
        },
        "cname_and_a_pools_tenant": {
            "class": "Tenant",
            "cname_and_a_pools_app": {
                "class": "Application",
                "a_wip.local_domain": {
                    "class": "GSLB_Domain",
                    "domainName": "a_wip.local",
                    "aliases": [],
                    "resourceRecordType": "A",
                    "poolLbMode": "global-availability",
                    "pools": [
                        {
                            "use": "a_pool"
                        }
                    ],
                    "poolsCname": [
                        {
                            "use": "cname_pool"
                        }
                    ],
                    "iRules": [],
                    "persistCidrIpv4": 24,
                    "persistenceEnabled": false,
                    "clientSubnetPreferred": true,
                    "ttlPersistence": 3600
                },
                "a_pool": {
                    "class": "GSLB_Pool",
                    "members": [
                        {
                            "ratio": 10,
                            "server": {
                                "bigip": "/Common/dc1-ltm0102-cluster"
                            },
                            "virtualServer": "/Common/aaaa",
                            "enabled": true,
                            "dependsOn": "none"
                        }
                    ],
                    "resourceRecordType": "A",
                    "enabled": true,
                    "lbModePreferred": "round-robin",
                    "lbModeAlternate": "round-robin",
                    "lbModeFallback": "return-to-dns",
                    "ttl": 5,
                    "verifyMemberEnabled": true,
                    "maxAnswersReturned": 1
                },
                "cname_pool": {
                    "class": "GSLB_Pool",
                    "resourceRecordType": "CNAME",
                    "enabled": true,
                    "members": [
                        {
                            "domainName": "google.com",
                            "isDomainNameStatic": true,
                            "enabled": true
                        }
                    ]
                }
            }
        }
    }
}
  1. Observe the following error response:
{
    "id": "489bd188-b09c-4022-abca-a1e3e7ef93de",
    "results": [
        {
            "code": 422,
            "errors": [
                "/cname_and_a_pools_tenant/cname_and_a_pools_app/a_wip.local_domain: then is NOT valid"
            ],
            "message": "declaration is invalid",
            "host": "localhost",
            "tenant": [
                "cname_and_a_pools_tenant"
            ],
            "declarationId": "autogen_48f90180-490e-46ed-8781-3922db62ccd9"
        }
    ],
    "declaration": {},
    "selfLink": "https://localhost/mgmt/shared/appsvcs/task/489bd188-b09c-4022-abca-a1e3e7ef93de"
}

Adding both pools in to pools list:

    "results": [
        {
            "code": 422,
            "message": "declaration failed",
            "response": "01070233:3: Wideip Pool refers to nonexistent Pool /cname_and_a_pools_tenant/cname_and_a_pools_app/cname_pool",
            "host": "localhost",
            "tenant": "cname_and_a_pools_tenant",
            "runTime": 2862,
            "declarationId": "autogen_60e2755d-99ec-4b47-b4d6-6d5bf5381417"
        }
    ],

Expected Behavior

Both pools added to WIP, this works via GUI or TMSH:

root@(dc1-gtm02)(cfg-sync In Sync)(Standby)(/Common)(tmos)# create gtm wideip a a1_wip.local pools-cname add { cname_pool { order 1 } } pools add { a_pool { order 0 } }
root@(dc1-gtm02)(cfg-sync In Sync)(Standby)(/Common)(tmos)# list gtm wideip a a1_wip.local
gtm wideip a a1_wip.local {
    pools {
        a_pool {
            order 0
        }
    }
    pools-cname {
        cname_pool {
            order 1
        }
    }
}

Actual Behavior

Unable to mix of two types of Pools in one Declaration.

@GWilczek GWilczek added bug Something isn't working untriaged Issue needs to be reviewed for validity labels Oct 20, 2024
@GWilczek GWilczek changed the title GSLB WideIP - "poolsCname" object is not allowed allowed along with "pools" GSLB WideIP - "poolsCname" object is not allowed along with "pools" Oct 20, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working untriaged Issue needs to be reviewed for validity
Projects
None yet
Development

No branches or pull requests

1 participant