Deleting a cluster

This page explains how to delete a Game Servers cluster.

Before you begin

Before you start, we recommend you familiarize yourself with key concepts in the Game Servers Overview. Make sure you have also performed the following tasks:

  • Ensure that you have enabled the Game Services API.
  • Enable Game Services API
  • Either choose a shell with Cloud SDK installed, or use an API client:
  • Cloud Shell

    To launch Cloud Shell, perform the following steps:

    1. Go to Google Cloud Console.

      Google Cloud Console

    2. From the upper-right corner of the console, click the Activate Cloud Shell button:

    A Cloud Shell session opens inside a frame lower on the console. You use this shell to run gcloud commands.

    Local shell

    To install gcloud, install the Cloud SDK, which includes the gcloud command-line tool.

    Verify that you have set desired default project for gcloud command-line tool (otherwise you need to specify flag --project explicitly for each command later):

    gcloud config list project
    

    If not you can run the following command to set a default project, replacing project-id with your desired project ID :

    gcloud config set project project-id
    

    Run the following command to verify your version of the Google Cloud SDK. Game Servers requires version 306.0.0 or higher of the SDK.

    gcloud version
    

    To update your installation, run the following command:

    gcloud components update
    

    Client Library

    Google Cloud Game Servers can be controlled programmatically using a client library. See Client Libraries Overview for instructions on using the library and authenticating.

Deleting a cluster

Deleting a Game Servers cluster doesn't delete any resources in the cluster.

gcloud

You can delete a Game Servers global or regional cluster using the gcloud command-line tool.

To delete a global cluster:

  1. Run the following command and replace the placeholder values, such as clusterID and realmID, with appropriate values:

    gcloud game servers clusters delete clusterID --realm=realmID --dry-run
    

    The output returns the targetState so that you can preview the operation before deleting the cluster.

  2. To delete the cluster, run the following command:

    gcloud game servers clusters delete clusterID --realm=realmID --no-dry-run
    

To delete a regional cluster:

  1. Run the following command and replace the placeholder values, such as clusterID, with appropriate values:

    gcloud game servers clusters delete clusterID --realm=realmID --location=region --dry-run
    

    The output returns the targetState so that you can preview the operation before deleting the cluster.

  2. To delete the cluster, run the following command:

    gcloud game servers clusters delete clusterID --realm=realmID --location=region --no-dry-run
    

The variable placeholders correspond to the following descriptions:

  • clusterID is the unique identifier that you specified for this cluster.
  • realmID is the unique identifier that you specified for the parent realm of this cluster.
  • region is the region for the cluster, if applicable. Pick the same location as the parent realm.

Go

To learn how to install and use the client library for Game Servers, see the Game Servers Client Libraries.


import (
	"context"
	"fmt"
	"io"

	gaming "cloud.google.com/go/gaming/apiv1"
	gamingpb "google.golang.org/genproto/googleapis/cloud/gaming/v1"
)

// deleteCluster unregisters a game server cluster.
func deleteCluster(w io.Writer, projectID, location, realmID, clusterID string) error {
	// projectID := "my-project"
	// location := "global"
	// realmID := "myrealm"
	// clusterID := "mycluster"
	ctx := context.Background()
	client, err := gaming.NewGameServerClustersClient(ctx)
	if err != nil {
		return fmt.Errorf("NewGameServerClustersClient: %v", err)
	}
	defer client.Close()

	req := &gamingpb.DeleteGameServerClusterRequest{
		Name: fmt.Sprintf("projects/%s/locations/%s/realms/%s/gameServerClusters/%s", projectID, location, realmID, clusterID),
	}

	op, err := client.DeleteGameServerCluster(ctx, req)
	if err != nil {
		return fmt.Errorf("DeleteGameServerCluster: %v", err)
	}
	err = op.Wait(ctx)
	if err != nil {
		return fmt.Errorf("Wait: %v", err)
	}

	fmt.Fprintf(w, "Cluster deleted.")
	return nil
}

Java

To learn how to install and use the client library for Game Servers, see the Game Servers Client Libraries.


import com.google.api.gax.longrunning.OperationFuture;
import com.google.cloud.gaming.v1.GameServerClustersServiceClient;
import com.google.cloud.gaming.v1.OperationMetadata;
import com.google.protobuf.Empty;
import java.io.IOException;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.TimeoutException;

public class DeleteCluster {

  public static void deleteGameServerCluster(
      String projectId, String regionId, String realmId, String clusterId)
      throws IOException, InterruptedException, ExecutionException, TimeoutException {
    // String projectId = "your-project-id";
    // String regionId = "us-central1-f";
    // String clusterId = "your-game-server-cluster-id";
    // Initialize client that will be used to send requests. This client only needs to be created
    // once, and can be reused for multiple requests. After completing all of your requests, call
    // the "close" method on the client to safely clean up any remaining background resources.
    try (GameServerClustersServiceClient client = GameServerClustersServiceClient.create()) {
      String parent =
          String.format("projects/%s/locations/%s/realms/%s", projectId, regionId, realmId);
      String clusterName = String.format("%s/gameServerClusters/%s", parent, clusterId);

      OperationFuture<Empty, OperationMetadata> call =
          client.deleteGameServerClusterAsync(clusterName);

      call.get(1, TimeUnit.MINUTES);
      System.out.println("Game Server Cluster deleted: " + clusterName);
    }
  }
}

Node.js

To learn how to install and use the client library for Game Servers, see the Game Servers Client Libraries.

const {
  GameServerClustersServiceClient,
} = require('@google-cloud/game-servers');

const client = new GameServerClustersServiceClient();

async function deleteGameServerCluster() {
  /**
   * TODO(developer): Uncomment these variables before running the sample.
   */
  // const projectId = 'Your Google Cloud Project ID';
  // const location = 'A Compute Engine region, e.g. "us-central1"';
  // const realmId = 'The ID of the realm to locate this cluster in';
  // const gameClusterId = 'The unique ID for this Game Server Cluster';
  const request = {
    // Provide full resource name of a Game Server Realm
    name: client.gameServerClusterPath(
      projectId,
      location,
      realmId,
      gameClusterId
    ),
  };

  const [operation] = await client.deleteGameServerCluster(request);
  await operation.promise();

  console.log('Game Server cluster deleted');
}

deleteGameServerCluster();

Python

To learn how to install and use the client library for Game Servers, see the Game Servers Client Libraries.

def delete_cluster(project_id, location, realm_id, cluster_id):
    """Deletes a game server cluster."""

    client = gaming.GameServerClustersServiceClient()

    request = game_server_clusters.DeleteGameServerClusterRequest(
        name=f"projects/{project_id}/locations/{location}/realms/{realm_id}/gameServerClusters/{cluster_id}",
    )

    operation = client.delete_game_server_cluster(request)
    print(f"Delete cluster operation: {operation.operation.name}")
    operation.result(timeout=120)

Verifying that your cluster has been deleted

Verify that you successfully deleted the cluster by listing your global or regional clusters using the gcloud command-line tool.

To list all clusters, run the following command:

gcloud game servers clusters list

To list clusters in a region, run the following command and replace region with the region that you want to list the clusters in:

gcloud game servers clusters list --location=region

To list all clusters in a realm, run the following command and replace realmID with the parent realm and region with the region of the cluster, if applicable:

gcloud game servers clusters list --realm=realmID --location=region

Your deleted cluster no longer appears in the output of the command.

What's next

Learn about key concepts in the Game Servers overview.