1. Packages
  2. LBr Labs EKS
  3. API Docs
  4. AutoscaledNodeGroup
LBr Labs EKS v1.3.0 published on Monday, Mar 24, 2025 by lbrlabs

lbrlabs-eks.AutoscaledNodeGroup

Explore with Pulumi AI

Create AutoscaledNodeGroup Resource

Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.

Constructor syntax

new AutoscaledNodeGroup(name: string, args: AutoscaledNodeGroupArgs, opts?: ComponentResourceOptions);
@overload
def AutoscaledNodeGroup(resource_name: str,
                        args: AutoscaledNodeGroupArgs,
                        opts: Optional[ResourceOptions] = None)

@overload
def AutoscaledNodeGroup(resource_name: str,
                        opts: Optional[ResourceOptions] = None,
                        requirements: Optional[Sequence[RequirementArgs]] = None,
                        disk_size: Optional[str] = None,
                        node_role: Optional[str] = None,
                        security_group_ids: Optional[Sequence[str]] = None,
                        subnet_ids: Optional[Sequence[str]] = None,
                        ami_id: Optional[str] = None,
                        annotations: Optional[Mapping[str, str]] = None,
                        disruption: Optional[DisruptionConfigArgs] = None,
                        labels: Optional[Mapping[str, str]] = None,
                        node_class_api_version: Optional[str] = None,
                        node_pool_api_version: Optional[str] = None,
                        ami_family: Optional[str] = None,
                        taints: Optional[Sequence[pulumi_kubernetes.core.v1.TaintArgs]] = None)
func NewAutoscaledNodeGroup(ctx *Context, name string, args AutoscaledNodeGroupArgs, opts ...ResourceOption) (*AutoscaledNodeGroup, error)
public AutoscaledNodeGroup(string name, AutoscaledNodeGroupArgs args, ComponentResourceOptions? opts = null)
public AutoscaledNodeGroup(String name, AutoscaledNodeGroupArgs args)
public AutoscaledNodeGroup(String name, AutoscaledNodeGroupArgs args, ComponentResourceOptions options)
type: lbrlabs-eks:AutoscaledNodeGroup
properties: # The arguments to resource properties.
options: # Bag of options to control resource's behavior.

Parameters

name This property is required. string
The unique name of the resource.
args This property is required. AutoscaledNodeGroupArgs
The arguments to resource properties.
opts ComponentResourceOptions
Bag of options to control resource's behavior.
resource_name This property is required. str
The unique name of the resource.
args This property is required. AutoscaledNodeGroupArgs
The arguments to resource properties.
opts ResourceOptions
Bag of options to control resource's behavior.
ctx Context
Context object for the current deployment.
name This property is required. string
The unique name of the resource.
args This property is required. AutoscaledNodeGroupArgs
The arguments to resource properties.
opts ResourceOption
Bag of options to control resource's behavior.
name This property is required. string
The unique name of the resource.
args This property is required. AutoscaledNodeGroupArgs
The arguments to resource properties.
opts ComponentResourceOptions
Bag of options to control resource's behavior.
name This property is required. String
The unique name of the resource.
args This property is required. AutoscaledNodeGroupArgs
The arguments to resource properties.
options ComponentResourceOptions
Bag of options to control resource's behavior.

Constructor example

The following reference example uses placeholder values for all input properties.

