f5-appsvcs-extension: Pool members cannot be given object names other than their IP addresses
ISSUE TYPE
- Feature Idea
AS3 BUILD/ VERSION
f5-appsvcs-3.11.0-3.noarch
BIGIP VERSION
Sys::Version
Main Package
Product BIG-IP
Version 13.1.0.3
Build 0.0.5
Edition Point Release 3
Date Mon Feb 12 19:22:50 PST 2018
SUMMARY
When creating a pool in an application, I cannot create a pool member that has a name. The name winds up being the IP address I put into the declaration. For example, this declaration:
{
"class": "AS3",
"action": "deploy",
"persist": true,
"declaration": {
"class": "ADC",
"schemaVersion": "3.0.0",
"id": "SomeUID",
"label": "Sample 1",
"remark": "Simple HTTP Service with Round-Robin Load Balancing",
"Sample_01": {
"class": "Tenant",
"A1": {
"class": "Application",
"template": "http",
"serviceMain": {
"class": "Service_HTTP",
"virtualAddresses": [
"10.0.1.10"
],
"pool": "web_pool"
},
"web_pool": {
"class": "Pool",
"monitors": [
"http"
],
"members": [
{
"addressDiscovery": "static",
"servicePort": 443,
"serverAddresses": [
"10.138.89.61"
],
"hostname": "remark1.hostname.local"
},
{
"addressDiscovery": "static",
"servicePort": 443,
"serverAddresses": [
"10.138.89.62"
],
"hostname": "remark2.hostname.local"
},
{
"addressDiscovery": "static",
"servicePort": 443,
"serverAddresses": [
"10.138.89.63"
],
"hostname": "remark3.hostname.local"
}
]
}
}
}
}
}
I know that the “hostname” declaration only works when the “addressDiscovery” declaration is set to “fqdn”.
In TMSH, I can create pool members with names, but then specify the IP address:
create ltm pool my_test_pool monitor http members add { hostname11.tocci.local:80 { address 10.1.20.111 } hostname12.tocci.local:80 { address 10.1.20.112 } hostname13.tocci.local:80 { address 10.1.20.113 } }
The client I’m working with would like to create the pool members with names. He has other automation that requires this.
STEPS TO REPRODUCE
Basically, allow the “hostname” declaration to work when “addressDiscovery” is set to “static”
See sample declaration above.
EXPECTED RESULTS
To see the hostname in the pool member like this (I know this is TMSH but since I can’t do it in AS3 I have to do this):
ltm pool my_test_pool {
members {
hostname11.tocci.local:http {
address 10.1.20.111
session monitor-enabled
state down
}
hostname12.tocci.local:http {
address 10.1.20.112
session monitor-enabled
state down
}
hostname13.tocci.local:http {
address 10.1.20.113
session monitor-enabled
state down
}
}
monitor http
}
ACTUAL RESULTS
root@(bigip170)(cfg-sync Standalone)(Active)(/Common)(tmos)# cd ../Sample_01/A1/
root@(bigip170)(cfg-sync Standalone)(Active)(/Sample_01/A1)(tmos)# list ltm pool
ltm pool web_pool {
members {
/Sample_01/10.138.89.61:https {
address 10.138.89.61
session monitor-enabled
state down
metadata {
source {
value declaration
}
}
}
/Sample_01/10.138.89.62:https {
address 10.138.89.62
session monitor-enabled
state down
metadata {
source {
value declaration
}
}
}
/Sample_01/10.138.89.63:https {
address 10.138.89.63
session monitor-enabled
state down
metadata {
source {
value declaration
}
}
}
}
min-active-members 1
monitor min 1 of { /Common/http }
partition Sample_01
}
About this issue
- Original URL
- State: closed
- Created 5 years ago
- Reactions: 5
- Comments: 43 (7 by maintainers)
Another API update. Once we dug in a bit deeper we decided that having a ‘class’ so deep in the declaration was also not idea. Meanwhile, in iRules, we support having an array of objects with a name property so we went with that approach here too. Further, we want to allow for other properties we might add in the future. The resulting schema is
An example declaration is for a pool is