Ocean

Provides a Spotinst Ocean AWS resource.

Auto Scaler

  • autoscaler - (Optional) Describes the Ocean Kubernetes autoscaler.
  • autoscale_is_enabled - (Optional, Default: true) Enable the Ocean Kubernetes autoscaler.
  • autoscale_is_auto_config - (Optional, Default: true) Automatically configure and optimize headroom resources.
  • autoscale_cooldown - (Optional, Default: null) Cooldown period between scaling actions.
  • auto_headroom_percentage - (Optional) Set the auto headroom percentage (a number in the range [0, 200]) which controls the percentage of headroom from the cluster. Relevant only when isAutoConfig toggled on.
  • autoscale_headroom - (Optional) Spare resource capacity management enabling fast assignment of Pods without waiting for new resources to launch.
  • cpu_per_unit - (Optional) Optionally configure the number of CPUs to allocate the headroom. CPUs are denoted in millicores, where 1000 millicores = 1 vCPU.
  • gpu_per_unit - (Optional) Optionally configure the number of GPUS to allocate the headroom.
  • memory_per_unit - (Optional) Optionally configure the amount of memory (MB) to allocate the headroom.
  • num_of_units - (Optional) The number of units to retain as headroom, where each unit has the defined headroom CPU and memory.
  • autoscale_down - (Optional) Auto Scaling scale down operations.
  • max_scale_down_percentage - (Optional) Would represent the maximum % to scale-down. Number between 1-100.
  • resource_limits - (Optional) Optionally set upper and lower bounds on the resource usage of the cluster.
  • max_vcpu - (Optional) The maximum cpu in vCPU units that can be allocated to the cluster.
  • max_memory_gib - (Optional) The maximum memory in GiB units that can be allocated to the cluster.
import * as pulumi from "@pulumi/pulumi";
import pulumi
using Pulumi;

class MyStack : Stack
{
    public MyStack()
    {
    }

}

Update Policy

  • update_policy - (Optional)
    • should_roll - (Required) Enables the roll.
    • roll_config - (Required) While used, you can control whether the group should perform a deployment after an update to the configuration.
      • batch_size_percentage - (Required) Sets the percentage of the instances to deploy in each batch.
import * as pulumi from "@pulumi/pulumi";
import pulumi
using Pulumi;

class MyStack : Stack
{
    public MyStack()
    {
    }

}

scheduled task

  • scheduled_task - (Optional) Set scheduling object.
    • shutdown_hours - (Optional) Set shutdown hours for cluster object.
      • is_enabled - (Optional) Flag to enable / disable the shutdown hours. Example: True
      • time_windows - (Required) Set time windows for shutdown hours. specify a list of ‘timeWindows’ with at least one time window Each string is in the format of - ddd:hh:mm-ddd:hh:mm ddd = day of week = Sun | Mon | Tue | Wed | Thu | Fri | Sat hh = hour 24 = 0 -23 mm = minute = 0 - 59. Time windows should not overlap. required on cluster.scheduling.isEnabled = True. API Times are in UTC Example: Fri:15:30-Wed:14:30
    • tasks - (Optional) The scheduling tasks for the cluster.
      • is_enabled - (Required) Describes whether the task is enabled. When true the task should run when false it should not run. Required for cluster.scheduling.tasks object.
      • cron_expression - (Required) A valid cron expression. For example : “ * * * * * “.The cron is running in UTC time zone and is in Unix cron format Cron Expression Validator Script. Only one of ‘frequency’ or ‘cronExpression’ should be used at a time. Required for cluster.scheduling.tasks object Example: 0 1 * * *
      • task_type - (Required) Valid values: “clusterRoll”. Required for cluster.scheduling.tasks object Example: clusterRoll
import * as pulumi from "@pulumi/pulumi";
import pulumi
using Pulumi;

class MyStack : Stack
{
    public MyStack()
    {
    }

}

Example Usage

using Pulumi;
using SpotInst = Pulumi.SpotInst;

