Elastigroup

Provides a Spotinst elastigroup GCP resource.

GPU

  • gpu - (Optional) Defines the GPU configuration.
    • type - (Required) The type of GPU instance. Valid values: nvidia-tesla-v100, nvidia-tesla-p100, nvidia-tesla-k80.
    • count - (Required) The number of GPUs. Must be 0, 2, 4, 6, 8.

Usage:

import * as pulumi from "@pulumi/pulumi";
import pulumi
using Pulumi;

class MyStack : Stack
{
    public MyStack()
    {
    }

}

Backend Services

  • backend_services - (Optional) Describes the backend service configurations.
    • service_name - (Required) The name of the backend service.
    • location_type - (Optional) Sets which location the backend services will be active. Valid values: regional, global.
    • scheme - (Optional) Use when location_type is “regional”. Set the traffic for the backend service to either between the instances in the vpc or to traffic from the internet. Valid values: INTERNAL, EXTERNAL.
    • named_port - (Optional) Describes a named port and a list of ports.
      • port_name - (Required) The name of the port.
      • ports - (Required) A list of ports.

Usage:

import * as pulumi from "@pulumi/pulumi";
import pulumi
using Pulumi;

class MyStack : Stack
{
    public MyStack()
    {
    }

}

Disks

  • disks - (Optional) Array of disks associated with this instance. Persistent disks must be created before you can assign them.
    • auto_delete - (Optional) Specifies whether the disk will be auto-deleted when the instance is deleted.
    • boot - (Optional) Indicates that this is a boot disk. The virtual machine will use the first partition of the disk for its root filesystem.
    • device_name - (Optional) Specifies a unique device name of your choice.
    • interface - (Optional, Default: SCSI) Specifies the disk interface to use for attaching this disk, which is either SCSI or NVME.
    • mode - (Optional, Default: READ_WRITE) The mode in which to attach this disk, either READ_WRITE or READ_ONLY.
    • source - (Optional) Specifies a valid partial or full URL to an existing Persistent Disk resource. This field is only applicable for persistent disks.
    • type - (Optional, Default: PERSISTENT) Specifies the type of disk, either SCRATCH or PERSISTENT.
    • initialize_params - (Optional) Specifies the parameters for a new disk that will be created alongside the new instance. Use initialization parameters to create boot disks or local SSDs attached to the new instance.
      • disk_size_gb - (Optional) Specifies disk size in gigabytes. Must be in increments of 2.
      • disk_type - (Optional, Default” pd-standard) Specifies the disk type to use to create the instance. Valid values: pd-ssd, local-ssd.
      • source_image - (Optional) A source image used to create the disk. You can provide a private (custom) image, and Compute Engine will use the corresponding image from your project.

Usage:

import * as pulumi from "@pulumi/pulumi";
import pulumi
using Pulumi;

class MyStack : Stack
{
    public MyStack()
    {
    }

}

Network Interfaces

Each of the network_interface attributes controls a portion of the GCP Instance’s “Network Interfaces”. It’s a good idea to familiarize yourself with GCP’s Network Interfaces docs to understand the implications of using these attributes.

  • network_interface - (Required, minimum 1) Array of objects representing the network configuration for the elastigroup.
    • network - (Required) Network resource for this group.
    • access_configs - (Optional) Array of configurations.
      • name - (Optional) Name of this access configuration.
      • type - (Optional) Array of configurations for this interface. Currently, only ONE_TO_ONE_NAT is supported.
import * as pulumi from "@pulumi/pulumi";
import pulumi
using Pulumi;

class MyStack : Stack
{
    public MyStack()
    {
    }

}

Scaling Policies

  • scaling_up_policy - (Optional) Contains scaling policies for scaling the Elastigroup up.
  • scaling_down_policy - (Optional) Contains scaling policies for scaling the Elastigroup down.

Each scaling_*_policy supports the following:

  • policy_name - (Optional) Name of scaling policy.
  • metric_name - (Optional) Metric to monitor. Valid values: “Percentage CPU”, “Network In”, “Network Out”, “Disk Read Bytes”, “Disk Write Bytes”, “Disk Write Operations/Sec”, “Disk Read Operations/Sec”.
  • statistic - (Optional) Statistic by which to evaluate the selected metric. Valid values: “AVERAGE”, “SAMPLE_COUNT”, “SUM”, “MINIMUM”, “MAXIMUM”, “PERCENTILE”, “COUNT”.
  • threshold - (Optional) The value at which the scaling action is triggered.
  • period - (Optional) Amount of time (seconds) for which the threshold must be met in order to trigger the scaling action.
  • evaluation_periods - (Optional) Number of consecutive periods in which the threshold must be met in order to trigger a scaling action.
  • cooldown - (Optional) Time (seconds) to wait after a scaling action before resuming monitoring.
  • operator - (Optional) The operator used to evaluate the threshold against the current metric value. Valid values: “gt” (greater than), “get” (greater-than or equal), “lt” (less than), “lte” (less than or equal).
  • action - (Optional) Scaling action to take when the policy is triggered.
    • type - (Optional) Type of scaling action to take when the scaling policy is triggered. Valid values: “adjustment”, “setMinTarget”, “updateCapacity”, “percentageAdjustment”
    • adjustment - (Optional) Value to which the action type will be adjusted. Required if using “numeric” or “percentageAdjustment” action types.
  • dimensions - (Optional) A list of dimensions describing qualities of the metric.
    • name - (Required) The dimension name.
    • value - (Required) The dimension value.

Usage:

import * as pulumi from "@pulumi/pulumi";
import pulumi
using Pulumi;

class MyStack : Stack
{
    public MyStack()
    {
    }

}

