Class: Google::Apis::BatchV1::InstancePolicyOrTemplate

Inherits:
Object
  • Object
show all
Includes:
Core::Hashable, Core::JsonObjectSupport
Defined in:
lib/google/apis/batch_v1/classes.rb,
lib/google/apis/batch_v1/representations.rb,
lib/google/apis/batch_v1/representations.rb

Overview

InstancePolicyOrTemplate lets you define the type of resources to use for this job either with an InstancePolicy or an instance template. If undefined, Batch picks the type of VM to use and doesn't include optional VM resources such as GPUs and extra disks.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(**args) ⇒ InstancePolicyOrTemplate

Returns a new instance of InstancePolicyOrTemplate.



1239
1240
1241
# File 'lib/google/apis/batch_v1/classes.rb', line 1239

def initialize(**args)
   update!(**args)
end

Instance Attribute Details

#block_project_ssh_keysBoolean Also known as: block_project_ssh_keys?

Optional. Set this field to true if you want Batch to block project-level SSH keys from accessing this job's VMs. Alternatively, you can configure the job to specify a VM instance template that blocks project-level SSH keys. In either case, Batch blocks project-level SSH keys while creating the VMs for this job. Batch allows project-level SSH keys for a job's VMs only if all the following are true: + This field is undefined or set to false. + The job's VM instance template (if any) doesn't block project-level SSH keys. Notably, you can override this behavior by manually updating a VM to block or allow project-level SSH keys. For more information about blocking project-level SSH keys, see the Compute Engine documentation: https://cloud.google.com/compute/ docs/connect/restrict-ssh-keys#block-keys Corresponds to the JSON property blockProjectSshKeys

Returns:

  • (Boolean)


1202
1203
1204
# File 'lib/google/apis/batch_v1/classes.rb', line 1202

def block_project_ssh_keys
  @block_project_ssh_keys
end

#install_gpu_driversBoolean Also known as: install_gpu_drivers?

Set this field true if you want Batch to help fetch drivers from a third party location and install them for GPUs specified in policy.accelerators or instance_template on your behalf. Default is false. For Container-Optimized Image cases, Batch will install the accelerator driver following milestones of https://cloud.google.com/container-optimized-os/docs/release-notes. For non Container-Optimized Image cases, following https://github.com/ GoogleCloudPlatform/compute-gpu-installation/blob/main/linux/ install_gpu_driver.py. Corresponds to the JSON property installGpuDrivers

Returns:

  • (Boolean)


1215
1216
1217
# File 'lib/google/apis/batch_v1/classes.rb', line 1215

def install_gpu_drivers
  @install_gpu_drivers
end

#install_ops_agentBoolean Also known as: install_ops_agent?

Optional. Set this field true if you want Batch to install Ops Agent on your behalf. Default is false. Corresponds to the JSON property installOpsAgent

Returns:

  • (Boolean)


1222
1223
1224
# File 'lib/google/apis/batch_v1/classes.rb', line 1222

def install_ops_agent
  @install_ops_agent
end

#instance_templateString

Name of an instance template used to create VMs. Named the field as ' instance_template' instead of 'template' to avoid C++ keyword conflict. Batch only supports global instance templates. You can specify the global instance template as a full or partial URL. Corresponds to the JSON property instanceTemplate

Returns:

  • (String)


1231
1232
1233
# File 'lib/google/apis/batch_v1/classes.rb', line 1231

def instance_template
  @instance_template
end

#policyGoogle::Apis::BatchV1::InstancePolicy

InstancePolicy describes an instance type and resources attached to each VM created by this InstancePolicy. Corresponds to the JSON property policy



1237
1238
1239
# File 'lib/google/apis/batch_v1/classes.rb', line 1237

def policy
  @policy
end

Instance Method Details

#update!(**args) ⇒ Object

Update properties of this object



1244
1245
1246
1247
1248
1249
1250
# File 'lib/google/apis/batch_v1/classes.rb', line 1244

def update!(**args)
  @block_project_ssh_keys = args[:block_project_ssh_keys] if args.key?(:block_project_ssh_keys)
  @install_gpu_drivers = args[:install_gpu_drivers] if args.key?(:install_gpu_drivers)
  @install_ops_agent = args[:install_ops_agent] if args.key?(:install_ops_agent)
  @instance_template = args[:instance_template] if args.key?(:instance_template)
  @policy = args[:policy] if args.key?(:policy)
end