AmazonEC2CloudImage

Definition of a cloud image for a cloud profile agent cloud profile for AWS EC2 in a project.

Example. EC2 Cloud Image using an AMI with a VPC

project {
    // Other Project settings ...
    features {
        // Other Project Features ...
        amazonEC2CloudImage {
            name = "name"
            profileId = "amazon-1"
            source = AMI("ami-463edb31")
            vpcSubnetId = "subnet-045436575f4ega1d5"
            iamProfile = "some_iamProfile"
            instanceType = "t2.nano"
        }






} }

Example. EC2 Cloud Image using an AMI with a VPC and image priority

project {
    // Other Project settings ...
    features {
        // Other Project Features ...
        amazonEC2CloudImage {
            name = "name"
            profileId = "amazon-1"
            source = AMI("ami-463edb31")
            vpcSubnetId = "subnet-045436575f4ega1d5"
            iamProfile = "some_iamProfile"
            instanceType = "t2.nano"
            imagePriority = 100
        }







} }

Example. EC2 Cloud Image using a specific Instance with a VPC, a key pair, optimized for ebs, with security groups, using spot instances and that injects a custom script on agent startup

project {
    // Other Project settings ...
    features {
        // Other Project Features ...
        amazonEC2CloudImage {
            name = "name"
            profileId = "amazon-1"
            source = Instance("ami-463edb31")
            vpcSubnetId = "subnet-045436575f4ega1d5"
            iamProfile = "some_iamProfile"
            keyPairName = "some_kpname"
            instanceType = "t2.nano"
            ebsOptimized = true
            securityGroups = listOf("sec1", "sec2")
            userScript = "sh ~/custom_script.sh"
            useSpotInstances = true
            spotInstanceBidPrice = 5.0
            instanceTags = mapOf("a" to "aa", "b" to "bb")
            maxInstancesCount = 5
            agentPoolId = "some_agent_pool"
        }















} }

Example. EC2 Cloud Image using a Spot Fleet config

project {
    // Other Project settings ...
    features {
        // Other Project Features ...
        amazonEC2CloudImage {
            name = "name"
            profileId = "amazon-1"
            source = SpotFleetConfig("""
                      {
                            "IamFleetRole": "arn:aws:iam::913206223978:role/aws-ec2-spot-fleet-tagging-role",
                            "AllocationStrategy": "priceCapacityOptimized",
                            "TargetCapacity": 1,
                            "TerminateInstancesWithExpiration": true,
                            "Type": "request",
                            "TargetCapacityUnitType": "units",
                            "SpotPrice": "183.3",
                            "LaunchSpecifications": [
                                {
                                    "ImageId": "ami-0f31q9ce40194e750",
                                    "KeyName": "key-pair",
                                    "BlockDeviceMappings": [
                                        {
                                            "DeviceName": "/dev/xvda",
                                            "Ebs": {
                                                "DeleteOnTermination": true,
                                                "SnapshotId": "snap-0682e88d8f0cb1ee8",
                                                "VolumeSize": 8,
                                                "VolumeType": "gp2",
                                                "Encrypted": false
                                            }
                                        }
                                    ],
                                    "SubnetId": "subnet-01d36cf70ff187181",
                                    "InstanceRequirements": {
                                        "VCpuCount": {
                                            "Min": 2
                                        },
                                        "MemoryMiB": {
                                            "Min": 2048
                                        }
                                    }
                                }
                            ]
                        }
                        """.trimIndent())
        }








































} }

Constructors

Link copied to clipboard
constructor(init: AmazonEC2CloudImage.() -> Unit = {})

Types