Third-Party Integrations

  • integration_docker_swarm - (Optional) Describes the Docker Swarm integration.
    • master_host - (Required) IP or FQDN of one of your swarm managers.
    • master_port - (Required) Network port used by your swarm.

Usage:

import * as pulumi from "@pulumi/pulumi";
import pulumi
using Pulumi;

class MyStack : Stack
{
    public MyStack()
    {
    }

}

Scheduled Tasks

Each scheduled_task supports the following:

  • task_type - (Required) The task type to run. Valid values: "setCapacity".
  • cron_expression - (Optional) A valid cron expression. The cron is running in UTC time zone and is in Unix cron format.
  • is_enabled - (Optional, Default: true) Setting the task to being enabled or disabled.
  • target_capacity - (Optional) The desired number of instances the group should have.
  • min_capacity - (Optional) The minimum number of instances the group should have.
  • max_capacity - (Optional) The maximum number of instances the group should have.

Usage:

import * as pulumi from "@pulumi/pulumi";
import pulumi
using Pulumi;

class MyStack : Stack
{
    public MyStack()
    {
    }

}

Create a Elastigroup Resource

def Elastigroup(resource_name, opts=None, auto_healing=None, availability_zones=None, backend_services=None, description=None, desired_capacity=None, disks=None, draining_timeout=None, fallback_to_ondemand=None, gpu=None, health_check_grace_period=None, health_check_type=None, instance_types_customs=None, instance_types_ondemand=None, instance_types_preemptibles=None, integration_docker_swarm=None, integration_gke=None, ip_forwarding=None, labels=None, max_size=None, metadatas=None, min_size=None, name=None, network_interfaces=None, ondemand_count=None, preemptible_percentage=None, scaling_down_policies=None, scaling_up_policies=None, scheduled_tasks=None, service_account=None, shutdown_script=None, startup_script=None, subnets=None, tags=None, unhealthy_duration=None, __props__=None);
func NewElastigroup(ctx *Context, name string, args ElastigroupArgs, opts ...ResourceOption) (*Elastigroup, error)
public Elastigroup(string name, ElastigroupArgs args, CustomResourceOptions? opts = null)
name string
The unique name of the resource.
args ElastigroupArgs
The arguments to resource properties.
opts CustomResourceOptions
Bag of options to control resource's behavior.
resource_name str
The unique name of the resource.
opts ResourceOptions
A bag of options that control this resource's behavior.
ctx Context
Context object for the current deployment.
name string
The unique name of the resource.
args ElastigroupArgs
The arguments to resource properties.
opts ResourceOption
Bag of options to control resource's behavior.
name string
The unique name of the resource.
args ElastigroupArgs
The arguments to resource properties.
opts CustomResourceOptions
Bag of options to control resource's behavior.

Elastigroup Resource Properties

To learn more about resource properties and how to use them, see Inputs and Outputs in the Programming Model docs.

Inputs

The Elastigroup resource accepts the following input properties:

DesiredCapacity int

The desired number of instances the group should have at any time.

AutoHealing bool
AvailabilityZones List<string>

List of availability zones for the group.

Deprecated: This field will soon be handled by Region in Subnets

BackendServices List<Pulumi.SpotInst.Gcp.Inputs.ElastigroupBackendServiceArgs>
Description string

The region your GCP group will be created in.

Disks List<Pulumi.SpotInst.Gcp.Inputs.ElastigroupDiskArgs>
DrainingTimeout int

Time (seconds) the instance is allowed to run after it is detached from the group. This is to allow the instance time to drain all the current TCP connections before terminating it.

FallbackToOndemand bool

Activate fallback-to-on-demand. When provisioning an instance, if no Preemptible market is available, fallback-to-on-demand will provision an On-Demand instance to maintain the group capacity.

Gpu List<Pulumi.SpotInst.Gcp.Inputs.ElastigroupGpuArgs>
HealthCheckGracePeriod int
HealthCheckType string
InstanceTypesCustoms List<Pulumi.SpotInst.Gcp.Inputs.ElastigroupInstanceTypesCustomArgs>

Defines a set of custom instance types. Required if instance_types_preemptible and instance_types_ondemand are not set.

InstanceTypesOndemand string

The regular VM instance type to use for mixed-type groups and when falling back to on-demand. Required if instance_types_preemptible is not set.

InstanceTypesPreemptibles List<string>

The preemptible VMs instance type. To maximize cost savings and market availability, select as many types as possible. Required if instance_types_ondemand is not set.

IntegrationDockerSwarm Pulumi.SpotInst.Gcp.Inputs.ElastigroupIntegrationDockerSwarmArgs
IntegrationGke Pulumi.SpotInst.Gcp.Inputs.ElastigroupIntegrationGkeArgs
IpForwarding bool
Labels List<Pulumi.SpotInst.Gcp.Inputs.ElastigroupLabelArgs>

Array of objects with key-value pairs.

MaxSize int

The maximum number of instances the group should have at any time.

Metadatas List<Pulumi.SpotInst.Gcp.Inputs.ElastigroupMetadataArgs>

Array of objects with key-value pairs.

MinSize int

The minimum number of instances the group should have at any time.

Name string

The group name.

NetworkInterfaces List<Pulumi.SpotInst.Gcp.Inputs.ElastigroupNetworkInterfaceArgs>
OndemandCount int
PreemptiblePercentage int

Percentage of Preemptible VMs to spin up from the “desired_capacity”.

ScalingDownPolicies List<Pulumi.SpotInst.Gcp.Inputs.ElastigroupScalingDownPolicyArgs>
ScalingUpPolicies List<Pulumi.SpotInst.Gcp.Inputs.ElastigroupScalingUpPolicyArgs>
ScheduledTasks List<Pulumi.SpotInst.Gcp.Inputs.ElastigroupScheduledTaskArgs>
ServiceAccount string

