Class CfnNodegroup

java.lang.Object
software.amazon.jsii.JsiiObject
software.constructs.Construct
All Implemented Interfaces:
IInspectable, ITaggable, software.amazon.jsii.JsiiSerializable, software.constructs.IConstruct, software.constructs.IDependable

@Generated(value="jsii-pacmak/1.101.0 (build b95fe5d)", date="2024-08-02T00:29:10.597Z") @Stability(Stable) public class CfnNodegroup extends CfnResource implements IInspectable, ITaggable
Creates a managed node group for an Amazon EKS cluster.

You can only create a node group for your cluster that is equal to the current Kubernetes version for the cluster. All node groups are created with the latest AMI release version for the respective minor Kubernetes version of the cluster, unless you deploy a custom AMI using a launch template. For more information about using launch templates, see Customizing managed nodes with launch templates .

An Amazon EKS managed node group is an Amazon EC2 Auto Scaling group and associated Amazon EC2 instances that are managed by AWS for an Amazon EKS cluster. For more information, see Managed node groups in the Amazon EKS User Guide .

Windows AMI types are only supported for commercial AWS Regions that support Windows on Amazon EKS.

Example:

 // The code below shows an example of how to instantiate this type.
 // The values are placeholders you should change.
 import software.amazon.awscdk.services.eks.*;
 CfnNodegroup cfnNodegroup = CfnNodegroup.Builder.create(this, "MyCfnNodegroup")
         .clusterName("clusterName")
         .nodeRole("nodeRole")
         .subnets(List.of("subnets"))
         // the properties below are optional
         .amiType("amiType")
         .capacityType("capacityType")
         .diskSize(123)
         .forceUpdateEnabled(false)
         .instanceTypes(List.of("instanceTypes"))
         .labels(Map.of(
                 "labelsKey", "labels"))
         .launchTemplate(LaunchTemplateSpecificationProperty.builder()
                 .id("id")
                 .name("name")
                 .version("version")
                 .build())
         .nodegroupName("nodegroupName")
         .releaseVersion("releaseVersion")
         .remoteAccess(RemoteAccessProperty.builder()
                 .ec2SshKey("ec2SshKey")
                 // the properties below are optional
                 .sourceSecurityGroups(List.of("sourceSecurityGroups"))
                 .build())
         .scalingConfig(ScalingConfigProperty.builder()
                 .desiredSize(123)
                 .maxSize(123)
                 .minSize(123)
                 .build())
         .tags(Map.of(
                 "tagsKey", "tags"))
         .taints(List.of(TaintProperty.builder()
                 .effect("effect")
                 .key("key")
                 .value("value")
                 .build()))
         .updateConfig(UpdateConfigProperty.builder()
                 .maxUnavailable(123)
                 .maxUnavailablePercentage(123)
                 .build())
         .version("version")
         .build();
 