Link copied to clipboard
Link copied to clipboard
object Companion
Link copied to clipboard
inner class Image(imageId: String) : AmazonEC2CloudImage.Source
Link copied to clipboard
inner class Instance(instanceId: String) : AmazonEC2CloudImage.Source
Link copied to clipboard
inner class LaunchTemplate(templateId: String, version: String = AmazonEC2CloudImage.DEFAULT_VERSION) : AmazonEC2CloudImage.Source
Link copied to clipboard
inner class PublicAMI(publicAMI: String) : AmazonEC2CloudImage.Source
Link copied to clipboard
open inner class Source(source: String)
Link copied to clipboard
inner class SpotFleetConfig(spotFleetConfig: String) : AmazonEC2CloudImage.Source

Properties

Link copied to clipboard
var agentPoolId: <Error class: unknown class>
Link copied to clipboard
var autoAssignPublicIP: <Error class: unknown class>
Link copied to clipboard
var availabilityZone: <Error class: unknown class>
Link copied to clipboard
var customizeLaunchTemplate: <Error class: unknown class>
Link copied to clipboard
Link copied to clipboard
var ebsOptimized: <Error class: unknown class>
Link copied to clipboard
var iamProfile: <Error class: unknown class>
Link copied to clipboard
var id: String?

Project feature id, if not specified will be generated

Link copied to clipboard
var imagePriority: <Error class: unknown class>
Link copied to clipboard
Link copied to clipboard
var instanceType: <Error class: unknown class>
Link copied to clipboard
var keyPairName: <Error class: unknown class>
Link copied to clipboard
var launchTemplateCustomAmi: <Error class: unknown class>
Link copied to clipboard
var maxInstancesCount: <Error class: unknown class>
Link copied to clipboard
var name: <Error class: unknown class>
Link copied to clipboard
Link copied to clipboard
var profileId: <Error class: unknown class>
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
var spotInstanceBidPrice: <Error class: unknown class>
Link copied to clipboard

Project feature type

Link copied to clipboard
var userScript: <Error class: unknown class>
Link copied to clipboard
var useSpotInstances: <Error class: unknown class>
Link copied to clipboard
var vpcSubnetId: <Error class: unknown class>

Functions

Link copied to clipboard
fun booleanParameter(    customName: String? = null,     trueValue: String? = "true",     falseValue: String? = "false"): <Error class: unknown class><Parametrized, <Error class: unknown class><Parametrized, T?>>
Link copied to clipboard
fun clear()
Link copied to clipboard
fun <T : CompoundParam<T>> compoundParameter(    customName: String? = null): <Error class: unknown class><Parametrized, <Error class: unknown class><Parametrized, T?>>
Link copied to clipboard
fun <T : Parametrized> copyParamsTo(target: T): T

Copies parameters of this object to the specified target

Link copied to clipboard

Creates an instance of this project feature via reflection using a no argument constructor, used during copying. Throws an error if this class doesn't have a default constructor. Subclasses can override it to create an instance without using a default constructor.

Link copied to clipboard
fun doubleParameter(customName: String? = null): <Error class: unknown class><Parametrized, <Error class: unknown class><Parametrized, T?>>
Link copied to clipboard
fun <E : Enum<E>> enumParameter(    customName: String? = null,     mapping: Map<E, String?>? = null): <Error class: unknown class><Parametrized, <Error class: unknown class><Parametrized, T?>>
Link copied to clipboard
fun findRawParam(paramName: String): Parameter?
Link copied to clipboard
fun hasParam(paramName: String): Boolean
Link copied to clipboard
fun intParameter(customName: String? = null): <Error class: unknown class><Parametrized, <Error class: unknown class><Parametrized, T?>>
Link copied to clipboard
fun param(name: String, value: String)

Adds parameter with specified name and value

Link copied to clipboard
fun removeRawParam(paramName: String)
Link copied to clipboard
open fun stringParameter(    customName: String? = null): <Error class: unknown class><Parametrized, <Error class: unknown class><Parametrized, T?>>
Link copied to clipboard
open override fun toString(): String
Link copied to clipboard
open override fun validate(consumer: ErrorConsumer)

Validates this object and reports found errors to the provided consumer