The email of the service account in which the group instances will be launched.

ShutdownScript string

The Base64-encoded shutdown script that executes prior to instance termination, for more information please see: Shutdown Script

StartupScript string

Create and run your own startup scripts on your virtual machines to perform automated tasks every time your instance boots up.

Subnets List<Pulumi.SpotInst.Gcp.Inputs.ElastigroupSubnetArgs>

A list of regions and subnets.

Tags List<string>

Tags to mark created instances.

UnhealthyDuration int
DesiredCapacity int

The desired number of instances the group should have at any time.

AutoHealing bool
AvailabilityZones []string

List of availability zones for the group.

Deprecated: This field will soon be handled by Region in Subnets

BackendServices []ElastigroupBackendService
Description string

The region your GCP group will be created in.

Disks []ElastigroupDisk
DrainingTimeout int

Time (seconds) the instance is allowed to run after it is detached from the group. This is to allow the instance time to drain all the current TCP connections before terminating it.

FallbackToOndemand bool

Activate fallback-to-on-demand. When provisioning an instance, if no Preemptible market is available, fallback-to-on-demand will provision an On-Demand instance to maintain the group capacity.

Gpu []ElastigroupGpu
HealthCheckGracePeriod int
HealthCheckType string
InstanceTypesCustoms []ElastigroupInstanceTypesCustom

Defines a set of custom instance types. Required if instance_types_preemptible and instance_types_ondemand are not set.

InstanceTypesOndemand string

The regular VM instance type to use for mixed-type groups and when falling back to on-demand. Required if instance_types_preemptible is not set.

InstanceTypesPreemptibles []string

The preemptible VMs instance type. To maximize cost savings and market availability, select as many types as possible. Required if instance_types_ondemand is not set.

IntegrationDockerSwarm ElastigroupIntegrationDockerSwarm
IntegrationGke ElastigroupIntegrationGke
IpForwarding bool
Labels []ElastigroupLabel

Array of objects with key-value pairs.

MaxSize int

The maximum number of instances the group should have at any time.

Metadatas []ElastigroupMetadata

Array of objects with key-value pairs.

MinSize int

The minimum number of instances the group should have at any time.

Name string

The group name.

NetworkInterfaces []ElastigroupNetworkInterface
OndemandCount int
PreemptiblePercentage int

Percentage of Preemptible VMs to spin up from the “desired_capacity”.

ScalingDownPolicies []ElastigroupScalingDownPolicy
ScalingUpPolicies []ElastigroupScalingUpPolicy
ScheduledTasks []ElastigroupScheduledTask
ServiceAccount string

The email of the service account in which the group instances will be launched.

ShutdownScript string

The Base64-encoded shutdown script that executes prior to instance termination, for more information please see: Shutdown Script

StartupScript string

Create and run your own startup scripts on your virtual machines to perform automated tasks every time your instance boots up.

Subnets []ElastigroupSubnet

A list of regions and subnets.

Tags []string

Tags to mark created instances.

UnhealthyDuration int
desiredCapacity number

The desired number of instances the group should have at any time.

autoHealing boolean
availabilityZones string[]

List of availability zones for the group.

Deprecated: This field will soon be handled by Region in Subnets

backendServices ElastigroupBackendService[]
description string

The region your GCP group will be created in.

disks ElastigroupDisk[]
drainingTimeout number

Time (seconds) the instance is allowed to run after it is detached from the group. This is to allow the instance time to drain all the current TCP connections before terminating it.

fallbackToOndemand boolean

Activate fallback-to-on-demand. When provisioning an instance, if no Preemptible market is available, fallback-to-on-demand will provision an On-Demand instance to maintain the group capacity.

gpu ElastigroupGpu[]
healthCheckGracePeriod number
healthCheckType string
instanceTypesCustoms ElastigroupInstanceTypesCustom[]

Defines a set of custom instance types. Required if instance_types_preemptible and instance_types_ondemand are not set.

instanceTypesOndemand string

The regular VM instance type to use for mixed-type groups and when falling back to on-demand. Required if instance_types_preemptible is not set.

instanceTypesPreemptibles string[]

The preemptible VMs instance type. To maximize cost savings and market availability, select as many types as possible. Required if instance_types_ondemand is not set.

integrationDockerSwarm ElastigroupIntegrationDockerSwarm
integrationGke ElastigroupIntegrationGke
ipForwarding boolean
labels ElastigroupLabel[]

Array of objects with key-value pairs.

maxSize number

The maximum number of instances the group should have at any time.

metadatas ElastigroupMetadata[]

Array of objects with key-value pairs.

minSize number

The minimum number of instances the group should have at any time.

name string

The group name.

networkInterfaces ElastigroupNetworkInterface[]
ondemandCount number
preemptiblePercentage number

Percentage of Preemptible VMs to spin up from the “desired_capacity”.

scalingDownPolicies ElastigroupScalingDownPolicy[]
scalingUpPolicies ElastigroupScalingUpPolicy[]
scheduledTasks ElastigroupScheduledTask[]
serviceAccount string

The email of the service account in which the group instances will be launched.

shutdownScript string

The Base64-encoded shutdown script that executes prior to instance termination, for more information please see: Shutdown Script

startupScript string

Create and run your own startup scripts on your virtual machines to perform automated tasks every time your instance boots up.

subnets ElastigroupSubnet[]

A list of regions and subnets.

tags string[]

Tags to mark created instances.

unhealthyDuration number
desired_capacity float

The desired number of instances the group should have at any time.

auto_healing bool
availability_zones List[str]

List of availability zones for the group.

Deprecated: This field will soon be handled by Region in Subnets

backend_services List[ElastigroupBackendService]
description str

