Package google.cloud.hypercomputecluster.v1

Index

HypercomputeCluster

Service describing handlers for resources

CreateCluster

rpc CreateCluster(CreateClusterRequest) returns (Operation)

Creates a new Cluster in a given project and location.

Authorization scopes

Requires the following OAuth scope:

  • https://www.googleapis.com/auth/cloud-platform

For more information, see the Authentication Overview.

IAM Permissions

Requires the following IAM permission on the parent resource:

  • hypercomputecluster.clusters.create

For more information, see the IAM documentation.

DeleteCluster

rpc DeleteCluster(DeleteClusterRequest) returns (Operation)

Deletes a single Cluster.

Authorization scopes

Requires the following OAuth scope:

  • https://www.googleapis.com/auth/cloud-platform

For more information, see the Authentication Overview.

IAM Permissions

Requires the following IAM permission on the name resource:

  • hypercomputecluster.clusters.delete

For more information, see the IAM documentation.

GetCluster

rpc GetCluster(GetClusterRequest) returns (Cluster)

Gets details of a single Cluster.

Authorization scopes

Requires the following OAuth scope:

  • https://www.googleapis.com/auth/cloud-platform

For more information, see the Authentication Overview.

IAM Permissions

Requires the following IAM permission on the name resource:

  • hypercomputecluster.clusters.get

For more information, see the IAM documentation.

ListClusters

rpc ListClusters(ListClustersRequest) returns (ListClustersResponse)

Lists Clusters in a given project and location.

Authorization scopes

Requires the following OAuth scope:

  • https://www.googleapis.com/auth/cloud-platform

For more information, see the Authentication Overview.

IAM Permissions

Requires the following IAM permission on the parent resource:

  • hypercomputecluster.clusters.list

For more information, see the IAM documentation.

UpdateCluster

rpc UpdateCluster(UpdateClusterRequest) returns (Operation)

Updates the parameters of a single Cluster.

Authorization scopes

Requires the following OAuth scope:

  • https://www.googleapis.com/auth/cloud-platform

For more information, see the Authentication Overview.

IAM Permissions

Requires the following IAM permission on the name resource:

  • hypercomputecluster.clusters.update

For more information, see the IAM documentation.

BootDisk

A Persistent disk used as the boot disk for a Compute Engine VM instance.

Fields
type

string

Required. Immutable. Persistent disk type, in the format projects/{project}/zones/{zone}/diskTypes/{disk_type}.

size_gb

int64

Required. Immutable. Size of the disk in gigabytes. Must be at least 10GB.

BucketReference

A reference to a Google Cloud Storage bucket.

Fields
bucket

string

Output only. Name of the bucket.

Cluster

A collection of virtual machines and connected resources forming a high-performance computing cluster capable of running large-scale, tightly coupled workloads. A cluster combines a set a compute resources that perform computations, storage resources that contain inputs and store outputs, an orchestrator that is responsible for assigning jobs to compute resources, and network resources that connect everything together.

Fields
name

string

Identifier. Relative resource name of the cluster, in the format projects/{project}/locations/{location}/clusters/{cluster}.

description

string

Optional. User-provided description of the cluster.

labels

map<string, string>

Optional. Labels applied to the cluster. Labels can be used to organize clusters and to filter them in queries.

create_time

Timestamp

Output only. Time that the cluster was originally created.

update_time

Timestamp

Output only. Time that the cluster was most recently updated.

reconciling

bool

Output only. Indicates whether changes to the cluster are currently in flight. If this is true, then the current state might not match the cluster's intended state.

network_resources

map<string, NetworkResource>

Optional. Network resources available to the cluster. Must contain at most one value. Keys specify the ID of the network resource by which it can be referenced elsewhere, and must conform to RFC-1034 (lower-case, alphanumeric, and at most 63 characters).

storage_resources

map<string, StorageResource>

