Introduce Cluster Agent URL Configuration GraphQL API (Part 4)

What does this MR do and why?

This change set introduces the Receptive Agents URL configuration to the GraphQL API.

💡 The commits are suited to be reviewed individually.

This MR is part four of a series of MRs to introduce basic Receptive Agents support in the backend:

  1. Introduce models for Receptive Agents (Part 1) (!163142 - merged)
  2. Receptive Agents REST API (Part 2) (!163143 - merged)
  3. Receptive Agents internal REST API (Part 3) (!163144 - merged)
  4. Introduce Cluster Agent URL Configuration Graph... (!163493 - merged)

Important: this MR can be merged independent of the status of the part 3 MR!

Closes #480047 (closed)

Examples

Example GraphQL query:

query agentConfigurations() {
  project(fullPath: "<project>") {
    id
    clusterAgents {
      nodes {
        id
        name
        isReceptive
        urlConfigurations {
          nodes {
            id
            url
          }
        }
      }
    }
  }
}
Response
{
  "data": {
    "project": {
      "id": "gid://gitlab/Project/20",
      "clusterAgents": {
        "nodes": [
          {
            "id": "gid://gitlab/Clusters::Agent/21",
            "name": "345srfsrg",
            "isReceptive": false,
            "urlConfigurations": {
              "nodes": []
            }
          },
          {
            "id": "gid://gitlab/Clusters::Agent/17",
            "name": "api-test",
            "isReceptive": true,
            "urlConfigurations": {
              "nodes": [
                {
                  "id": "gid://gitlab/Clusters::Agents::UrlConfiguration/5",
                  "url": "grpc://agentk.example.com"
                }
              ]
            }
          },
          {
            "id": "gid://gitlab/Clusters::Agent/24",
            "name": "bootstrapped-agent",
            "isReceptive": false,
            "urlConfigurations": {
              "nodes": []
            }
          },
          {
            "id": "gid://gitlab/Clusters::Agent/1",
            "name": "k3d-agentk",
            "isReceptive": false,
            "urlConfigurations": {
              "nodes": []
            }
          },
          {
            "id": "gid://gitlab/Clusters::Agent/14",
            "name": "receptive-test",
            "isReceptive": false,
            "urlConfigurations": {
              "nodes": [
                {
                  "id": "gid://gitlab/Clusters::Agents::UrlConfiguration/1",
                  "url": "grpc://127.0.0.1:8082"
                }
              ]
            }
          },
          {
            "id": "gid://gitlab/Clusters::Agent/19",
            "name": "sdfgsfgsdfgsfg",
            "isReceptive": false,
            "urlConfigurations": {
              "nodes": []
            }
          },
          {
            "id": "gid://gitlab/Clusters::Agent/20",
            "name": "sfgsdfgsgfsdfgsdfgsdfg",
            "isReceptive": false,
            "urlConfigurations": {
              "nodes": []
            }
          },
          {
            "id": "gid://gitlab/Clusters::Agent/23",
            "name": "test-dot-com",
            "isReceptive": false,
            "urlConfigurations": {
              "nodes": []
            }
          },
          {
            "id": "gid://gitlab/Clusters::Agent/22",
            "name": "test-not-dot-com",
            "isReceptive": false,
            "urlConfigurations": {
              "nodes": []
            }
          },
          {
            "id": "gid://gitlab/Clusters::Agent/18",
            "name": "testvers",
            "isReceptive": false,
            "urlConfigurations": {
              "nodes": []
            }
          }
        ]
      }
    }
  }
}
Edited by Timo Furrer

Merge request reports

Loading