The region your GCP group will be created in.

disks List[ElastigroupDisk]
draining_timeout float

Time (seconds) the instance is allowed to run after it is detached from the group. This is to allow the instance time to drain all the current TCP connections before terminating it.

fallback_to_ondemand bool

Activate fallback-to-on-demand. When provisioning an instance, if no Preemptible market is available, fallback-to-on-demand will provision an On-Demand instance to maintain the group capacity.

gpu List[ElastigroupGpu]
health_check_grace_period float
health_check_type str
instance_types_customs List[ElastigroupInstanceTypesCustom]

Defines a set of custom instance types. Required if instance_types_preemptible and instance_types_ondemand are not set.

instance_types_ondemand str

The regular VM instance type to use for mixed-type groups and when falling back to on-demand. Required if instance_types_preemptible is not set.

instance_types_preemptibles List[str]

The preemptible VMs instance type. To maximize cost savings and market availability, select as many types as possible. Required if instance_types_ondemand is not set.

integration_docker_swarm Dict[ElastigroupIntegrationDockerSwarm]
integration_gke Dict[ElastigroupIntegrationGke]
ip_forwarding bool
labels List[ElastigroupLabel]

Array of objects with key-value pairs.

max_size float

The maximum number of instances the group should have at any time.

metadatas List[ElastigroupMetadata]

Array of objects with key-value pairs.

min_size float

The minimum number of instances the group should have at any time.

name str

The group name.

network_interfaces List[ElastigroupNetworkInterface]
ondemand_count float
preemptible_percentage float

Percentage of Preemptible VMs to spin up from the “desired_capacity”.

scaling_down_policies List[ElastigroupScalingDownPolicy]
scaling_up_policies List[ElastigroupScalingUpPolicy]
scheduled_tasks List[ElastigroupScheduledTask]
service_account str

The email of the service account in which the group instances will be launched.

shutdown_script str

The Base64-encoded shutdown script that executes prior to instance termination, for more information please see: Shutdown Script

startup_script str

Create and run your own startup scripts on your virtual machines to perform automated tasks every time your instance boots up.

subnets List[ElastigroupSubnet]

A list of regions and subnets.

tags List[str]

Tags to mark created instances.

unhealthy_duration float

Outputs

All input properties are implicitly available as output properties. Additionally, the Elastigroup resource produces the following output properties:

Id string
The provider-assigned unique ID for this managed resource.
Id string
The provider-assigned unique ID for this managed resource.
id string
The provider-assigned unique ID for this managed resource.
id str
The provider-assigned unique ID for this managed resource.

Look up an Existing Elastigroup Resource

Get an existing Elastigroup resource’s state with the given name, ID, and optional extra properties used to qualify the lookup.

public static get(name: string, id: Input<ID>, state?: ElastigroupState, opts?: CustomResourceOptions): Elastigroup
static get(resource_name, id, opts=None, auto_healing=None, availability_zones=None, backend_services=None, description=None, desired_capacity=None, disks=None, draining_timeout=None, fallback_to_ondemand=None, gpu=None, health_check_grace_period=None, health_check_type=None, instance_types_customs=None, instance_types_ondemand=None, instance_types_preemptibles=None, integration_docker_swarm=None, integration_gke=None, ip_forwarding=None, labels=None, max_size=None, metadatas=None, min_size=None, name=None, network_interfaces=None, ondemand_count=None, preemptible_percentage=None, scaling_down_policies=None, scaling_up_policies=None, scheduled_tasks=None, service_account=None, shutdown_script=None, startup_script=None, subnets=None, tags=None, unhealthy_duration=None, __props__=None);
func GetElastigroup(ctx *Context, name string, id IDInput, state *ElastigroupState, opts ...ResourceOption) (*Elastigroup, error)
public static Elastigroup Get(string name, Input<string> id, ElastigroupState? state, CustomResourceOptions? opts = null)
name
The unique name of the resulting resource.
id
The unique provider ID of the resource to lookup.
state
Any extra arguments used during the lookup.
opts
A bag of options that control this resource's behavior.
resource_name
The unique name of the resulting resource.
id
The unique provider ID of the resource to lookup.
name
The unique name of the resulting resource.
id
The unique provider ID of the resource to lookup.
state
Any extra arguments used during the lookup.
opts
A bag of options that control this resource's behavior.
name
The unique name of the resulting resource.
id
The unique provider ID of the resource to lookup.
state
Any extra arguments used during the lookup.
opts
A bag of options that control this resource's behavior.

The following state arguments are supported:

AutoHealing bool
AvailabilityZones List<string>

List of availability zones for the group.

Deprecated: This field will soon be handled by Region in Subnets

BackendServices List<Pulumi.SpotInst.Gcp.Inputs.ElastigroupBackendServiceArgs>
Description string

The region your GCP group will be created in.

DesiredCapacity int

The desired number of instances the group should have at any time.

Disks List<Pulumi.SpotInst.Gcp.Inputs.ElastigroupDiskArgs>
DrainingTimeout int

Time (seconds) the instance is allowed to run after it is detached from the group. This is to allow the instance time to drain all the current TCP connections before terminating it.

FallbackToOndemand bool

Activate fallback-to-on-demand. When provisioning an instance, if no Preemptible market is available, fallback-to-on-demand will provision an On-Demand instance to maintain the group capacity.

Gpu List<Pulumi.SpotInst.Gcp.Inputs.ElastigroupGpuArgs>
HealthCheckGracePeriod int
HealthCheckType string
InstanceTypesCustoms List<Pulumi.SpotInst.Gcp.Inputs.ElastigroupInstanceTypesCustomArgs>

Defines a set of custom instance types. Required if instance_types_preemptible and instance_types_ondemand are not set.

