Ec2NodeClassSpec: {
    amiFamily?:
        | "AL2"
        | "Bottlerocket"
        | "Ubuntu"
        | "Windows2019"
        | "Windows2022";
    amiSelector?: Values;
    amiSelectorTerms?: AmiSelectorTerm[];
    blockDeviceMappings?: BlockDeviceMapping[];
    detailedMonitoring?: boolean;
    instanceProfile?: string;
    instanceStorePolicy?: "RAID0";
    metadataOptions?: Values;
    securityGroupSelector?: Values;
    securityGroupSelectorTerms?: BetaSecurityGroupTerm[];
    subnetSelector?: Values;
    subnetSelectorTerms?: BetaSubnetTerm[];
    tags?: Values;
    userData?: string;
}

Utility type for Karpenter EC2NodeClass Specs

Type declaration

  • OptionalamiFamily?:
        | "AL2"
        | "Bottlerocket"
        | "Ubuntu"
        | "Windows2019"
        | "Windows2022"

    AMI Family: required for v0.32.0 and above, optional otherwise Karpenter will automatically query the appropriate EKS optimized AMI via AWS Systems Manager

  • OptionalamiSelector?: Values

    AMI Selector

  • OptionalamiSelectorTerms?: AmiSelectorTerm[]

    AMI Selector terms used for Beta CRDs

  • OptionalblockDeviceMappings?: BlockDeviceMapping[]

    BlockDeviceMappings allows you to specify the block device mappings for the instances. This is a list of mappings, where each mapping consists of a device name and an EBS configuration. If you leave this blank, it will use the Karpenter default.

  • OptionaldetailedMonitoring?: boolean

    Detailed monitoring on EC2

  • OptionalinstanceProfile?: string

    Optional field to use the name of the IAM Instance profile, instead of the role generated by Karpenter. User must pre-provision an IAM instance profile and assign a role to it.

  • OptionalinstanceStorePolicy?: "RAID0"

    Optional field to control how instance store volumes are handled. Set it to RAID0 for faster ephemeral storage

  • OptionalmetadataOptions?: Values

    Control the exposure of Instance Metadata service using this configuration

  • OptionalsecurityGroupSelector?: Values

    Tags needed for security groups - Subnet tags and security group tags are required for the provisioner to be created Required for Alpha CRDS

  • OptionalsecurityGroupSelectorTerms?: BetaSecurityGroupTerm[]

    Security Group selector terms (security group id, tags or names) used for Beta CRDs Required for Beta CRDS

  • OptionalsubnetSelector?: Values

    Tags needed for subnets - Subnet tags and security group tags are required for the provisioner to be created Required for Alpha CRDS

  • OptionalsubnetSelectorTerms?: BetaSubnetTerm[]

    Subnet selector terms (subnet id or tags) used for Beta CRDs Required for Beta CRDS

  • Optionaltags?: Values

    Tags adds tags to all resources created, including EC2 Instances, EBS volumes and Launch Templates. Karpenter allows overrides of the default "Name" tag but does not allow overrides to restricted domains (such as "karpenter.sh", "karpenter.k8s.aws", and "kubernetes.io/cluster"). This ensures that Karpenter is able to correctly auto-discover machines that it owns.

  • OptionaluserData?: string

    Optional user provided UserData applied to the worker nodes, i.e. custom scripts or pass-through custom configurations at start-up