Optional. Storage resources available to the cluster. Keys specify the ID of the storage resource by which it can be referenced elsewhere, and must conform to RFC-1034 (lower-case, alphanumeric, and at most 63 characters).

compute_resources

map<string, ComputeResource>

Optional. Compute resources available to the cluster. Keys specify the ID of the compute resource by which it can be referenced elsewhere, and must conform to RFC-1034 (lower-case, alphanumeric, and at most 63 characters).

orchestrator

Orchestrator

Optional. Orchestrator that is responsible for scheduling and running jobs on the cluster.

ComputeInstance

Details about a Compute Engine instance.

Fields
instance

string

Output only. Name of the VM instance, in the format projects/{project}/zones/{zone}/instances/{instance}.

ComputeInstanceSlurmNodeSet

When set in a SlurmNodeSet, indicates that the nodeset should be backed by Compute Engine VM instances.

Fields
startup_script

string

Optional. Startup script to be run on each VM instance in the nodeset. Max 256KB.

labels

map<string, string>

Optional. Labels that should be applied to each VM instance in the nodeset.

boot_disk

BootDisk

Optional. Boot disk for the compute instance

ComputeResource

A resource defining how virtual machines and accelerators should be provisioned for the cluster.

Fields
config

ComputeResourceConfig

Required. Immutable. Configuration for this compute resource, which describes how it should be created at runtime.

ComputeResourceConfig

Describes how a compute resource should be created at runtime.

Fields
Union field config. Particular type of configuration for this compute resource. config can be only one of the following:
new_on_demand_instances

NewOnDemandInstancesConfig

Optional. Immutable. If set, indicates that this resource should use on-demand VMs.

new_spot_instances

NewSpotInstancesConfig

Optional. Immutable. If set, indicates that this resource should use spot VMs.

new_reserved_instances

NewReservedInstancesConfig

Optional. Immutable. If set, indicates that this resource should use reserved VMs.

new_flex_start_instances

NewFlexStartInstancesConfig

Optional. Immutable. If set, indicates that this resource should use flex-start VMs.

CreateClusterRequest

Request message for CreateCluster.

Fields
parent

string

Required. Parent location in which the cluster should be created, in the format projects/{project}/locations/{location}.

cluster_id

string

Required. ID of the cluster to create. Must conform to RFC-1034 (lower-case, alphanumeric, and at most 63 characters).

cluster

Cluster

Required. Cluster to create.

request_id

string

Optional. A unique identifier for this request. A random UUID is recommended. This request is idempotent if and only if request_id is provided.

DeleteClusterRequest

Request message for DeleteCluster.

Fields
name

string

Required. Name of the cluster to delete, in the format projects/{project}/locations/{location}/clusters/{cluster}.

request_id

string

Optional. A unique identifier for this request. A random UUID is recommended. This request is idempotent if and only if request_id is provided.

ExistingBucketConfig

When set in a StorageResourceConfig, indicates that an existing Google Cloud Storage bucket should be imported.

Fields
bucket

string

Required. Immutable. Name of the Cloud Storage bucket to import.

ExistingFilestoreConfig

When set in a StorageResourceConfig, indicates that an existing Filestore instance should be imported.

Fields
filestore

string

Required. Immutable. Name of the Filestore instance to import, in the format projects/{project}/locations/{location}/instances/{instance}

ExistingLustreConfig

When set in a StorageResourceConfig, indicates that an existing Managed Lustre instance should be imported.

Fields
lustre

string

Required. Immutable. Name of the Managed Lustre instance to import, in the format projects/{project}/locations/{location}/instances/{instance}

ExistingNetworkConfig

When set in a NetworkResourceConfig, indicates that an existing network should be imported.

Fields
network

string

Required. Immutable. Name of the network to import, in the format projects/{project}/global/networks/{network}.

subnetwork

string

Required. Immutable. Particular subnetwork to use, in the format projects/{project}/regions/{region}/subnetworks/{subnetwork}.

FileShareConfig

Message describing filestore configuration

Fields
capacity_gb

int64