InstanceTypesOndemand string

The regular VM instance type to use for mixed-type groups and when falling back to on-demand. Required if instance_types_preemptible is not set.

InstanceTypesPreemptibles List<string>

The preemptible VMs instance type. To maximize cost savings and market availability, select as many types as possible. Required if instance_types_ondemand is not set.

IntegrationDockerSwarm Pulumi.SpotInst.Gcp.Inputs.ElastigroupIntegrationDockerSwarmArgs
IntegrationGke Pulumi.SpotInst.Gcp.Inputs.ElastigroupIntegrationGkeArgs
IpForwarding bool
Labels List<Pulumi.SpotInst.Gcp.Inputs.ElastigroupLabelArgs>

Array of objects with key-value pairs.

MaxSize int

The maximum number of instances the group should have at any time.

Metadatas List<Pulumi.SpotInst.Gcp.Inputs.ElastigroupMetadataArgs>

Array of objects with key-value pairs.

MinSize int

The minimum number of instances the group should have at any time.

Name string

The group name.

NetworkInterfaces List<Pulumi.SpotInst.Gcp.Inputs.ElastigroupNetworkInterfaceArgs>
OndemandCount int
PreemptiblePercentage int

Percentage of Preemptible VMs to spin up from the “desired_capacity”.

ScalingDownPolicies List<Pulumi.SpotInst.Gcp.Inputs.ElastigroupScalingDownPolicyArgs>
ScalingUpPolicies List<Pulumi.SpotInst.Gcp.Inputs.ElastigroupScalingUpPolicyArgs>
ScheduledTasks List<Pulumi.SpotInst.Gcp.Inputs.ElastigroupScheduledTaskArgs>
ServiceAccount string

The email of the service account in which the group instances will be launched.

ShutdownScript string

The Base64-encoded shutdown script that executes prior to instance termination, for more information please see: Shutdown Script

StartupScript string

Create and run your own startup scripts on your virtual machines to perform automated tasks every time your instance boots up.

Subnets List<Pulumi.SpotInst.Gcp.Inputs.ElastigroupSubnetArgs>

A list of regions and subnets.

Tags List<string>

Tags to mark created instances.

UnhealthyDuration int
AutoHealing bool
AvailabilityZones []string

List of availability zones for the group.

Deprecated: This field will soon be handled by Region in Subnets

BackendServices []ElastigroupBackendService
Description string

The region your GCP group will be created in.

DesiredCapacity int

The desired number of instances the group should have at any time.

Disks []ElastigroupDisk
DrainingTimeout int

Time (seconds) the instance is allowed to run after it is detached from the group. This is to allow the instance time to drain all the current TCP connections before terminating it.

FallbackToOndemand bool

Activate fallback-to-on-demand. When provisioning an instance, if no Preemptible market is available, fallback-to-on-demand will provision an On-Demand instance to maintain the group capacity.

Gpu []ElastigroupGpu
HealthCheckGracePeriod int
HealthCheckType string
InstanceTypesCustoms []ElastigroupInstanceTypesCustom

Defines a set of custom instance types. Required if instance_types_preemptible and instance_types_ondemand are not set.

InstanceTypesOndemand string

The regular VM instance type to use for mixed-type groups and when falling back to on-demand. Required if instance_types_preemptible is not set.

InstanceTypesPreemptibles []string

The preemptible VMs instance type. To maximize cost savings and market availability, select as many types as possible. Required if instance_types_ondemand is not set.

IntegrationDockerSwarm ElastigroupIntegrationDockerSwarm
IntegrationGke ElastigroupIntegrationGke
IpForwarding bool
Labels []ElastigroupLabel

Array of objects with key-value pairs.

MaxSize int

The maximum number of instances the group should have at any time.

Metadatas []ElastigroupMetadata

Array of objects with key-value pairs.

MinSize int

The minimum number of instances the group should have at any time.

Name string

The group name.

NetworkInterfaces []ElastigroupNetworkInterface
OndemandCount int
PreemptiblePercentage int

Percentage of Preemptible VMs to spin up from the “desired_capacity”.

ScalingDownPolicies []ElastigroupScalingDownPolicy
ScalingUpPolicies []ElastigroupScalingUpPolicy
ScheduledTasks []ElastigroupScheduledTask
ServiceAccount string

The email of the service account in which the group instances will be launched.

ShutdownScript string

The Base64-encoded shutdown script that executes prior to instance termination, for more information please see: Shutdown Script

StartupScript string

Create and run your own startup scripts on your virtual machines to perform automated tasks every time your instance boots up.

Subnets []ElastigroupSubnet

A list of regions and subnets.

Tags []string

Tags to mark created instances.

UnhealthyDuration int
autoHealing boolean
availabilityZones string[]

List of availability zones for the group.

Deprecated: This field will soon be handled by Region in Subnets

backendServices ElastigroupBackendService[]
description string

The region your GCP group will be created in.

desiredCapacity number

The desired number of instances the group should have at any time.

disks ElastigroupDisk[]
drainingTimeout number

Time (seconds) the instance is allowed to run after it is detached from the group. This is to allow the instance time to drain all the current TCP connections before terminating it.

fallbackToOndemand boolean

Activate fallback-to-on-demand. When provisioning an instance, if no Preemptible market is available, fallback-to-on-demand will provision an On-Demand instance to maintain the group capacity.

gpu ElastigroupGpu[]
healthCheckGracePeriod number
healthCheckType string
instanceTypesCustoms ElastigroupInstanceTypesCustom[]

Defines a set of custom instance types. Required if instance_types_preemptible and instance_types_ondemand are not set.

instanceTypesOndemand string

The regular VM instance type to use for mixed-type groups and when falling back to on-demand. Required if instance_types_preemptible is not set.

