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:
- Creating the cluster object so the platform knows about it.
- 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
rpc CreateCluster (tetrateio.api.tsb.v2.CreateClusterRequest) returns (tetrateio.api.tsb.v2.Cluster)
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
rpc GetCluster (tetrateio.api.tsb.v2.GetClusterRequest) returns (tetrateio.api.tsb.v2.Cluster)
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
rpc UpdateCluster (tetrateio.api.tsb.v2.Cluster) returns (tetrateio.api.tsb.v2.Cluster)
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
rpc ListClusters (tetrateio.api.tsb.v2.ListClustersRequest) returns (tetrateio.api.tsb.v2.ListClustersResponse)
Get the list of all clusters that have been onboarded into the platform.
DeleteCluster
rpc DeleteCluster (tetrateio.api.tsb.v2.DeleteClusterRequest) returns (google.protobuf.Empty)
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
rpc GenerateTokens (tetrateio.api.tsb.v2.GenerateTokensRequest) returns (tetrateio.api.tsb.v2.ClusterStatus)
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.
Field | Description | Validation Rule |
parent | string | string = { |
name | string | string = { |
cluster | tetrateio.api.tsb.v2.Cluster | message = { |
DeleteClusterRequest
Request to delete a cluster.
Field | Description | Validation Rule |
fqn | string | string = { |
GenerateTokensRequest
Request to generate the cluster agent tokens.
Field | Description | Validation Rule |
fqn | string | string = { |
GetClusterRequest
Request to retrieve a cluster.
Field | Description | Validation Rule |
fqn | string | string = { |
fetchWorkloads | bool | – |
ListClustersRequest
Request to list clusters.
Field | Description | Validation Rule |
parent | string | string = { |
fetchWorkloads | bool | – |
ListClustersResponse
List of clusters that are registered in the platform.
Field | Description | Validation Rule |
clusters | List of tetrateio.api.tsb.v2.Cluster | – |