class MyStack : Stack
{
    public MyStack()
    {
        var example = new SpotInst.Aws.Ocean("example", new SpotInst.Aws.OceanArgs
        {
            AssociatePublicIpAddress = true,
            ControllerId = "fakeClusterId",
            DesiredCapacity = 2,
            DrainingTimeout = 120,
            EbsOptimized = true,
            FallbackToOndemand = true,
            GracePeriod = 600,
            IamInstanceProfile = "iam-profile",
            ImageId = "ami-123456",
            KeyName = "fake key",
            LoadBalancers = 
            {
                new SpotInst.Aws.Inputs.OceanLoadBalancerArgs
                {
                    Arn = "arn:aws:elasticloadbalancing:us-west-2:fake-arn",
                    Type = "TARGET_GROUP",
                },
                new SpotInst.Aws.Inputs.OceanLoadBalancerArgs
                {
                    Name = "AntonK",
                    Type = "CLASSIC",
                },
            },
            MaxSize = 2,
            MinSize = 1,
            Monitoring = true,
            Region = "us-west-2",
            RootVolumeSize = 20,
            SecurityGroups = 
            {
                "sg-987654321",
            },
            SubnetIds = 
            {
                "subnet-123456789",
            },
            Tags = 
            {
                new SpotInst.Aws.Inputs.OceanTagArgs
                {
                    Key = "fakeKey",
                    Value = "fakeValue",
                },
            },
            UserData = "echo hello world",
            UtilizeReservedInstances = false,
            Whitelists = 
            {
                "t1.micro",
                "m1.small",
            },
        });
    }

}

Coming soon!

import pulumi
import pulumi_spotinst as spotinst

example = spotinst.aws.Ocean("example",
    associate_public_ip_address=True,
    controller_id="fakeClusterId",
    desired_capacity=2,
    draining_timeout=120,
    ebs_optimized=True,
    fallback_to_ondemand=True,
    grace_period=600,
    iam_instance_profile="iam-profile",
    image_id="ami-123456",
    key_name="fake key",
    load_balancers=[
        {
            "arn": "arn:aws:elasticloadbalancing:us-west-2:fake-arn",
            "type": "TARGET_GROUP",
        },
        {
            "name": "AntonK",
            "type": "CLASSIC",
        },
    ],
    max_size=2,
    min_size=1,
    monitoring=True,
    region="us-west-2",
    root_volume_size=20,
    security_groups=["sg-987654321"],
    subnet_ids=["subnet-123456789"],
    tags=[{
        "key": "fakeKey",
        "value": "fakeValue",
    }],
    user_data="echo hello world",
    utilize_reserved_instances=False,
    whitelists=[
        "t1.micro",
        "m1.small",
    ])
import * as pulumi from "@pulumi/pulumi";
import * as spotinst from "@pulumi/spotinst";

const example = new spotinst.aws.Ocean("example", {
    associatePublicIpAddress: true,
    controllerId: "fakeClusterId",
    desiredCapacity: 2,
    drainingTimeout: 120,
    ebsOptimized: true,
    // --- STRATEGY --------------------
    fallbackToOndemand: true,
    gracePeriod: 600,
    iamInstanceProfile: "iam-profile",
    // --- LAUNCH CONFIGURATION --------------
    imageId: "ami-123456",
    keyName: "fake key",
    loadBalancers: [
        {
            arn: "arn:aws:elasticloadbalancing:us-west-2:fake-arn",
            type: "TARGET_GROUP",
        },
        {
            name: "AntonK",
            type: "CLASSIC",
        },
    ],
    maxSize: 2,
    minSize: 1,
    monitoring: true,
    region: "us-west-2",
    rootVolumeSize: 20,
    securityGroups: ["sg-987654321"],
    subnetIds: ["subnet-123456789"],
    tags: [{
        key: "fakeKey",
        value: "fakeValue",
    }],
    userData: "echo hello world",
    utilizeReservedInstances: false,
    whitelists: [
        "t1.micro",
        "m1.small",
    ],
});

Create a Ocean Resource

new Ocean(name: string, args: OceanArgs, opts?: CustomResourceOptions);
def Ocean(resource_name, opts=None, associate_public_ip_address=None, autoscaler=None, blacklists=None, controller_id=None, desired_capacity=None, draining_timeout=None, ebs_optimized=None, fallback_to_ondemand=None, grace_period=None, iam_instance_profile=None, image_id=None, key_name=None, load_balancers=None, max_size=None, min_size=None, monitoring=None, name=None, region=None, root_volume_size=None, scheduled_tasks=None, security_groups=None, spot_percentage=None, subnet_ids=None, tags=None, update_policy=None, user_data=None, utilize_reserved_instances=None, whitelists=None, __props__=None);
func NewOcean(ctx *Context, name string, args OceanArgs, opts ...ResourceOption) (*Ocean, error)
public Ocean(string name, OceanArgs args, CustomResourceOptions? opts = null)
name string
The unique name of the resource.
args OceanArgs
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 OceanArgs
The arguments to resource properties.
opts ResourceOption
Bag of options to control resource's behavior.
name string
The unique name of the resource.
args OceanArgs
The arguments to resource properties.
opts CustomResourceOptions
Bag of options to control resource's behavior.

