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

Service discovery does not work with per-application declarations #869

Open
mikebordon opened this issue Aug 19, 2024 · 0 comments
Open
Labels
bug Something isn't working untriaged Issue needs to be reviewed for validity

Comments

@mikebordon
Copy link

Environment

  • Application Services Version: 3.52.0
  • BIG-IP Version: 15.1.10.4

Summary

When using the per-app endpoint to deploy a configuration, pools which are configured to populate their members via service discovery never do so.

The deployment request is acknowledged as successful, and all other resources are successfully created, but the pool is never populated with members. Additionally, the typical Got service discovery task request log entries are noticeably absent from restnoded.log.

Per-tenant endpoints (POST and PATCH) behave as expected.

Steps To Reproduce

Steps to reproduce the behavior:

  1. Given an existing tenant, submit the following declaration via POST /mgmt/shared/appsvcs/declare/MyTenant/applications:
{
    "schemaVersion": "3.52.0",
    "my-app-post": {
        "class": "Application",
        "my-pool-post": {
            "class": "Pool",
            "monitors": [{
                "bigip": "/Common/http"
            }],
            "minimumMonitors": "all",
            "members": [
                {
                    "servicePort": 8080,
                    "addressDiscovery": "consul",
                    "updateInterval": 10,
                    "uri": "http://my-consul:8500/v1/catalog/service/my-service",
                    "rejectUnauthorized": false,
                    "jmesPathQuery": "[*].{id:Node,ip:{private:ServiceAddress,public:ServiceAddress}}"
                }
            ]
        }
    }
}
  1. For comparison, submit effectively the same declaration via PATCH /mgmt/shared/appsvcs/declare/MyTenant:
[
    {
        "op": "add",
        "path": "/MyTenant/my-app-patch",
        "value": {
            "class": "Application",
            "my-pool-patch": {
                "class": "Pool",
                "monitors": [{
                    "bigip": "/Common/http"
                }],
                "minimumMonitors": "all",
                "members": [
                    {
                        "servicePort": 8080,
                        "addressDiscovery": "consul",
                        "updateInterval": 10,
                        "uri": "http://my-consul:8500/v1/catalog/service/my-service",
                        "rejectUnauthorized": false,
                        "jmesPathQuery": "[*].{id:Node,ip:{private:ServiceAddress,public:ServiceAddress}}"
                    }
                ]
            }
        }
    }
]
  1. Observe the status of each pool in the pool list:
  • my-pool-patch will contain members
  • my-pool-post will not

Expected Behavior

The pool created via the per-app POST and the pool created via the tenant PATCH will ultimately have the same members, as populated via service discovery tasks.

Actual Behavior

The pool created via the per-app POST remains empty indefinitely whereas the the pool created via the tenant PATCH behaves as expected.

@mikebordon mikebordon added bug Something isn't working untriaged Issue needs to be reviewed for validity labels Aug 19, 2024
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

1 participant