fbpx
POSThttps://api.spotinst.io/aws/ec2/group?accountId={ACCOUNT_ID}

Create a new Elastigroup cluster

URL Parameters

Parameter Type Description
ACCOUNT_ID String

Your Spotinst accountId associated with your token

Example: act-123abc
Request

Headers
{
    "Authorization": "Bearer ${token}",
    "Content-Type": "application/json"
}
Body
Copied!
Downloaded!
{
  "group": {
    "name": "spotinst-group",
    "description": "Development",
    "region": "us-east-1",  
    "capacity": {
      "target": 2,
      "minimum": 2,
      "maximum": 10
    },
    "strategy": {
      "risk": 100,
      "onDemandCount": null,
      "availabilityVsCost": "costOriented",
      "utilizeReservedInstances": false,
      "fallbackToOd": true,
      "persistence": {
        "blockDevicesMode": "reattach",
        "shouldPersistRootDevice": true,
        "shouldPersistBlockDevices": true,
        "shouldPersistPrivateIp": true
      },
      "revertToSpot": {
        "performAt": "timeWindow",
        "timeWindows": [
          "Mon:03:00-Wed:02:30"
        ]
      }
    },
    "scaling": {
      "up": [
        {
          "metricName": "CPUUtilization",
          "statistic": "average",
          "unit": "percent",
          "threshold": 90,
          "namespace": "AWS/EC2",
          "dimensions": [
            {
              "name": "InstanceId"
            }
          ],
          "period": 300,
          "evaluationPeriods": 1,
          "cooldown": 300,
          "action": {
            "type": "percentageAdjustment",
            "adjustment": 20
          },
          "operator": "gte",
          "isEnabled": true 
        }
      ],
      "down": [
        {
          "metricName": "CPUUtilization",
          "statistic": "average",
          "unit": "percent",
          "threshold": 10,
          "namespace": "AWS/EC2",
          "dimensions": [
            {
              "name": "InstanceId"
            }
          ],
          "period": 300,
          "evaluationPeriods": 1,
          "cooldown": 300,
          "action": {
            "type": "updateCapacity",
            "target": 10,
            "minimum": 5,
            "maximum": 20
          },
          "operator": "lte"
        },
        {
          "metricName": "overhead",
          "statistic": "average",
          "unit": "milliseconds",
          "threshold": 0.8,
          "namespace": "Monitoring",
          "dimensions": [
            {
              "name": "Cluster",
              "value": "M2M"
            },
            {
              "name": "Environment",
              "value": "ia-staging"
            }
          ],
          "period": 300,
          "evaluationPeriods": 1,
          "cooldown": 300,
          "action": {
            "type": "adjustment",
            "adjustment": 1
          },
          "operator": "lt",
          "isEnabled": false 
        }
      ],
      "target": [
        {
          "policyName": "target_policy_1",
          "metricName": "CPUUtilization",
          "statistic": "average",
          "source": "cloudWatch",
          "unit": "percent",
          "target": 50,
          "namespace": "AWS/EC2",
          "cooldown": 300
        }
      ]
    },
    "scheduling": {
      "tasks": [
                {
                    "frequency": "hourly",
                    "taskType": "backup_ami"
                },
                {
                    "batchSizePercentage": 30,
                    "cronExpression": "00 17 * * 3",
                    "taskType": "roll"
                },
                {
                    "cronExpression": "00 22 * * 3",
                    "scaleMaxCapacity": 3,
                    "scaleMinCapacity": 0,
                    "scaleTargetCapacity": 0,
                    "startTime": "2018-05-23T10:55:09Z",
                    "taskType": "scale"
                },
                {
                    "adjustment": 1,
                    "cronExpression": "1 10 * * *",
                    "isEnabled": true,
                    "taskType": "scaleUp"
                },
                {
                    "scaleMaxCapacity": 3,
                    "scaleMinCapacity": 3,
                    "scaleTargetCapacity": 3,
                    "startTime": "2018-05-25T10:55:09Z",
                    "taskType": "scale"
                }
            ]
    },
    "compute": {
      "instanceTypes": {
        "ondemand": "m3.medium",
        "spot": [
          "c3.large",
          "c4.large",
          "m3.large",
          "r3.large"
        ],
        "preferredSpot": ["c4.large"]
      },
      "privateIps":["1.2.3.4", "5.6.7.8"],
      "subnetIds": [
        "subnet-4c1d1538",
        "subnet-2791bb61",
        "subnet-703a6f58",
        "subnet-c62846fc"
      ],
      "product": "Linux/UNIX",
      "elasticIps": [
        "eipalloc-9d4e1234"
      ],
      "launchSpecification": {
        "loadBalancersConfig": {
          "loadBalancers": [
            {
              "name": "MyTargetGroup",
              "arn": "arn:aws:elasticloadbalancing:us-west-2:922761411234:targetgroup/MyTargetGroup/1fe63217f8ff1234",
              "type": "TARGET_GROUP"
            },
            {
              "name": "MyClassicLB",
              "type": "CLASSIC"
            },
            {
              "targetSetId": "ts-123456789",
              "balancerId": "lb-123456789",
              "autoWeight": true,
              "azAwareness": false,
              "type": "MULTAI_TARGET_SET"
            }
          ]
        },
        "healthCheckType": "ELB",
        "healthCheckGracePeriod": 300,
        "securityGroupIds": [
          "sg-af18c4ca"
        ],
        "monitoring": false,
        "ebsOptimized": true,
        "imageId": "ami-1ecae776",
        "iamRole": {
           "name": "test"
        },
        "keyPair": "spotinst",
        "blockDeviceMappings": [
          {
            "deviceName": "/dev/sdm",
            "ebs": {
              "deleteOnTermination": "true",
              "volumeSize": "80",
              "volumeType": "gp2"
            }
          },
          {
            "deviceName": "/dev/sda1",
            "ebs": {
              "deleteOnTermination": "true",
              "volumeSize": "24",
              "volumeType": "gp2"
            }
          }
        ],
        "networkInterfaces": [
    	{
      		"deviceIndex": 0,
      		"associatePublicIpAddress": true,
      		"deleteOnTermination": true,
      		"associateIpv6Address": false
    	}
  		],
        "userData": "IyEvYmluL2Jhc2gNCnRvdWNoIHRlc3Qiquwhq38",
        "tags": [
          {
            "tagKey": "allow",
            "tagValue": "allow-ssh"
          }
        ]
      }
    },
    "thirdPartiesIntegration": {
      "ecs": {
        "clusterName": "test-ecs",
        "autoScale": {
          "isEnabled": true,
          "isAutoConfig": false,  
          "cooldown": 900,
          "attributes": [
            {
                    "key": "the_key",
                    "value": "the_value"
            }
          ],
          "down": {
            "evaluationPeriods": 3
          },
          "headroom": {
            "cpuPerUnit": 4096,
            "memoryPerUnit": 4096,
            "numOfUnits": 30
          }
        }
      },
      "elasticBeanstalk": {
        "environmentId": "123",
        "deploymentPreferences": {
          "automaticRoll": true,
          "batchSizePercentage": 50,
          "gracePeriod": 600,
          "strategy": {
            "action": "REPLACE_SERVER",
            "shouldDrainInstances": true
          }
        }
      },
      "rancher": {
        "masterHost": "https://master.host.com",
        "accessKey": "KEY",
        "secretKey": "SECRET",
        "version": "1"
      },
      "kubernetes": {
        "integrationMode": "pod",
        "clusterIdentifier": "test-k8s",
        "autoScale": {
          "isEnabled": true,
          "cooldown": 300,
          "down": {
            "evaluationPeriods": 5
          },
          "headroom": {
            "cpuPerUnit": 2000,
            "memoryPerUnit": 4000,
            "numOfUnits": 2
          },
          "labels": [
            {
              "key": "group",
              "value": "microservices"
            },
            {
              "key": "kops.k8s.io/instancegroup",
              "value": "microservices"
            }
          ],
          "isAutoConfig": false
        }
      },
      "mesosphere": {
        "apiServer": "1.2.3.4"
      },
      "mlbRuntime": {
        "deploymentId": "dp-rm0f5b912345"
      },
      "nomad": {
        "masterHost": "https://master.host.com",
        "masterPort": 443,
        "autoScale": {
          "isEnabled": true,
          "cooldown": 180,
          "down": {
            "evaluationPeriods": 3
          },
          "headroom": {
            "cpuPerUnit": 10,
            "memoryPerUnit": 1000,
            "numOfUnits": 2
          },
          "constraints": [
            {
              "key": "${node.class}",
              "value": "value"
            }
          ]
        },
        "aclToken": "123"
      },
      "chef": {
        "chefServer": "https://master.host.com",
        "organization": "ORGNAME",
        "chefVersion": "12.1",
        "user": "User",
        "pemKey": "Key"
      },
      "rightScale": {
        "accountId": "ID",
        "refreshToken": "TOKEN",
        "region": "us-east-1"
      },
      "opsWorks": {
        "layerId": "00d9m815-8aac-62b7-cc01-123456",
        "stackType": "REGIONAL"
      },
      "codeDeploy": {
        "cleanUpOnFailure": false,
        "terminateInstanceOnFailure": false,
        "deploymentGroups": [
          {
            "applicationName": "test-app",
            "deploymentGroupName": "test-grp"
          }
        ]
      },
      "dockerSwarm": {
        "masterHost": "10.10.10.10",
        "masterPort": 1234,
        "autoScale": {
          "isEnabled": true,
          "cooldown": 300,
          "down": {
            "evaluationPeriods": 4
          },
          "headroom": {
            "cpuPerUnit": 1000000000,
            "memoryPerUnit": 800000000,
            "numOfUnits": 3
          }
        }
      },
      "route53": {
        "domains": [
          {
            "hostedZoneId": "Z3UFMBCGJMYLUT",
            "spotinstAccountId":"act-1234",
            "recordSets": [
              {
                "usePublicIp": true,
                "name": "elad.test-spotinst.com"
              }
            ]
          },
          {
            "hostedZoneId": "Z357U4RA4ZUFXT",
            "recordSets": [
              {
                "usePublicIp": false,
                "name": "test.elad-test-name.com"
              },
              {
                "usePublicIp": false,
                "name": "test1.elad-test-name.com"
              }
            ]
          }
        ]
      }
    }
  }
}