Required. Size of the filestore in GB. Must be between 1024 and 102400, and must meet scalability requirements described at https://cloud.google.com/filestore/docs/service-tiers.

file_share

string

Required. Filestore share location

FilestoreReference

A reference to a Filestore instance.

Fields
filestore

string

Output only. Name of the Filestore instance, in the format projects/{project}/locations/{location}/instances/{instance}

GcsAutoclassConfig

Message describing Google Cloud Storage autoclass configuration

Fields
enabled

bool

Required. Enables Auto-class feature.

terminal_storage_class

TerminalStorageClass

Optional. Terminal storage class of the autoclass bucket

TerminalStorageClass

Terminal storage class types of the autoclass bucket

Enums
TERMINAL_STORAGE_CLASS_UNSPECIFIED Unspecified terminal storage class

GcsHierarchicalNamespaceConfig

Message describing Google Cloud Storage hierarchical namespace configuration

Fields
enabled

bool

Required. Enables hierarchical namespace setup for the bucket.

GetClusterRequest

Request message for GetCluster.

Fields
name

string

Required. Name of the cluster to retrieve, in the format projects/{project}/locations/{location}/clusters/{cluster}.

ListClustersRequest

Request message for ListClusters.

Fields
parent

string

Required. Parent location of the clusters to list, in the format projects/{project}/locations/{location}.

page_size

int32

Optional. Maximum number of clusters to return. The service may return fewer than this value.

page_token

string

Optional. A page token received from a previous ListClusters call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to ListClusters must match the call that provided the page token.

filter

string

Optional. Filter to apply to the returned results.

order_by

string

Optional. How to order the resulting clusters. Must be one of the following strings:

  • name
  • name desc
  • create_time
  • create_time desc

If not specified, clusters will be returned in an arbitrary order.

ListClustersResponse

Response message for ListClusters.

Fields
clusters[]

Cluster

Clusters in the specified location.

next_page_token

string

A token that can be sent as page_token to retrieve the next page. If this field is absent, there are no subsequent pages.

unreachable[]

string

Locations that could not be reached.

LustreReference

A reference to a Managed Lustre instance.

Fields
lustre

string

Output only. Name of the Managed Lustre instance, in the format projects/{project}/locations/{location}/instances/{instance}

NetworkReference

A reference to a VPC network in Google Compute Engine.

Fields
network

string

Output only. Name of the network, in the format projects/{project}/global/networks/{network}.

subnetwork

string

Output only. Name of the particular subnetwork being used by the cluster, in the format projects/{project}/regions/{region}/subnetworks/{subnetwork}.

NetworkResource

A resource representing a network that connects the various components of a cluster together.

Fields
config

NetworkResourceConfig

Immutable. Configuration for this network resource, which describes how it should be created or imported. This field only controls how the network resource is initially created or imported. Subsequent changes to the network resource should be made via the resource's API and will not be reflected in the configuration.

Union field reference. Reference to the network resource in Google Cloud. Exactly one of these fields will be populated based on the configured type of network resource. reference can be only one of the following:
network

NetworkReference

Reference to a network in Google Compute Engine.

NetworkResourceConfig

Describes how a network resource should be initialized. Each network resource can either be imported from an existing Google Cloud resource or initialized when the cluster is created.

Fields
Union field config. Particular type of configuration for this network resource. config can be only one of the following:
new_network

NewNetworkConfig

Optional. Immutable. If set, indicates that a new network should be created.

existing_network

ExistingNetworkConfig

Optional. Immutable. If set, indicates that an existing network should be imported.

NewBucketConfig

When set in a StorageResourceConfig, indicates that a new Google Cloud Storage bucket should be created.

Fields
bucket

string

Required. Immutable. Name of the Cloud Storage bucket to create.

hierarchical_namespace

GcsHierarchicalNamespaceConfig

Optional. Immutable. If set, indicates that the bucket should use hierarchical namespaces.

