package aws // MachinePoolPlatform stores the configuration for a machine pool // installed on AWS. type MachinePoolPlatform struct { // Zones is list of availability zones that can be used. Zones []string `json:"zones,omitempty"` // Subnets is the list of subnets to which to attach the machines. // There must be exactly one private subnet for each availability zone used. // If public subnets are specified, there must be exactly one private and one public subnet specified for each availability zone. Subnets []string `json:"subnets,omitempty"` // InstanceType defines the ec2 instance type. // eg. m4-large InstanceType string `json:"type"` // EC2RootVolume defines the storage for ec2 instance. EC2RootVolume `json:"rootVolume"` // SpotMarketOptions allows users to configure instances to be run using AWS Spot instances. // +optional SpotMarketOptions *SpotMarketOptions `json:"spotMarketOptions,omitempty"` } // SpotMarketOptions defines the options available to a user when configuring // Machines to run on Spot instances. // Most users should provide an empty struct. type SpotMarketOptions struct { // The maximum price the user is willing to pay for their instances // Default: On-Demand price // +optional MaxPrice *string `json:"maxPrice,omitempty"` } // EC2RootVolume defines the storage for an ec2 instance. type EC2RootVolume struct { // IOPS defines the iops for the storage. IOPS int `json:"iops"` // Size defines the size of the storage. Size int `json:"size"` // Type defines the type of the storage. Type string `json:"type"` // The KMS key that will be used to encrypt the EBS volume. // If no key is provided the default KMS key for the account will be used. // https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetEbsDefaultKmsKeyId.html // +optional KMSKeyARN string `json:"kmsKeyARN,omitempty"` }