pulumi-eks 4.3.0a1768463252__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- pulumi_eks/__init__.py +51 -0
- pulumi_eks/_enums.py +164 -0
- pulumi_eks/_inputs.py +3445 -0
- pulumi_eks/_utilities.py +331 -0
- pulumi_eks/addon.py +272 -0
- pulumi_eks/cluster.py +1879 -0
- pulumi_eks/cluster_creation_role_provider.py +118 -0
- pulumi_eks/managed_node_group.py +1240 -0
- pulumi_eks/node_group.py +1161 -0
- pulumi_eks/node_group_security_group.py +183 -0
- pulumi_eks/node_group_v2.py +1212 -0
- pulumi_eks/outputs.py +1400 -0
- pulumi_eks/provider.py +77 -0
- pulumi_eks/pulumi-plugin.json +5 -0
- pulumi_eks/py.typed +0 -0
- pulumi_eks/vpc_cni_addon.py +719 -0
- pulumi_eks-4.3.0a1768463252.dist-info/METADATA +94 -0
- pulumi_eks-4.3.0a1768463252.dist-info/RECORD +20 -0
- pulumi_eks-4.3.0a1768463252.dist-info/WHEEL +5 -0
- pulumi_eks-4.3.0a1768463252.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,1212 @@
|
|
|
1
|
+
# coding=utf-8
|
|
2
|
+
# *** WARNING: this file was generated by pulumi-gen-eks. ***
|
|
3
|
+
# *** Do not edit by hand unless you're certain you know what you are doing! ***
|
|
4
|
+
|
|
5
|
+
import builtins as _builtins
|
|
6
|
+
import warnings
|
|
7
|
+
import sys
|
|
8
|
+
import pulumi
|
|
9
|
+
import pulumi.runtime
|
|
10
|
+
from typing import Any, Mapping, Optional, Sequence, Union, overload
|
|
11
|
+
if sys.version_info >= (3, 11):
|
|
12
|
+
from typing import NotRequired, TypedDict, TypeAlias
|
|
13
|
+
else:
|
|
14
|
+
from typing_extensions import NotRequired, TypedDict, TypeAlias
|
|
15
|
+
from . import _utilities
|
|
16
|
+
from ._enums import *
|
|
17
|
+
from ._inputs import *
|
|
18
|
+
from .cluster import Cluster
|
|
19
|
+
from .vpc_cni_addon import VpcCniAddon
|
|
20
|
+
import pulumi_aws
|
|
21
|
+
import pulumi_kubernetes
|
|
22
|
+
|
|
23
|
+
__all__ = ['NodeGroupV2Args', 'NodeGroupV2']
|
|
24
|
+
|
|
25
|
+
@pulumi.input_type
|
|
26
|
+
class NodeGroupV2Args:
|
|
27
|
+
def __init__(__self__, *,
|
|
28
|
+
cluster: pulumi.Input[Union['Cluster', 'CoreDataArgs']],
|
|
29
|
+
ami_id: Optional[pulumi.Input[_builtins.str]] = None,
|
|
30
|
+
ami_type: Optional[pulumi.Input[_builtins.str]] = None,
|
|
31
|
+
auto_scaling_group_tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
|
|
32
|
+
bootstrap_extra_args: Optional[pulumi.Input[_builtins.str]] = None,
|
|
33
|
+
bottlerocket_settings: Optional[pulumi.Input[Mapping[str, Any]]] = None,
|
|
34
|
+
cloud_formation_tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
|
|
35
|
+
cluster_ingress_rule: Optional[pulumi.Input['pulumi_aws.ec2.SecurityGroupRule']] = None,
|
|
36
|
+
cluster_ingress_rule_id: Optional[pulumi.Input[_builtins.str]] = None,
|
|
37
|
+
desired_capacity: Optional[pulumi.Input[_builtins.int]] = None,
|
|
38
|
+
enable_detailed_monitoring: Optional[pulumi.Input[_builtins.bool]] = None,
|
|
39
|
+
encrypt_root_block_device: Optional[pulumi.Input[_builtins.bool]] = None,
|
|
40
|
+
extra_node_security_groups: Optional[pulumi.Input[Sequence[pulumi.Input['pulumi_aws.ec2.SecurityGroup']]]] = None,
|
|
41
|
+
gpu: Optional[pulumi.Input[_builtins.bool]] = None,
|
|
42
|
+
ignore_scaling_changes: Optional[_builtins.bool] = None,
|
|
43
|
+
instance_profile: Optional['pulumi_aws.iam.InstanceProfile'] = None,
|
|
44
|
+
instance_profile_name: Optional[pulumi.Input[_builtins.str]] = None,
|
|
45
|
+
instance_type: Optional[pulumi.Input[_builtins.str]] = None,
|
|
46
|
+
key_name: Optional[pulumi.Input[_builtins.str]] = None,
|
|
47
|
+
kubelet_extra_args: Optional[pulumi.Input[_builtins.str]] = None,
|
|
48
|
+
labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
|
|
49
|
+
launch_template_tag_specifications: Optional[pulumi.Input[Sequence[pulumi.Input['pulumi_aws.ec2.LaunchTemplateTagSpecificationArgs']]]] = None,
|
|
50
|
+
max_size: Optional[pulumi.Input[_builtins.int]] = None,
|
|
51
|
+
min_refresh_percentage: Optional[pulumi.Input[_builtins.int]] = None,
|
|
52
|
+
min_size: Optional[pulumi.Input[_builtins.int]] = None,
|
|
53
|
+
node_associate_public_ip_address: Optional[pulumi.Input[_builtins.bool]] = None,
|
|
54
|
+
node_public_key: Optional[pulumi.Input[_builtins.str]] = None,
|
|
55
|
+
node_root_volume_delete_on_termination: Optional[pulumi.Input[_builtins.bool]] = None,
|
|
56
|
+
node_root_volume_encrypted: Optional[pulumi.Input[_builtins.bool]] = None,
|
|
57
|
+
node_root_volume_iops: Optional[pulumi.Input[_builtins.int]] = None,
|
|
58
|
+
node_root_volume_size: Optional[pulumi.Input[_builtins.int]] = None,
|
|
59
|
+
node_root_volume_throughput: Optional[pulumi.Input[_builtins.int]] = None,
|
|
60
|
+
node_root_volume_type: Optional[pulumi.Input[_builtins.str]] = None,
|
|
61
|
+
node_security_group: Optional[pulumi.Input['pulumi_aws.ec2.SecurityGroup']] = None,
|
|
62
|
+
node_security_group_id: Optional[pulumi.Input[_builtins.str]] = None,
|
|
63
|
+
node_subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
|
|
64
|
+
node_user_data: Optional[pulumi.Input[_builtins.str]] = None,
|
|
65
|
+
node_user_data_override: Optional[pulumi.Input[_builtins.str]] = None,
|
|
66
|
+
nodeadm_extra_options: Optional[pulumi.Input[Sequence[pulumi.Input['NodeadmOptionsArgs']]]] = None,
|
|
67
|
+
operating_system: Optional[pulumi.Input['OperatingSystem']] = None,
|
|
68
|
+
spot_price: Optional[pulumi.Input[_builtins.str]] = None,
|
|
69
|
+
taints: Optional[pulumi.Input[Mapping[str, pulumi.Input['TaintArgs']]]] = None,
|
|
70
|
+
version: Optional[pulumi.Input[_builtins.str]] = None):
|
|
71
|
+
"""
|
|
72
|
+
The set of arguments for constructing a NodeGroupV2 resource.
|
|
73
|
+
:param pulumi.Input[Union['Cluster', 'CoreDataArgs']] cluster: The target EKS cluster.
|
|
74
|
+
:param pulumi.Input[_builtins.str] ami_id: The AMI ID to use for the worker nodes.
|
|
75
|
+
|
|
76
|
+
Defaults to the latest recommended EKS Optimized Linux AMI from the AWS Systems Manager Parameter Store.
|
|
77
|
+
|
|
78
|
+
Note: `amiId` and `gpu` are mutually exclusive.
|
|
79
|
+
|
|
80
|
+
See for more details:
|
|
81
|
+
- https://docs.aws.amazon.com/eks/latest/userguide/eks-optimized-ami.html.
|
|
82
|
+
:param pulumi.Input[_builtins.str] ami_type: The AMI Type to use for the worker nodes.
|
|
83
|
+
|
|
84
|
+
Only applicable when setting an AMI ID that is of type `arm64`.
|
|
85
|
+
|
|
86
|
+
Note: `amiType` and `gpu` are mutually exclusive.
|
|
87
|
+
:param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] auto_scaling_group_tags: The tags to apply to the NodeGroup's AutoScalingGroup in the CloudFormation Stack.
|
|
88
|
+
|
|
89
|
+
Per AWS, all stack-level tags, including automatically created tags, and the `cloudFormationTags` option are propagated to resources that AWS CloudFormation supports, including the AutoScalingGroup. See https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html
|
|
90
|
+
|
|
91
|
+
Note: Given the inheritance of auto-generated CF tags and `cloudFormationTags`, you should either supply the tag in `autoScalingGroupTags` or `cloudFormationTags`, but not both.
|
|
92
|
+
:param pulumi.Input[_builtins.str] bootstrap_extra_args: Additional args to pass directly to `/etc/eks/bootstrap.sh`. For details on available options, see: https://github.com/awslabs/amazon-eks-ami/blob/master/files/bootstrap.sh. Note that the `--apiserver-endpoint`, `--b64-cluster-ca` and `--kubelet-extra-args` flags are included automatically based on other configuration parameters.
|
|
93
|
+
:param pulumi.Input[Mapping[str, Any]] bottlerocket_settings: The configuration settings for Bottlerocket OS.
|
|
94
|
+
The settings will get merged with the base settings the provider uses to configure Bottlerocket.
|
|
95
|
+
|
|
96
|
+
This includes:
|
|
97
|
+
- settings.kubernetes.api-server
|
|
98
|
+
- settings.kubernetes.cluster-certificate
|
|
99
|
+
- settings.kubernetes.cluster-name
|
|
100
|
+
- settings.kubernetes.cluster-dns-ip
|
|
101
|
+
|
|
102
|
+
For an overview of the available settings, see https://bottlerocket.dev/en/os/1.20.x/api/settings/.
|
|
103
|
+
:param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] cloud_formation_tags: The tags to apply to the CloudFormation Stack of the Worker NodeGroup.
|
|
104
|
+
|
|
105
|
+
Note: Given the inheritance of auto-generated CF tags and `cloudFormationTags`, you should either supply the tag in `autoScalingGroupTags` or `cloudFormationTags`, but not both.
|
|
106
|
+
:param pulumi.Input['pulumi_aws.ec2.SecurityGroupRule'] cluster_ingress_rule: The ingress rule that gives node group access.
|
|
107
|
+
:param pulumi.Input[_builtins.str] cluster_ingress_rule_id: The ID of the ingress rule that gives node group access.
|
|
108
|
+
:param pulumi.Input[_builtins.int] desired_capacity: The number of worker nodes that should be running in the cluster. Defaults to 2.
|
|
109
|
+
:param pulumi.Input[_builtins.bool] enable_detailed_monitoring: Enables/disables detailed monitoring of the EC2 instances.
|
|
110
|
+
|
|
111
|
+
With detailed monitoring, all metrics, including status check metrics, are available in 1-minute intervals.
|
|
112
|
+
When enabled, you can also get aggregated data across groups of similar instances.
|
|
113
|
+
|
|
114
|
+
Note: You are charged per metric that is sent to CloudWatch. You are not charged for data storage.
|
|
115
|
+
For more information, see "Paid tier" and "Example 1 - EC2 Detailed Monitoring" here https://aws.amazon.com/cloudwatch/pricing/.
|
|
116
|
+
:param pulumi.Input[_builtins.bool] encrypt_root_block_device: Encrypt the root block device of the nodes in the node group.
|
|
117
|
+
:param pulumi.Input[Sequence[pulumi.Input['pulumi_aws.ec2.SecurityGroup']]] extra_node_security_groups: Extra security groups to attach on all nodes in this worker node group.
|
|
118
|
+
|
|
119
|
+
This additional set of security groups captures any user application rules that will be needed for the nodes.
|
|
120
|
+
:param pulumi.Input[_builtins.bool] gpu: Use the latest recommended EKS Optimized Linux AMI with GPU support for the worker nodes from the AWS Systems Manager Parameter Store.
|
|
121
|
+
|
|
122
|
+
Defaults to false.
|
|
123
|
+
|
|
124
|
+
Note: `gpu` and `amiId` are mutually exclusive.
|
|
125
|
+
|
|
126
|
+
See for more details:
|
|
127
|
+
- https://docs.aws.amazon.com/eks/latest/userguide/eks-optimized-ami.html
|
|
128
|
+
- https://docs.aws.amazon.com/eks/latest/userguide/retrieve-ami-id.html
|
|
129
|
+
:param _builtins.bool ignore_scaling_changes: Whether to ignore changes to the desired size of the Auto Scaling Group. This is useful when using Cluster Autoscaler.
|
|
130
|
+
|
|
131
|
+
See [EKS best practices](https://aws.github.io/aws-eks-best-practices/cluster-autoscaling/) for more details.
|
|
132
|
+
:param 'pulumi_aws.iam.InstanceProfile' instance_profile: The IAM InstanceProfile to use on the NodeGroup. Properties instanceProfile and instanceProfileName are mutually exclusive.
|
|
133
|
+
:param pulumi.Input[_builtins.str] instance_profile_name: The name of the IAM InstanceProfile to use on the NodeGroup. Properties instanceProfile and instanceProfileName are mutually exclusive.
|
|
134
|
+
:param pulumi.Input[_builtins.str] instance_type: The instance type to use for the cluster's nodes. Defaults to "t3.medium".
|
|
135
|
+
:param pulumi.Input[_builtins.str] key_name: Name of the key pair to use for SSH access to worker nodes.
|
|
136
|
+
:param pulumi.Input[_builtins.str] kubelet_extra_args: Extra args to pass to the Kubelet. Corresponds to the options passed in the `--kubeletExtraArgs` flag to `/etc/eks/bootstrap.sh`. For example, '--port=10251 --address=0.0.0.0'. Note that the `labels` and `taints` properties will be applied to this list (using `--node-labels` and `--register-with-taints` respectively) after to the explicit `kubeletExtraArgs`.
|
|
137
|
+
:param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: Custom k8s node labels to be attached to each worker node. Adds the given key/value pairs to the `--node-labels` kubelet argument.
|
|
138
|
+
:param pulumi.Input[Sequence[pulumi.Input['pulumi_aws.ec2.LaunchTemplateTagSpecificationArgs']]] launch_template_tag_specifications: The tag specifications to apply to the launch template.
|
|
139
|
+
:param pulumi.Input[_builtins.int] max_size: The maximum number of worker nodes running in the cluster. Defaults to 2.
|
|
140
|
+
:param pulumi.Input[_builtins.int] min_refresh_percentage: The minimum amount of instances that should remain available during an instance refresh, expressed as a percentage. Defaults to 50.
|
|
141
|
+
:param pulumi.Input[_builtins.int] min_size: The minimum number of worker nodes running in the cluster. Defaults to 1.
|
|
142
|
+
:param pulumi.Input[_builtins.bool] node_associate_public_ip_address: Whether or not to auto-assign public IP addresses on the EKS worker nodes. If this toggle is set to true, the EKS workers will be auto-assigned public IPs. If false, they will not be auto-assigned public IPs.
|
|
143
|
+
:param pulumi.Input[_builtins.str] node_public_key: Public key material for SSH access to worker nodes. See allowed formats at:
|
|
144
|
+
https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html
|
|
145
|
+
If not provided, no SSH access is enabled on VMs.
|
|
146
|
+
:param pulumi.Input[_builtins.bool] node_root_volume_delete_on_termination: Whether the root block device should be deleted on termination of the instance. Defaults to true.
|
|
147
|
+
:param pulumi.Input[_builtins.bool] node_root_volume_encrypted: Whether to encrypt a cluster node's root volume. Defaults to false.
|
|
148
|
+
:param pulumi.Input[_builtins.int] node_root_volume_iops: The amount of provisioned IOPS. This is only valid with a volumeType of 'io1'.
|
|
149
|
+
:param pulumi.Input[_builtins.int] node_root_volume_size: The size in GiB of a cluster node's root volume. Defaults to 20.
|
|
150
|
+
:param pulumi.Input[_builtins.int] node_root_volume_throughput: Provisioned throughput performance in integer MiB/s for a cluster node's root volume. This is only valid with a volumeType of 'gp3'.
|
|
151
|
+
:param pulumi.Input[_builtins.str] node_root_volume_type: Configured EBS type for a cluster node's root volume. Default is 'gp2'. Supported values are 'standard', 'gp2', 'gp3', 'st1', 'sc1', 'io1'.
|
|
152
|
+
:param pulumi.Input['pulumi_aws.ec2.SecurityGroup'] node_security_group: The security group for the worker node group to communicate with the cluster.
|
|
153
|
+
|
|
154
|
+
This security group requires specific inbound and outbound rules.
|
|
155
|
+
|
|
156
|
+
See for more details:
|
|
157
|
+
https://docs.aws.amazon.com/eks/latest/userguide/sec-group-reqs.html
|
|
158
|
+
|
|
159
|
+
Note: The `nodeSecurityGroup` option and the cluster option`nodeSecurityGroupTags` are mutually exclusive.
|
|
160
|
+
:param pulumi.Input[_builtins.str] node_security_group_id: The ID of the security group for the worker node group to communicate with the cluster.
|
|
161
|
+
|
|
162
|
+
This security group requires specific inbound and outbound rules.
|
|
163
|
+
|
|
164
|
+
See for more details:
|
|
165
|
+
https://docs.aws.amazon.com/eks/latest/userguide/sec-group-reqs.html
|
|
166
|
+
|
|
167
|
+
Note: The `nodeSecurityGroupId` option and the cluster option `nodeSecurityGroupTags` are mutually exclusive.
|
|
168
|
+
:param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] node_subnet_ids: The set of subnets to override and use for the worker node group.
|
|
169
|
+
|
|
170
|
+
Setting this option overrides which subnets to use for the worker node group, regardless if the cluster's `subnetIds` is set, or if `publicSubnetIds` and/or `privateSubnetIds` were set.
|
|
171
|
+
:param pulumi.Input[_builtins.str] node_user_data: Extra code to run on node startup. This code will run after the AWS EKS bootstrapping code and before the node signals its readiness to the managing CloudFormation stack. This code must be a typical user data script: critically it must begin with an interpreter directive (i.e. a `#!`).
|
|
172
|
+
:param pulumi.Input[_builtins.str] node_user_data_override: User specified code to run on node startup. This code is expected to handle the full AWS EKS bootstrapping code and signal node readiness to the managing CloudFormation stack. This code must be a complete and executable user data script in bash (Linux) or powershell (Windows).
|
|
173
|
+
|
|
174
|
+
See for more details: https://docs.aws.amazon.com/eks/latest/userguide/worker.html
|
|
175
|
+
:param pulumi.Input[Sequence[pulumi.Input['NodeadmOptionsArgs']]] nodeadm_extra_options: Extra nodeadm configuration sections to be added to the nodeadm user data. This can be shell scripts, nodeadm NodeConfig or any other user data compatible script. When configuring additional nodeadm NodeConfig sections, they'll be merged with the base settings the provider sets. You can overwrite base settings or provide additional settings this way.
|
|
176
|
+
The base settings the provider sets are:
|
|
177
|
+
- cluster.name
|
|
178
|
+
- cluster.apiServerEndpoint
|
|
179
|
+
- cluster.certificateAuthority
|
|
180
|
+
- cluster.cidr
|
|
181
|
+
|
|
182
|
+
Note: This is only applicable when using AL2023.
|
|
183
|
+
See for more details:
|
|
184
|
+
- https://awslabs.github.io/amazon-eks-ami/nodeadm/
|
|
185
|
+
- https://awslabs.github.io/amazon-eks-ami/nodeadm/doc/api/
|
|
186
|
+
:param pulumi.Input['OperatingSystem'] operating_system: The type of OS to use for the node group. Will be used to determine the right EKS optimized AMI to use based on the instance types and gpu configuration.
|
|
187
|
+
Valid values are `RECOMMENDED`, `AL2`, `AL2023` and `Bottlerocket`.
|
|
188
|
+
|
|
189
|
+
Defaults to the current recommended OS.
|
|
190
|
+
:param pulumi.Input[_builtins.str] spot_price: Bidding price for spot instance. If set, only spot instances will be added as worker node.
|
|
191
|
+
:param pulumi.Input[Mapping[str, pulumi.Input['TaintArgs']]] taints: Custom k8s node taints to be attached to each worker node. Adds the given taints to the `--register-with-taints` kubelet argument
|
|
192
|
+
:param pulumi.Input[_builtins.str] version: Desired Kubernetes master / control plane version. If you do not specify a value, the latest available version is used.
|
|
193
|
+
"""
|
|
194
|
+
pulumi.set(__self__, "cluster", cluster)
|
|
195
|
+
if ami_id is not None:
|
|
196
|
+
pulumi.set(__self__, "ami_id", ami_id)
|
|
197
|
+
if ami_type is not None:
|
|
198
|
+
pulumi.set(__self__, "ami_type", ami_type)
|
|
199
|
+
if auto_scaling_group_tags is not None:
|
|
200
|
+
pulumi.set(__self__, "auto_scaling_group_tags", auto_scaling_group_tags)
|
|
201
|
+
if bootstrap_extra_args is not None:
|
|
202
|
+
pulumi.set(__self__, "bootstrap_extra_args", bootstrap_extra_args)
|
|
203
|
+
if bottlerocket_settings is not None:
|
|
204
|
+
pulumi.set(__self__, "bottlerocket_settings", bottlerocket_settings)
|
|
205
|
+
if cloud_formation_tags is not None:
|
|
206
|
+
pulumi.set(__self__, "cloud_formation_tags", cloud_formation_tags)
|
|
207
|
+
if cluster_ingress_rule is not None:
|
|
208
|
+
pulumi.set(__self__, "cluster_ingress_rule", cluster_ingress_rule)
|
|
209
|
+
if cluster_ingress_rule_id is not None:
|
|
210
|
+
pulumi.set(__self__, "cluster_ingress_rule_id", cluster_ingress_rule_id)
|
|
211
|
+
if desired_capacity is not None:
|
|
212
|
+
pulumi.set(__self__, "desired_capacity", desired_capacity)
|
|
213
|
+
if enable_detailed_monitoring is not None:
|
|
214
|
+
pulumi.set(__self__, "enable_detailed_monitoring", enable_detailed_monitoring)
|
|
215
|
+
if encrypt_root_block_device is not None:
|
|
216
|
+
pulumi.set(__self__, "encrypt_root_block_device", encrypt_root_block_device)
|
|
217
|
+
if extra_node_security_groups is not None:
|
|
218
|
+
pulumi.set(__self__, "extra_node_security_groups", extra_node_security_groups)
|
|
219
|
+
if gpu is not None:
|
|
220
|
+
pulumi.set(__self__, "gpu", gpu)
|
|
221
|
+
if ignore_scaling_changes is not None:
|
|
222
|
+
pulumi.set(__self__, "ignore_scaling_changes", ignore_scaling_changes)
|
|
223
|
+
if instance_profile is not None:
|
|
224
|
+
pulumi.set(__self__, "instance_profile", instance_profile)
|
|
225
|
+
if instance_profile_name is not None:
|
|
226
|
+
pulumi.set(__self__, "instance_profile_name", instance_profile_name)
|
|
227
|
+
if instance_type is not None:
|
|
228
|
+
pulumi.set(__self__, "instance_type", instance_type)
|
|
229
|
+
if key_name is not None:
|
|
230
|
+
pulumi.set(__self__, "key_name", key_name)
|
|
231
|
+
if kubelet_extra_args is not None:
|
|
232
|
+
pulumi.set(__self__, "kubelet_extra_args", kubelet_extra_args)
|
|
233
|
+
if labels is not None:
|
|
234
|
+
pulumi.set(__self__, "labels", labels)
|
|
235
|
+
if launch_template_tag_specifications is not None:
|
|
236
|
+
pulumi.set(__self__, "launch_template_tag_specifications", launch_template_tag_specifications)
|
|
237
|
+
if max_size is not None:
|
|
238
|
+
pulumi.set(__self__, "max_size", max_size)
|
|
239
|
+
if min_refresh_percentage is not None:
|
|
240
|
+
pulumi.set(__self__, "min_refresh_percentage", min_refresh_percentage)
|
|
241
|
+
if min_size is not None:
|
|
242
|
+
pulumi.set(__self__, "min_size", min_size)
|
|
243
|
+
if node_associate_public_ip_address is not None:
|
|
244
|
+
pulumi.set(__self__, "node_associate_public_ip_address", node_associate_public_ip_address)
|
|
245
|
+
if node_public_key is not None:
|
|
246
|
+
pulumi.set(__self__, "node_public_key", node_public_key)
|
|
247
|
+
if node_root_volume_delete_on_termination is not None:
|
|
248
|
+
pulumi.set(__self__, "node_root_volume_delete_on_termination", node_root_volume_delete_on_termination)
|
|
249
|
+
if node_root_volume_encrypted is not None:
|
|
250
|
+
pulumi.set(__self__, "node_root_volume_encrypted", node_root_volume_encrypted)
|
|
251
|
+
if node_root_volume_iops is not None:
|
|
252
|
+
pulumi.set(__self__, "node_root_volume_iops", node_root_volume_iops)
|
|
253
|
+
if node_root_volume_size is not None:
|
|
254
|
+
pulumi.set(__self__, "node_root_volume_size", node_root_volume_size)
|
|
255
|
+
if node_root_volume_throughput is not None:
|
|
256
|
+
pulumi.set(__self__, "node_root_volume_throughput", node_root_volume_throughput)
|
|
257
|
+
if node_root_volume_type is not None:
|
|
258
|
+
pulumi.set(__self__, "node_root_volume_type", node_root_volume_type)
|
|
259
|
+
if node_security_group is not None:
|
|
260
|
+
pulumi.set(__self__, "node_security_group", node_security_group)
|
|
261
|
+
if node_security_group_id is not None:
|
|
262
|
+
pulumi.set(__self__, "node_security_group_id", node_security_group_id)
|
|
263
|
+
if node_subnet_ids is not None:
|
|
264
|
+
pulumi.set(__self__, "node_subnet_ids", node_subnet_ids)
|
|
265
|
+
if node_user_data is not None:
|
|
266
|
+
pulumi.set(__self__, "node_user_data", node_user_data)
|
|
267
|
+
if node_user_data_override is not None:
|
|
268
|
+
pulumi.set(__self__, "node_user_data_override", node_user_data_override)
|
|
269
|
+
if nodeadm_extra_options is not None:
|
|
270
|
+
pulumi.set(__self__, "nodeadm_extra_options", nodeadm_extra_options)
|
|
271
|
+
if operating_system is not None:
|
|
272
|
+
pulumi.set(__self__, "operating_system", operating_system)
|
|
273
|
+
if spot_price is not None:
|
|
274
|
+
pulumi.set(__self__, "spot_price", spot_price)
|
|
275
|
+
if taints is not None:
|
|
276
|
+
pulumi.set(__self__, "taints", taints)
|
|
277
|
+
if version is not None:
|
|
278
|
+
pulumi.set(__self__, "version", version)
|
|
279
|
+
|
|
280
|
+
@_builtins.property
|
|
281
|
+
@pulumi.getter
|
|
282
|
+
def cluster(self) -> pulumi.Input[Union['Cluster', 'CoreDataArgs']]:
|
|
283
|
+
"""
|
|
284
|
+
The target EKS cluster.
|
|
285
|
+
"""
|
|
286
|
+
return pulumi.get(self, "cluster")
|
|
287
|
+
|
|
288
|
+
@cluster.setter
|
|
289
|
+
def cluster(self, value: pulumi.Input[Union['Cluster', 'CoreDataArgs']]):
|
|
290
|
+
pulumi.set(self, "cluster", value)
|
|
291
|
+
|
|
292
|
+
@_builtins.property
|
|
293
|
+
@pulumi.getter(name="amiId")
|
|
294
|
+
def ami_id(self) -> Optional[pulumi.Input[_builtins.str]]:
|
|
295
|
+
"""
|
|
296
|
+
The AMI ID to use for the worker nodes.
|
|
297
|
+
|
|
298
|
+
Defaults to the latest recommended EKS Optimized Linux AMI from the AWS Systems Manager Parameter Store.
|
|
299
|
+
|
|
300
|
+
Note: `amiId` and `gpu` are mutually exclusive.
|
|
301
|
+
|
|
302
|
+
See for more details:
|
|
303
|
+
- https://docs.aws.amazon.com/eks/latest/userguide/eks-optimized-ami.html.
|
|
304
|
+
"""
|
|
305
|
+
return pulumi.get(self, "ami_id")
|
|
306
|
+
|
|
307
|
+
@ami_id.setter
|
|
308
|
+
def ami_id(self, value: Optional[pulumi.Input[_builtins.str]]):
|
|
309
|
+
pulumi.set(self, "ami_id", value)
|
|
310
|
+
|
|
311
|
+
@_builtins.property
|
|
312
|
+
@pulumi.getter(name="amiType")
|
|
313
|
+
def ami_type(self) -> Optional[pulumi.Input[_builtins.str]]:
|
|
314
|
+
"""
|
|
315
|
+
The AMI Type to use for the worker nodes.
|
|
316
|
+
|
|
317
|
+
Only applicable when setting an AMI ID that is of type `arm64`.
|
|
318
|
+
|
|
319
|
+
Note: `amiType` and `gpu` are mutually exclusive.
|
|
320
|
+
"""
|
|
321
|
+
return pulumi.get(self, "ami_type")
|
|
322
|
+
|
|
323
|
+
@ami_type.setter
|
|
324
|
+
def ami_type(self, value: Optional[pulumi.Input[_builtins.str]]):
|
|
325
|
+
pulumi.set(self, "ami_type", value)
|
|
326
|
+
|
|
327
|
+
@_builtins.property
|
|
328
|
+
@pulumi.getter(name="autoScalingGroupTags")
|
|
329
|
+
def auto_scaling_group_tags(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
|
|
330
|
+
"""
|
|
331
|
+
The tags to apply to the NodeGroup's AutoScalingGroup in the CloudFormation Stack.
|
|
332
|
+
|
|
333
|
+
Per AWS, all stack-level tags, including automatically created tags, and the `cloudFormationTags` option are propagated to resources that AWS CloudFormation supports, including the AutoScalingGroup. See https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html
|
|
334
|
+
|
|
335
|
+
Note: Given the inheritance of auto-generated CF tags and `cloudFormationTags`, you should either supply the tag in `autoScalingGroupTags` or `cloudFormationTags`, but not both.
|
|
336
|
+
"""
|
|
337
|
+
return pulumi.get(self, "auto_scaling_group_tags")
|
|
338
|
+
|
|
339
|
+
@auto_scaling_group_tags.setter
|
|
340
|
+
def auto_scaling_group_tags(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
|
|
341
|
+
pulumi.set(self, "auto_scaling_group_tags", value)
|
|
342
|
+
|
|
343
|
+
@_builtins.property
|
|
344
|
+
@pulumi.getter(name="bootstrapExtraArgs")
|
|
345
|
+
def bootstrap_extra_args(self) -> Optional[pulumi.Input[_builtins.str]]:
|
|
346
|
+
"""
|
|
347
|
+
Additional args to pass directly to `/etc/eks/bootstrap.sh`. For details on available options, see: https://github.com/awslabs/amazon-eks-ami/blob/master/files/bootstrap.sh. Note that the `--apiserver-endpoint`, `--b64-cluster-ca` and `--kubelet-extra-args` flags are included automatically based on other configuration parameters.
|
|
348
|
+
"""
|
|
349
|
+
return pulumi.get(self, "bootstrap_extra_args")
|
|
350
|
+
|
|
351
|
+
@bootstrap_extra_args.setter
|
|
352
|
+
def bootstrap_extra_args(self, value: Optional[pulumi.Input[_builtins.str]]):
|
|
353
|
+
pulumi.set(self, "bootstrap_extra_args", value)
|
|
354
|
+
|
|
355
|
+
@_builtins.property
|
|
356
|
+
@pulumi.getter(name="bottlerocketSettings")
|
|
357
|
+
def bottlerocket_settings(self) -> Optional[pulumi.Input[Mapping[str, Any]]]:
|
|
358
|
+
"""
|
|
359
|
+
The configuration settings for Bottlerocket OS.
|
|
360
|
+
The settings will get merged with the base settings the provider uses to configure Bottlerocket.
|
|
361
|
+
|
|
362
|
+
This includes:
|
|
363
|
+
- settings.kubernetes.api-server
|
|
364
|
+
- settings.kubernetes.cluster-certificate
|
|
365
|
+
- settings.kubernetes.cluster-name
|
|
366
|
+
- settings.kubernetes.cluster-dns-ip
|
|
367
|
+
|
|
368
|
+
For an overview of the available settings, see https://bottlerocket.dev/en/os/1.20.x/api/settings/.
|
|
369
|
+
"""
|
|
370
|
+
return pulumi.get(self, "bottlerocket_settings")
|
|
371
|
+
|
|
372
|
+
@bottlerocket_settings.setter
|
|
373
|
+
def bottlerocket_settings(self, value: Optional[pulumi.Input[Mapping[str, Any]]]):
|
|
374
|
+
pulumi.set(self, "bottlerocket_settings", value)
|
|
375
|
+
|
|
376
|
+
@_builtins.property
|
|
377
|
+
@pulumi.getter(name="cloudFormationTags")
|
|
378
|
+
def cloud_formation_tags(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
|
|
379
|
+
"""
|
|
380
|
+
The tags to apply to the CloudFormation Stack of the Worker NodeGroup.
|
|
381
|
+
|
|
382
|
+
Note: Given the inheritance of auto-generated CF tags and `cloudFormationTags`, you should either supply the tag in `autoScalingGroupTags` or `cloudFormationTags`, but not both.
|
|
383
|
+
"""
|
|
384
|
+
return pulumi.get(self, "cloud_formation_tags")
|
|
385
|
+
|
|
386
|
+
@cloud_formation_tags.setter
|
|
387
|
+
def cloud_formation_tags(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
|
|
388
|
+
pulumi.set(self, "cloud_formation_tags", value)
|
|
389
|
+
|
|
390
|
+
@_builtins.property
|
|
391
|
+
@pulumi.getter(name="clusterIngressRule")
|
|
392
|
+
def cluster_ingress_rule(self) -> Optional[pulumi.Input['pulumi_aws.ec2.SecurityGroupRule']]:
|
|
393
|
+
"""
|
|
394
|
+
The ingress rule that gives node group access.
|
|
395
|
+
"""
|
|
396
|
+
return pulumi.get(self, "cluster_ingress_rule")
|
|
397
|
+
|
|
398
|
+
@cluster_ingress_rule.setter
|
|
399
|
+
def cluster_ingress_rule(self, value: Optional[pulumi.Input['pulumi_aws.ec2.SecurityGroupRule']]):
|
|
400
|
+
pulumi.set(self, "cluster_ingress_rule", value)
|
|
401
|
+
|
|
402
|
+
@_builtins.property
|
|
403
|
+
@pulumi.getter(name="clusterIngressRuleId")
|
|
404
|
+
def cluster_ingress_rule_id(self) -> Optional[pulumi.Input[_builtins.str]]:
|
|
405
|
+
"""
|
|
406
|
+
The ID of the ingress rule that gives node group access.
|
|
407
|
+
"""
|
|
408
|
+
return pulumi.get(self, "cluster_ingress_rule_id")
|
|
409
|
+
|
|
410
|
+
@cluster_ingress_rule_id.setter
|
|
411
|
+
def cluster_ingress_rule_id(self, value: Optional[pulumi.Input[_builtins.str]]):
|
|
412
|
+
pulumi.set(self, "cluster_ingress_rule_id", value)
|
|
413
|
+
|
|
414
|
+
@_builtins.property
|
|
415
|
+
@pulumi.getter(name="desiredCapacity")
|
|
416
|
+
def desired_capacity(self) -> Optional[pulumi.Input[_builtins.int]]:
|
|
417
|
+
"""
|
|
418
|
+
The number of worker nodes that should be running in the cluster. Defaults to 2.
|
|
419
|
+
"""
|
|
420
|
+
return pulumi.get(self, "desired_capacity")
|
|
421
|
+
|
|
422
|
+
@desired_capacity.setter
|
|
423
|
+
def desired_capacity(self, value: Optional[pulumi.Input[_builtins.int]]):
|
|
424
|
+
pulumi.set(self, "desired_capacity", value)
|
|
425
|
+
|
|
426
|
+
@_builtins.property
|
|
427
|
+
@pulumi.getter(name="enableDetailedMonitoring")
|
|
428
|
+
def enable_detailed_monitoring(self) -> Optional[pulumi.Input[_builtins.bool]]:
|
|
429
|
+
"""
|
|
430
|
+
Enables/disables detailed monitoring of the EC2 instances.
|
|
431
|
+
|
|
432
|
+
With detailed monitoring, all metrics, including status check metrics, are available in 1-minute intervals.
|
|
433
|
+
When enabled, you can also get aggregated data across groups of similar instances.
|
|
434
|
+
|
|
435
|
+
Note: You are charged per metric that is sent to CloudWatch. You are not charged for data storage.
|
|
436
|
+
For more information, see "Paid tier" and "Example 1 - EC2 Detailed Monitoring" here https://aws.amazon.com/cloudwatch/pricing/.
|
|
437
|
+
"""
|
|
438
|
+
return pulumi.get(self, "enable_detailed_monitoring")
|
|
439
|
+
|
|
440
|
+
@enable_detailed_monitoring.setter
|
|
441
|
+
def enable_detailed_monitoring(self, value: Optional[pulumi.Input[_builtins.bool]]):
|
|
442
|
+
pulumi.set(self, "enable_detailed_monitoring", value)
|
|
443
|
+
|
|
444
|
+
@_builtins.property
|
|
445
|
+
@pulumi.getter(name="encryptRootBlockDevice")
|
|
446
|
+
def encrypt_root_block_device(self) -> Optional[pulumi.Input[_builtins.bool]]:
|
|
447
|
+
"""
|
|
448
|
+
Encrypt the root block device of the nodes in the node group.
|
|
449
|
+
"""
|
|
450
|
+
return pulumi.get(self, "encrypt_root_block_device")
|
|
451
|
+
|
|
452
|
+
@encrypt_root_block_device.setter
|
|
453
|
+
def encrypt_root_block_device(self, value: Optional[pulumi.Input[_builtins.bool]]):
|
|
454
|
+
pulumi.set(self, "encrypt_root_block_device", value)
|
|
455
|
+
|
|
456
|
+
@_builtins.property
|
|
457
|
+
@pulumi.getter(name="extraNodeSecurityGroups")
|
|
458
|
+
def extra_node_security_groups(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['pulumi_aws.ec2.SecurityGroup']]]]:
|
|
459
|
+
"""
|
|
460
|
+
Extra security groups to attach on all nodes in this worker node group.
|
|
461
|
+
|
|
462
|
+
This additional set of security groups captures any user application rules that will be needed for the nodes.
|
|
463
|
+
"""
|
|
464
|
+
return pulumi.get(self, "extra_node_security_groups")
|
|
465
|
+
|
|
466
|
+
@extra_node_security_groups.setter
|
|
467
|
+
def extra_node_security_groups(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['pulumi_aws.ec2.SecurityGroup']]]]):
|
|
468
|
+
pulumi.set(self, "extra_node_security_groups", value)
|
|
469
|
+
|
|
470
|
+
@_builtins.property
|
|
471
|
+
@pulumi.getter
|
|
472
|
+
def gpu(self) -> Optional[pulumi.Input[_builtins.bool]]:
|
|
473
|
+
"""
|
|
474
|
+
Use the latest recommended EKS Optimized Linux AMI with GPU support for the worker nodes from the AWS Systems Manager Parameter Store.
|
|
475
|
+
|
|
476
|
+
Defaults to false.
|
|
477
|
+
|
|
478
|
+
Note: `gpu` and `amiId` are mutually exclusive.
|
|
479
|
+
|
|
480
|
+
See for more details:
|
|
481
|
+
- https://docs.aws.amazon.com/eks/latest/userguide/eks-optimized-ami.html
|
|
482
|
+
- https://docs.aws.amazon.com/eks/latest/userguide/retrieve-ami-id.html
|
|
483
|
+
"""
|
|
484
|
+
return pulumi.get(self, "gpu")
|
|
485
|
+
|
|
486
|
+
@gpu.setter
|
|
487
|
+
def gpu(self, value: Optional[pulumi.Input[_builtins.bool]]):
|
|
488
|
+
pulumi.set(self, "gpu", value)
|
|
489
|
+
|
|
490
|
+
@_builtins.property
|
|
491
|
+
@pulumi.getter(name="ignoreScalingChanges")
|
|
492
|
+
def ignore_scaling_changes(self) -> Optional[_builtins.bool]:
|
|
493
|
+
"""
|
|
494
|
+
Whether to ignore changes to the desired size of the Auto Scaling Group. This is useful when using Cluster Autoscaler.
|
|
495
|
+
|
|
496
|
+
See [EKS best practices](https://aws.github.io/aws-eks-best-practices/cluster-autoscaling/) for more details.
|
|
497
|
+
"""
|
|
498
|
+
return pulumi.get(self, "ignore_scaling_changes")
|
|
499
|
+
|
|
500
|
+
@ignore_scaling_changes.setter
|
|
501
|
+
def ignore_scaling_changes(self, value: Optional[_builtins.bool]):
|
|
502
|
+
pulumi.set(self, "ignore_scaling_changes", value)
|
|
503
|
+
|
|
504
|
+
@_builtins.property
|
|
505
|
+
@pulumi.getter(name="instanceProfile")
|
|
506
|
+
def instance_profile(self) -> Optional['pulumi_aws.iam.InstanceProfile']:
|
|
507
|
+
"""
|
|
508
|
+
The IAM InstanceProfile to use on the NodeGroup. Properties instanceProfile and instanceProfileName are mutually exclusive.
|
|
509
|
+
"""
|
|
510
|
+
return pulumi.get(self, "instance_profile")
|
|
511
|
+
|
|
512
|
+
@instance_profile.setter
|
|
513
|
+
def instance_profile(self, value: Optional['pulumi_aws.iam.InstanceProfile']):
|
|
514
|
+
pulumi.set(self, "instance_profile", value)
|
|
515
|
+
|
|
516
|
+
@_builtins.property
|
|
517
|
+
@pulumi.getter(name="instanceProfileName")
|
|
518
|
+
def instance_profile_name(self) -> Optional[pulumi.Input[_builtins.str]]:
|
|
519
|
+
"""
|
|
520
|
+
The name of the IAM InstanceProfile to use on the NodeGroup. Properties instanceProfile and instanceProfileName are mutually exclusive.
|
|
521
|
+
"""
|
|
522
|
+
return pulumi.get(self, "instance_profile_name")
|
|
523
|
+
|
|
524
|
+
@instance_profile_name.setter
|
|
525
|
+
def instance_profile_name(self, value: Optional[pulumi.Input[_builtins.str]]):
|
|
526
|
+
pulumi.set(self, "instance_profile_name", value)
|
|
527
|
+
|
|
528
|
+
@_builtins.property
|
|
529
|
+
@pulumi.getter(name="instanceType")
|
|
530
|
+
def instance_type(self) -> Optional[pulumi.Input[_builtins.str]]:
|
|
531
|
+
"""
|
|
532
|
+
The instance type to use for the cluster's nodes. Defaults to "t3.medium".
|
|
533
|
+
"""
|
|
534
|
+
return pulumi.get(self, "instance_type")
|
|
535
|
+
|
|
536
|
+
@instance_type.setter
|
|
537
|
+
def instance_type(self, value: Optional[pulumi.Input[_builtins.str]]):
|
|
538
|
+
pulumi.set(self, "instance_type", value)
|
|
539
|
+
|
|
540
|
+
@_builtins.property
|
|
541
|
+
@pulumi.getter(name="keyName")
|
|
542
|
+
def key_name(self) -> Optional[pulumi.Input[_builtins.str]]:
|
|
543
|
+
"""
|
|
544
|
+
Name of the key pair to use for SSH access to worker nodes.
|
|
545
|
+
"""
|
|
546
|
+
return pulumi.get(self, "key_name")
|
|
547
|
+
|
|
548
|
+
@key_name.setter
|
|
549
|
+
def key_name(self, value: Optional[pulumi.Input[_builtins.str]]):
|
|
550
|
+
pulumi.set(self, "key_name", value)
|
|
551
|
+
|
|
552
|
+
@_builtins.property
|
|
553
|
+
@pulumi.getter(name="kubeletExtraArgs")
|
|
554
|
+
def kubelet_extra_args(self) -> Optional[pulumi.Input[_builtins.str]]:
|
|
555
|
+
"""
|
|
556
|
+
Extra args to pass to the Kubelet. Corresponds to the options passed in the `--kubeletExtraArgs` flag to `/etc/eks/bootstrap.sh`. For example, '--port=10251 --address=0.0.0.0'. Note that the `labels` and `taints` properties will be applied to this list (using `--node-labels` and `--register-with-taints` respectively) after to the explicit `kubeletExtraArgs`.
|
|
557
|
+
"""
|
|
558
|
+
return pulumi.get(self, "kubelet_extra_args")
|
|
559
|
+
|
|
560
|
+
@kubelet_extra_args.setter
|
|
561
|
+
def kubelet_extra_args(self, value: Optional[pulumi.Input[_builtins.str]]):
|
|
562
|
+
pulumi.set(self, "kubelet_extra_args", value)
|
|
563
|
+
|
|
564
|
+
@_builtins.property
|
|
565
|
+
@pulumi.getter
|
|
566
|
+
def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
|
|
567
|
+
"""
|
|
568
|
+
Custom k8s node labels to be attached to each worker node. Adds the given key/value pairs to the `--node-labels` kubelet argument.
|
|
569
|
+
"""
|
|
570
|
+
return pulumi.get(self, "labels")
|
|
571
|
+
|
|
572
|
+
@labels.setter
|
|
573
|
+
def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
|
|
574
|
+
pulumi.set(self, "labels", value)
|
|
575
|
+
|
|
576
|
+
@_builtins.property
|
|
577
|
+
@pulumi.getter(name="launchTemplateTagSpecifications")
|
|
578
|
+
def launch_template_tag_specifications(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['pulumi_aws.ec2.LaunchTemplateTagSpecificationArgs']]]]:
|
|
579
|
+
"""
|
|
580
|
+
The tag specifications to apply to the launch template.
|
|
581
|
+
"""
|
|
582
|
+
return pulumi.get(self, "launch_template_tag_specifications")
|
|
583
|
+
|
|
584
|
+
@launch_template_tag_specifications.setter
|
|
585
|
+
def launch_template_tag_specifications(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['pulumi_aws.ec2.LaunchTemplateTagSpecificationArgs']]]]):
|
|
586
|
+
pulumi.set(self, "launch_template_tag_specifications", value)
|
|
587
|
+
|
|
588
|
+
@_builtins.property
|
|
589
|
+
@pulumi.getter(name="maxSize")
|
|
590
|
+
def max_size(self) -> Optional[pulumi.Input[_builtins.int]]:
|
|
591
|
+
"""
|
|
592
|
+
The maximum number of worker nodes running in the cluster. Defaults to 2.
|
|
593
|
+
"""
|
|
594
|
+
return pulumi.get(self, "max_size")
|
|
595
|
+
|
|
596
|
+
@max_size.setter
|
|
597
|
+
def max_size(self, value: Optional[pulumi.Input[_builtins.int]]):
|
|
598
|
+
pulumi.set(self, "max_size", value)
|
|
599
|
+
|
|
600
|
+
@_builtins.property
|
|
601
|
+
@pulumi.getter(name="minRefreshPercentage")
|
|
602
|
+
def min_refresh_percentage(self) -> Optional[pulumi.Input[_builtins.int]]:
|
|
603
|
+
"""
|
|
604
|
+
The minimum amount of instances that should remain available during an instance refresh, expressed as a percentage. Defaults to 50.
|
|
605
|
+
"""
|
|
606
|
+
return pulumi.get(self, "min_refresh_percentage")
|
|
607
|
+
|
|
608
|
+
@min_refresh_percentage.setter
|
|
609
|
+
def min_refresh_percentage(self, value: Optional[pulumi.Input[_builtins.int]]):
|
|
610
|
+
pulumi.set(self, "min_refresh_percentage", value)
|
|
611
|
+
|
|
612
|
+
@_builtins.property
|
|
613
|
+
@pulumi.getter(name="minSize")
|
|
614
|
+
def min_size(self) -> Optional[pulumi.Input[_builtins.int]]:
|
|
615
|
+
"""
|
|
616
|
+
The minimum number of worker nodes running in the cluster. Defaults to 1.
|
|
617
|
+
"""
|
|
618
|
+
return pulumi.get(self, "min_size")
|
|
619
|
+
|
|
620
|
+
@min_size.setter
|
|
621
|
+
def min_size(self, value: Optional[pulumi.Input[_builtins.int]]):
|
|
622
|
+
pulumi.set(self, "min_size", value)
|
|
623
|
+
|
|
624
|
+
@_builtins.property
|
|
625
|
+
@pulumi.getter(name="nodeAssociatePublicIpAddress")
|
|
626
|
+
def node_associate_public_ip_address(self) -> Optional[pulumi.Input[_builtins.bool]]:
|
|
627
|
+
"""
|
|
628
|
+
Whether or not to auto-assign public IP addresses on the EKS worker nodes. If this toggle is set to true, the EKS workers will be auto-assigned public IPs. If false, they will not be auto-assigned public IPs.
|
|
629
|
+
"""
|
|
630
|
+
return pulumi.get(self, "node_associate_public_ip_address")
|
|
631
|
+
|
|
632
|
+
@node_associate_public_ip_address.setter
|
|
633
|
+
def node_associate_public_ip_address(self, value: Optional[pulumi.Input[_builtins.bool]]):
|
|
634
|
+
pulumi.set(self, "node_associate_public_ip_address", value)
|
|
635
|
+
|
|
636
|
+
@_builtins.property
|
|
637
|
+
@pulumi.getter(name="nodePublicKey")
|
|
638
|
+
def node_public_key(self) -> Optional[pulumi.Input[_builtins.str]]:
|
|
639
|
+
"""
|
|
640
|
+
Public key material for SSH access to worker nodes. See allowed formats at:
|
|
641
|
+
https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html
|
|
642
|
+
If not provided, no SSH access is enabled on VMs.
|
|
643
|
+
"""
|
|
644
|
+
return pulumi.get(self, "node_public_key")
|
|
645
|
+
|
|
646
|
+
@node_public_key.setter
|
|
647
|
+
def node_public_key(self, value: Optional[pulumi.Input[_builtins.str]]):
|
|
648
|
+
pulumi.set(self, "node_public_key", value)
|
|
649
|
+
|
|
650
|
+
@_builtins.property
|
|
651
|
+
@pulumi.getter(name="nodeRootVolumeDeleteOnTermination")
|
|
652
|
+
def node_root_volume_delete_on_termination(self) -> Optional[pulumi.Input[_builtins.bool]]:
|
|
653
|
+
"""
|
|
654
|
+
Whether the root block device should be deleted on termination of the instance. Defaults to true.
|
|
655
|
+
"""
|
|
656
|
+
return pulumi.get(self, "node_root_volume_delete_on_termination")
|
|
657
|
+
|
|
658
|
+
@node_root_volume_delete_on_termination.setter
|
|
659
|
+
def node_root_volume_delete_on_termination(self, value: Optional[pulumi.Input[_builtins.bool]]):
|
|
660
|
+
pulumi.set(self, "node_root_volume_delete_on_termination", value)
|
|
661
|
+
|
|
662
|
+
@_builtins.property
|
|
663
|
+
@pulumi.getter(name="nodeRootVolumeEncrypted")
|
|
664
|
+
def node_root_volume_encrypted(self) -> Optional[pulumi.Input[_builtins.bool]]:
|
|
665
|
+
"""
|
|
666
|
+
Whether to encrypt a cluster node's root volume. Defaults to false.
|
|
667
|
+
"""
|
|
668
|
+
return pulumi.get(self, "node_root_volume_encrypted")
|
|
669
|
+
|
|
670
|
+
@node_root_volume_encrypted.setter
|
|
671
|
+
def node_root_volume_encrypted(self, value: Optional[pulumi.Input[_builtins.bool]]):
|
|
672
|
+
pulumi.set(self, "node_root_volume_encrypted", value)
|
|
673
|
+
|
|
674
|
+
@_builtins.property
|
|
675
|
+
@pulumi.getter(name="nodeRootVolumeIops")
|
|
676
|
+
def node_root_volume_iops(self) -> Optional[pulumi.Input[_builtins.int]]:
|
|
677
|
+
"""
|
|
678
|
+
The amount of provisioned IOPS. This is only valid with a volumeType of 'io1'.
|
|
679
|
+
"""
|
|
680
|
+
return pulumi.get(self, "node_root_volume_iops")
|
|
681
|
+
|
|
682
|
+
@node_root_volume_iops.setter
|
|
683
|
+
def node_root_volume_iops(self, value: Optional[pulumi.Input[_builtins.int]]):
|
|
684
|
+
pulumi.set(self, "node_root_volume_iops", value)
|
|
685
|
+
|
|
686
|
+
@_builtins.property
|
|
687
|
+
@pulumi.getter(name="nodeRootVolumeSize")
|
|
688
|
+
def node_root_volume_size(self) -> Optional[pulumi.Input[_builtins.int]]:
|
|
689
|
+
"""
|
|
690
|
+
The size in GiB of a cluster node's root volume. Defaults to 20.
|
|
691
|
+
"""
|
|
692
|
+
return pulumi.get(self, "node_root_volume_size")
|
|
693
|
+
|
|
694
|
+
@node_root_volume_size.setter
|
|
695
|
+
def node_root_volume_size(self, value: Optional[pulumi.Input[_builtins.int]]):
|
|
696
|
+
pulumi.set(self, "node_root_volume_size", value)
|
|
697
|
+
|
|
698
|
+
@_builtins.property
|
|
699
|
+
@pulumi.getter(name="nodeRootVolumeThroughput")
|
|
700
|
+
def node_root_volume_throughput(self) -> Optional[pulumi.Input[_builtins.int]]:
|
|
701
|
+
"""
|
|
702
|
+
Provisioned throughput performance in integer MiB/s for a cluster node's root volume. This is only valid with a volumeType of 'gp3'.
|
|
703
|
+
"""
|
|
704
|
+
return pulumi.get(self, "node_root_volume_throughput")
|
|
705
|
+
|
|
706
|
+
@node_root_volume_throughput.setter
|
|
707
|
+
def node_root_volume_throughput(self, value: Optional[pulumi.Input[_builtins.int]]):
|
|
708
|
+
pulumi.set(self, "node_root_volume_throughput", value)
|
|
709
|
+
|
|
710
|
+
@_builtins.property
|
|
711
|
+
@pulumi.getter(name="nodeRootVolumeType")
|
|
712
|
+
def node_root_volume_type(self) -> Optional[pulumi.Input[_builtins.str]]:
|
|
713
|
+
"""
|
|
714
|
+
Configured EBS type for a cluster node's root volume. Default is 'gp2'. Supported values are 'standard', 'gp2', 'gp3', 'st1', 'sc1', 'io1'.
|
|
715
|
+
"""
|
|
716
|
+
return pulumi.get(self, "node_root_volume_type")
|
|
717
|
+
|
|
718
|
+
@node_root_volume_type.setter
|
|
719
|
+
def node_root_volume_type(self, value: Optional[pulumi.Input[_builtins.str]]):
|
|
720
|
+
pulumi.set(self, "node_root_volume_type", value)
|
|
721
|
+
|
|
722
|
+
@_builtins.property
|
|
723
|
+
@pulumi.getter(name="nodeSecurityGroup")
|
|
724
|
+
def node_security_group(self) -> Optional[pulumi.Input['pulumi_aws.ec2.SecurityGroup']]:
|
|
725
|
+
"""
|
|
726
|
+
The security group for the worker node group to communicate with the cluster.
|
|
727
|
+
|
|
728
|
+
This security group requires specific inbound and outbound rules.
|
|
729
|
+
|
|
730
|
+
See for more details:
|
|
731
|
+
https://docs.aws.amazon.com/eks/latest/userguide/sec-group-reqs.html
|
|
732
|
+
|
|
733
|
+
Note: The `nodeSecurityGroup` option and the cluster option`nodeSecurityGroupTags` are mutually exclusive.
|
|
734
|
+
"""
|
|
735
|
+
return pulumi.get(self, "node_security_group")
|
|
736
|
+
|
|
737
|
+
@node_security_group.setter
|
|
738
|
+
def node_security_group(self, value: Optional[pulumi.Input['pulumi_aws.ec2.SecurityGroup']]):
|
|
739
|
+
pulumi.set(self, "node_security_group", value)
|
|
740
|
+
|
|
741
|
+
@_builtins.property
|
|
742
|
+
@pulumi.getter(name="nodeSecurityGroupId")
|
|
743
|
+
def node_security_group_id(self) -> Optional[pulumi.Input[_builtins.str]]:
|
|
744
|
+
"""
|
|
745
|
+
The ID of the security group for the worker node group to communicate with the cluster.
|
|
746
|
+
|
|
747
|
+
This security group requires specific inbound and outbound rules.
|
|
748
|
+
|
|
749
|
+
See for more details:
|
|
750
|
+
https://docs.aws.amazon.com/eks/latest/userguide/sec-group-reqs.html
|
|
751
|
+
|
|
752
|
+
Note: The `nodeSecurityGroupId` option and the cluster option `nodeSecurityGroupTags` are mutually exclusive.
|
|
753
|
+
"""
|
|
754
|
+
return pulumi.get(self, "node_security_group_id")
|
|
755
|
+
|
|
756
|
+
@node_security_group_id.setter
|
|
757
|
+
def node_security_group_id(self, value: Optional[pulumi.Input[_builtins.str]]):
|
|
758
|
+
pulumi.set(self, "node_security_group_id", value)
|
|
759
|
+
|
|
760
|
+
@_builtins.property
|
|
761
|
+
@pulumi.getter(name="nodeSubnetIds")
|
|
762
|
+
def node_subnet_ids(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
|
|
763
|
+
"""
|
|
764
|
+
The set of subnets to override and use for the worker node group.
|
|
765
|
+
|
|
766
|
+
Setting this option overrides which subnets to use for the worker node group, regardless if the cluster's `subnetIds` is set, or if `publicSubnetIds` and/or `privateSubnetIds` were set.
|
|
767
|
+
"""
|
|
768
|
+
return pulumi.get(self, "node_subnet_ids")
|
|
769
|
+
|
|
770
|
+
@node_subnet_ids.setter
|
|
771
|
+
def node_subnet_ids(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
|
|
772
|
+
pulumi.set(self, "node_subnet_ids", value)
|
|
773
|
+
|
|
774
|
+
@_builtins.property
|
|
775
|
+
@pulumi.getter(name="nodeUserData")
|
|
776
|
+
def node_user_data(self) -> Optional[pulumi.Input[_builtins.str]]:
|
|
777
|
+
"""
|
|
778
|
+
Extra code to run on node startup. This code will run after the AWS EKS bootstrapping code and before the node signals its readiness to the managing CloudFormation stack. This code must be a typical user data script: critically it must begin with an interpreter directive (i.e. a `#!`).
|
|
779
|
+
"""
|
|
780
|
+
return pulumi.get(self, "node_user_data")
|
|
781
|
+
|
|
782
|
+
@node_user_data.setter
|
|
783
|
+
def node_user_data(self, value: Optional[pulumi.Input[_builtins.str]]):
|
|
784
|
+
pulumi.set(self, "node_user_data", value)
|
|
785
|
+
|
|
786
|
+
@_builtins.property
|
|
787
|
+
@pulumi.getter(name="nodeUserDataOverride")
|
|
788
|
+
def node_user_data_override(self) -> Optional[pulumi.Input[_builtins.str]]:
|
|
789
|
+
"""
|
|
790
|
+
User specified code to run on node startup. This code is expected to handle the full AWS EKS bootstrapping code and signal node readiness to the managing CloudFormation stack. This code must be a complete and executable user data script in bash (Linux) or powershell (Windows).
|
|
791
|
+
|
|
792
|
+
See for more details: https://docs.aws.amazon.com/eks/latest/userguide/worker.html
|
|
793
|
+
"""
|
|
794
|
+
return pulumi.get(self, "node_user_data_override")
|
|
795
|
+
|
|
796
|
+
@node_user_data_override.setter
|
|
797
|
+
def node_user_data_override(self, value: Optional[pulumi.Input[_builtins.str]]):
|
|
798
|
+
pulumi.set(self, "node_user_data_override", value)
|
|
799
|
+
|
|
800
|
+
@_builtins.property
|
|
801
|
+
@pulumi.getter(name="nodeadmExtraOptions")
|
|
802
|
+
def nodeadm_extra_options(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['NodeadmOptionsArgs']]]]:
|
|
803
|
+
"""
|
|
804
|
+
Extra nodeadm configuration sections to be added to the nodeadm user data. This can be shell scripts, nodeadm NodeConfig or any other user data compatible script. When configuring additional nodeadm NodeConfig sections, they'll be merged with the base settings the provider sets. You can overwrite base settings or provide additional settings this way.
|
|
805
|
+
The base settings the provider sets are:
|
|
806
|
+
- cluster.name
|
|
807
|
+
- cluster.apiServerEndpoint
|
|
808
|
+
- cluster.certificateAuthority
|
|
809
|
+
- cluster.cidr
|
|
810
|
+
|
|
811
|
+
Note: This is only applicable when using AL2023.
|
|
812
|
+
See for more details:
|
|
813
|
+
- https://awslabs.github.io/amazon-eks-ami/nodeadm/
|
|
814
|
+
- https://awslabs.github.io/amazon-eks-ami/nodeadm/doc/api/
|
|
815
|
+
"""
|
|
816
|
+
return pulumi.get(self, "nodeadm_extra_options")
|
|
817
|
+
|
|
818
|
+
@nodeadm_extra_options.setter
|
|
819
|
+
def nodeadm_extra_options(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['NodeadmOptionsArgs']]]]):
|
|
820
|
+
pulumi.set(self, "nodeadm_extra_options", value)
|
|
821
|
+
|
|
822
|
+
@_builtins.property
|
|
823
|
+
@pulumi.getter(name="operatingSystem")
|
|
824
|
+
def operating_system(self) -> Optional[pulumi.Input['OperatingSystem']]:
|
|
825
|
+
"""
|
|
826
|
+
The type of OS to use for the node group. Will be used to determine the right EKS optimized AMI to use based on the instance types and gpu configuration.
|
|
827
|
+
Valid values are `RECOMMENDED`, `AL2`, `AL2023` and `Bottlerocket`.
|
|
828
|
+
|
|
829
|
+
Defaults to the current recommended OS.
|
|
830
|
+
"""
|
|
831
|
+
return pulumi.get(self, "operating_system")
|
|
832
|
+
|
|
833
|
+
@operating_system.setter
|
|
834
|
+
def operating_system(self, value: Optional[pulumi.Input['OperatingSystem']]):
|
|
835
|
+
pulumi.set(self, "operating_system", value)
|
|
836
|
+
|
|
837
|
+
@_builtins.property
|
|
838
|
+
@pulumi.getter(name="spotPrice")
|
|
839
|
+
def spot_price(self) -> Optional[pulumi.Input[_builtins.str]]:
|
|
840
|
+
"""
|
|
841
|
+
Bidding price for spot instance. If set, only spot instances will be added as worker node.
|
|
842
|
+
"""
|
|
843
|
+
return pulumi.get(self, "spot_price")
|
|
844
|
+
|
|
845
|
+
@spot_price.setter
|
|
846
|
+
def spot_price(self, value: Optional[pulumi.Input[_builtins.str]]):
|
|
847
|
+
pulumi.set(self, "spot_price", value)
|
|
848
|
+
|
|
849
|
+
@_builtins.property
|
|
850
|
+
@pulumi.getter
|
|
851
|
+
def taints(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input['TaintArgs']]]]:
|
|
852
|
+
"""
|
|
853
|
+
Custom k8s node taints to be attached to each worker node. Adds the given taints to the `--register-with-taints` kubelet argument
|
|
854
|
+
"""
|
|
855
|
+
return pulumi.get(self, "taints")
|
|
856
|
+
|
|
857
|
+
@taints.setter
|
|
858
|
+
def taints(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input['TaintArgs']]]]):
|
|
859
|
+
pulumi.set(self, "taints", value)
|
|
860
|
+
|
|
861
|
+
@_builtins.property
|
|
862
|
+
@pulumi.getter
|
|
863
|
+
def version(self) -> Optional[pulumi.Input[_builtins.str]]:
|
|
864
|
+
"""
|
|
865
|
+
Desired Kubernetes master / control plane version. If you do not specify a value, the latest available version is used.
|
|
866
|
+
"""
|
|
867
|
+
return pulumi.get(self, "version")
|
|
868
|
+
|
|
869
|
+
@version.setter
|
|
870
|
+
def version(self, value: Optional[pulumi.Input[_builtins.str]]):
|
|
871
|
+
pulumi.set(self, "version", value)
|
|
872
|
+
|
|
873
|
+
|
|
874
|
+
@pulumi.type_token("eks:index:NodeGroupV2")
|
|
875
|
+
class NodeGroupV2(pulumi.ComponentResource):
|
|
876
|
+
@overload
|
|
877
|
+
def __init__(__self__,
|
|
878
|
+
resource_name: str,
|
|
879
|
+
opts: Optional[pulumi.ResourceOptions] = None,
|
|
880
|
+
ami_id: Optional[pulumi.Input[_builtins.str]] = None,
|
|
881
|
+
ami_type: Optional[pulumi.Input[_builtins.str]] = None,
|
|
882
|
+
auto_scaling_group_tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
|
|
883
|
+
bootstrap_extra_args: Optional[pulumi.Input[_builtins.str]] = None,
|
|
884
|
+
bottlerocket_settings: Optional[pulumi.Input[Mapping[str, Any]]] = None,
|
|
885
|
+
cloud_formation_tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
|
|
886
|
+
cluster: Optional[pulumi.Input[Union['Cluster', Union['CoreDataArgs', 'CoreDataArgsDict']]]] = None,
|
|
887
|
+
cluster_ingress_rule: Optional[pulumi.Input['pulumi_aws.ec2.SecurityGroupRule']] = None,
|
|
888
|
+
cluster_ingress_rule_id: Optional[pulumi.Input[_builtins.str]] = None,
|
|
889
|
+
desired_capacity: Optional[pulumi.Input[_builtins.int]] = None,
|
|
890
|
+
enable_detailed_monitoring: Optional[pulumi.Input[_builtins.bool]] = None,
|
|
891
|
+
encrypt_root_block_device: Optional[pulumi.Input[_builtins.bool]] = None,
|
|
892
|
+
extra_node_security_groups: Optional[pulumi.Input[Sequence[pulumi.Input['pulumi_aws.ec2.SecurityGroup']]]] = None,
|
|
893
|
+
gpu: Optional[pulumi.Input[_builtins.bool]] = None,
|
|
894
|
+
ignore_scaling_changes: Optional[_builtins.bool] = None,
|
|
895
|
+
instance_profile: Optional['pulumi_aws.iam.InstanceProfile'] = None,
|
|
896
|
+
instance_profile_name: Optional[pulumi.Input[_builtins.str]] = None,
|
|
897
|
+
instance_type: Optional[pulumi.Input[_builtins.str]] = None,
|
|
898
|
+
key_name: Optional[pulumi.Input[_builtins.str]] = None,
|
|
899
|
+
kubelet_extra_args: Optional[pulumi.Input[_builtins.str]] = None,
|
|
900
|
+
labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
|
|
901
|
+
launch_template_tag_specifications: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['pulumi_aws.ec2.LaunchTemplateTagSpecificationArgs']]]]] = None,
|
|
902
|
+
max_size: Optional[pulumi.Input[_builtins.int]] = None,
|
|
903
|
+
min_refresh_percentage: Optional[pulumi.Input[_builtins.int]] = None,
|
|
904
|
+
min_size: Optional[pulumi.Input[_builtins.int]] = None,
|
|
905
|
+
node_associate_public_ip_address: Optional[pulumi.Input[_builtins.bool]] = None,
|
|
906
|
+
node_public_key: Optional[pulumi.Input[_builtins.str]] = None,
|
|
907
|
+
node_root_volume_delete_on_termination: Optional[pulumi.Input[_builtins.bool]] = None,
|
|
908
|
+
node_root_volume_encrypted: Optional[pulumi.Input[_builtins.bool]] = None,
|
|
909
|
+
node_root_volume_iops: Optional[pulumi.Input[_builtins.int]] = None,
|
|
910
|
+
node_root_volume_size: Optional[pulumi.Input[_builtins.int]] = None,
|
|
911
|
+
node_root_volume_throughput: Optional[pulumi.Input[_builtins.int]] = None,
|
|
912
|
+
node_root_volume_type: Optional[pulumi.Input[_builtins.str]] = None,
|
|
913
|
+
node_security_group: Optional[pulumi.Input['pulumi_aws.ec2.SecurityGroup']] = None,
|
|
914
|
+
node_security_group_id: Optional[pulumi.Input[_builtins.str]] = None,
|
|
915
|
+
node_subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
|
|
916
|
+
node_user_data: Optional[pulumi.Input[_builtins.str]] = None,
|
|
917
|
+
node_user_data_override: Optional[pulumi.Input[_builtins.str]] = None,
|
|
918
|
+
nodeadm_extra_options: Optional[pulumi.Input[Sequence[pulumi.Input[Union['NodeadmOptionsArgs', 'NodeadmOptionsArgsDict']]]]] = None,
|
|
919
|
+
operating_system: Optional[pulumi.Input['OperatingSystem']] = None,
|
|
920
|
+
spot_price: Optional[pulumi.Input[_builtins.str]] = None,
|
|
921
|
+
taints: Optional[pulumi.Input[Mapping[str, pulumi.Input[Union['TaintArgs', 'TaintArgsDict']]]]] = None,
|
|
922
|
+
version: Optional[pulumi.Input[_builtins.str]] = None,
|
|
923
|
+
__props__=None):
|
|
924
|
+
"""
|
|
925
|
+
NodeGroup is a component that wraps the AWS EC2 instances that provide compute capacity for an EKS cluster.
|
|
926
|
+
|
|
927
|
+
:param str resource_name: The name of the resource.
|
|
928
|
+
:param pulumi.ResourceOptions opts: Options for the resource.
|
|
929
|
+
:param pulumi.Input[_builtins.str] ami_id: The AMI ID to use for the worker nodes.
|
|
930
|
+
|
|
931
|
+
Defaults to the latest recommended EKS Optimized Linux AMI from the AWS Systems Manager Parameter Store.
|
|
932
|
+
|
|
933
|
+
Note: `amiId` and `gpu` are mutually exclusive.
|
|
934
|
+
|
|
935
|
+
See for more details:
|
|
936
|
+
- https://docs.aws.amazon.com/eks/latest/userguide/eks-optimized-ami.html.
|
|
937
|
+
:param pulumi.Input[_builtins.str] ami_type: The AMI Type to use for the worker nodes.
|
|
938
|
+
|
|
939
|
+
Only applicable when setting an AMI ID that is of type `arm64`.
|
|
940
|
+
|
|
941
|
+
Note: `amiType` and `gpu` are mutually exclusive.
|
|
942
|
+
:param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] auto_scaling_group_tags: The tags to apply to the NodeGroup's AutoScalingGroup in the CloudFormation Stack.
|
|
943
|
+
|
|
944
|
+
Per AWS, all stack-level tags, including automatically created tags, and the `cloudFormationTags` option are propagated to resources that AWS CloudFormation supports, including the AutoScalingGroup. See https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html
|
|
945
|
+
|
|
946
|
+
Note: Given the inheritance of auto-generated CF tags and `cloudFormationTags`, you should either supply the tag in `autoScalingGroupTags` or `cloudFormationTags`, but not both.
|
|
947
|
+
:param pulumi.Input[_builtins.str] bootstrap_extra_args: Additional args to pass directly to `/etc/eks/bootstrap.sh`. For details on available options, see: https://github.com/awslabs/amazon-eks-ami/blob/master/files/bootstrap.sh. Note that the `--apiserver-endpoint`, `--b64-cluster-ca` and `--kubelet-extra-args` flags are included automatically based on other configuration parameters.
|
|
948
|
+
:param pulumi.Input[Mapping[str, Any]] bottlerocket_settings: The configuration settings for Bottlerocket OS.
|
|
949
|
+
The settings will get merged with the base settings the provider uses to configure Bottlerocket.
|
|
950
|
+
|
|
951
|
+
This includes:
|
|
952
|
+
- settings.kubernetes.api-server
|
|
953
|
+
- settings.kubernetes.cluster-certificate
|
|
954
|
+
- settings.kubernetes.cluster-name
|
|
955
|
+
- settings.kubernetes.cluster-dns-ip
|
|
956
|
+
|
|
957
|
+
For an overview of the available settings, see https://bottlerocket.dev/en/os/1.20.x/api/settings/.
|
|
958
|
+
:param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] cloud_formation_tags: The tags to apply to the CloudFormation Stack of the Worker NodeGroup.
|
|
959
|
+
|
|
960
|
+
Note: Given the inheritance of auto-generated CF tags and `cloudFormationTags`, you should either supply the tag in `autoScalingGroupTags` or `cloudFormationTags`, but not both.
|
|
961
|
+
:param pulumi.Input[Union['Cluster', Union['CoreDataArgs', 'CoreDataArgsDict']]] cluster: The target EKS cluster.
|
|
962
|
+
:param pulumi.Input['pulumi_aws.ec2.SecurityGroupRule'] cluster_ingress_rule: The ingress rule that gives node group access.
|
|
963
|
+
:param pulumi.Input[_builtins.str] cluster_ingress_rule_id: The ID of the ingress rule that gives node group access.
|
|
964
|
+
:param pulumi.Input[_builtins.int] desired_capacity: The number of worker nodes that should be running in the cluster. Defaults to 2.
|
|
965
|
+
:param pulumi.Input[_builtins.bool] enable_detailed_monitoring: Enables/disables detailed monitoring of the EC2 instances.
|
|
966
|
+
|
|
967
|
+
With detailed monitoring, all metrics, including status check metrics, are available in 1-minute intervals.
|
|
968
|
+
When enabled, you can also get aggregated data across groups of similar instances.
|
|
969
|
+
|
|
970
|
+
Note: You are charged per metric that is sent to CloudWatch. You are not charged for data storage.
|
|
971
|
+
For more information, see "Paid tier" and "Example 1 - EC2 Detailed Monitoring" here https://aws.amazon.com/cloudwatch/pricing/.
|
|
972
|
+
:param pulumi.Input[_builtins.bool] encrypt_root_block_device: Encrypt the root block device of the nodes in the node group.
|
|
973
|
+
:param pulumi.Input[Sequence[pulumi.Input['pulumi_aws.ec2.SecurityGroup']]] extra_node_security_groups: Extra security groups to attach on all nodes in this worker node group.
|
|
974
|
+
|
|
975
|
+
This additional set of security groups captures any user application rules that will be needed for the nodes.
|
|
976
|
+
:param pulumi.Input[_builtins.bool] gpu: Use the latest recommended EKS Optimized Linux AMI with GPU support for the worker nodes from the AWS Systems Manager Parameter Store.
|
|
977
|
+
|
|
978
|
+
Defaults to false.
|
|
979
|
+
|
|
980
|
+
Note: `gpu` and `amiId` are mutually exclusive.
|
|
981
|
+
|
|
982
|
+
See for more details:
|
|
983
|
+
- https://docs.aws.amazon.com/eks/latest/userguide/eks-optimized-ami.html
|
|
984
|
+
- https://docs.aws.amazon.com/eks/latest/userguide/retrieve-ami-id.html
|
|
985
|
+
:param _builtins.bool ignore_scaling_changes: Whether to ignore changes to the desired size of the Auto Scaling Group. This is useful when using Cluster Autoscaler.
|
|
986
|
+
|
|
987
|
+
See [EKS best practices](https://aws.github.io/aws-eks-best-practices/cluster-autoscaling/) for more details.
|
|
988
|
+
:param 'pulumi_aws.iam.InstanceProfile' instance_profile: The IAM InstanceProfile to use on the NodeGroup. Properties instanceProfile and instanceProfileName are mutually exclusive.
|
|
989
|
+
:param pulumi.Input[_builtins.str] instance_profile_name: The name of the IAM InstanceProfile to use on the NodeGroup. Properties instanceProfile and instanceProfileName are mutually exclusive.
|
|
990
|
+
:param pulumi.Input[_builtins.str] instance_type: The instance type to use for the cluster's nodes. Defaults to "t3.medium".
|
|
991
|
+
:param pulumi.Input[_builtins.str] key_name: Name of the key pair to use for SSH access to worker nodes.
|
|
992
|
+
:param pulumi.Input[_builtins.str] kubelet_extra_args: Extra args to pass to the Kubelet. Corresponds to the options passed in the `--kubeletExtraArgs` flag to `/etc/eks/bootstrap.sh`. For example, '--port=10251 --address=0.0.0.0'. Note that the `labels` and `taints` properties will be applied to this list (using `--node-labels` and `--register-with-taints` respectively) after to the explicit `kubeletExtraArgs`.
|
|
993
|
+
:param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: Custom k8s node labels to be attached to each worker node. Adds the given key/value pairs to the `--node-labels` kubelet argument.
|
|
994
|
+
:param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['pulumi_aws.ec2.LaunchTemplateTagSpecificationArgs']]]] launch_template_tag_specifications: The tag specifications to apply to the launch template.
|
|
995
|
+
:param pulumi.Input[_builtins.int] max_size: The maximum number of worker nodes running in the cluster. Defaults to 2.
|
|
996
|
+
:param pulumi.Input[_builtins.int] min_refresh_percentage: The minimum amount of instances that should remain available during an instance refresh, expressed as a percentage. Defaults to 50.
|
|
997
|
+
:param pulumi.Input[_builtins.int] min_size: The minimum number of worker nodes running in the cluster. Defaults to 1.
|
|
998
|
+
:param pulumi.Input[_builtins.bool] node_associate_public_ip_address: Whether or not to auto-assign public IP addresses on the EKS worker nodes. If this toggle is set to true, the EKS workers will be auto-assigned public IPs. If false, they will not be auto-assigned public IPs.
|
|
999
|
+
:param pulumi.Input[_builtins.str] node_public_key: Public key material for SSH access to worker nodes. See allowed formats at:
|
|
1000
|
+
https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html
|
|
1001
|
+
If not provided, no SSH access is enabled on VMs.
|
|
1002
|
+
:param pulumi.Input[_builtins.bool] node_root_volume_delete_on_termination: Whether the root block device should be deleted on termination of the instance. Defaults to true.
|
|
1003
|
+
:param pulumi.Input[_builtins.bool] node_root_volume_encrypted: Whether to encrypt a cluster node's root volume. Defaults to false.
|
|
1004
|
+
:param pulumi.Input[_builtins.int] node_root_volume_iops: The amount of provisioned IOPS. This is only valid with a volumeType of 'io1'.
|
|
1005
|
+
:param pulumi.Input[_builtins.int] node_root_volume_size: The size in GiB of a cluster node's root volume. Defaults to 20.
|
|
1006
|
+
:param pulumi.Input[_builtins.int] node_root_volume_throughput: Provisioned throughput performance in integer MiB/s for a cluster node's root volume. This is only valid with a volumeType of 'gp3'.
|
|
1007
|
+
:param pulumi.Input[_builtins.str] node_root_volume_type: Configured EBS type for a cluster node's root volume. Default is 'gp2'. Supported values are 'standard', 'gp2', 'gp3', 'st1', 'sc1', 'io1'.
|
|
1008
|
+
:param pulumi.Input['pulumi_aws.ec2.SecurityGroup'] node_security_group: The security group for the worker node group to communicate with the cluster.
|
|
1009
|
+
|
|
1010
|
+
This security group requires specific inbound and outbound rules.
|
|
1011
|
+
|
|
1012
|
+
See for more details:
|
|
1013
|
+
https://docs.aws.amazon.com/eks/latest/userguide/sec-group-reqs.html
|
|
1014
|
+
|
|
1015
|
+
Note: The `nodeSecurityGroup` option and the cluster option`nodeSecurityGroupTags` are mutually exclusive.
|
|
1016
|
+
:param pulumi.Input[_builtins.str] node_security_group_id: The ID of the security group for the worker node group to communicate with the cluster.
|
|
1017
|
+
|
|
1018
|
+
This security group requires specific inbound and outbound rules.
|
|
1019
|
+
|
|
1020
|
+
See for more details:
|
|
1021
|
+
https://docs.aws.amazon.com/eks/latest/userguide/sec-group-reqs.html
|
|
1022
|
+
|
|
1023
|
+
Note: The `nodeSecurityGroupId` option and the cluster option `nodeSecurityGroupTags` are mutually exclusive.
|
|
1024
|
+
:param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] node_subnet_ids: The set of subnets to override and use for the worker node group.
|
|
1025
|
+
|
|
1026
|
+
Setting this option overrides which subnets to use for the worker node group, regardless if the cluster's `subnetIds` is set, or if `publicSubnetIds` and/or `privateSubnetIds` were set.
|
|
1027
|
+
:param pulumi.Input[_builtins.str] node_user_data: Extra code to run on node startup. This code will run after the AWS EKS bootstrapping code and before the node signals its readiness to the managing CloudFormation stack. This code must be a typical user data script: critically it must begin with an interpreter directive (i.e. a `#!`).
|
|
1028
|
+
:param pulumi.Input[_builtins.str] node_user_data_override: User specified code to run on node startup. This code is expected to handle the full AWS EKS bootstrapping code and signal node readiness to the managing CloudFormation stack. This code must be a complete and executable user data script in bash (Linux) or powershell (Windows).
|
|
1029
|
+
|
|
1030
|
+
See for more details: https://docs.aws.amazon.com/eks/latest/userguide/worker.html
|
|
1031
|
+
:param pulumi.Input[Sequence[pulumi.Input[Union['NodeadmOptionsArgs', 'NodeadmOptionsArgsDict']]]] nodeadm_extra_options: Extra nodeadm configuration sections to be added to the nodeadm user data. This can be shell scripts, nodeadm NodeConfig or any other user data compatible script. When configuring additional nodeadm NodeConfig sections, they'll be merged with the base settings the provider sets. You can overwrite base settings or provide additional settings this way.
|
|
1032
|
+
The base settings the provider sets are:
|
|
1033
|
+
- cluster.name
|
|
1034
|
+
- cluster.apiServerEndpoint
|
|
1035
|
+
- cluster.certificateAuthority
|
|
1036
|
+
- cluster.cidr
|
|
1037
|
+
|
|
1038
|
+
Note: This is only applicable when using AL2023.
|
|
1039
|
+
See for more details:
|
|
1040
|
+
- https://awslabs.github.io/amazon-eks-ami/nodeadm/
|
|
1041
|
+
- https://awslabs.github.io/amazon-eks-ami/nodeadm/doc/api/
|
|
1042
|
+
:param pulumi.Input['OperatingSystem'] operating_system: The type of OS to use for the node group. Will be used to determine the right EKS optimized AMI to use based on the instance types and gpu configuration.
|
|
1043
|
+
Valid values are `RECOMMENDED`, `AL2`, `AL2023` and `Bottlerocket`.
|
|
1044
|
+
|
|
1045
|
+
Defaults to the current recommended OS.
|
|
1046
|
+
:param pulumi.Input[_builtins.str] spot_price: Bidding price for spot instance. If set, only spot instances will be added as worker node.
|
|
1047
|
+
:param pulumi.Input[Mapping[str, pulumi.Input[Union['TaintArgs', 'TaintArgsDict']]]] taints: Custom k8s node taints to be attached to each worker node. Adds the given taints to the `--register-with-taints` kubelet argument
|
|
1048
|
+
:param pulumi.Input[_builtins.str] version: Desired Kubernetes master / control plane version. If you do not specify a value, the latest available version is used.
|
|
1049
|
+
"""
|
|
1050
|
+
...
|
|
1051
|
+
@overload
|
|
1052
|
+
def __init__(__self__,
|
|
1053
|
+
resource_name: str,
|
|
1054
|
+
args: NodeGroupV2Args,
|
|
1055
|
+
opts: Optional[pulumi.ResourceOptions] = None):
|
|
1056
|
+
"""
|
|
1057
|
+
NodeGroup is a component that wraps the AWS EC2 instances that provide compute capacity for an EKS cluster.
|
|
1058
|
+
|
|
1059
|
+
:param str resource_name: The name of the resource.
|
|
1060
|
+
:param NodeGroupV2Args args: The arguments to use to populate this resource's properties.
|
|
1061
|
+
:param pulumi.ResourceOptions opts: Options for the resource.
|
|
1062
|
+
"""
|
|
1063
|
+
...
|
|
1064
|
+
def __init__(__self__, resource_name: str, *args, **kwargs):
|
|
1065
|
+
resource_args, opts = _utilities.get_resource_args_opts(NodeGroupV2Args, pulumi.ResourceOptions, *args, **kwargs)
|
|
1066
|
+
if resource_args is not None:
|
|
1067
|
+
__self__._internal_init(resource_name, opts, **resource_args.__dict__)
|
|
1068
|
+
else:
|
|
1069
|
+
__self__._internal_init(resource_name, *args, **kwargs)
|
|
1070
|
+
|
|
1071
|
+
def _internal_init(__self__,
|
|
1072
|
+
resource_name: str,
|
|
1073
|
+
opts: Optional[pulumi.ResourceOptions] = None,
|
|
1074
|
+
ami_id: Optional[pulumi.Input[_builtins.str]] = None,
|
|
1075
|
+
ami_type: Optional[pulumi.Input[_builtins.str]] = None,
|
|
1076
|
+
auto_scaling_group_tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
|
|
1077
|
+
bootstrap_extra_args: Optional[pulumi.Input[_builtins.str]] = None,
|
|
1078
|
+
bottlerocket_settings: Optional[pulumi.Input[Mapping[str, Any]]] = None,
|
|
1079
|
+
cloud_formation_tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
|
|
1080
|
+
cluster: Optional[pulumi.Input[Union['Cluster', Union['CoreDataArgs', 'CoreDataArgsDict']]]] = None,
|
|
1081
|
+
cluster_ingress_rule: Optional[pulumi.Input['pulumi_aws.ec2.SecurityGroupRule']] = None,
|
|
1082
|
+
cluster_ingress_rule_id: Optional[pulumi.Input[_builtins.str]] = None,
|
|
1083
|
+
desired_capacity: Optional[pulumi.Input[_builtins.int]] = None,
|
|
1084
|
+
enable_detailed_monitoring: Optional[pulumi.Input[_builtins.bool]] = None,
|
|
1085
|
+
encrypt_root_block_device: Optional[pulumi.Input[_builtins.bool]] = None,
|
|
1086
|
+
extra_node_security_groups: Optional[pulumi.Input[Sequence[pulumi.Input['pulumi_aws.ec2.SecurityGroup']]]] = None,
|
|
1087
|
+
gpu: Optional[pulumi.Input[_builtins.bool]] = None,
|
|
1088
|
+
ignore_scaling_changes: Optional[_builtins.bool] = None,
|
|
1089
|
+
instance_profile: Optional['pulumi_aws.iam.InstanceProfile'] = None,
|
|
1090
|
+
instance_profile_name: Optional[pulumi.Input[_builtins.str]] = None,
|
|
1091
|
+
instance_type: Optional[pulumi.Input[_builtins.str]] = None,
|
|
1092
|
+
key_name: Optional[pulumi.Input[_builtins.str]] = None,
|
|
1093
|
+
kubelet_extra_args: Optional[pulumi.Input[_builtins.str]] = None,
|
|
1094
|
+
labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
|
|
1095
|
+
launch_template_tag_specifications: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['pulumi_aws.ec2.LaunchTemplateTagSpecificationArgs']]]]] = None,
|
|
1096
|
+
max_size: Optional[pulumi.Input[_builtins.int]] = None,
|
|
1097
|
+
min_refresh_percentage: Optional[pulumi.Input[_builtins.int]] = None,
|
|
1098
|
+
min_size: Optional[pulumi.Input[_builtins.int]] = None,
|
|
1099
|
+
node_associate_public_ip_address: Optional[pulumi.Input[_builtins.bool]] = None,
|
|
1100
|
+
node_public_key: Optional[pulumi.Input[_builtins.str]] = None,
|
|
1101
|
+
node_root_volume_delete_on_termination: Optional[pulumi.Input[_builtins.bool]] = None,
|
|
1102
|
+
node_root_volume_encrypted: Optional[pulumi.Input[_builtins.bool]] = None,
|
|
1103
|
+
node_root_volume_iops: Optional[pulumi.Input[_builtins.int]] = None,
|
|
1104
|
+
node_root_volume_size: Optional[pulumi.Input[_builtins.int]] = None,
|
|
1105
|
+
node_root_volume_throughput: Optional[pulumi.Input[_builtins.int]] = None,
|
|
1106
|
+
node_root_volume_type: Optional[pulumi.Input[_builtins.str]] = None,
|
|
1107
|
+
node_security_group: Optional[pulumi.Input['pulumi_aws.ec2.SecurityGroup']] = None,
|
|
1108
|
+
node_security_group_id: Optional[pulumi.Input[_builtins.str]] = None,
|
|
1109
|
+
node_subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
|
|
1110
|
+
node_user_data: Optional[pulumi.Input[_builtins.str]] = None,
|
|
1111
|
+
node_user_data_override: Optional[pulumi.Input[_builtins.str]] = None,
|
|
1112
|
+
nodeadm_extra_options: Optional[pulumi.Input[Sequence[pulumi.Input[Union['NodeadmOptionsArgs', 'NodeadmOptionsArgsDict']]]]] = None,
|
|
1113
|
+
operating_system: Optional[pulumi.Input['OperatingSystem']] = None,
|
|
1114
|
+
spot_price: Optional[pulumi.Input[_builtins.str]] = None,
|
|
1115
|
+
taints: Optional[pulumi.Input[Mapping[str, pulumi.Input[Union['TaintArgs', 'TaintArgsDict']]]]] = None,
|
|
1116
|
+
version: Optional[pulumi.Input[_builtins.str]] = None,
|
|
1117
|
+
__props__=None):
|
|
1118
|
+
opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
|
|
1119
|
+
if not isinstance(opts, pulumi.ResourceOptions):
|
|
1120
|
+
raise TypeError('Expected resource options to be a ResourceOptions instance')
|
|
1121
|
+
if opts.id is not None:
|
|
1122
|
+
raise ValueError('ComponentResource classes do not support opts.id')
|
|
1123
|
+
else:
|
|
1124
|
+
if __props__ is not None:
|
|
1125
|
+
raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
|
|
1126
|
+
__props__ = NodeGroupV2Args.__new__(NodeGroupV2Args)
|
|
1127
|
+
|
|
1128
|
+
__props__.__dict__["ami_id"] = ami_id
|
|
1129
|
+
__props__.__dict__["ami_type"] = ami_type
|
|
1130
|
+
__props__.__dict__["auto_scaling_group_tags"] = auto_scaling_group_tags
|
|
1131
|
+
__props__.__dict__["bootstrap_extra_args"] = bootstrap_extra_args
|
|
1132
|
+
__props__.__dict__["bottlerocket_settings"] = bottlerocket_settings
|
|
1133
|
+
__props__.__dict__["cloud_formation_tags"] = cloud_formation_tags
|
|
1134
|
+
if cluster is None and not opts.urn:
|
|
1135
|
+
raise TypeError("Missing required property 'cluster'")
|
|
1136
|
+
__props__.__dict__["cluster"] = cluster
|
|
1137
|
+
__props__.__dict__["cluster_ingress_rule"] = cluster_ingress_rule
|
|
1138
|
+
__props__.__dict__["cluster_ingress_rule_id"] = cluster_ingress_rule_id
|
|
1139
|
+
__props__.__dict__["desired_capacity"] = desired_capacity
|
|
1140
|
+
__props__.__dict__["enable_detailed_monitoring"] = enable_detailed_monitoring
|
|
1141
|
+
__props__.__dict__["encrypt_root_block_device"] = encrypt_root_block_device
|
|
1142
|
+
__props__.__dict__["extra_node_security_groups"] = extra_node_security_groups
|
|
1143
|
+
__props__.__dict__["gpu"] = gpu
|
|
1144
|
+
__props__.__dict__["ignore_scaling_changes"] = ignore_scaling_changes
|
|
1145
|
+
__props__.__dict__["instance_profile"] = instance_profile
|
|
1146
|
+
__props__.__dict__["instance_profile_name"] = instance_profile_name
|
|
1147
|
+
__props__.__dict__["instance_type"] = instance_type
|
|
1148
|
+
__props__.__dict__["key_name"] = key_name
|
|
1149
|
+
__props__.__dict__["kubelet_extra_args"] = kubelet_extra_args
|
|
1150
|
+
__props__.__dict__["labels"] = labels
|
|
1151
|
+
__props__.__dict__["launch_template_tag_specifications"] = launch_template_tag_specifications
|
|
1152
|
+
__props__.__dict__["max_size"] = max_size
|
|
1153
|
+
__props__.__dict__["min_refresh_percentage"] = min_refresh_percentage
|
|
1154
|
+
__props__.__dict__["min_size"] = min_size
|
|
1155
|
+
__props__.__dict__["node_associate_public_ip_address"] = node_associate_public_ip_address
|
|
1156
|
+
__props__.__dict__["node_public_key"] = node_public_key
|
|
1157
|
+
__props__.__dict__["node_root_volume_delete_on_termination"] = node_root_volume_delete_on_termination
|
|
1158
|
+
__props__.__dict__["node_root_volume_encrypted"] = node_root_volume_encrypted
|
|
1159
|
+
__props__.__dict__["node_root_volume_iops"] = node_root_volume_iops
|
|
1160
|
+
__props__.__dict__["node_root_volume_size"] = node_root_volume_size
|
|
1161
|
+
__props__.__dict__["node_root_volume_throughput"] = node_root_volume_throughput
|
|
1162
|
+
__props__.__dict__["node_root_volume_type"] = node_root_volume_type
|
|
1163
|
+
__props__.__dict__["node_security_group"] = node_security_group
|
|
1164
|
+
__props__.__dict__["node_security_group_id"] = node_security_group_id
|
|
1165
|
+
__props__.__dict__["node_subnet_ids"] = node_subnet_ids
|
|
1166
|
+
__props__.__dict__["node_user_data"] = node_user_data
|
|
1167
|
+
__props__.__dict__["node_user_data_override"] = node_user_data_override
|
|
1168
|
+
__props__.__dict__["nodeadm_extra_options"] = nodeadm_extra_options
|
|
1169
|
+
__props__.__dict__["operating_system"] = operating_system
|
|
1170
|
+
__props__.__dict__["spot_price"] = spot_price
|
|
1171
|
+
__props__.__dict__["taints"] = taints
|
|
1172
|
+
__props__.__dict__["version"] = version
|
|
1173
|
+
__props__.__dict__["auto_scaling_group"] = None
|
|
1174
|
+
super(NodeGroupV2, __self__).__init__(
|
|
1175
|
+
'eks:index:NodeGroupV2',
|
|
1176
|
+
resource_name,
|
|
1177
|
+
__props__,
|
|
1178
|
+
opts,
|
|
1179
|
+
remote=True)
|
|
1180
|
+
|
|
1181
|
+
@_builtins.property
|
|
1182
|
+
@pulumi.getter(name="autoScalingGroup")
|
|
1183
|
+
def auto_scaling_group(self) -> pulumi.Output['pulumi_aws.autoscaling.Group']:
|
|
1184
|
+
"""
|
|
1185
|
+
The AutoScalingGroup for the Node group.
|
|
1186
|
+
"""
|
|
1187
|
+
return pulumi.get(self, "auto_scaling_group")
|
|
1188
|
+
|
|
1189
|
+
@_builtins.property
|
|
1190
|
+
@pulumi.getter(name="extraNodeSecurityGroups")
|
|
1191
|
+
def extra_node_security_groups(self) -> pulumi.Output[Sequence['pulumi_aws.ec2.SecurityGroup']]:
|
|
1192
|
+
"""
|
|
1193
|
+
The additional security groups for the node group that captures user-specific rules.
|
|
1194
|
+
"""
|
|
1195
|
+
return pulumi.get(self, "extra_node_security_groups")
|
|
1196
|
+
|
|
1197
|
+
@_builtins.property
|
|
1198
|
+
@pulumi.getter(name="nodeSecurityGroup")
|
|
1199
|
+
def node_security_group(self) -> pulumi.Output[Optional['pulumi_aws.ec2.SecurityGroup']]:
|
|
1200
|
+
"""
|
|
1201
|
+
The security group for the node group to communicate with the cluster, or undefined if using `nodeSecurityGroupId`.
|
|
1202
|
+
"""
|
|
1203
|
+
return pulumi.get(self, "node_security_group")
|
|
1204
|
+
|
|
1205
|
+
@_builtins.property
|
|
1206
|
+
@pulumi.getter(name="nodeSecurityGroupId")
|
|
1207
|
+
def node_security_group_id(self) -> pulumi.Output[_builtins.str]:
|
|
1208
|
+
"""
|
|
1209
|
+
The ID of the security group for the node group to communicate with the cluster.
|
|
1210
|
+
"""
|
|
1211
|
+
return pulumi.get(self, "node_security_group_id")
|
|
1212
|
+
|