Union field option. Storage class of the bucket, which can be set automatically or explicitly. option can be only one of the following:
autoclass

GcsAutoclassConfig

Optional. Immutable. If set, indicates that the bucket should use Autoclass.

storage_class

StorageClass

Optional. Immutable. If set, uses the provided storage class as the bucket's default storage class.

StorageClass

Storage class for a Cloud Storage bucket.

Enums
STORAGE_CLASS_UNSPECIFIED Not set.
STANDARD Best for data that is frequently accessed.
NEARLINE Low-cost storage for data that is accessed less frequently.
COLDLINE Very low-cost storage for infrequently accessed data.
ARCHIVE Lowest-cost storage for data archiving, online backup, and disaster recovery.

NewFilestoreConfig

When set in a StorageResourceConfig, indicates that a new Filestore instance should be created.

Fields
filestore

string

Required. Immutable. Name of the Filestore instance to create, in the format projects/{project}/locations/{location}/instances/{instance}

description

string

Optional. Immutable. Description of the instance. Maximum of 2048 characters.

file_shares[]

FileShareConfig

Required. Immutable. File system shares on the instance. Exactly one file share must be specified.

tier

Tier

Required. Immutable. Service tier to use for the instance.

protocol

Protocol

Optional. Immutable. Access protocol to use for all file shares in the instance. Defaults to NFS V3 if not set.

Protocol

File access protocol for Filestore instances.

Enums
PROTOCOL_UNSPECIFIED Not set.
NFSV3 NFS 3.0.
NFSV41 NFS 4.1.

Tier

Available service tiers for Filestore instances.

Enums
TIER_UNSPECIFIED Not set.
ZONAL Offers expanded capacity and performance scaling capabilities suitable for high-performance computing application requirements.
REGIONAL Offers features and availability needed for mission-critical, high-performance computing workloads.

NewFlexStartInstancesConfig

When set in a ComputeResourceConfig, indicates that VM instances should be created using Flex Start.

Fields
zone

string

Required. Immutable. Name of the zone in which VM instances should run, e.g., us-central1-a. Must be in the same region as the cluster, and must match the zone of any other resources specified in the cluster.

machine_type

string

Required. Immutable. Name of the Compute Engine machine type to use, e.g. n2-standard-2.

max_duration

Duration

Required. Immutable. Specifies the time limit for created instances. Instances will be terminated at the end of this duration.

NewLustreConfig

When set in a StorageResourceConfig, indicates that a new Managed Lustre instance should be created.

Fields
lustre

string

Required. Immutable. Name of the Managed Lustre instance to create, in the format projects/{project}/locations/{location}/instances/{instance}

description

string

Optional. Immutable. Description of the Managed Lustre instance. Maximum of 2048 characters.

filesystem

string

Required. Immutable. Filesystem name for this instance. This name is used by client-side tools, including when mounting the instance. Must be 8 characters or less and can only contain letters and numbers.

capacity_gb

int64

Required. Immutable. Storage capacity of the instance in gibibytes (GiB). Allowed values are between 18000 and 7632000.

NewNetworkConfig

When set in a NetworkResourceConfig, indicates that a new network should be created.

Fields
network

string

Required. Immutable. Name of the network to create, in the format projects/{project}/global/networks/{network}.

description

string

Optional. Immutable. Description of the network. Maximum of 2048 characters.

NewOnDemandInstancesConfig

When set in a ComputeResourceConfig, indicates that on-demand (i.e., using the standard provisioning model) VM instances should be created.

Fields
zone

string

Required. Immutable. Name of the zone in which VM instances should run, e.g., us-central1-a. Must be in the same region as the cluster, and must match the zone of any other resources specified in the cluster.

machine_type

string

Required. Immutable. Name of the Compute Engine machine type to use, e.g. n2-standard-2.

NewReservedInstancesConfig

When set in a ComputeResourceConfig, indicates that VM instances should be created from a reservation.

Fields
Union field source. Source of the reservation source can be only one of the following:
reservation