Ocean Resource Properties

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

Inputs

The Ocean resource accepts the following input properties:

SecurityGroups List<string>

One or more security group ids.

SubnetIds List<string>

A comma-separated list of subnet identifiers for the Ocean cluster. Subnet IDs should be configured with auto assign public ip.

AssociatePublicIpAddress bool

Configure public IP address allocation.

Autoscaler Pulumi.SpotInst.Aws.Inputs.OceanAutoscalerArgs
Blacklists List<string>

Instance types not allowed in the Ocean cluster. Cannot be configured if whitelist is configured.

ControllerId string

The ocean cluster identifier. Example: ocean.k8s

DesiredCapacity int

The number of instances to launch and maintain in the cluster.

DrainingTimeout int

The time in seconds, the instance is allowed to run while detached from the ELB. This is to allow the instance time to be drained from incoming TCP connections before terminating it, during a scale down operation.

EbsOptimized bool

Enable EBS optimized for cluster. Flag will enable optimized capacity for high bandwidth connectivity to the EB service for non EBS optimized instance types. For instances that are EBS optimized this flag will be ignored.

FallbackToOndemand bool

If not Spot instance markets are available, enable Ocean to launch On-Demand instances instead.

GracePeriod int

The amount of time, in seconds, after the instance has launched to start checking its health.

IamInstanceProfile string

The instance profile iam role.

ImageId string

ID of the image used to launch the instances.

KeyName string

The key pair to attach the instances.

LoadBalancers List<Pulumi.SpotInst.Aws.Inputs.OceanLoadBalancerArgs>
  • Array of load balancer objects to add to ocean cluster
MaxSize int

The upper limit of instances the cluster can scale up to.

MinSize int

The lower limit of instances the cluster can scale down to.

Monitoring bool

Enable detailed monitoring for cluster. Flag will enable Cloud Watch detailed detailed monitoring (one minute increments). Note: there are additional hourly costs for this service based on the region used.

Name string

Required if type is set to CLASSIC

Region string

The region the cluster will run in.

RootVolumeSize int

The size (in Gb) to allocate for the root volume. Minimum 20.

ScheduledTasks List<Pulumi.SpotInst.Aws.Inputs.OceanScheduledTaskArgs>
SpotPercentage double
Tags List<Pulumi.SpotInst.Aws.Inputs.OceanTagArgs>

Optionally adds tags to instances launched in an Ocean cluster.

UpdatePolicy Pulumi.SpotInst.Aws.Inputs.OceanUpdatePolicyArgs
UserData string

Base64-encoded MIME user data to make available to the instances.

UtilizeReservedInstances bool

If Reserved instances exist, Ocean will utilize them before launching Spot instances.

Whitelists List<string>

Instance types allowed in the Ocean cluster. Cannot be configured if blacklist is configured.

SecurityGroups []string

One or more security group ids.

SubnetIds []string

A comma-separated list of subnet identifiers for the Ocean cluster. Subnet IDs should be configured with auto assign public ip.

AssociatePublicIpAddress bool

Configure public IP address allocation.

Autoscaler OceanAutoscaler
Blacklists []string

Instance types not allowed in the Ocean cluster. Cannot be configured if whitelist is configured.

ControllerId string

The ocean cluster identifier. Example: ocean.k8s

DesiredCapacity int

The number of instances to launch and maintain in the cluster.

DrainingTimeout int

The time in seconds, the instance is allowed to run while detached from the ELB. This is to allow the instance time to be drained from incoming TCP connections before terminating it, during a scale down operation.

EbsOptimized bool

Enable EBS optimized for cluster. Flag will enable optimized capacity for high bandwidth connectivity to the EB service for non EBS optimized instance types. For instances that are EBS optimized this flag will be ignored.

FallbackToOndemand bool

If not Spot instance markets are available, enable Ocean to launch On-Demand instances instead.

GracePeriod int

