Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cannot change Pool from FQDN to IP if the node IPs are the same. Continuation of #572. #895

Open
megamattzilla opened this issue Nov 21, 2024 · 2 comments
Labels
bug Something isn't working untriaged Issue needs to be reviewed for validity

Comments

@megamattzilla
Copy link

Environment

  • Application Services Version: 3.53.0
  • BIG-IP Version: 17.1.1.3

Summary

Cannot change Pool from FQDN to IP If the resolved FQDN contains the same node IPs. We initially reported this issue in #572 and requested a fix for this as well, however we only discovered today that switching from FQDN back to IP pools still fails with same error as reported in #572 .

Steps To Reproduce

Steps to reproduce the behavior:

  1. Submit the following declaration to configure a FQDN node:
{
    "class": "AS3",
    "action": "deploy",
    "persist": true,
    "declaration": {
      "class": "ADC",
      "schemaVersion": "3.34.0",
      "id": "123abc",
      "Common": {
        "class": "Tenant",
        "Shared": {
          "class": "Application",
          "template": "shared",
      "demo-http-pool": {
        "class": "Pool",
        "monitors": [
          "http"
        ],
        "members": [
          {
            "autoPopulate": true,
            "hostname": "www.f5.com",
            "servicePort": 80,
            "addressDiscovery": "fqdn"
          }
        ]
      }
          }
        }
      }
    }

Then submit another declaration changing the pool to IP:

{
    "class": "AS3",
    "action": "deploy",
    "persist": true,
    "declaration": {
        "class": "ADC",
        "schemaVersion": "3.30.0",
        "id": "123abc",
        "Common": {
            "class": "Tenant",
            "Shared": {
                "class": "Application",
                "template": "shared",
                "demo-http-pool": {
                    "class": "Pool",
                    "remark": "test",
                    "monitors": [
                        "tcp"
                    ],
                    "members": [
                        {
                            "servicePort": 80,
                            "serverAddresses": [
                                "159.60.190.35",
                                "159.60.190.37",
                                "159.60.190.33"
                            ]
                        }
                    ]
                }
            }
        }
    }
}

*Its important to repro that the IP pool has the same IP as the previously declared FQDN pool. This example is using www.f5.com which could change its IP over time.

  1. Observe the following error response:
{
{
    "results": [
        {
            "code": 422,
            "message": "declaration failed",
            "response": "0107176c:3: Invalid Node, the IP address 159.60.190.35 already exists.",
            "host": "localhost",
            "tenant": "Common",
            "runTime": 7727,
            "declarationId": "123abc"
        },
        {
            "code": 422,
            "message": "declaration failed",
            "response": "0107176c:3: Invalid Node, the IP address 159.60.190.35 already exists.",
            "host": "localhost",
            "tenant": "Common",
            "runTime": 6743,
            "declarationId": "123abc"
        }
    ]
}

Expected Behavior

Pool is changed from type FQDN to IP without error or additional user intervention.

Actual Behavior

AS3 produces an error response when changing from type FQDN to type IP when the node IPs overlap.

@megamattzilla megamattzilla added bug Something isn't working untriaged Issue needs to be reviewed for validity labels Nov 21, 2024
@jarcogna
Copy link

jarcogna commented Nov 21, 2024

This is the same behaviour that we see in the GUI and CLI.

A pool cannot contain the same IP Address twice.

If you what to add an IP Address that currently is in an FQDN member, then you first need to delete the FQDN member.

@megamattzilla
Copy link
Author

megamattzilla commented Nov 21, 2024

We are testing migrating from LTM pools with static IPs to pools with FQDN nodes.

After completing github issue #572 we could replace pools with static IPs to the same pool with FQDN nodes. In the event we need to rollback the FQDN change, we can't go the other direction of replacing pools with FQDN nodes back to static IP.

We would like to modify the existing pool from type FQDN to type IP. Only one type should be configured at any given time. We don't want a combination of IP and FQDN nodes- just one or the other.

We expected AS3 to do this declaratively in a transaction and replace the FQDN nodes with IP nodes, but it's throwing a TMOS exception.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working untriaged Issue needs to be reviewed for validity
Projects
None yet
Development

No branches or pull requests

2 participants