string

Optional. Immutable. Name of the reservation from which VM instances should be created, in the format projects/{project}/zones/{zone}/reservations/{reservation}.

NewSpotInstancesConfig

When set in a ComputeResourceConfig, indicates that spot VM instances should be created.

Fields
zone

string

Required. Immutable. Name of the zone in which VM instances should run, e.g., us-central1-a. Must be in the same region as the cluster, and must match the zone of any other resources specified in the cluster.

machine_type

string

Required. Immutable. Name of the Compute Engine machine type to use, e.g. n2-standard-2.

OperationMetadata

Represents the metadata of the long-running operation.

Fields
create_time

Timestamp

Output only. The time the operation was created.

end_time

Timestamp

Output only. The time the operation finished running.

target

string

Output only. Server-defined resource path for the target of the operation.

verb

string

Output only. Name of the verb executed by the operation.

requested_cancellation

bool

Output only. Identifies whether the user has requested cancellation of the operation. Operations that have been cancelled successfully have google.longrunning.Operation.error value with a google.rpc.Status.code of 1, corresponding to Code.CANCELLED.

api_version

string

Output only. API version used to start the operation.

Orchestrator

The component responsible for scheduling and running workloads on the cluster as well as providing the user interface for interacting with the cluster at runtime.

Fields
Union field option. Particular type of orchestrator to use in this cluster. option can be only one of the following:
slurm

SlurmOrchestrator

Optional. If set, indicates that the cluster should use Slurm as the orchestrator.

SlurmLoginNodes

Configuration for Slurm login nodes in the cluster. Login nodes are Compute Engine VM instances that allow users to access the cluster over SSH.

Fields
count

int64

Required. Number of login node instances to create.

zone

string

Required. Name of the zone in which login nodes should run, e.g., us-central1-a. Must be in the same region as the cluster, and must match the zone of any other resources specified in the cluster.

machine_type

string

Required. Name of the Compute Engine machine type to use for login nodes, e.g. n2-standard-2.

startup_script

string

Optional. Startup script to be run on each login node instance. Max 256KB.

enable_os_login

bool

Optional. Whether OS Login should be enabled on login node instances.

enable_public_ips

bool

Optional. Whether login node instances should be assigned external IP addresses.

labels

map<string, string>

Optional. Labels that should be applied to each login node instance.

storage_configs[]

StorageConfig

Optional. How storage resources should be mounted on each login node.

instances[]

ComputeInstance

Output only. Information about the login node instances that were created in Compute Engine.

boot_disk

BootDisk

Optional. Boot disk for the login node.

SlurmNodeSet

Configuration for Slurm nodesets in the cluster. Nodesets are groups of compute nodes used by Slurm that are responsible for running workloads submitted to the cluster.

Fields
id

string

Required. Identifier for the nodeset, which allows it to be referenced by partitions. Must conform to RFC-1034 (lower-case, alphanumeric, and at most 63 characters).

compute_id

string

Optional. ID of the compute resource on which this nodeset will run. Must match a key in the cluster's compute_resources.

storage_configs[]

StorageConfig

Optional. How storage resources should be mounted on each compute node.

static_node_count

int64

Optional. Number of nodes to be statically created for this nodeset. The cluster will attempt to ensure that at least this many nodes exist at all times.

max_dynamic_node_count

int64

Optional. Controls how many additional nodes a cluster can bring online to handle workloads. Set this value to enable dynamic node creation and limit the number of additional nodes the cluster can bring online. Leave empty if you do not want the cluster to create nodes dynamically, and instead rely only on static nodes.

Union field type. Additional configuration for the nodeset. If not set, the nodeset will use ComputeInstanceSlurmNodeSet with default values. type can be only one of the following:
compute_instance

ComputeInstanceSlurmNodeSet

Optional. If set, indicates that the nodeset should be backed by Compute Engine instances.

SlurmOrchestrator

When set in Orchestrator, indicates that the cluster should use Slurm as the orchestrator.

