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.
- 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:
- The Cloud Bigtable service account associated with the project that contains this cluster must be
granted the
cloudkms.cryptoKeyEncrypterDecrypter
role on the CMEK key. - Only regional keys can be used and the region of the CMEK key must match the region of the cluster.
- All clusters within an instance must use the same CMEK key.
- The Cloud Bigtable service account associated with the project that contains this cluster must be
granted the
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!