var autoscaledNodeGroupResource = new Eks.AutoscaledNodeGroup("autoscaledNodeGroupResource", new()
{
    Requirements = new[]
    {
        new Eks.Inputs.RequirementArgs
        {
            Key = "string",
            Operator = "string",
            Values = new[]
            {
                "string",
            },
        },
    },
    DiskSize = "string",
    NodeRole = "string",
    SecurityGroupIds = new[]
    {
        "string",
    },
    SubnetIds = new[]
    {
        "string",
    },
    AmiId = "string",
    Annotations = 
    {
        { "string", "string" },
    },
    Disruption = new Eks.Inputs.DisruptionConfigArgs
    {
        Budgets = new[]
        {
            new Eks.Inputs.BudgetConfigArgs
            {
                Duration = "string",
                Nodes = "string",
                Schedule = "string",
            },
        },
        ConsolidateAfter = "string",
        ConsolidationPolicy = "string",
        ExpireAfter = "string",
    },
    Labels = 
    {
        { "string", "string" },
    },
    NodeClassApiVersion = "string",
    NodePoolApiVersion = "string",
    AmiFamily = "string",
    Taints = new[]
    {
        new Kubernetes.Types.Inputs.Core.V1.TaintArgs
        {
            Effect = "string",
            Key = "string",
            TimeAdded = "string",
            Value = "string",
        },
    },
});
Copy
example, err := lbrlabseks.NewAutoscaledNodeGroup(ctx, "autoscaledNodeGroupResource", &lbrlabseks.AutoscaledNodeGroupArgs{
	Requirements: eks.RequirementArray{
		&eks.RequirementArgs{
			Key:      pulumi.String("string"),
			Operator: pulumi.String("string"),
			Values: pulumi.StringArray{
				pulumi.String("string"),
			},
		},
	},
	DiskSize: pulumi.String("string"),
	NodeRole: pulumi.String("string"),
	SecurityGroupIds: pulumi.StringArray{
		pulumi.String("string"),
	},
	SubnetIds: pulumi.StringArray{
		pulumi.String("string"),
	},
	AmiId: pulumi.String("string"),
	Annotations: pulumi.StringMap{
		"string": pulumi.String("string"),
	},
	Disruption: &eks.DisruptionConfigArgs{
		Budgets: eks.BudgetConfigArray{
			&eks.BudgetConfigArgs{
				Duration: pulumi.String("string"),
				Nodes:    pulumi.String("string"),
				Schedule: pulumi.String("string"),
			},
		},
		ConsolidateAfter:    pulumi.String("string"),
		ConsolidationPolicy: pulumi.String("string"),
		ExpireAfter:         pulumi.String("string"),
	},
	Labels: pulumi.StringMap{
		"string": pulumi.String("string"),
	},
	NodeClassApiVersion: pulumi.String("string"),
	NodePoolApiVersion:  pulumi.String("string"),
	AmiFamily:           pulumi.String("string"),
	Taints: corev1.TaintArray{
		&corev1.TaintArgs{
			Effect:    pulumi.String("string"),
			Key:       pulumi.String("string"),
			TimeAdded: pulumi.String("string"),
			Value:     pulumi.String("string"),
		},
	},
})
Copy
var autoscaledNodeGroupResource = new AutoscaledNodeGroup("autoscaledNodeGroupResource", AutoscaledNodeGroupArgs.builder()
    .requirements(RequirementArgs.builder()
        .key("string")
        .operator("string")
        .values("string")
        .build())
    .diskSize("string")
    .nodeRole("string")
    .securityGroupIds("string")
    .subnetIds("string")
    .amiId("string")
    .annotations(Map.of("string", "string"))
    .disruption(DisruptionConfigArgs.builder()
        .budgets(BudgetConfigArgs.builder()
            .duration("string")
            .nodes("string")
            .schedule("string")
            .build())
        .consolidateAfter("string")
        .consolidationPolicy("string")
        .expireAfter("string")
        .build())
    .labels(Map.of("string", "string"))
    .nodeClassApiVersion("string")
    .nodePoolApiVersion("string")
    .amiFamily("string")
    .taints(TaintArgs.builder()
        .effect("string")
        .key("string")
        .timeAdded("string")
        .value("string")
        .build())
    .build());
Copy
autoscaled_node_group_resource = lbrlabs_eks.AutoscaledNodeGroup("autoscaledNodeGroupResource",
    requirements=[{
        "key": "string",
        "operator": "string",
        "values": ["string"],
    }],
    disk_size="string",
    node_role="string",
    security_group_ids=["string"],
    subnet_ids=["string"],
    ami_id="string",
    annotations={
        "string": "string",
    },
    disruption={
        "budgets": [{
            "duration": "string",
            "nodes": "string",
            "schedule": "string",
        }],
        "consolidate_after": "string",
        "consolidation_policy": "string",
        "expire_after": "string",
    },
    labels={
        "string": "string",
    },
    node_class_api_version="string",
    node_pool_api_version="string",
    ami_family="string",
    taints=[{
        "effect": "string",
        "key": "string",
        "time_added": "string",
        "value": "string",
    }])