See Also:
  • Field Details

    • CFN_RESOURCE_TYPE_NAME

      @Stability(Stable) public static final String CFN_RESOURCE_TYPE_NAME
      The CloudFormation resource type name for this resource class.
  • Constructor Details

    • CfnNodegroup

      protected CfnNodegroup(software.amazon.jsii.JsiiObjectRef objRef)
    • CfnNodegroup

      protected CfnNodegroup(software.amazon.jsii.JsiiObject.InitializationMode initializationMode)
    • CfnNodegroup

      @Stability(Stable) public CfnNodegroup(@NotNull software.constructs.Construct scope, @NotNull String id, @NotNull CfnNodegroupProps props)
      Parameters:
      scope - Scope in which this resource is defined. This parameter is required.
      id - Construct identifier for this resource (unique in its scope). This parameter is required.
      props - Resource properties. This parameter is required.
  • Method Details

    • inspect

      @Stability(Stable) public void inspect(@NotNull TreeInspector inspector)
      Examines the CloudFormation resource and discloses attributes.

      Specified by:
      inspect in interface IInspectable
      Parameters:
      inspector - tree inspector to collect and process attributes. This parameter is required.
    • renderProperties

      @Stability(Stable) @NotNull protected Map<String,Object> renderProperties(@NotNull Map<String,Object> props)
      Overrides:
      renderProperties in class CfnResource
      Parameters:
      props - This parameter is required.
    • getAttrArn

      @Stability(Stable) @NotNull public String getAttrArn()
      The Amazon Resource Name (ARN) associated with the managed node group.
    • getAttrClusterName

      @Stability(Stable) @NotNull public String getAttrClusterName()
      The name of your cluster.
    • getAttrId

      @Stability(Stable) @NotNull public String getAttrId()
    • getAttrNodegroupName

      @Stability(Stable) @NotNull public String getAttrNodegroupName()
      The name associated with an Amazon EKS managed node group.
    • getCfnProperties

      @Stability(Stable) @NotNull protected Map<String,Object> getCfnProperties()
      Overrides:
      getCfnProperties in class CfnResource
    • getTags

      @Stability(Stable) @NotNull public TagManager getTags()
      Tag Manager which manages the tags for this resource.
      Specified by:
      getTags in interface ITaggable
    • getClusterName

      @Stability(Stable) @NotNull public String getClusterName()
      The name of your cluster.
    • setClusterName

      @Stability(Stable) public void setClusterName(@NotNull String value)
      The name of your cluster.
    • getNodeRole

      @Stability(Stable) @NotNull public String getNodeRole()
      The Amazon Resource Name (ARN) of the IAM role to associate with your node group.
    • setNodeRole

      @Stability(Stable) public void setNodeRole(@NotNull String value)
      The Amazon Resource Name (ARN) of the IAM role to associate with your node group.
    • getSubnets

      @Stability(Stable) @NotNull public List<String> getSubnets()
      The subnets to use for the Auto Scaling group that is created for your node group.
    • setSubnets

      @Stability(Stable) public void setSubnets(@NotNull List<String> value)
      The subnets to use for the Auto Scaling group that is created for your node group.
    • getAmiType

      @Stability(Stable) @Nullable public String getAmiType()
      The AMI type for your node group.
    • setAmiType

      @Stability(Stable) public void setAmiType(@Nullable String value)
      The AMI type for your node group.
    • getCapacityType

      @Stability(Stable) @Nullable public String getCapacityType()
      The capacity type of your managed node group.
    • setCapacityType

      @Stability(Stable) public void setCapacityType(@Nullable String value)
      The capacity type of your managed node group.
    • getDiskSize

      @Stability(Stable) @Nullable public Number getDiskSize()
      The root device disk size (in GiB) for your node group instances.
    • setDiskSize

      @Stability(Stable) public void setDiskSize(@Nullable Number value)
      The root device disk size (in GiB) for your node group instances.
    • getForceUpdateEnabled

      @Stability(Stable) @Nullable public Object getForceUpdateEnabled()
      Force the update if any Pod on the existing node group can't be drained due to a Pod disruption budget issue.
    • setForceUpdateEnabled

      @Stability(Stable) public void setForceUpdateEnabled(@Nullable Boolean value)
      Force the update if any Pod on the existing node group can't be drained due to a Pod disruption budget issue.
    • setForceUpdateEnabled

      @Stability(Stable) public void setForceUpdateEnabled(@Nullable IResolvable value)
      Force the update if any Pod on the existing node group can't be drained due to a Pod disruption budget issue.
    • getInstanceTypes

      @Stability(Stable) @Nullable public List<String> getInstanceTypes()
      Specify the instance types for a node group.
    • setInstanceTypes

      @Stability(Stable) public void setInstanceTypes(@Nullable List<String> value)
      Specify the instance types for a node group.
    • getLabels

      @Stability(Stable) @Nullable public Object getLabels()
      The Kubernetes labels applied to the nodes in the node group.
    • setLabels

      @Stability(Stable) public void setLabels(@Nullable IResolvable value)
      The Kubernetes labels applied to the nodes in the node group.
    • setLabels

      @Stability(Stable) public void setLabels(@Nullable Map<String,String> value)
      The Kubernetes labels applied to the nodes in the node group.
    • getLaunchTemplate

      @Stability(Stable) @Nullable public Object getLaunchTemplate()
      An object representing a node group's launch template specification.
    • setLaunchTemplate

      @Stability(Stable) public void setLaunchTemplate(@Nullable IResolvable value)
      An object representing a node group's launch template specification.
    • setLaunchTemplate

      @Stability(Stable) public void setLaunchTemplate(@Nullable CfnNodegroup.LaunchTemplateSpecificationProperty value)
      An object representing a node group's launch template specification.
    • getNodegroupName

      @Stability(Stable) @Nullable public String getNodegroupName()
      The unique name to give your node group.
    • setNodegroupName

      @Stability(Stable) public void setNodegroupName(@Nullable String value)
      The unique name to give your node group.
    • getReleaseVersion

      @Stability(Stable) @Nullable public String getReleaseVersion()
      The AMI version of the Amazon EKS optimized AMI to use with your node group (for example, 1.14.7- *YYYYMMDD* ). By default, the latest available AMI version for the node group's current Kubernetes version is used. For more information, see Amazon EKS optimized Linux AMI Versions in the Amazon EKS User Guide .
    • setReleaseVersion

      @Stability(Stable) public void setReleaseVersion(@Nullable String value)
      The AMI version of the Amazon EKS optimized AMI to use with your node group (for example, 1.14.7- *YYYYMMDD* ). By default, the latest available AMI version for the node group's current Kubernetes version is used. For more information, see Amazon EKS optimized Linux AMI Versions in the Amazon EKS User Guide .
    • getRemoteAccess

      @Stability(Stable) @Nullable public Object getRemoteAccess()
      The remote access configuration to use with your node group.
    • setRemoteAccess

      @Stability(Stable) public void setRemoteAccess(@Nullable IResolvable value)
      The remote access configuration to use with your node group.
    • setRemoteAccess

      @Stability(Stable) public void setRemoteAccess(@Nullable CfnNodegroup.RemoteAccessProperty value)
      The remote access configuration to use with your node group.
    • getScalingConfig

      @Stability(Stable) @Nullable public Object getScalingConfig()
      The scaling configuration details for the Auto Scaling group that is created for your node group.
    • setScalingConfig

      @Stability(Stable) public void setScalingConfig(@Nullable IResolvable value)
      The scaling configuration details for the Auto Scaling group that is created for your node group.
    • setScalingConfig

      @Stability(Stable) public void setScalingConfig(@Nullable CfnNodegroup.ScalingConfigProperty value)
      The scaling configuration details for the Auto Scaling group that is created for your node group.
    • getTagsRaw

      @Stability(Stable) @Nullable public Map<String,String> getTagsRaw()
      Metadata that assists with categorization and organization.
    • setTagsRaw

      @Stability(Stable) public void setTagsRaw(@Nullable Map<String,String> value)
      Metadata that assists with categorization and organization.
    • getTaints

      @Stability(Stable) @Nullable public Object getTaints()
      The Kubernetes taints to be applied to the nodes in the node group when they are created.
    • setTaints

      @Stability(Stable) public void setTaints(@Nullable IResolvable value)
      The Kubernetes taints to be applied to the nodes in the node group when they are created.
    • setTaints

      @Stability(Stable) public void setTaints(@Nullable List<Object> value)
      The Kubernetes taints to be applied to the nodes in the node group when they are created.
    • getUpdateConfig

      @Stability(Stable) @Nullable public Object getUpdateConfig()
      The node group update configuration.
    • setUpdateConfig

      @Stability(Stable) public void setUpdateConfig(@Nullable IResolvable value)
      The node group update configuration.
    • setUpdateConfig

      @Stability(Stable) public void setUpdateConfig(@Nullable CfnNodegroup.UpdateConfigProperty value)
      The node group update configuration.
    • getVersion

      @Stability(Stable) @Nullable public String getVersion()
      The Kubernetes version to use for your managed nodes.
    • setVersion

      @Stability(Stable) public void setVersion(@Nullable String value)
      The Kubernetes version to use for your managed nodes.