f5-appsvcs-extension icon indicating copy to clipboard operation
f5-appsvcs-extension copied to clipboard

422 error when trying to update load balancing method for a pool member to ratio-member with ratio other than default from round robin

Open vidyasagar-m opened this issue 1 year ago • 1 comments

Environment

  • Application Services Version: 3.50.2
  • BIG-IP Version: 17.1, 16.1

Summary

Getting 422 error when trying to update the load balancing method for a pool member to ratio-member with the ratio other than default from round-robin.

Steps To Reproduce

Steps to reproduce the behavior:

  1. Submit the following declaration:
{
    "$schema": "https://raw.githubusercontent.com/F5Networks/f5-appsvcs-extension/master/schema/3.50.2/as3-schema-3.50.2-3.json",
    "class": "AS3",
    "declaration": {
        "class": "ADC",
        "controls": {
            "class": "Controls",
            "userAgent": "CIS/v2.17.0 K8S/v1.30.1"
        },
        "id": "urn:uuid:85626792-9ee7-46bb-8fc8-4ba708cfdc1d",
        "label": "CIS Declaration",
        "remark": "Auto-generated by CIS",
        "schemaVersion": "3.50.0",
        "test": {
            "Shared": {
                "class": "Application",
                "crd_10_8_0_4_1344": {
                    "class": "Service_UDP",
                    "persistenceMethods": [],
                    "pool": {
                        "use": "/test/Shared/pytest_svc_udp_1_1344_default"
                    },
                    "profileL4": "basic",
                    "snat": "auto",
                    "virtualAddresses": [
                        "10.8.0.4"
                    ],
                    "virtualPort": 1344
                },
                "pytest_svc_udp_1_1344_default": {
                    "class": "Pool",
                    "members": [
                        {
                            "addressDiscovery": "static",
                            "serverAddresses": [
                                "10.244.2.105"
                            ],
                            "servicePort": 1344
                        }],
                    "minimumMonitors": 1,
                    "monitors": [
                        {
                            "use": "/test/Shared/pytest_svc_udp_1_default_udp_1344"
                        }
                    ]
                },
                "pytest_svc_udp_1_default_udp_1344": {
                    "adaptive": false,
                    "class": "Monitor",
                    "interval": 20,
                    "monitorType": "udp",
                    "receive": "",
                    "send": "",
                    "targetAddress": "",
                    "timeout": 10
                },
                "template": "shared"
            },
            "class": "Tenant",
            "defaultRouteDomain": 0,
            "label": "test"
        }
    }
}
  1. And then submit the below declaration
{
    "$schema": "https://raw.githubusercontent.com/F5Networks/f5-appsvcs-extension/master/schema/3.50.2/as3-schema-3.50.2-3.json",
    "class": "AS3",
    "declaration": {
        "class": "ADC",
        "controls": {
            "class": "Controls",
            "userAgent": "CIS/v2.17.0 K8S/v1.30.1"
        },
        "id": "urn:uuid:85626792-9ee7-46bb-8fc8-4ba708cfdc1d",
        "label": "CIS Declaration",
        "remark": "Auto-generated by CIS",
        "schemaVersion": "3.50.0",
        "test": {
            "Shared": {
                "class": "Application",
                "crd_10_8_0_4_1344": {
                    "class": "Service_UDP",
                    "persistenceMethods": [],
                    "pool": {
                        "use": "/test/Shared/pytest_svc_udp_1_1344_default"
                    },
                    "profileL4": "basic",
                    "snat": "auto",
                    "virtualAddresses": [
                        "10.8.0.4"
                    ],
                    "virtualPort": 1344
                },
                "pytest_svc_udp_1_1344_default": {
                    "class": "Pool",
                    "loadBalancingMode": "ratio-member",
                    "members": [
                        {
                            "addressDiscovery": "static",
                            "serverAddresses": [
                                "10.244.2.105"
                            ],
                            "servicePort": 1344,
                            "ratio": 100
                        },
                        {
                            "addressDiscovery": "static",
                            "ratio": 30,
                            "serverAddresses": [
                                "10.244.1.51"
                            ],
                            "servicePort": 1344
                        },
                        {
                            "addressDiscovery": "static",
                            "ratio": 40,
                            "serverAddresses": [
                                "10.244.2.106"
                            ],
                            "servicePort": 1344
                        }
                    ],
                    "minimumMonitors": 1,
                    "monitors": [
                        {
                            "use": "/test/Shared/pytest_svc_udp_1_default_udp_1344"
                        }
                    ]
                },
                "pytest_svc_udp_1_default_udp_1344": {
                    "adaptive": false,
                    "class": "Monitor",
                    "interval": 20,
                    "monitorType": "udp",
                    "receive": "",
                    "send": "",
                    "targetAddress": "",
                    "timeout": 10
                },
                "template": "shared"
            },
            "class": "Tenant",
            "defaultRouteDomain": 0,
            "label": "test"
        }
    }
}
  1. Observe the following error response:
{
            "code": 422,
            "message": "declaration failed",
            "response": "01020066:3: The requested Pool Member (/test/Shared/pytest_svc_udp_1_1344_default /test/10.244.1.51 1344) already exists in partition test.",
            "host": "localhost",
            "tenant": "test",
            "runTime": 1826,
            "declarationId": "urn:uuid:85626792-9ee7-46bb-8fc8-4ba708cfdc1d"
}

Expected Behavior

BIGIP should be configured with the ratio member load balancing method of the pool member from round robin.

Actual Behavior

Getting 422 error when trying to apply the above config.

vidyasagar-m avatar Jun 19 '24 15:06 vidyasagar-m

@sunitharonan this is Auto-generated by CIS. Can we add this Jira to a upcoming sprint.

mdditt2000 avatar Jun 25 '24 21:06 mdditt2000