Copy
const autoscaledNodeGroupResource = new lbrlabs_eks.AutoscaledNodeGroup("autoscaledNodeGroupResource", {
    requirements: [{
        key: "string",
        operator: "string",
        values: ["string"],
    }],
    diskSize: "string",
    nodeRole: "string",
    securityGroupIds: ["string"],
    subnetIds: ["string"],
    amiId: "string",
    annotations: {
        string: "string",
    },
    disruption: {
        budgets: [{
            duration: "string",
            nodes: "string",
            schedule: "string",
        }],
        consolidateAfter: "string",
        consolidationPolicy: "string",
        expireAfter: "string",
    },
    labels: {
        string: "string",
    },
    nodeClassApiVersion: "string",
    nodePoolApiVersion: "string",
    amiFamily: "string",
    taints: [{
        effect: "string",
        key: "string",
        timeAdded: "string",
        value: "string",
    }],
});
Copy
type: lbrlabs-eks:AutoscaledNodeGroup
properties:
    amiFamily: string
    amiId: string
    annotations:
        string: string
    diskSize: string
    disruption:
        budgets:
            - duration: string
              nodes: string
              schedule: string
        consolidateAfter: string
        consolidationPolicy: string
        expireAfter: string
    labels:
        string: string
    nodeClassApiVersion: string
    nodePoolApiVersion: string
    nodeRole: string
    requirements:
        - key: string
          operator: string
          values:
            - string
    securityGroupIds:
        - string
    subnetIds:
        - string
    taints:
        - effect: string
          key: string
          timeAdded: string
          value: string
Copy

AutoscaledNodeGroup Resource Properties

To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.

Inputs

In Python, inputs that are objects can be passed either as argument classes or as dictionary literals.

The AutoscaledNodeGroup resource accepts the following input properties:

