F5Networks / f5-appsvcs-templates

F5 BIG-IP Application Service Templates (FAST)
Apache License 2.0
32 stars 13 forks source link

AS3 class property 'syncToGroup' ignored by FAST #147

Open pedrorouremalta opened 1 month ago

pedrorouremalta commented 1 month ago

Environment

Summary

FAST is ignoring the 'syncToGroup' property in the rendered AS3 declaration and not triggering a ConfigSync operation to push the configuration to the peer member.

Steps To Reproduce

I created the following basic FAST template for testing:

{ "class": "AS3", "action": "deploy", "persist": true, "syncToGroup": "/Common/failoverGroup", "declaration" : { "class": "ADC", "schemaVersion": "3.0.0", "{{tenant_name}}": { "class": "Tenant", "{{applicationname}}": { "class": "Application", "vs{{ application_name }}": { "class": "Service_HTTP", "virtualAddresses": [ "{{virtual_address}}" ], "virtualPort": {{virtualport::integer}}, "pool": "pool{{ applicationname }}" }, "pool{{ application_name }}": { "class": "Pool", "monitors": [ "http" ], "members": [{ "servicePort": {{server_port::integer}}, "serverAddresses": {{server_addresses::array}} }] } } } } }

Then I use the parameters file below to deploy a FAST application:

{ "name": "test/simple_app", "parameters": { "tenant_name": "apps", "application_name": "app1", "virtual_address": "10.10.1.101", "virtual_port": 80, "server_port": 80, "server_addresses": [ "10.16.200.101" ] } }

The FAST application is deployed but no ConfigSync operation is performed.

If I get the rendered AS3 declaration (see below) and send it directly to AS3 (bypassing FAST), the declaration is deployed and a ConfigSync operation is performed.

Rendered AS3 declaration sent directly to AS3 (bypassing FAST):

{ "class": "AS3", "action": "deploy", "persist": true, "syncToGroup": "/Common/failoverGroup", "declaration": { "class": "ADC", "schemaVersion": "3.0.0", "apps": { "class": "Tenant", "app1": { "class": "Application", "vs_app1": { "class": "Service_HTTP", "virtualAddresses": [ "10.10.1.101" ], "virtualPort": 80, "pool": "pool_app1" }, "pool_app1": { "class": "Pool", "monitors": [ "http" ], "members": [ { "servicePort": 80, "serverAddresses": [ "10.16.200.101" ] } ] } } } } }

Expected Behavior

When the rendered FAST AS3 declaration has a 'syncToGroup' property defined, a ConfigSync operation should be performed after the application is deployed in order to sync the FAST application to the peer device.

Actual Behavior

ConfigSync operation is not performed when the rendered FAST AS3 declaration has 'syncToGroup' property defined in the AS3 class.