The amount of time, in seconds, after the instance has launched to start checking its health.

IamInstanceProfile string

The instance profile iam role.

ImageId string

ID of the image used to launch the instances.

KeyName string

The key pair to attach the instances.

LoadBalancers []OceanLoadBalancer
  • Array of load balancer objects to add to ocean cluster
MaxSize int

The upper limit of instances the cluster can scale up to.

MinSize int

The lower limit of instances the cluster can scale down to.

Monitoring bool

Enable detailed monitoring for cluster. Flag will enable Cloud Watch detailed detailed monitoring (one minute increments). Note: there are additional hourly costs for this service based on the region used.

Name string

Required if type is set to CLASSIC

Region string

The region the cluster will run in.

RootVolumeSize int

The size (in Gb) to allocate for the root volume. Minimum 20.

ScheduledTasks []OceanScheduledTask
SpotPercentage float64
Tags []OceanTag

Optionally adds tags to instances launched in an Ocean cluster.

UpdatePolicy OceanUpdatePolicy
UserData string

Base64-encoded MIME user data to make available to the instances.

UtilizeReservedInstances bool

If Reserved instances exist, Ocean will utilize them before launching Spot instances.

Whitelists []string

Instance types allowed in the Ocean cluster. Cannot be configured if blacklist is configured.

securityGroups string[]

One or more security group ids.

subnetIds string[]

A comma-separated list of subnet identifiers for the Ocean cluster. Subnet IDs should be configured with auto assign public ip.

associatePublicIpAddress boolean

Configure public IP address allocation.

autoscaler OceanAutoscaler
blacklists string[]

Instance types not allowed in the Ocean cluster. Cannot be configured if whitelist is configured.

controllerId string

The ocean cluster identifier. Example: ocean.k8s

desiredCapacity number

The number of instances to launch and maintain in the cluster.

drainingTimeout number

The time in seconds, the instance is allowed to run while detached from the ELB. This is to allow the instance time to be drained from incoming TCP connections before terminating it, during a scale down operation.

ebsOptimized boolean

Enable EBS optimized for cluster. Flag will enable optimized capacity for high bandwidth connectivity to the EB service for non EBS optimized instance types. For instances that are EBS optimized this flag will be ignored.

fallbackToOndemand boolean

If not Spot instance markets are available, enable Ocean to launch On-Demand instances instead.

gracePeriod number

The amount of time, in seconds, after the instance has launched to start checking its health.

iamInstanceProfile string

The instance profile iam role.

imageId string

ID of the image used to launch the instances.

keyName string

The key pair to attach the instances.

loadBalancers OceanLoadBalancer[]
  • Array of load balancer objects to add to ocean cluster
maxSize number

The upper limit of instances the cluster can scale up to.

minSize number

The lower limit of instances the cluster can scale down to.

monitoring boolean

Enable detailed monitoring for cluster. Flag will enable Cloud Watch detailed detailed monitoring (one minute increments). Note: there are additional hourly costs for this service based on the region used.

name string

Required if type is set to CLASSIC

region string

The region the cluster will run in.

rootVolumeSize number

The size (in Gb) to allocate for the root volume. Minimum 20.

scheduledTasks OceanScheduledTask[]
spotPercentage number
tags OceanTag[]

Optionally adds tags to instances launched in an Ocean cluster.

updatePolicy OceanUpdatePolicy
userData string

Base64-encoded MIME user data to make available to the instances.

utilizeReservedInstances boolean

If Reserved instances exist, Ocean will utilize them before launching Spot instances.

whitelists string[]

Instance types allowed in the Ocean cluster. Cannot be configured if blacklist is configured.

security_groups List[str]

One or more security group ids.

subnet_ids List[str]

A comma-separated list of subnet identifiers for the Ocean cluster. Subnet IDs should be configured with auto assign public ip.

associate_public_ip_address bool

Configure public IP address allocation.

autoscaler Dict[OceanAutoscaler]
blacklists List[str]

Instance types not allowed in the Ocean cluster. Cannot be configured if whitelist is configured.

controller_id str

The ocean cluster identifier. Example: ocean.k8s

desired_capacity float

The number of instances to launch and maintain in the cluster.

draining_timeout float

The time in seconds, the instance is allowed to run while detached from the ELB. This is to allow the instance time to be drained from incoming TCP connections before terminating it, during a scale down operation.

ebs_optimized bool