DiskSize This property is required. string
Disk size for the node group.
NodeRole This property is required. string
Node role for the node group.
Requirements This property is required. List<Lbrlabs.PulumiPackage.Eks.Inputs.Requirement>
List of requirements for the node group.
SecurityGroupIds This property is required. List<string>
List of security group selector terms for the node group.
SubnetIds This property is required. List<string>
List of subnet selector terms for the node group.
AmiFamily string
AMI family for the node group.
AmiId string
AMI ID for the node group.
Annotations Dictionary<string, string>
Annotations to apply to the node group.
Disruption Lbrlabs.PulumiPackage.Eks.Inputs.DisruptionConfig
Labels Dictionary<string, string>
Key-value map of Kubernetes labels. Only labels that are applied with the EKS API are managed by this argument. Other Kubernetes labels applied to the EKS Node Group will not be managed.
NodeClassApiVersion string
Karpenter NodePool API version.
NodePoolApiVersion string
Karpenter NodePool API version.
Taints List<Pulumi.Kubernetes.Types.Inputs.Core.V1.Taint>
Optional node taints.
DiskSize This property is required. string
Disk size for the node group.
NodeRole This property is required. string
Node role for the node group.
Requirements This property is required. []RequirementArgs
List of requirements for the node group.
SecurityGroupIds This property is required. []string
List of security group selector terms for the node group.
SubnetIds This property is required. []string
List of subnet selector terms for the node group.
AmiFamily string
AMI family for the node group.
AmiId string
AMI ID for the node group.
Annotations map[string]string
Annotations to apply to the node group.
Disruption DisruptionConfigArgs
Labels map[string]string
Key-value map of Kubernetes labels. Only labels that are applied with the EKS API are managed by this argument. Other Kubernetes labels applied to the EKS Node Group will not be managed.
NodeClassApiVersion string
Karpenter NodePool API version.
NodePoolApiVersion string
Karpenter NodePool API version.
Taints TaintArgs
Optional node taints.
diskSize This property is required. String
Disk size for the node group.
nodeRole This property is required. String
Node role for the node group.
requirements This property is required. List<Requirement>
List of requirements for the node group.
securityGroupIds This property is required. List<String>
List of security group selector terms for the node group.
subnetIds This property is required. List<String>
List of subnet selector terms for the node group.
amiFamily String
AMI family for the node group.
amiId String
AMI ID for the node group.
annotations Map<String,String>
Annotations to apply to the node group.
disruption DisruptionConfig
labels Map<String,String>
Key-value map of Kubernetes labels. Only labels that are applied with the EKS API are managed by this argument. Other Kubernetes labels applied to the EKS Node Group will not be managed.
nodeClassApiVersion String
Karpenter NodePool API version.
nodePoolApiVersion String
Karpenter NodePool API version.
taints List<Taint>
Optional node taints.
diskSize This property is required. string
Disk size for the node group.
nodeRole This property is required. string
Node role for the node group.
requirements This property is required. Requirement[]
List of requirements for the node group.
securityGroupIds This property is required. string[]
List of security group selector terms for the node group.
subnetIds This property is required. string[]
List of subnet selector terms for the node group.
amiFamily string
AMI family for the node group.
amiId string
AMI ID for the node group.
annotations {[key: string]: string}
Annotations to apply to the node group.
disruption DisruptionConfig
labels {[key: string]: string}
Key-value map of Kubernetes labels. Only labels that are applied with the EKS API are managed by this argument. Other Kubernetes labels applied to the EKS Node Group will not be managed.
nodeClassApiVersion string
Karpenter NodePool API version.
nodePoolApiVersion string
Karpenter NodePool API version.
taints pulumiKubernetestypesinputcorev1Taint[]
Optional node taints.
disk_size This property is required. str
Disk size for the node group.
node_role This property is required. str
Node role for the node group.
requirements This property is required. Sequence[RequirementArgs]
List of requirements for the node group.
security_group_ids This property is required. Sequence[str]
List of security group selector terms for the node group.
subnet_ids This property is required. Sequence[str]
List of subnet selector terms for the node group.
ami_family str
AMI family for the node group.
ami_id str
AMI ID for the node group.
annotations Mapping[str, str]
Annotations to apply to the node group.
disruption DisruptionConfigArgs
labels Mapping[str, str]
Key-value map of Kubernetes labels. Only labels that are applied with the EKS API are managed by this argument. Other Kubernetes labels applied to the EKS Node Group will not be managed.
node_class_api_version str
Karpenter NodePool API version.
node_pool_api_version str
Karpenter NodePool API version.
taints Sequence[pulumi_kubernetes.core.v1.TaintArgs]
Optional node taints.
diskSize This property is required. String
Disk size for the node group.
nodeRole This property is required. String
Node role for the node group.
requirements This property is required. List<Property Map>
List of requirements for the node group.
securityGroupIds This property is required. List<String>
List of security group selector terms for the node group.
subnetIds This property is required. List<String>
List of subnet selector terms for the node group.
amiFamily String
AMI family for the node group.
amiId String
AMI ID for the node group.
annotations Map<String>
Annotations to apply to the node group.
disruption Property Map
labels Map<String>
Key-value map of Kubernetes labels. Only labels that are applied with the EKS API are managed by this argument. Other Kubernetes labels applied to the EKS Node Group will not be managed.
nodeClassApiVersion String
Karpenter NodePool API version.
nodePoolApiVersion String
Karpenter NodePool API version.
taints List<Property Map>
Optional node taints.

Outputs

All input properties are implicitly available as output properties. Additionally, the AutoscaledNodeGroup resource produces the following output properties:

Supporting Types

BudgetConfig
, BudgetConfigArgs

Duration string
The duration during which disruptuon can happen.
Nodes string
The maximum number of nodes that can be scaled down at any time.
Schedule string
A cron schedule for when disruption can happen.
Duration string
The duration during which disruptuon can happen.
Nodes string
The maximum number of nodes that can be scaled down at any time.
Schedule string
A cron schedule for when disruption can happen.
duration String
The duration during which disruptuon can happen.
nodes String
The maximum number of nodes that can be scaled down at any time.
schedule String
A cron schedule for when disruption can happen.
duration string
The duration during which disruptuon can happen.
nodes string
The maximum number of nodes that can be scaled down at any time.
schedule string
A cron schedule for when disruption can happen.
duration str
The duration during which disruptuon can happen.
nodes str
The maximum number of nodes that can be scaled down at any time.
schedule str
A cron schedule for when disruption can happen.
duration String
The duration during which disruptuon can happen.
nodes String
The maximum number of nodes that can be scaled down at any time.
schedule String
A cron schedule for when disruption can happen.