instanceTypesPreemptibles string[]

The preemptible VMs instance type. To maximize cost savings and market availability, select as many types as possible. Required if instance_types_ondemand is not set.

integrationDockerSwarm ElastigroupIntegrationDockerSwarm
integrationGke ElastigroupIntegrationGke
ipForwarding boolean
labels ElastigroupLabel[]

Array of objects with key-value pairs.

maxSize number

The maximum number of instances the group should have at any time.

metadatas ElastigroupMetadata[]

Array of objects with key-value pairs.

minSize number

The minimum number of instances the group should have at any time.

name string

The group name.

networkInterfaces ElastigroupNetworkInterface[]
ondemandCount number
preemptiblePercentage number

Percentage of Preemptible VMs to spin up from the “desired_capacity”.

scalingDownPolicies ElastigroupScalingDownPolicy[]
scalingUpPolicies ElastigroupScalingUpPolicy[]
scheduledTasks ElastigroupScheduledTask[]
serviceAccount string

The email of the service account in which the group instances will be launched.

shutdownScript string

The Base64-encoded shutdown script that executes prior to instance termination, for more information please see: Shutdown Script

startupScript string

Create and run your own startup scripts on your virtual machines to perform automated tasks every time your instance boots up.

subnets ElastigroupSubnet[]

A list of regions and subnets.

tags string[]

Tags to mark created instances.

unhealthyDuration number
auto_healing bool
availability_zones List[str]

List of availability zones for the group.

Deprecated: This field will soon be handled by Region in Subnets

backend_services List[ElastigroupBackendService]
description str

The region your GCP group will be created in.

desired_capacity float

The desired number of instances the group should have at any time.

disks List[ElastigroupDisk]
draining_timeout float

Time (seconds) the instance is allowed to run after it is detached from the group. This is to allow the instance time to drain all the current TCP connections before terminating it.

fallback_to_ondemand bool

Activate fallback-to-on-demand. When provisioning an instance, if no Preemptible market is available, fallback-to-on-demand will provision an On-Demand instance to maintain the group capacity.

gpu List[ElastigroupGpu]
health_check_grace_period float
health_check_type str
instance_types_customs List[ElastigroupInstanceTypesCustom]

Defines a set of custom instance types. Required if instance_types_preemptible and instance_types_ondemand are not set.

instance_types_ondemand str

The regular VM instance type to use for mixed-type groups and when falling back to on-demand. Required if instance_types_preemptible is not set.

instance_types_preemptibles List[str]

The preemptible VMs instance type. To maximize cost savings and market availability, select as many types as possible. Required if instance_types_ondemand is not set.

integration_docker_swarm Dict[ElastigroupIntegrationDockerSwarm]
integration_gke Dict[ElastigroupIntegrationGke]
ip_forwarding bool
labels List[ElastigroupLabel]

Array of objects with key-value pairs.

max_size float

The maximum number of instances the group should have at any time.

metadatas List[ElastigroupMetadata]

Array of objects with key-value pairs.

min_size float

The minimum number of instances the group should have at any time.

name str

The group name.

network_interfaces List[ElastigroupNetworkInterface]
ondemand_count float
preemptible_percentage float

Percentage of Preemptible VMs to spin up from the “desired_capacity”.

scaling_down_policies List[ElastigroupScalingDownPolicy]
scaling_up_policies List[ElastigroupScalingUpPolicy]
scheduled_tasks List[ElastigroupScheduledTask]
service_account str

The email of the service account in which the group instances will be launched.

shutdown_script str

The Base64-encoded shutdown script that executes prior to instance termination, for more information please see: Shutdown Script

startup_script str

Create and run your own startup scripts on your virtual machines to perform automated tasks every time your instance boots up.

subnets List[ElastigroupSubnet]

A list of regions and subnets.

tags List[str]

Tags to mark created instances.

unhealthy_duration float

Supporting Types

ElastigroupBackendService

See the input and output API doc for this type.

See the input and output API doc for this type.

See the input and output API doc for this type.

ServiceName string
LocationType string
NamedPorts List<Pulumi.SpotInst.Gcp.Inputs.ElastigroupBackendServiceNamedPortArgs>
Scheme string
ServiceName string
LocationType string
NamedPorts []ElastigroupBackendServiceNamedPort
Scheme string
serviceName string
locationType string
namedPorts ElastigroupBackendServiceNamedPort[]
scheme string
serviceName str
locationType str
namedPorts List[ElastigroupBackendServiceNamedPort]
scheme str

ElastigroupBackendServiceNamedPort

See the input and output API doc for this type.

See the input and output API doc for this type.

See the input and output API doc for this type.

Name string

The group name.

Ports List<string>
Name string

The group name.

Ports []string
name string

The group name.

ports string[]
name str

The group name.

ports List[str]

ElastigroupDisk

See the input and output API doc for this type.

See the input and output API doc for this type.

See the input and output API doc for this type.

AutoDelete bool
Boot bool
DeviceName string
InitializeParams List<Pulumi.SpotInst.Gcp.Inputs.ElastigroupDiskInitializeParamArgs>
Interface string
Mode string
Source string
Type string
AutoDelete bool
Boot bool
DeviceName string
InitializeParams []ElastigroupDiskInitializeParam
Interface string
Mode string
Source string
Type string
autoDelete boolean
boot boolean
deviceName string
initializeParams ElastigroupDiskInitializeParam[]
interface string
mode string
source string
type string
autoDelete bool
boot bool
deviceName str
initializeParams List[ElastigroupDiskInitializeParam]
interface str
mode str
source str
type str

ElastigroupDiskInitializeParam

See the input and output API doc for this type.

See the input and output API doc for this type.

See the input and output API doc for this type.