Fields
login_nodes

SlurmLoginNodes

Required. Configuration for login nodes, which allow users to access the cluster over SSH.

node_sets[]

SlurmNodeSet

Required. Configuration of Slurm nodesets, which define groups of compute resources that can be used by Slurm. At least one compute node is required.

partitions[]

SlurmPartition

Required. Configuration of Slurm partitions, which group one or more nodesets. Acts as a queue against which jobs can be submitted. At least one partition is required.

default_partition

string

Optional. Default partition to use for submitted jobs that do not explicitly specify a partition. Required if and only if there is more than one partition, in which case it must match the id of one of the partitions.

prolog_bash_scripts[]

string

Optional. Slurm prolog scripts, which will be executed by compute nodes before a node begins running a new job. Values must not be empty.

epilog_bash_scripts[]

string

Optional. Slurm epilog scripts, which will be executed by compute nodes whenever a node finishes running a job. Values must not be empty.

SlurmPartition

Configuration for Slurm partitions in the cluster. Partitions are groups of nodesets, and are how clients specify where their workloads should be run.

Fields
id

string

Required. ID of the partition, which is how users will identify it. Must conform to RFC-1034 (lower-case, alphanumeric, and at most 63 characters).

node_set_ids[]

string

Required. IDs of the nodesets that make up this partition. Values must match SlurmNodeSet.id.

StorageConfig

Description of how a storage resource should be mounted on a VM instance.

Fields
id

string

Required. ID of the storage resource to mount, which must match a key in the cluster's storage_resources.

local_mount

string

Required. A directory inside the VM instance's file system where the storage resource should be mounted (e.g., /mnt/share).

StorageResource

A resource representing a form of persistent storage that is accessible to compute resources in the cluster.

Fields
config

StorageResourceConfig

Required. Immutable. Configuration for this storage resource, which describes how it should be created or imported. This field only controls how the storage resource is initially created or imported. Subsequent changes to the storage resource should be made via the resource's API and will not be reflected in the configuration.

Union field reference. Reference to the storage resource in Google Cloud. Exactly one of these fields will be populated based on the configured type of storage resource. reference can be only one of the following:
filestore

FilestoreReference

Reference to a Filestore instance. Populated if and only if the storage resource was configured to use Filestore.

bucket

BucketReference

Reference to a Google Cloud Storage bucket. Populated if and only if the storage resource was configured to use Google Cloud Storage.

lustre

LustreReference

Reference to a Managed Lustre instance. Populated if and only if the storage resource was configured to use Managed Lustre.

StorageResourceConfig

Describes how a storage resource should be initialized. Each storage resource can either be imported from an existing Google Cloud resource or initialized when the cluster is created.

Fields
Union field config. Particular type of configuration for this storage resource. config can be only one of the following:
new_filestore

NewFilestoreConfig

Optional. Immutable. If set, indicates that a new Filestore instance should be created.

existing_filestore

ExistingFilestoreConfig

Optional. Immutable. If set, indicates that an existing Filestore instance should be imported.

new_bucket

NewBucketConfig

Optional. Immutable. If set, indicates that a new Cloud Storage bucket should be created.

existing_bucket

ExistingBucketConfig

Optional. Immutable. If set, indicates that an existing Cloud Storage bucket should be imported.

new_lustre

NewLustreConfig

Optional. Immutable. If set, indicates that a new Managed Lustre instance should be created.

existing_lustre

ExistingLustreConfig

Optional. Immutable. If set, indicates that an existing Managed Lustre instance should be imported.

UpdateClusterRequest

Request message for UpdateCluster.

Fields
cluster

Cluster

Required. Cluster to update.

update_mask

FieldMask

Optional. Mask specifying which fields in the cluster to update. All paths must be specified explicitly - wildcards are not supported. At least one path must be provided.

request_id

string

Optional. A unique identifier for this request. A random UUID is recommended. This request is idempotent if and only if request_id is provided.