cancel
Showing results for 
Search instead for 
Did you mean: 

Big-IQ AS3 - Invalid Node, the IP address X.X.X.X already exists

Brian_Burns
Nimbostratus
Nimbostratus

We are in the process of implementing automation through AS3 and Big-IQ. I am currently running into an issue where I have multiple tenants that use the same pool member IP addresses, but different ports for each tenant application. When I declare the second Tenant, I receive an error that states the IP address already exists. Is there any way I can reuse pool members with different AS3 tenants?

 

{
    "msg": [
        "The AS3 declaration returned an error.",
        {
            "status": 422,
            "response": {
                "results": [
                    {
                        "message": "Failed to send declaration: status:422, body:{\"results\":[{\"message\":\"declaration failed\",\"response\":\"0107176c:3: Invalid Node, the IP address X.X.X.X%1 already exists.\",\"code\":422,\"host\":\"localhost\",\"tenant\":\"DEV_APP02\",\"runTime\":1177}],\"declaration\":{\"remark\":\"HTTPS with predictive-node pool\",\"label\":\"DEV_APP02\",\"id\":\"2d30988f-8379-48cc-b239-48c31c0534ba\",\"schemaVersion\":\"3.0.0\",\"class\":\"ADC\",\"updateMode\":\"selective\",\"controls\":{\"archiveTimestamp\":\"2019-09-16T19:15:30.558Z\"}},\"code\":422}",
                        "code": 422,
                        "host": "localhost",
                        "tenant": "DEV_APP02",
                        "runTime": 11557
                    }
                ],
                "declaration": {
                    "updateMode": "selective",
                    "remark": "HTTPS with predictive-node pool",
                    "target": {
                        "address": "X.X.X.X"
                    },
                    "class": "ADC",
                    "controls": {
                        "archiveTimestamp": "2019-09-16T19:15:33.914Z"
                    },
                    "label": "DEV_APP02",
                    "schemaVersion": "3.0.0",
                    "id": "xxxx-xxxx-xxxx"
                }
            }
        }
    ],
    "changed": false,
    "_ansible_no_log": false
}

 

Thanks,

Brian Burns

 

1 ACCEPTED SOLUTION

cookiemonster
Altostratus
Altostratus

Sounds like you should be able to use the following in your pool member section:

 

"shareNodes": true

 

This will create the Nodes in the Common partition, but be aware that those nodes in that Common partition will show up in all of the other tenants even if they are not using it.

 

so for example my node declarations look like this.

 

...

                "app1_pool": {

                    "class": "Pool",

                    "monitors": [

                        "http"

                    ],

                    "loadBalancingMode": "least-connections-member",

                    "members": [

                        {

                            "adminState": "enable",

                            "shareNodes": true,

                            "servicePort": 80,

                            "serverAddresses": [

                                "2.2.2.2"

                            ],

                            "hostname": "vmmsjontestp01"

                        },

                        {

                            "adminState": "enable",

                            "shareNodes": true,

                            "servicePort": 80,

                            "serverAddresses": [

                                "3.3.3.3"

                            ],

                            "hostname": "vmmsjontestp02"

                        }

                        {

                            "adminState": "enable",

                            "shareNodes": true,

                            "servicePort": 80,

                            "serverAddresses": [

                                "4.4.4.4"

                            ],

                            "hostname": "vmmsjontestp03"

                        }

 

View solution in original post

2 REPLIES 2

cookiemonster
Altostratus
Altostratus

Sounds like you should be able to use the following in your pool member section:

 

"shareNodes": true

 

This will create the Nodes in the Common partition, but be aware that those nodes in that Common partition will show up in all of the other tenants even if they are not using it.

 

so for example my node declarations look like this.

 

...

                "app1_pool": {

                    "class": "Pool",

                    "monitors": [

                        "http"

                    ],

                    "loadBalancingMode": "least-connections-member",

                    "members": [

                        {

                            "adminState": "enable",

                            "shareNodes": true,

                            "servicePort": 80,

                            "serverAddresses": [

                                "2.2.2.2"

                            ],

                            "hostname": "vmmsjontestp01"

                        },

                        {

                            "adminState": "enable",

                            "shareNodes": true,

                            "servicePort": 80,

                            "serverAddresses": [

                                "3.3.3.3"

                            ],

                            "hostname": "vmmsjontestp02"

                        }

                        {

                            "adminState": "enable",

                            "shareNodes": true,

                            "servicePort": 80,

                            "serverAddresses": [

                                "4.4.4.4"

                            ],

                            "hostname": "vmmsjontestp03"

                        }

 

Brian_Burns
Nimbostratus
Nimbostratus

Thanks CookieMonster! That worked perfectly!