Enable EBS optimized for cluster. Flag will enable optimized capacity for high bandwidth connectivity to the EB service for non EBS optimized instance types. For instances that are EBS optimized this flag will be ignored.

fallback_to_ondemand bool

If not Spot instance markets are available, enable Ocean to launch On-Demand instances instead.

grace_period float

The amount of time, in seconds, after the instance has launched to start checking its health.

iam_instance_profile str

The instance profile iam role.

image_id str

ID of the image used to launch the instances.

key_name str

The key pair to attach the instances.

load_balancers List[OceanLoadBalancer]
  • Array of load balancer objects to add to ocean cluster
max_size float

The upper limit of instances the cluster can scale up to.

min_size float

The lower limit of instances the cluster can scale down to.

monitoring bool

Enable detailed monitoring for cluster. Flag will enable Cloud Watch detailed detailed monitoring (one minute increments). Note: there are additional hourly costs for this service based on the region used.

name str

Required if type is set to CLASSIC

region str

The region the cluster will run in.

root_volume_size float

The size (in Gb) to allocate for the root volume. Minimum 20.

scheduled_tasks List[OceanScheduledTask]
spot_percentage float
tags List[OceanTag]

Optionally adds tags to instances launched in an Ocean cluster.

update_policy Dict[OceanUpdatePolicy]
user_data str

Base64-encoded MIME user data to make available to the instances.

utilize_reserved_instances bool

If Reserved instances exist, Ocean will utilize them before launching Spot instances.

whitelists List[str]

Instance types allowed in the Ocean cluster. Cannot be configured if blacklist is configured.

Outputs

All input properties are implicitly available as output properties. Additionally, the Ocean 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 Ocean Resource

