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

GTM objects are not reflecting under /Common/Shared partition in Big-IP GUI

Open Sravanthibollu1993 opened this issue 2 years ago • 5 comments

When we deploy gtm objects using AS3, they are not displaying the partition as Common/Shared like LTM objects.

GTM objects created using AS3 with path image

LTM objects created using AS3 image

Please find the information in the below document regarding AS3 creates any GSLB objects in /Common/Shared image https://clouddocs.f5.com/products/extensions/f5-appsvcs-extension/latest/declarations/gslb.html#using-gslb-features-in-a-declaration -->

Environment

Application Services Version: v3.46.0 BIG-IP Version: 15.1.10

Summary

In our AS3 config we are creating gtm objects under shared partition. After deploying them in Big-IP GUI, we could see they are not getting placed in common/partition as specified in AS3 config. But with LTM objects we are not seeing any issue. they getting placed in Common/Shared as specifed in AS3 config.

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.34.0/as3-schema.json",
  "class": "AS3",
  "action": "deploy",
  "persist": true,
  "declaration": {
    "class": "ADC",
    "schemaVersion": "3.34.0",
    "Common": {
      "class": "Tenant",
      "Shared": {
        "class": "Application",
        "template": "shared",
        "DeviceGroupName1_ltm": {
          "class": "GSLB_Server",
          "dataCenter": {
            "use": "DC1"
          },
          "proberPreferred": "pool",
          "proberPool": {
            "use": "custom_proberpool"
          },
          "devices": [
            {
              "label": "dc1-ltm1-edirect",
              "address": "1.1.1.1"
            },
            {
              "label": "dc1-ltm2-edirect",
              "address": "1.1.1.2"
            }
          ],
          "serverType": "bigip",
          "virtualServerDiscoveryMode": "enabled-no-delete"
        },
        "prober_device01": {
          "class": "GSLB_Server",
          "dataCenter": {
            "use": "DC1"
          },
          "proberPreferred": "pool",
          "proberPool": {
            "use": "custom_proberpool"
          },
          "devices": [
            {
              "label": "dc1-ltm-probe1",
              "address": "3.1.1.1"
            },
            {
              "label": "dc1-ltm-probe2",
              "address": "3.1.1.2"
            }
          ],
          "serverType": "bigip",
          "virtualServerDiscoveryMode": "enabled-no-delete"
        },
        "DC1": {
          "class": "GSLB_Data_Center"
        },
        "custom_proberpool": {
          "class": "GSLB_Prober_Pool",
          "enabled": true,
          "members": [
            {
              "server": {
                "use": "prober_device01"
              },
              "memberOrder": 0
            }
          ],
          "lbMode": "global-availability"
        }
      }
    }
  }
}


2. Observe the following error response:
```json
{
No error
}

Expected Behavior

GSLB server should be created under /Common/shared just like other LTM objects.

Actual Behavior

They are creating under /Common/

Sravanthibollu1993 avatar Nov 21 '23 14:11 Sravanthibollu1993

I've also noticed this but I think the text in the guide is a little confusing. GSLB datacenters and servers have to be in /Common/Shared in AS3 but this is because everything in AS3 has to be in a partition due to the schema. However, I think certain GSLB stuff HAS to be in /Common as this is a requirement of the underlying tmm resources - referenced here: https://my.f5.com/manage/s/article/K01990709.

thepowercoders avatar Nov 21 '23 16:11 thepowercoders

Please reach out to [email protected] so i can prioritize this request

mdditt2000 avatar Nov 21 '23 19:11 mdditt2000

I have dropped an email to [email protected] on 22 November as asked. Can you please prioritize this issue. Thanks in advance.

Sravanthibollu1993 avatar Dec 11 '23 04:12 Sravanthibollu1993

@thepowercoders Has the right idea. Those GSLB items are required to be in /Common/Shared in the AS3 declaration because AS3 is required to but them in the root of the Common partition. This restriction is coming from the gtm module on BIG-IP. Are you encountering any issues with the GSLB objects being created in /Common instead of /Common/Shared on the BIG-IP?

dstokesf5 avatar Jan 11 '24 22:01 dstokesf5

@thepowercoders Has the right idea. Those GSLB items are required to be in /Common/Shared in the AS3 declaration because AS3 is required to but them in the root of the Common partition. This restriction is coming from the gtm module on BIG-IP. Are you encountering any issues with the GSLB objects being created in /Common instead of /Common/Shared on the BIG-IP?

I'm having issues which I suspect are related to this. When attempting to deploy a declaration that specifics everything: a prober pool, a data center, gtm servers, uses the servers in the prober pool, and finally uses the prober pool in the datacenter. The declaration consistently fails due to the prober pool missing.

As a workaround, if I post without the prober pool first things are created (except the datacenter uses the wrong probing). I can then post again, but with "bigip": "xxx" instead of "use": "xxx" to call the prober pool that already exists.

This workaround breaks the declarative nature of AS3, as I am now posting twice in a given order, and if there are future issues may have to deal with the fact that I posted twice.

I tried many things to determine the issue (initially assuming it was my declaration at fault) but it would seem the problem is related to the prober pools being created in /Common/ instead of /Common/Shared and this seems to prevent the "use": "xxx" from working correctly.

Note: this same issue / behavior confirmed in AS3 versions 3.33 and versions 3.50.2

samualblair avatar Apr 08 '24 23:04 samualblair