f5-appsvcs-extension
f5-appsvcs-extension copied to clipboard
Support hash as persistenceMethod
Environment
Application Services Version: 3.30.0 BIG-IP Version: 16.1.0
Summary
Hash persistence used in VS config gives error while declaration is deployed.
Steps To Reproduce
Steps to reproduce the behavior:
- Submit the following declaration:
{
"class": "ADC",
"schemaVersion": "3.31.0",
"id": "urn:uuid:333b1fbe-20b1-49f2-83a4-1d8ca20525bf",
"label": "Converted Declaration",
"remark": "Auto-generated by AS3 Config Converter",
"tenant_6": {
"class": "Tenant",
"application_6": {
"class": "Application",
"template": "generic",
"seacm3-control-https": {
"members": [
{
"addressDiscovery": "fqdn",
"hostname": "master07.com",
"servicePort": 6443
},
{
"addressDiscovery": "fqdn",
"hostname": "master08.com",
"servicePort": 6443
},
{
"addressDiscovery": "fqdn",
"hostname": "master09.com",
"servicePort": 6443
}
],
"monitors": [
{
"bigip": "/Common/https"
}
],
"class": "Pool"
},
"dex-test": {
"layer4": "tcp",
"persistenceMethods": [
"hash"
],
"pool": "scontrol-https",
"translateServerAddress": true,
"translateServerPort": true,
"class": "Service_TCP",
"profileTCP": {
"bigip": "/Common/tcp"
},
"virtualAddresses": [
"10.1.1.1"
],
"virtualPort": 443,
"snat": "auto"
}
}
}
}
- Observe the following error response:
{
"code": 422,
"errors": [
"/tenant_6/application_6/dex-test/persistenceMethods/0: should be equal to one of the allowed values [\"cookie\",\"destination-address\",\"msrdp\",\"source-address\",\"tls-session-id\"]"
],
"declarationFullId": "",
"message": "declaration is invalid"
}
Expected Behavior
Declaration deployed.
Actual Behavior
Error in attempt to deploy this declaration. Once persistence is change for example to source-address deployment works.
I am not sure why hash is not in the list of supported strings, but this is more of a feature request than a bug.
In the meantime, you can define your own persistence object to enable hash based persistence: https://clouddocs.f5.com/products/extensions/f5-appsvcs-extension/latest/declarations/http-services.html#http-with-custom-persistence