Get an existing Ocean 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?: OceanState, opts?: CustomResourceOptions): Ocean
static get(resource_name, id, opts=None, associate_public_ip_address=None, autoscaler=None, blacklists=None, controller_id=None, desired_capacity=None, draining_timeout=None, ebs_optimized=None, fallback_to_ondemand=None, grace_period=None, iam_instance_profile=None, image_id=None, key_name=None, load_balancers=None, max_size=None, min_size=None, monitoring=None, name=None, region=None, root_volume_size=None, scheduled_tasks=None, security_groups=None, spot_percentage=None, subnet_ids=None, tags=None, update_policy=None, user_data=None, utilize_reserved_instances=None, whitelists=None, __props__=None);
func GetOcean(ctx *Context, name string, id IDInput, state *OceanState, opts ...ResourceOption) (*Ocean, error)
public static Ocean Get(string name, Input<string> id, OceanState? 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:

AssociatePublicIpAddress bool

Configure public IP address allocation.

Autoscaler Pulumi.SpotInst.Aws.Inputs.OceanAutoscalerArgs
Blacklists List<string>

Instance types not allowed in the Ocean cluster. Cannot be configured if whitelist is configured.

ControllerId string

The ocean cluster identifier. Example: ocean.k8s

DesiredCapacity int

The number of instances to launch and maintain in the cluster.

DrainingTimeout int

The time in seconds, the instance is allowed to run while detached from the ELB. This is to allow the instance time to be drained from incoming TCP connections before terminating it, during a scale down operation.

EbsOptimized bool

Enable EBS optimized for cluster. Flag will enable optimized capacity for high bandwidth connectivity to the EB service for non EBS optimized instance types. For instances that are EBS optimized this flag will be ignored.

FallbackToOndemand bool

If not Spot instance markets are available, enable Ocean to launch On-Demand instances instead.

GracePeriod int

The amount of time, in seconds, after the instance has launched to start checking its health.

IamInstanceProfile string

The instance profile iam role.

ImageId string

ID of the image used to launch the instances.

KeyName string

The key pair to attach the instances.

LoadBalancers List<Pulumi.SpotInst.Aws.Inputs.OceanLoadBalancerArgs>
  • Array of load balancer objects to add to ocean cluster
MaxSize int

The upper limit of instances the cluster can scale up to.

MinSize int

The lower limit of instances the cluster can scale down to.

Monitoring bool

Enable detailed monitoring for cluster. Flag will enable Cloud Watch detailed detailed monitoring (one minute increments). Note: there are additional hourly costs for this service based on the region used.

Name string

Required if type is set to CLASSIC

Region string

The region the cluster will run in.

RootVolumeSize int

The size (in Gb) to allocate for the root volume. Minimum 20.

ScheduledTasks List<Pulumi.SpotInst.Aws.Inputs.OceanScheduledTaskArgs>
SecurityGroups List<string>

One or more security group ids.

SpotPercentage double
SubnetIds List<string>

A comma-separated list of subnet identifiers for the Ocean cluster. Subnet IDs should be configured with auto assign public ip.

Tags List<Pulumi.SpotInst.Aws.Inputs.OceanTagArgs>

Optionally adds tags to instances launched in an Ocean cluster.

UpdatePolicy Pulumi.SpotInst.Aws.Inputs.OceanUpdatePolicyArgs
UserData string

Base64-encoded MIME user data to make available to the instances.

UtilizeReservedInstances bool

If Reserved instances exist, Ocean will utilize them before launching Spot instances.

Whitelists List<string>

Instance types allowed in the Ocean cluster. Cannot be configured if blacklist is configured.

AssociatePublicIpAddress bool

Configure public IP address allocation.

Autoscaler OceanAutoscaler
Blacklists []string

Instance types not allowed in the Ocean cluster. Cannot be configured if whitelist is configured.

ControllerId string

The ocean cluster identifier. Example: ocean.k8s

DesiredCapacity int

The number of instances to launch and maintain in the cluster.

DrainingTimeout int

The time in seconds, the instance is allowed to run while detached from the ELB. This is to allow the instance time to be drained from incoming TCP connections before terminating it, during a scale down operation.

EbsOptimized bool

Enable EBS optimized for cluster. Flag will enable optimized capacity for high bandwidth connectivity to the EB service for non EBS optimized instance types. For instances that are EBS optimized this flag will be ignored.

FallbackToOndemand bool

If not Spot instance markets are available, enable Ocean to launch On-Demand instances instead.

GracePeriod int

The amount of time, in seconds, after the instance has launched to start checking its health.

IamInstanceProfile string

The instance profile iam role.

ImageId string

ID of the image used to launch the instances.

KeyName string

The key pair to attach the instances.

LoadBalancers []OceanLoadBalancer
  • Array of load balancer objects to add to ocean cluster
MaxSize int

The upper limit of instances the cluster can scale up to.

MinSize int

The lower limit of instances the cluster can scale down to.

Monitoring bool

Enable detailed monitoring for cluster. Flag will enable Cloud Watch detailed detailed monitoring (one minute increments). Note: there are additional hourly costs for this service based on the region used.

Name string

Required if type is set to CLASSIC

Region string

The region the cluster will run in.

RootVolumeSize int

The size (in Gb) to allocate for the root volume. Minimum 20.

ScheduledTasks []OceanScheduledTask
SecurityGroups []string

One or more security group ids.

SpotPercentage float64
SubnetIds []string

A comma-separated list of subnet identifiers for the Ocean cluster. Subnet IDs should be configured with auto assign public ip.

Tags []OceanTag

Optionally adds tags to instances launched in an Ocean cluster.

UpdatePolicy OceanUpdatePolicy
UserData string

Base64-encoded MIME user data to make available to the instances.

UtilizeReservedInstances bool

If Reserved instances exist, Ocean will utilize them before launching Spot instances.

Whitelists []string

Instance types allowed in the Ocean cluster. Cannot be configured if blacklist is configured.

associatePublicIpAddress boolean

Configure public IP address allocation.

autoscaler OceanAutoscaler
blacklists string[]

Instance types not allowed in the Ocean cluster. Cannot be configured if whitelist is configured.

controllerId string

The ocean cluster identifier. Example: ocean.k8s

desiredCapacity number

The number of instances to launch and maintain in the cluster.

drainingTimeout number

The time in seconds, the instance is allowed to run while detached from the ELB. This is to allow the instance time to be drained from incoming TCP connections before terminating it, during a scale down operation.

ebsOptimized boolean

Enable EBS optimized for cluster. Flag will enable optimized capacity for high bandwidth connectivity to the EB service for non EBS optimized instance types. For instances that are EBS optimized this flag will be ignored.

fallbackToOndemand boolean

If not Spot instance markets are available, enable Ocean to launch On-Demand instances instead.

gracePeriod number

The amount of time, in seconds, after the instance has launched to start checking its health.

iamInstanceProfile string

The instance profile iam role.

imageId string

ID of the image used to launch the instances.

keyName string

The key pair to attach the instances.

loadBalancers OceanLoadBalancer[]
  • Array of load balancer objects to add to ocean cluster
maxSize number

The upper limit of instances the cluster can scale up to.

minSize number

The lower limit of instances the cluster can scale down to.

monitoring boolean

Enable detailed monitoring for cluster. Flag will enable Cloud Watch detailed detailed monitoring (one minute increments). Note: there are additional hourly costs for this service based on the region used.

name string

Required if type is set to CLASSIC

region string

The region the cluster will run in.

rootVolumeSize number

The size (in Gb) to allocate for the root volume. Minimum 20.

scheduledTasks OceanScheduledTask[]
securityGroups string[]

One or more security group ids.

spotPercentage number
subnetIds string[]

A comma-separated list of subnet identifiers for the Ocean cluster. Subnet IDs should be configured with auto assign public ip.

tags OceanTag[]

Optionally adds tags to instances launched in an Ocean cluster.

updatePolicy OceanUpdatePolicy
userData string

Base64-encoded MIME user data to make available to the instances.

utilizeReservedInstances boolean

If Reserved instances exist, Ocean will utilize them before launching Spot instances.

whitelists string[]

Instance types allowed in the Ocean cluster. Cannot be configured if blacklist is configured.

associate_public_ip_address bool

Configure public IP address allocation.

autoscaler Dict[OceanAutoscaler]
blacklists List[str]

Instance types not allowed in the Ocean cluster. Cannot be configured if whitelist is configured.

controller_id str

The ocean cluster identifier. Example: ocean.k8s

desired_capacity float

The number of instances to launch and maintain in the cluster.

draining_timeout float

The time in seconds, the instance is allowed to run while detached from the ELB. This is to allow the instance time to be drained from incoming TCP connections before terminating it, during a scale down operation.

ebs_optimized bool

Enable EBS optimized for cluster. Flag will enable optimized capacity for high bandwidth connectivity to the EB service for non EBS optimized instance types. For instances that are EBS optimized this flag will be ignored.

fallback_to_ondemand bool

If not Spot instance markets are available, enable Ocean to launch On-Demand instances instead.

grace_period float

The amount of time, in seconds, after the instance has launched to start checking its health.

iam_instance_profile str

The instance profile iam role.

image_id str

ID of the image used to launch the instances.

key_name str

The key pair to attach the instances.

load_balancers List[OceanLoadBalancer]
  • Array of load balancer objects to add to ocean cluster
max_size float

The upper limit of instances the cluster can scale up to.

min_size float

The lower limit of instances the cluster can scale down to.

monitoring bool

Enable detailed monitoring for cluster. Flag will enable Cloud Watch detailed detailed monitoring (one minute increments). Note: there are additional hourly costs for this service based on the region used.

name str

Required if type is set to CLASSIC

region str

The region the cluster will run in.

root_volume_size float

The size (in Gb) to allocate for the root volume. Minimum 20.

scheduled_tasks List[OceanScheduledTask]
security_groups List[str]

One or more security group ids.

spot_percentage float
subnet_ids List[str]

A comma-separated list of subnet identifiers for the Ocean cluster. Subnet IDs should be configured with auto assign public ip.

tags List[OceanTag]

Optionally adds tags to instances launched in an Ocean cluster.

update_policy Dict[OceanUpdatePolicy]
user_data str

Base64-encoded MIME user data to make available to the instances.

utilize_reserved_instances bool

If Reserved instances exist, Ocean will utilize them before launching Spot instances.

whitelists List[str]

Instance types allowed in the Ocean cluster. Cannot be configured if blacklist is configured.

Supporting Types

OceanAutoscaler

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.

AutoHeadroomPercentage int
AutoscaleCooldown int
AutoscaleDown Pulumi.SpotInst.Aws.Inputs.OceanAutoscalerAutoscaleDownArgs
AutoscaleHeadroom Pulumi.SpotInst.Aws.Inputs.OceanAutoscalerAutoscaleHeadroomArgs
AutoscaleIsAutoConfig bool
AutoscaleIsEnabled bool
ResourceLimits Pulumi.SpotInst.Aws.Inputs.OceanAutoscalerResourceLimitsArgs
AutoHeadroomPercentage int
AutoscaleCooldown int
AutoscaleDown OceanAutoscalerAutoscaleDown
AutoscaleHeadroom OceanAutoscalerAutoscaleHeadroom
AutoscaleIsAutoConfig bool
AutoscaleIsEnabled bool
ResourceLimits OceanAutoscalerResourceLimits
autoHeadroomPercentage number
autoscaleCooldown number
autoscaleDown OceanAutoscalerAutoscaleDown
autoscaleHeadroom OceanAutoscalerAutoscaleHeadroom
autoscaleIsAutoConfig boolean
autoscaleIsEnabled boolean
resourceLimits OceanAutoscalerResourceLimits
autoHeadroomPercentage float
autoscaleCooldown float
autoscaleDown Dict[OceanAutoscalerAutoscaleDown]
autoscaleHeadroom Dict[OceanAutoscalerAutoscaleHeadroom]
autoscaleIsAutoConfig bool
autoscaleIsEnabled bool
resource_limits Dict[OceanAutoscalerResourceLimits]

OceanAutoscalerAutoscaleDown

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
MaxScaleDownPercentage double
EvaluationPeriods int
MaxScaleDownPercentage float64
evaluationPeriods number
maxScaleDownPercentage number
evaluationPeriods float
maxScaleDownPercentage float

OceanAutoscalerAutoscaleHeadroom

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
GpuPerUnit int
MemoryPerUnit int
NumOfUnits int
CpuPerUnit int
GpuPerUnit int
MemoryPerUnit int
NumOfUnits int
cpuPerUnit number
gpuPerUnit number
memoryPerUnit number
numOfUnits number
cpuPerUnit float
gpuPerUnit float
memoryPerUnit float
numOfUnits float

OceanAutoscalerResourceLimits

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.

MaxMemoryGib int
MaxVcpu int
MaxMemoryGib int
MaxVcpu int
maxMemoryGib number
maxVcpu number
maxMemoryGib float
maxVcpu float

OceanLoadBalancer

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.

Arn string

Required if type is set to TARGET_GROUP

Name string

Required if type is set to CLASSIC

Type string

Can be set to CLASSIC or TARGET_GROUP

Arn string

Required if type is set to TARGET_GROUP

Name string

Required if type is set to CLASSIC

Type string

Can be set to CLASSIC or TARGET_GROUP

arn string

Required if type is set to TARGET_GROUP

name string

Required if type is set to CLASSIC

type string

Can be set to CLASSIC or TARGET_GROUP

arn str

Required if type is set to TARGET_GROUP

name str

Required if type is set to CLASSIC

type str

Can be set to CLASSIC or TARGET_GROUP

OceanScheduledTask

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.

ShutdownHours Pulumi.SpotInst.Aws.Inputs.OceanScheduledTaskShutdownHoursArgs
Tasks List<Pulumi.SpotInst.Aws.Inputs.OceanScheduledTaskTaskArgs>
ShutdownHours OceanScheduledTaskShutdownHours
Tasks []OceanScheduledTaskTask
shutdownHours OceanScheduledTaskShutdownHours
tasks OceanScheduledTaskTask[]
shutdownHours Dict[OceanScheduledTaskShutdownHours]
tasks List[OceanScheduledTaskTask]

OceanScheduledTaskShutdownHours

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.

TimeWindows List<string>
IsEnabled bool
TimeWindows []string
IsEnabled bool
timeWindows string[]
isEnabled boolean
timeWindows List[str]
isEnabled bool

OceanScheduledTaskTask

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.

CronExpression string
IsEnabled bool
TaskType string
CronExpression string
IsEnabled bool
TaskType string
cronExpression string
isEnabled boolean
taskType string
cronExpression str
isEnabled bool
taskType str

OceanTag

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

The tag key.

Value string

The tag value.

Key string

The tag key.

Value string

The tag value.

key string

The tag key.

value string

The tag value.

key str

The tag key.

value str

The tag value.

OceanUpdatePolicy

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.

ShouldRoll bool
RollConfig Pulumi.SpotInst.Aws.Inputs.OceanUpdatePolicyRollConfigArgs
ShouldRoll bool
RollConfig OceanUpdatePolicyRollConfig
shouldRoll boolean
rollConfig OceanUpdatePolicyRollConfig
shouldRoll bool
rollConfig Dict[OceanUpdatePolicyRollConfig]

OceanUpdatePolicyRollConfig

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.

BatchSizePercentage int
BatchSizePercentage int
batchSizePercentage number
batchSizePercentage float

Package Details

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