Tutorial do NerdGraph: Gerenciando o Fleet Control
Disponibilidade de recurso
Fleet Control for Kubernetes clusters está disponível de forma geral (GA). O suporte para gerenciamento de agentes em Linux and Windows hosts está atualmente em versão prévia pública.
Você pode usar o NerdGraph para gerenciar programaticamente frotas, membros e implantações do Fleet Control. Essas mutações fornecem controle total sobre as operações da frota, permitindo automatizar o gerenciamento da frota, integrar com pipelines de CI/CD e gerenciar a instrumentação em escala.
Este tutorial fornece exemplos das mutações e consultas disponíveis do Fleet Control. Você pode usá-los para criar frotas, gerenciar membros da frota e implantar configurações de agente.
Pré-requisitos
Uma conta New Relic com acesso à sua chave de usuário da API
A função Organization Manager ou uma função personalizada com permissões de gerenciamento de frota
Você também pode usar o Fleet Control CLI para gerenciamento de frota via linha de comando. A CLI é construída na mesma API NerdGraph.
Importante
As configurações do agente são gerenciadas através do Blob Storage API, não pelo NerdGraph. Todas as operações de configuração usam uma API REST separada.
Mutações de gerenciamento de frota
Use a mutação fleetControlCreateFleet para criar uma nova frota para gerenciar grupos de Kubernetes clusters ou hosts.
Parâmetro de entrada
Parâmetro
Tipo de dados
É obrigatório?
Descrição
fleetEntity
Objeto
Sim
A entrada de criação da entidade de frota contendo a configuração da frota.
fleetEntity.name
Corda
Sim
O nome da frota. Deve ser único na sua organização.
fleetEntity.managedEntityType
Enum
Sim
O tipo de entidades que esta frota gerenciará. Opções:
HOST
(para hosts Linux/Windows) ou
KUBERNETESCLUSTER
.
fleetEntity.scope
Objeto
Sim
O escopo da entidade que define se a frota tem escopo de conta ou de organização.
fleetEntity.scope.type
Enum
Sim
Tipo de escopo. Opções:
ACCOUNT
ou
ORGANIZATION
.
fleetEntity.scope.id
EU IA
Sim
O ID da conta ou ID da organização, dependendo do tipo de escopo.
fleetEntity.description
Corda
Não
Uma descrição do propósito da frota.
fleetEntity.operatingSystem
Objeto
Não
Tipo de sistema operacional para frotas de HOST. Obrigatório se
managedEntityType
for
HOST
.
fleetEntity.operatingSystem.type
Enum
Sim (se operatingSystem for fornecido)
Tipo de SO. Opções:
LINUX
ou
WINDOWS
.
fleetEntity.tags
Matriz
Não
Lista de objetos de tag para categorizar a frota.
Solicitação de amostra
mutationCreateFleet{
fleetControlCreateFleet(
fleetEntity:{
name:"Production Web Servers"
description:"Fleet for all production Linux web server hosts"
managedEntityType:HOST
operatingSystem:{type:LINUX}
scope:{type:ACCOUNT,id:"YOUR_ACCOUNT_ID"}
tags:[
{key:"environment",values:["production"]}
{key:"team",values:["platform"]}
]
}
){
entity{
id
name
description
managedEntityType
}
}
}
Resposta de amostra
{
"data":{
"fleetControlCreateFleet":{
"entity":{
"id":"<YOUR_FLEET_ID>",
"name":"Production Web Servers",
"description":"Fleet for all production Linux web server hosts",
"managedEntityType":"HOST"
}
}
}
}
Use a mutação fleetControlUpdateFleet para atualizar o nome, a descrição ou as tags de uma frota existente.
Parâmetro de entrada
Parâmetro
Tipo de dados
É obrigatório?
Descrição
id
EU IA
Sim
O ID da entidade da frota a ser atualizado.
fleetUpdate
Objeto
Sim
A entrada de atualização da frota contendo campos para modificar.
fleetUpdate.name
Corda
Não
Nome da frota atualizado.
fleetUpdate.description
Corda
Não
Descrição da frota atualizada.
fleetUpdate.tags
Matriz
Não
Lista atualizada de tags.
Solicitação de amostra
mutationUpdateFleet{
fleetControlUpdateFleet(
id:"<YOUR_FLEET_ID>"
fleetUpdate:{
description:"Updated: Production web servers with enhanced monitoring"
tags:[
{key:"environment",values:["production"]}
{key:"region",values:["us-east-1","us-west-2"]}
]
}
){
entity{
id
name
description
}
}
}
Use a mutação fleetControlDeleteFleet para excluir uma frota. Isso remove a frota, mas não desinstala agentes de entidades gerenciadas.
Parâmetro de entrada
Parâmetro
Tipo de dados
É obrigatório?
Descrição
id
EU IA
Sim
O ID da entidade da frota a ser excluído.
Solicitação de amostra
mutationDeleteFleet{
fleetControlDeleteFleet(id:"<YOUR_FLEET_ID>"){
id
}
}
Mutações de gerenciamento de membros da frota
Use a mutação fleetControlAddFleetMembers para adicionar entidades gerenciadas aos anéis de frota. Os anéis permitem organizar entidades dentro de uma frota para rollouts em fases (por exemplo, canary, staging, produção).
Parâmetro de entrada
Parâmetro
Tipo de dados
É obrigatório?
Descrição
fleetId
EU IA
Sim
O ID da entidade da frota.
members
Matriz
Sim
Lista de entradas de anel especificando quais entidades adicionar a quais anéis.
members[].ring
Corda
Sim
O nome do anel (por exemplo, "canary", "produção").
members[].entityIds
Matriz
Sim
Lista de GUIDs de entidade para adicionar ao anel.