SourceImage string
DiskSizeGb string
DiskType string
SourceImage string
DiskSizeGb string
DiskType string
sourceImage string
diskSizeGb string
diskType string
source_image str
diskSizeGb str
diskType str

ElastigroupGpu

See the input and output API doc for this type.

See the input and output API doc for this type.

See the input and output API doc for this type.

Count int
Type string
Count int
Type string
count number
type string
count float
type str

ElastigroupInstanceTypesCustom

See the input and output API doc for this type.

See the input and output API doc for this type.

See the input and output API doc for this type.

MemoryGib int

The memory (in GiB) in the custom instance types. GCP has a number of limitations on accepted memory values.For more information, see the GCP documentation (here.)[https://cloud.google.com/compute/docs/instances/creating-instance-with-custom-machine-type#specifications]

Vcpu int
MemoryGib int

The memory (in GiB) in the custom instance types. GCP has a number of limitations on accepted memory values.For more information, see the GCP documentation (here.)[https://cloud.google.com/compute/docs/instances/creating-instance-with-custom-machine-type#specifications]

Vcpu int
memoryGib number

The memory (in GiB) in the custom instance types. GCP has a number of limitations on accepted memory values.For more information, see the GCP documentation (here.)[https://cloud.google.com/compute/docs/instances/creating-instance-with-custom-machine-type#specifications]

vcpu number
memoryGib float

The memory (in GiB) in the custom instance types. GCP has a number of limitations on accepted memory values.For more information, see the GCP documentation (here.)[https://cloud.google.com/compute/docs/instances/creating-instance-with-custom-machine-type#specifications]

vcpu float

ElastigroupIntegrationDockerSwarm

See the input and output API doc for this type.

See the input and output API doc for this type.

See the input and output API doc for this type.

MasterHost string
MasterPort int
MasterHost string
MasterPort int
masterHost string
masterPort number
masterHost str
masterPort float

ElastigroupIntegrationGke

See the input and output API doc for this type.

See the input and output API doc for this type.

See the input and output API doc for this type.

AutoUpdate bool
AutoscaleCooldown int
AutoscaleDown Pulumi.SpotInst.Gcp.Inputs.ElastigroupIntegrationGkeAutoscaleDownArgs
AutoscaleHeadroom Pulumi.SpotInst.Gcp.Inputs.ElastigroupIntegrationGkeAutoscaleHeadroomArgs
AutoscaleIsAutoConfig bool
AutoscaleIsEnabled bool
AutoscaleLabels List<Pulumi.SpotInst.Gcp.Inputs.ElastigroupIntegrationGkeAutoscaleLabelArgs>
ClusterId string
Location string
AutoUpdate bool
AutoscaleCooldown int
AutoscaleDown ElastigroupIntegrationGkeAutoscaleDown
AutoscaleHeadroom ElastigroupIntegrationGkeAutoscaleHeadroom
AutoscaleIsAutoConfig bool
AutoscaleIsEnabled bool
AutoscaleLabels []ElastigroupIntegrationGkeAutoscaleLabel
ClusterId string
Location string
autoUpdate boolean
autoscaleCooldown number
autoscaleDown ElastigroupIntegrationGkeAutoscaleDown
autoscaleHeadroom ElastigroupIntegrationGkeAutoscaleHeadroom
autoscaleIsAutoConfig boolean
autoscaleIsEnabled boolean
autoscaleLabels ElastigroupIntegrationGkeAutoscaleLabel[]
clusterId string
location string
autoUpdate bool
autoscaleCooldown float
autoscaleDown Dict[ElastigroupIntegrationGkeAutoscaleDown]
autoscaleHeadroom Dict[ElastigroupIntegrationGkeAutoscaleHeadroom]
autoscaleIsAutoConfig bool
autoscaleIsEnabled bool
autoscaleLabels List[ElastigroupIntegrationGkeAutoscaleLabel]
cluster_id str
location str

ElastigroupIntegrationGkeAutoscaleDown

See the input and output API doc for this type.

See the input and output API doc for this type.

See the input and output API doc for this type.

EvaluationPeriods int
EvaluationPeriods int
evaluationPeriods number
evaluationPeriods float

ElastigroupIntegrationGkeAutoscaleHeadroom

See the input and output API doc for this type.

See the input and output API doc for this type.

See the input and output API doc for this type.

CpuPerUnit int
MemoryPerUnit int
NumOfUnits int
CpuPerUnit int
MemoryPerUnit int
NumOfUnits int
cpuPerUnit number
memoryPerUnit number
numOfUnits number
cpuPerUnit float
memoryPerUnit float
numOfUnits float

ElastigroupIntegrationGkeAutoscaleLabel

See the input and output API doc for this type.

See the input and output API doc for this type.

See the input and output API doc for this type.

Key string

Labels key.

Value string

Labels value.

Key string

Labels key.

Value string

Labels value.

key string

Labels key.

value string

Labels value.

key str

Labels key.

value str

Labels value.

ElastigroupLabel

See the input and output API doc for this type.

See the input and output API doc for this type.

See the input and output API doc for this type.

Key string

Labels key.

Value string

Labels value.

Key string

Labels key.

Value string

Labels value.

key string

Labels key.

value string

Labels value.

key str

Labels key.

value str

Labels value.

ElastigroupMetadata

See the input and output API doc for this type.

See the input and output API doc for this type.

See the input and output API doc for this type.

Key string

Labels key.

Value string

Labels value.

Key string

Labels key.

Value string

Labels value.

key string

Labels key.

value string

Labels value.

key str

Labels key.

value str

Labels value.

ElastigroupNetworkInterface

See the input and output API doc for this type.

See the input and output API doc for this type.

See the input and output API doc for this type.

Network string
AccessConfigs List<Pulumi.SpotInst.Gcp.Inputs.ElastigroupNetworkInterfaceAccessConfigArgs>
AliasIpRanges List<Pulumi.SpotInst.Gcp.Inputs.ElastigroupNetworkInterfaceAliasIpRangeArgs>
Network string
AccessConfigs []ElastigroupNetworkInterfaceAccessConfig
AliasIpRanges []ElastigroupNetworkInterfaceAliasIpRange
network string
accessConfigs ElastigroupNetworkInterfaceAccessConfig[]
aliasIpRanges ElastigroupNetworkInterfaceAliasIpRange[]
network str
accessConfigs List[ElastigroupNetworkInterfaceAccessConfig]
aliasIpRanges List[ElastigroupNetworkInterfaceAliasIpRange]

ElastigroupNetworkInterfaceAccessConfig

See the input and output API doc for this type.

See the input and output API doc for this type.

See the input and output API doc for this type.

Name string

The group name.

Type string
Name string

The group name.

Type string
name string

The group name.

type string
name str

The group name.

type str

ElastigroupNetworkInterfaceAliasIpRange

See the input and output API doc for this type.

See the input and output API doc for this type.

See the input and output API doc for this type.

IpCidrRange string
SubnetworkRangeName string
IpCidrRange string
SubnetworkRangeName string
ipCidrRange string
subnetworkRangeName string
ipCidrRange str
subnetworkRangeName str

ElastigroupScalingDownPolicy

See the input and output API doc for this type.

See the input and output API doc for this type.

See the input and output API doc for this type.

MetricName string
Namespace string
PolicyName string
Threshold double
Unit string
ActionType string
Adjustment int
Cooldown int
Dimensions List<Pulumi.SpotInst.Gcp.Inputs.ElastigroupScalingDownPolicyDimensionArgs>
EvaluationPeriods int
Operator string
Period int
Source string
Statistic string
MetricName string
Namespace string
PolicyName string
Threshold float64
Unit string
ActionType string
Adjustment int
Cooldown int
Dimensions []ElastigroupScalingDownPolicyDimension
EvaluationPeriods int
Operator string
Period int
Source string
Statistic string
metricName string
namespace string
policyName string
threshold number
unit string
actionType string
adjustment number
cooldown number
dimensions ElastigroupScalingDownPolicyDimension[]
evaluationPeriods number
operator string
period number
source string
statistic string
metricName str
namespace str
policyName str
threshold float
unit str
actionType str
adjustment float
cooldown float
dimensions List[ElastigroupScalingDownPolicyDimension]
evaluationPeriods float
operator str
period float
source str
statistic str

ElastigroupScalingDownPolicyDimension

See the input and output API doc for this type.

See the input and output API doc for this type.

See the input and output API doc for this type.

Name string

The group name.

Value string

Labels value.

Name string

The group name.

Value string

Labels value.

name string

The group name.

value string

Labels value.

name str

The group name.

value str

Labels value.

ElastigroupScalingUpPolicy

See the input and output API doc for this type.

See the input and output API doc for this type.

See the input and output API doc for this type.

MetricName string
Namespace string
PolicyName string
Threshold double
Unit string
ActionType string
Adjustment int
Cooldown int
Dimensions List<Pulumi.SpotInst.Gcp.Inputs.ElastigroupScalingUpPolicyDimensionArgs>
EvaluationPeriods int
Operator string
Period int
Source string
Statistic string
MetricName string
Namespace string
PolicyName string
Threshold float64
Unit string
ActionType string
Adjustment int
Cooldown int
Dimensions []ElastigroupScalingUpPolicyDimension
EvaluationPeriods int
Operator string
Period int
Source string
Statistic string
metricName string
namespace string
policyName string
threshold number
unit string
actionType string
adjustment number
cooldown number
dimensions ElastigroupScalingUpPolicyDimension[]
evaluationPeriods number
operator string
period number
source string
statistic string
metricName str
namespace str
policyName str
threshold float
unit str
actionType str
adjustment float
cooldown float
dimensions List[ElastigroupScalingUpPolicyDimension]
evaluationPeriods float
operator str
period float
source str
statistic str

ElastigroupScalingUpPolicyDimension

See the input and output API doc for this type.

See the input and output API doc for this type.

See the input and output API doc for this type.

Name string

The group name.

Value string

Labels value.

Name string

The group name.

Value string

Labels value.

name string

The group name.

value string

Labels value.

name str

The group name.

value str

Labels value.

ElastigroupScheduledTask

See the input and output API doc for this type.

See the input and output API doc for this type.

See the input and output API doc for this type.

TaskType string
CronExpression string
IsEnabled bool
MaxCapacity string
MinCapacity string
TargetCapacity string
TaskType string
CronExpression string
IsEnabled bool
MaxCapacity string
MinCapacity string
TargetCapacity string
taskType string
cronExpression string
isEnabled boolean
maxCapacity string
minCapacity string
targetCapacity string
taskType str
cronExpression str
isEnabled bool
maxCapacity str
minCapacity str
targetCapacity str

ElastigroupSubnet

See the input and output API doc for this type.

See the input and output API doc for this type.

See the input and output API doc for this type.

Region string

The region for the group of subnets.

SubnetNames List<string>

The names of the subnets in the region.

Region string

The region for the group of subnets.

SubnetNames []string

The names of the subnets in the region.

region string

The region for the group of subnets.

subnetNames string[]

The names of the subnets in the region.

region str

The region for the group of subnets.

subnetNames List[str]

The names of the subnets in the region.

Package Details

Repository
https://github.com/pulumi/pulumi-spotinst
License
Apache-2.0
Notes
This Pulumi package is based on the spotinst Terraform Provider.