Body Attributes


  • name * String
    Elastigroup name
  • description String
    Describe your Elastigroup
  • region String
    The AWS region your group will be created in.
    This parameter is required if you specify subnets (through compute.subnetIds).
    This parameter is optional if you specify Availability Zones (through compute.availabilityZones).
  • capacity.target * Integer
    The number of instances to launch
    Example: 1
  • capacity.minimum * Integer
    The lower limit number of instances that you can scale down to
  • capacity.maximum * Integer
    The upper limit number of instances that you can scale up to
    Example: 10
  • capacity.unit * String
    The capacity unit to launch instances by. Valid Values: instance, weight
  • strategy.risk Integer

    (Required if onDemandCount is not specified)

    The percentage of Spot instances to launch (range: 0 - 100)
  • strategy.onDemandCount Integer

    (Required if risk is not specified)

    Number of on demand instances to launch in the group. All other instances will be spot instances. When this parameter is set the “risk” parameter is being ignored
  • strategy.availabilityVsCost * String
    The strategy orientation. Valid Values: costOriented , availabilityOriented , balanced, equalAzDistribution (please read this article before using equalAzDistribution orientation:Equal AZ Instance Distribution)
  • strategy.fallbackToOd Boolean
    In case of no spots available, Elastigroup will launch an On-demand instance instead
  • strategy.utilizeReservedInstances Boolean
    In case of any available Reserved Instances, Elastigroup will utilize them before purchasing Spot instances
  • strategy.drainingTimeout Integer
    The time in seconds to allow the instance be drained from incoming TCP connections and detached from ELB before terminating it, during a scale down operation
  • strategy.signals Array<Object>
    The signals defined for this group. For more information refer the below article: Signals
  • strategy.signals.name String
    The name of the signal defined for the group. Valid Values: INSTANCE_READY, INSTANCE_READY_TO_SHUTDOWN
  • strategy.signals.timeout Integer
    The timeout in seconds to hold the instance until a signal is sent. If no signal is sent the instance will be replaced (INSTANCE_READY) or we will terminate the instance (INSTANCE_READY_TO_SHUTDOWN) after the timeout. (Maximum is 1800 seconds, Minimum is 60 seconds)
    Default: 30 minutes
  • strategy.persistence Array<Object>
    You can register persistence (Stateful) recovery arguments
  • strategy.persistence.shouldPersistPrivateIp Boolean
    Should the instance maintain its private IP
  • strategy.persistence.shouldPersistRootDevice Boolean
    Should the instance maintain its root device volumes
  • strategy.persistence.shouldPersistBlockDevices Boolean
    Should the instance maintain its Data volumes
  • strategy.persistence.blockDevicesMode String
    Determine the way we attach the data volumes to the data devices, Possible values: ‘reattach’ and ‘onLaunch’
    Default: onLaunch
  • strategy.revertToSpot Object
    Hold settings for strategy correction - replacing On-Demand for Spot instances
  • strategy.revertToSpot.performAt String
    Settings for maintenance strategy - possible values: timeWindow, never, always. performAt of type: 'never' OR 'timeWindow' can only be applied to groups with "availabilityOriented" OR groups with "persistence", other groups allow either 'always' type or nothing which also means always.
    Example: timeWindow
    Default: always
  • strategy.revertToSpot.timeWindows. Array<String>
    When performAt is 'timeWindow': must 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
    Example: Mon:03:00-Wed:02:30
  • compute.product * String
    Operation system type. Possible values: Linux/UNIX SUSE Linux Windows In case of EC2 classic: Linux/UNIX (Amazon VPC) SUSE Linux (Amazon VPC) Windows (Amazon VPC)
  • compute.elasticIps Array<String>
    List of ElasticIPs Allocation Ids to associate to the group instances
    Example: eipalloc-9d4e16f8
  • compute.privateIps Array<String>
    List of Private IPs to associate to the group instances. Please note: This setting will only apply if rategy.persistence.shouldPersistPrivateIp is set to true.
    Default: 172.1.1.0
  • compute.instanceTypes.ondemand * String
    Available Instance types
  • compute.instanceTypes.spot * Array<String>
    Available Spot Instance types
  • compute.instanceTypes.preferredSpot Array<String>
    Prioritize a subset of spot instance types. Must be a subset of the selected spot instance types.
  • compute.instanceTypes.weights Array<Object>
    Custom weight for each instance type (only valid in weight capacity unit)
  • compute.instanceTypes.weights.instanceType String
    The instance type to customize its weight
  • compute.instanceTypes.weights.weightedCapacity Integer
    The weight
  • compute.subnetIds Array<String>
    A comma-separated list of subnet identifiers for your group.
    When this parameter is set, compute.availabilityZones should be left unused.
  • compute.availabilityZones * Array<Object>
    One or more availability Zones for the group.
    When this parameter is set, compute.subnetIds should be left unused.
  • compute.availabilityZones.name * String
    The Availability Zone name
    Example: us-east-1a \ us-east-1b
  • compute.availabilityZones.subnetId String
    specify EC2 or VPC subnet id. if not specified , the instances will be launched in the default subnet for the AZ
  • compute.availabilityZones.placementGroupName String
    specify a Placement Group name, the instances will be launched in the Placement Group for the AZ.
  • compute.preferredAvailabilityZones Array<String>
    The AZs to prioritize when launching Spot instances. If no markets are available in the Preferred AZs, Spot instances are launched in the non-preferred AZs.
    * Must be a sublist of compute.AvailabilityZones
    * strategy.availabilityVsCost must not be equalAzDistribution
    Example: ["us-east-1a","us-east-1b"]
  • compute.launchSpecification.loadBalancersConfig Object
    Elastic Load Balancers configurations
  • compute.launchSpecification.loadBalancersConfig.loadBalancers Array<Object>
    List of classic load balancers and/or application load balancer target groups and/or Multai load balancer target sets
  • compute.launchSpecification.loadBalancersConfig.loadBalancers.name String
    The AWS resource name. Required for Classic Load Balancer. Optional for Application Load Balancer.
  • compute.launchSpecification.loadBalancersConfig.loadBalancers.arn String
    The AWS resource ARN (Required only for ALB target groups)
  • compute.launchSpecification.loadBalancersConfig.loadBalancers.type String
    The resource type. Valid Values: CLASSIC TARGET_GROUP MULTAI_TARGET_SET
  • compute.launchSpecification.loadBalancersConfig.loadBalancers.balancerId String
    The Multai load balancer ID
    Example: lb-xxxxxx
  • compute.launchSpecification.loadBalancersConfig.loadBalancers.targetSetId String
    The Multai load target set ID
    Example: ts-xxxxxx
  • compute.launchSpecification.loadBalancersConfig.loadBalancers.azAwareness Boolean
    “AZ Awareness” will ensure that instances within the same AZ are using the corresponding MLB runtime instance in the same AZ. This feature reduces multi-zone data transfer fees
  • compute.launchSpecification.loadBalancersConfig.loadBalancers.autoWeight Boolean
    “Auto Weight” will automatically provide a higher weight for instances that are larger as appropriate. For example, if you have configured your Elastigroup with m4.large and m4.xlarge instances the m4.large will have half the weight of an m4.xlarge. This ensures that larger instances receive a higher number of MLB requests
  • compute.launchSpecification.healthCheckType String
    The service to use for the health check. Valid Values: ELB | HCS | TARGET_GROUP | MLB | ECS_CLUSTER_INSTANCE | EC2 | OPSWORKS | MULTAI_TARGET_SET | K8S_NODE | NOMAD_NODE
  • compute.launchSpecification.healthCheckGracePeriod Integer
    The amount of time, in seconds, after the instance has launched to starts and check its health.
    Default: 300 seconds
  • compute.launchSpecification.healthCheckUnhealthyDurationBeforeReplacement Integer
    The amount of time, in seconds, an existing instance should remain active after becoming unhealthy. After the set time out the instance will be replaced
  • compute.launchSpecification.securityGroupIds * Array<String>
    One or more security group IDs. In case of update it will override the existing Security Group with the new given array
  • compute.launchSpecification.monitoring * Boolean
    Describes whether instance Enhanced Monitoring is enabled
  • compute.launchSpecification.ebsOptimized Boolean
    Enable EBS optimization for supported instances which are not enabled by default. Note - additional charges will be applied.
  • compute.launchSpecification.imageId * String
    The ID of the image used to launch the instance. The following instance types are supported by HVM image: M3, M4, C3, C4, D2, G2, R3, CC2, CC1, CG1, CR1. The following instance types are supported by PV image:M1, M2, M3, C1, C3. In case of conflict between Instance type to image type, an error message will be returned
  • compute.launchSpecification.keyPair * String
    Specify a Key Pair to attach to the instances
  • compute.launchSpecification.blockDeviceMappings Array<Object>
    Array list of block devices that are exposed to the instance, You can specify virtual devices and EBS volumes
  • compute.launchSpecification.networkInterfaces Array<Object>
    List of network interfaces in an EC2 instance for AWS CloudFormation. If you define network interface, please pay attention to omit these properties from other sections in this Json and set it here: securityGroups - compute.launchSpecification and subnetId - compute.availabilityZones
  • compute.launchSpecification.iamRole Object
    The instance profile iamRole
  • compute.launchSpecification.iamRole.name String
    The iamRole name
  • compute.launchSpecification.userData Base64
    The Base64-encoded MIME user data to make available to the instances
  • compute.launchSpecification.shutdownScript Base64
    The Base64-encoded shutdown script to execute prior to instance termination. For more information please see: Shutdown Script
  • compute.launchSpecification.tags.tagKey String
    The tag’s key
  • compute.launchSpecification.tags.tagValue String
    The tag’s value
  • scaling.up.policyName String
    The policy name
  • scaling.up.metricName String
    The name of the metric.
    Default: CPUUtilization
  • scaling.up.statistic String
    The metric statistics to return. Valid Values: average , sum , sampleCount , maximum , minimum , percentile
  • scaling.up.extendedStatistic String
    Percentile statistic. Valid values: p0.1 - p100
  • scaling.up.unit String
    The unit for the alarm’s associated metric. Valid Values: seconds , microseconds , milliseconds , bytes , kilobytes , megabytes , gigabytes , terabytes , bits , kilobits , megabits , gigabits , terabits , percent , count , bytes/second , kilobytes/second , megabytes/second , gigabytes/second , terabytes/second , bits/second , kilobits/second , megabits/second , gigabits/second , terabits/second , count/second , none
  • scaling.up.threshold Double
    The value against which the specified statistic is compared
  • scaling.up.action Object
    The action to take when scale up is needed
  • scaling.up.action.type String
    The type of the action to take when scale up is needed. Valid Values: adjustment , updateCapacity setMinTarget , percentageAdjustment
  • scaling.up.action.adjustment Integer
    The number / percentage associated with the specified adjustment type. Required if using “adjustment” or “percentageAdjustment” as action type
  • scaling.up.action.minTargetCapacity Integer
    The number with the target capacity needed. Required if using “setMinTarget” as action type
  • scaling.up.action.target Integer
    The desired number of instances. Required if using “updateCapacity” as action type and neither “minimum” nor “maximum” are not defined.
  • scaling.up.action.minimum Integer
    The lower limit number of instances that you can scale down to. Optional, required if using “updateCapacity” as action type and neither “target” nor “maximum” are not defined
  • scaling.up.action.maximum Integer
    The upper limit number of instances that you can scale up to. Optional, required if using “updateCapacity” as action type and neither “target” nor “minimum” are not defined
  • scaling.up.namespace String
    The namespace for the alarm’s associated metric.
    Default: AWS/EC2
  • scaling.up.dimensions Array<Object>
    The dimensions for the alarm’s associated metric. If the user mentioned name as instanceId, there is NO value
  • scaling.up.period Integer
    The period in seconds over which the statistic is applied.
  • scaling.up.evaluationPeriods Integer
    The number of periods over which data is compared to the specified threshold.
  • scaling.up.cooldown Integer
    The amount of time, in seconds, after a scaling activity completes before any further trigger-related scaling activities can start.
  • scaling.up.operator String
    The operator to use in order to determine if the scaling policy is applicable. Valid values: gt gte lt lte
  • scaling.up.isEnabled Boolean
    Specifies whether the scaling policy described in this block is enabled.
    Default: TRUE
  • scaling.down.policyName String
    The policy name
  • scaling.down.metricName String
    The name of the metric.
    Default: CPUUtilization
  • scaling.down.statistic String
    The metric statistics to return. Valid Values: average sum sampleCount maximum minimum
  • scaling.down.extendedStatistic String
    Percentile statistic. Valid values: p0.1 - p100
  • scaling.down.unit String
    The unit for the alarm’s associated metric. Valid Values: seconds microseconds milliseconds bytes kilobytes megabytes gigabytes terabytes bits kilobits megabits gigabits terabits percent count bytes/second kilobytes/second megabytes/second gigabytes/second terabytes/second bits/second kilobits/second megabits/second gigabits/second terabits/second count/second none
  • scaling.down.action Object
    The action to take when scale down is needed.
  • scaling.down.action.type String
    The type of the action to take when scale down is needed. Valid Values: adjustment updateCapacity setMaxTarget percentageAdjustment
  • scaling.down.action.adjustment Integer
    The number / percentage associated with the specified adjustment type. Required if using “adjustment” or “percentageAdjustment” as action type.
  • scaling.down.action.maxTargetCapacity Integer
    The number with the target capacity needed. Required if using “setMaxTarget” as action type.
  • scaling.down.action.target Integer
    The desired number of instances. Optional, required if using “updateCapacity” as action type and neither “minimum” nor “maximum” are not defined.
  • scaling.down.action.minimum Integer
    The lower limit number of instances that you can scale down to. Optional, required if using “updateCapacity” as action type and neither “target” nor “maximum” are not defined.
  • scaling.down.action.maximum Integer
    The upper limit number of instances that you can scale up to. Optional, required if using “updateCapacity” as action type and neither “target” nor “minimum” are not defined.
  • scaling.down.threshold Double
    The value against which the specified statistic is compared.
  • scaling.down.namespace String
    The namespace for the alarm’s associated metric.
    Default: AWS/EC2
  • scaling.down.dimensions Array<Object>
    The dimensions for the alarm’s associated metric. If the user mentioned name as instanceId, there is NO value
  • scaling.down.period Integer
    The period in seconds over which the statistic is applied
  • scaling.down.evaluationPeriods Integer
    The number of periods over which data is compared to the specified threshold
  • scaling.down.cooldown Integer
    The amount of time, in seconds, after a scaling activity completes before any further trigger-related scaling activities can start
  • scaling.down.operator String
    The operator to use in order to determine if the scaling policy is applicable. Valid values: gt gte lt lte
  • scaling.down.isEnabled String
    Specifies whether the scaling policy described in this block is enabled.
    Default: TRUE
  • scaling.target.source String
    The source of the metric Supported values: “cloudWatch”, “spectrum”
  • scaling.target.policyName String
    The policy name
  • scaling.target.metricName String
    The name of the metric
    Default: CPUUtilization
  • scaling.target.statistic String
    The metric statistics to return. Valid Values: average sum sampleCount maximum minimum
  • scaling.target.unit String
    The unit for the alarm’s associated metric. Valid Values: seconds microseconds milliseconds bytes kilobytes megabytes gigabytes terabytes bits kilobits megabits gigabits terabits percent count bytes/second kilobytes/second megabytes/second gigabytes/second terabytes/second bits/second kilobits/second megabits/second gigabits/second terabits/second count/second none
  • scaling.target.namespace String
    The namespace for the alarm’s associated metric.
    Default: AWS/EC2
  • scaling.target.target Integer
    The target value for the group
  • scaling.target.cooldown Integer
    The amount of time, in seconds, after a scaling activity completes before any further trigger-related scaling activities can start
  • scheduling Object
    Schedule tasks to execute, using CRON expressions.
  • scheduling.tasks Array<Object>
    The scheduling tasks for the group.
  • scheduling.tasks.isEnabled Boolean
    Describes whether the task is enabled. When true the task should run when false it should not run.
  • scheduling.tasks.startTime String
    DATETIME in ISO-8601 format. Sets a start time for scheduled actions. If "frequency" or "cronExpression" are not used - the task will run only once at the start time and will then be deleted from the group configuration
    Example: 2018-05-23T10:55:09Z
  • scheduling.tasks.frequency String
    The recurrence frequency to run this task. Valid Values: hourly daily weekly. Only one of ‘frequency’ or ‘cronExpression’ should be used at a time
  • scheduling.tasks.cronExpression String
    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.
    Example: 0 1 * * *
  • scheduling.tasks.taskType String
    The task type to run. Valid Values: backup_ami, scale, scaleUp, roll, statefulUpdateCapacity, statefulRecycle
    Example: scale
  • scheduling.tasks.scaleTargetCapacity Integer
    The target capacity of the group. Should be used when choosing ‘taskType’ of ‘scale’.
  • scheduling.tasks.scaleMinCapacity Integer
    The min capacity of the group. Should be used when choosing ‘taskType’ of ‘scale’.
  • scheduling.tasks.scaleMaxCapacity Integer
    The max capacity of the group. Required when ‘taskType’ is ‘scale’.
  • scheduling.tasks.TargetCapacity Integer
    Set a new target capacity for the Elastigroup. Required when ‘taskType’ is ‘statefulUpdateCapacity’.
  • scheduling.tasks.MinCapacity Integer
    Set a new minimum capacity for the Elastigroup. Required when ‘taskType’ is ‘statefulUpdateCapacity’.
  • scheduling.tasks.MaxCapacity Integer
    Set a new maximum capacity for the Elastigroup.Required when ‘taskType’ is ‘statefulUpdateCapacity’.
  • scheduling.tasks.batchSizePercentage Integer
    The percentage size of each batch in the scheduled deployment roll.
    Required when the taskType is roll.
  • thirdPartiesIntegration Object
    All definitions for using 3rd-party Integrations
  • thirdPartiesIntegration.rancher Object
    All definitions for using Rancher Labs integration
  • thirdPartiesIntegration.rancher.masterHost String
    Rancher master url
    Example: http://myRancher.com:8080/v1
  • thirdPartiesIntegration.rancher.accessKey String
    Rancher API Access Key
  • thirdPartiesIntegration.rancher.secretKey String
    Rancher API Secret Key
  • thirdPartiesIntegration.rancher.version String
    Rancher version
    Example: 1
    Default: 1
  • thirdPartiesIntegration.elasticBeanstalk Object
    All definitions for using Elastic Beanstalk integration
  • thirdPartiesIntegration.elasticBeanstalk.environmentId String
    Elastic Beanstalk Environment ID.
  • thirdPartiesIntegration.elasticBeanstalk.deploymentPreferences Object
    All deployment preferences when deploying a Elastic Beanstalk version.
  • thirdPartiesIntegration.elasticBeanstalk.deploymentPreferences.automaticRoll Boolean
    Describes whether new instances will automatically replace old instances upon new Elastic Beanstalk version upload.
  • thirdPartiesIntegration.elasticBeanstalk.deploymentPreferences.batchSizePercentage Integer
    Indicates in percentage the amount of instances should be replaced in each batch. If set to null it will be a system default.
  • thirdPartiesIntegration.elasticBeanstalk.deploymentPreferences.gracePeriod Integer
    The amount of time, in seconds, after the instance has launched to starts and check its health. If set to null it will be a system default.
  • thirdPartiesIntegration.ecs Object
    All definitions for using Amazon EC2 Container Service integration
  • thirdPartiesIntegration.ecs.clusterName String
    ECS cluster name
  • thirdPartiesIntegration.ecs.autoScale Object
    Settings for ECS auto-scaling
  • thirdPartiesIntegration.ecs.autoScale.isEnabled Boolean
    State of Autoscaling feature
    Default: false
  • thirdPartiesIntegration.ecs.autoScale.isAutoConfig Boolean
    simplify the autoscaler configuration by providing an automated option to configure headroom. If this setting is enabled it will override the configured settings for "cooldown", "headroom" and "evaluation period"
    Example: true
    Default: false
  • thirdPartiesIntegration.ecs.autoScale.cooldown Integer
    Cooldown period in Seconds before another scaling action is triggered
    Default: 300
  • thirdPartiesIntegration.ecs.autoScale.attributes Array<Object>
    Array of ECS custom attributes configured on your ECS container instances
  • thirdPartiesIntegration.ecs.autoScale.down Object
    Settings for automated Scale down
  • thirdPartiesIntegration.ecs.autoScale.down.evaluationPeriods Integer
    The evaluation period in minutes for the automated scale down action
  • thirdPartiesIntegration.ecs.autoScale.headroom Object
    Set the Headroom, a buffer of spare capacity.
  • thirdPartiesIntegration.ecs.autoScale.headroom.cpuPerUnit Integer
    CPU units spare capacity settings
  • thirdPartiesIntegration.ecs.autoScale.headroom.memoryPerUnit Integer
    Memory units spare capacity settings
  • thirdPartiesIntegration.ecs.autoScale.headroom.numOfUnits Integer
    How many units should of the configured CPU and Memory should be in the spare capacity
  • thirdPartiesIntegration.kubernetes Object
    All definitions for using Kubernetes integration
  • thirdPartiesIntegration.kubernetes.integrationMode String
    Spotinst allows users to integrate Kubernetes Clusters in one of two ways: 1. SaaS – Connect your cluster to the Spotinst autoscaler service over the internet. 2. In-Cluster – Run the Spotinst Kubernetes autoscaler as a pod inside your Kubernetes cluster.
  • thirdPartiesIntegration.kubernetes.clusterIdentifier String
    The Elastigroup identifier for your k8's cluster
  • thirdPartiesIntegration.kubernetes.autoScale Object
    K8's auto scaler configuration
  • thirdPartiesIntegration.kubernetes.autoScale.isEnabled Boolean
    Is the auto scaler enabled or not
  • thirdPartiesIntegration.kubernetes.autoScale.cooldown Integer
    Cool down period between scaling actions
  • thirdPartiesIntegration.kubernetes.autoScale.down Object
    Auto scaler Scale down configuration
  • thirdPartiesIntegration.kubernetes.autoScale.down.evaluationPeriods Integer
    How many evaluation periods should accumulate before a scale down action takes place
  • thirdPartiesIntegration.kubernetes.autoScale.headroom Object
    Headroom configuration of the auto scaler
  • thirdPartiesIntegration.kubernetes.autoScale.headroom.cpuPerUnit Integer
    How much CPU to allocate for headroom unit
  • thirdPartiesIntegration.kubernetes.autoScale.headroom.memoryPerUnit Integer
    How much Memory allocate for headroom unit
  • thirdPartiesIntegration.kubernetes.autoScale.headroom.numOfUnits Integer
    How many units to allocate for headroom unit
  • thirdPartiesIntegration.kubernetes.autoScale.labels Array<Object>
    Key/value pairs to use as constraints.
  • thirdPartiesIntegration.kubernetes.autoScale.labels.key String
    key of constraint
    Example: group
  • thirdPartiesIntegration.kubernetes.autoScale.labels.value String
    value of constraint
    Example: microservices
  • thirdPartiesIntegration.kubernetes.autoScale.isAutoConfig Boolean
    Set to true if you want to use the Automated headroom feature
  • thirdPartiesIntegration.rightScale Object
    All definitions for using RightScale integration
  • thirdPartiesIntegration.rightScale.accountId String
    Right Scale account id
  • thirdPartiesIntegration.rightScale.refreshToken String
    Right Scale refresh token
  • thirdPartiesIntegration.chef Object
    All definitions for using Chef integration
  • thirdPartiesIntegration.chef.chefServer String
    Chef Server IP address or Host
  • thirdPartiesIntegration.chef.organization String
    Chef organization name
  • thirdPartiesIntegration.chef.user String
    Chef user name
  • thirdPartiesIntegration.chef.pemKey String
    Chef Validator Pem Key (https://docs.chef.io/chef_private_keys.html#chef-validator)
  • thirdPartiesIntegration.chef.chefVersion String
    Chef version
  • thirdPartiesIntegration.route53 Array<Object>
    Route 53 integration configurations
  • thirdPartiesIntegration.route53.domains Array<Object>
    Route 53 Domain configurations.
  • thirdPartiesIntegration.route53.domains.hostedZoneId String
    The Route 53 Hosted Zone Id for the registered Domain.
    Example: "Z3UFMBCGJMYLUT"
  • thirdPartiesIntegration.route53.domains.spotinstAccountId String
    The Spotinst account ID that is linked to the AWS account that holds the Route 53 hosted Zone Id. The default is the user Spotinst account provided as a URL parameter.
    Default: Account Id in URL parameter