cdk-serverless-api
Version:
A sample JSII construct lib for AWS CDK
69 lines (68 loc) • 2.59 kB
TypeScript
import { StackProps, Construct, Resource, ResourceProps } from '@aws-cdk/core';
import * as eks from '@aws-cdk/aws-eks';
import * as iam from '@aws-cdk/aws-iam';
import * as ec2 from '@aws-cdk/aws-ec2';
import { ILaunchtemplate } from './launch-template';
export declare enum BlockDuration {
ONE_HOUR = 60,
TWO_HOURS = 120,
THREE_HOURS = 180,
FOUR_HOURS = 240,
FIVE_HOURS = 300,
SIX_HOURS = 360
}
export declare enum InstanceInterruptionBehavior {
HIBERNATE = "hibernate",
STOP = "stop",
TERMINATE = "terminate"
}
export interface EksSpotClusterProps extends StackProps {
readonly clusterAttributes?: eks.ClusterAttributes;
readonly clusterVersion: eks.KubernetesVersion;
readonly instanceRole?: iam.IRole;
readonly instanceInterruptionBehavior?: InstanceInterruptionBehavior;
readonly kubectlEnabled?: boolean;
/**
* Specify a custom AMI ID for your spot fleet. By default the Amazon EKS-optimized
* AMI will be selected.
*
* @default - none
*/
readonly customAmiId?: string;
}
export declare class EksSpotCluster extends Resource {
readonly cluster: eks.Cluster;
readonly clusterVersion: eks.KubernetesVersion;
readonly vpc: ec2.IVpc;
constructor(scope: Construct, id: string, props: EksSpotClusterProps);
addSpotFleet(id: string, props: BaseSpotFleetProps): void;
addDays(date: Date, days: number): Date;
addHours(date: Date, hours: number): Date;
addMinutes(date: Date, minutes: number): Date;
}
export interface BaseSpotFleetProps extends ResourceProps {
readonly defaultInstanceType?: ec2.InstanceType;
readonly blockDuration?: BlockDuration;
readonly instanceInterruptionBehavior?: InstanceInterruptionBehavior;
readonly instanceRole?: iam.Role;
readonly targetCapacity?: number;
readonly mapRole?: boolean;
readonly bootstrapEnabled?: boolean;
readonly validFrom?: string;
readonly validUntil?: string;
readonly terminateInstancesWithExpiration?: boolean;
readonly customAmiId?: string;
}
export interface SpotFleetProps extends BaseSpotFleetProps {
readonly cluster: EksSpotCluster;
readonly launchTemplate?: ILaunchtemplate;
}
export declare class SpotFleet extends Resource {
readonly instanceRole: iam.IRole;
readonly clusterStack: EksSpotCluster;
readonly defaultInstanceType: ec2.InstanceType;
readonly targetCapacity?: number;
readonly spotFleetId: string;
readonly launchTemplate: ILaunchtemplate;
constructor(scope: Construct, id: string, props: SpotFleetProps);
}