Skip to main content
Version: 1.5.x

Cluster Service

Clusters

The Clusters service exposes methods to manage the registration of clusters that are managed by TSB. Before TSB can takeover networking for a given cluster, it must be onboarded in the platform. This onboarding process usually involves two steps:

  1. Creating the cluster object so the platform knows about it.
  2. Generate the agent tokens for the cluster, so the TSB agents installed in the actual cluster can talk to TSB.

Once a cluster has been onboarded into TSB, it will start receiving configuration updates from the management plane, and the agents will keep the management updated with the status of the cluster.

CreateCluster

Requires CreateCluster

Creates a new cluster object in TSB. This is needed during cluster onboarding to let the management plane know about the existence of a cluster. Once a cluster has been created and fully onboarded, the management plane will manage the mesh for that cluster and keep this cluster entity up to date with the information that is reported by the cluster agents. This method returns the created cluster, that will be continuously updated by the local cluster agents. This entity can be monitored to have an overview of the resources (namespaces, services, etc) that are known to be running in the cluster.

GetCluster

Requires ReadCluster

Get the last known state for an onboarded cluster. Once a cluster has been onboarded into the platform, the agents will keep it up to date with its runtime status. Getting the cluster object will return the last known snapshot of existing namespaces and services running in it.

UpdateCluster

Requires WriteCluster

Modify an existing cluster. Updates a cluster with the given data. Note that most of the data in the cluster is read-only and automatically populated by the local cluster agents.

ListClusters

Get the list of all clusters that have been onboarded into the platform.

DeleteCluster

Requires DeleteCluster

Unregisters a cluster from the platform. Deleting a cluster will unregister it from the management plane, and the agents will stop receiving configuration updates. Agent tokens for the cluster are revoked as well, so agents that are still running will fail to report back cluster status to the management plane. Note that unregistering the cluster is a management plane only operation. This does not uninstall the agents from the local cluster. Agents will continue running and the services that are deployed in that cluster will be able to continue operating with the last applied configuration. Unregistering a cluster from the management plane should not generate downtime to services that are running on that cluster.

GenerateTokens

Requires WriteCluster

Generate the tokens for the cluster agents so they can talk to the management plane. Once a cluster object has been registered in the management plane, this method can be used to generate the JWT tokens that need to be configured in the local cluster agents in order to let them talk to the management plane. These tokens contain the necessary permissions to allow the agents to download the configuration for their cluster and to push cluster status updates to the management plane.

CreateClusterRequest

Request to create a cluster and register it in the management plane so configuration can be generated for it.

FieldDescriptionValidation Rule

parent

string
REQUIRED
Parent resource where the cluster will be created. This is the FQN of the organization or the tenant.

string = {
  min_len: 1
}

name

string
REQUIRED
The short name for the resource to be created.

string = {
  min_len: 1
}

cluster

tetrateio.api.tsb.v2.Cluster
REQUIRED
Details of the cluster to be created.

message = {
  required: true
}

DeleteClusterRequest

Request to delete a cluster.

FieldDescriptionValidation Rule

fqn

string
REQUIRED
Fully-qualified name of the cluster.

string = {
  min_len: 1
}

GenerateTokensRequest

Request to generate the cluster agent tokens.

FieldDescriptionValidation Rule

fqn

string
REQUIRED
Fully-qualified name of the cluster.

string = {
  min_len: 1
}

GetClusterRequest

Request to retrieve a cluster.

FieldDescriptionValidation Rule

fqn

string
REQUIRED
Fully-qualified name of the cluster.

string = {
  min_len: 1
}

fetchWorkloads

bool
Flag to fetch the workload information as well. Note that by default workload information is not returned as it may be expensive to retrieve.

ListClustersRequest

Request to list clusters.

FieldDescriptionValidation Rule

parent

string
REQUIRED
Parent resource to list clusters from. This is the FQN of the organization or the tenant.

string = {
  min_len: 1
}

fetchWorkloads

bool
Flag to fetch the workload information for all the clusters as well. Note that by default workload information is not returned as it may be expensive to retrieve.

ListClustersResponse

List of clusters that are registered in the platform.

FieldDescriptionValidation Rule

clusters

List of tetrateio.api.tsb.v2.Cluster
The list of clusters that are registered in the platform.