Skip to content

Cluster Agent query for GraphQl

Emily Ring requested to merge emilyring-agent-graphql-query into master

What does this MR do?

Related to issue: gitlab-org/cluster-integration/gitlab-agent#6 (closed)

We recently created an Agent Model and Token Model. MR: !33228 (merged)

Now that models have been created, we need to make GraphQl calls to access/remove agents and tokens

Per another discussion, this feature will only be available for premium plans

This MR will:

  • Add a GraphQL endpoint to show all cluster agents associated with a project

Previous MRs:

Related MRs will:

Finder queries

Query:

SELECT "cluster_agents".* FROM "cluster_agents" WHERE "cluster_agents"."project_id" = 278964

Explain (there are no cluster_agents in production yet, but it's just a foreign key lookup):

 Index Scan using index_cluster_agents_on_project_id_and_name on public.cluster_agents  (cost=0.15..7.72 rows=4 width=64) (actual time=0.055..0.055 rows=0 loops=1)
   Index Cond: (cluster_agents.project_id = 278964)
   Buffers: shared hit=4

Screenshots

mutation createAgent {
  createClusterAgent(input: { projectPath: <project-path>, name: <agent-name> }) {
    clusterAgent {
      id 
      name
    }
    errors
  } 
}

query projectAgents {
  project(fullPath: <project-path>) {
    id
    clusterAgents {
      nodes {
        id
        name
      }
    }
  }
}

query

Does this MR meet the acceptance criteria?

Conformity

Availability and Testing

Security

If this MR contains changes to processing or storing of credentials or tokens, authorization and authentication methods and other items described in the security review guidelines:

  • [-] Label as security and @ mention @gitlab-com/gl-security/appsec
  • [-] The MR includes necessary changes to maintain consistency between UI, API, email, or other methods
  • [-] Security reports checked/validated by a reviewer from the AppSec team
Edited by Tiger Watson

Merge request reports