Cloud Bigtable API - Class Google::Cloud::Bigtable::Instance::ClusterMap (v2.11.0)

Reference documentation and code samples for the Cloud Bigtable API class Google::Cloud::Bigtable::Instance::ClusterMap.

Instance::ClusterMap is a hash with cluster ID keys and cluster configuration values. It is used to create a cluster.

Inherits

  • Hash

Example

require "google/cloud/bigtable"

bigtable = Google::Cloud::Bigtable.new

job = bigtable.create_instance "my-instance" do |clusters|
  clusters.add "test-cluster", "us-east1-b", nodes: 3, storage_type: :SSD
end

job.wait_until_done!

Methods

#add

def add(name, location, nodes: nil, storage_type: nil, kms_key: nil)

Adds a cluster to the cluster map.

Parameters
  • name (String) — The unique identifier for the cluster.
  • location (String) — The location where this cluster's nodes and storage reside. For best performance, clients should be located as close as possible to this cluster. Currently only zones are supported.
  • nodes (Integer) (defaults to: nil) — Number of nodes for the cluster. When creating an instance of type :DEVELOPMENT, nodes must not be set.
  • storage_type (Symbol) (defaults to: nil) — The type of storage used by this cluster to serve its parent instance's tables, unless explicitly overridden. Valid values are:

    • :SSD - Flash (SSD) storage should be used.
    • :HDD - Magnetic drive (HDD) storage should be used.

    If not set then default will set to :STORAGE_TYPE_UNSPECIFIED.

  • kms_key (String) (defaults to: nil)

    The full name of a Cloud KMS encryption key for a CMEK-protected cluster, in the format projects/{key_project_id}/locations/{location}/keyRings/{ring_name}/cryptoKeys/{key_name}.

    The requirements for this key are:

    1. The Cloud Bigtable service account associated with the project that contains this cluster must be granted the cloudkms.cryptoKeyEncrypterDecrypter role on the CMEK key.
    2. Only regional keys can be used and the region of the CMEK key must match the region of the cluster.
    3. All clusters within an instance must use the same CMEK key.
Examples
require "google/cloud/bigtable"

bigtable = Google::Cloud::Bigtable.new

job = bigtable.create_instance "my-instance" do |clusters|
  clusters.add "test-cluster", "us-east1-b", nodes: 3, storage_type: :SSD
end

job.wait_until_done!

With a Cloud KMS encryption key name for a CMEK-protected cluster:

require "google/cloud/bigtable"

bigtable = Google::Cloud::Bigtable.new

kms_key_name = "projects/a/locations/b/keyRings/c/cryptoKeys/d"
job = bigtable.create_instance "my-instance" do |clusters|
  clusters.add "test-cluster", "us-east1-b", kms_key: kms_key_name
end

job.wait_until_done!