DisruptionConfig
, DisruptionConfigArgs

Budgets List<Lbrlabs.PulumiPackage.Eks.Inputs.BudgetConfig>
Budgets control the speed Karpenter can scale down nodes.
ConsolidateAfter string
The amount of time Karpenter should wait after discovering a consolidation decision. This value can currently only be set when the consolidationPolicy is 'WhenEmpty'. You can choose to disable consolidation entirely by setting the string value 'Never' here.
ConsolidationPolicy string
Describes which types of Nodes Karpenter should consider for consolidation.
ExpireAfter string
The amount of time a Node can live on the cluster before being removed.
Budgets []BudgetConfig
Budgets control the speed Karpenter can scale down nodes.
ConsolidateAfter string
The amount of time Karpenter should wait after discovering a consolidation decision. This value can currently only be set when the consolidationPolicy is 'WhenEmpty'. You can choose to disable consolidation entirely by setting the string value 'Never' here.
ConsolidationPolicy string
Describes which types of Nodes Karpenter should consider for consolidation.
ExpireAfter string
The amount of time a Node can live on the cluster before being removed.
budgets List<BudgetConfig>
Budgets control the speed Karpenter can scale down nodes.
consolidateAfter String
The amount of time Karpenter should wait after discovering a consolidation decision. This value can currently only be set when the consolidationPolicy is 'WhenEmpty'. You can choose to disable consolidation entirely by setting the string value 'Never' here.
consolidationPolicy String
Describes which types of Nodes Karpenter should consider for consolidation.
expireAfter String
The amount of time a Node can live on the cluster before being removed.
budgets BudgetConfig[]
Budgets control the speed Karpenter can scale down nodes.
consolidateAfter string
The amount of time Karpenter should wait after discovering a consolidation decision. This value can currently only be set when the consolidationPolicy is 'WhenEmpty'. You can choose to disable consolidation entirely by setting the string value 'Never' here.
consolidationPolicy string
Describes which types of Nodes Karpenter should consider for consolidation.
expireAfter string
The amount of time a Node can live on the cluster before being removed.
budgets Sequence[BudgetConfig]
Budgets control the speed Karpenter can scale down nodes.
consolidate_after str
The amount of time Karpenter should wait after discovering a consolidation decision. This value can currently only be set when the consolidationPolicy is 'WhenEmpty'. You can choose to disable consolidation entirely by setting the string value 'Never' here.
consolidation_policy str
Describes which types of Nodes Karpenter should consider for consolidation.
expire_after str
The amount of time a Node can live on the cluster before being removed.
budgets List<Property Map>
Budgets control the speed Karpenter can scale down nodes.
consolidateAfter String
The amount of time Karpenter should wait after discovering a consolidation decision. This value can currently only be set when the consolidationPolicy is 'WhenEmpty'. You can choose to disable consolidation entirely by setting the string value 'Never' here.
consolidationPolicy String
Describes which types of Nodes Karpenter should consider for consolidation.
expireAfter String
The amount of time a Node can live on the cluster before being removed.

Requirement
, RequirementArgs

Key string
The key of the requirement.
Operator string
The operator for the requirement (e.g., In, Gt).
Values List<string>
The list of values for the requirement.
Key string
The key of the requirement.
Operator string
The operator for the requirement (e.g., In, Gt).
Values []string
The list of values for the requirement.
key String
The key of the requirement.
operator String
The operator for the requirement (e.g., In, Gt).
values List<String>
The list of values for the requirement.
key string
The key of the requirement.
operator string
The operator for the requirement (e.g., In, Gt).
values string[]
The list of values for the requirement.
key str
The key of the requirement.
operator str
The operator for the requirement (e.g., In, Gt).
values Sequence[str]
The list of values for the requirement.
key String
The key of the requirement.
operator String
The operator for the requirement (e.g., In, Gt).
values List<String>
The list of values for the requirement.

Package Details

Repository
lbrlabs-eks lbrlabs/pulumi-lbrlabs-eks
License