pulumi-eks 3.9.0a1742626547__py3-none-any.whl → 4.2.0__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/cluster.py CHANGED
@@ -2,6 +2,7 @@
2
2
  # *** WARNING: this file was generated by pulumi-gen-eks. ***
3
3
  # *** Do not edit by hand unless you're certain you know what you are doing! ***
4
4
 
5
+ import builtins
5
6
  import copy
6
7
  import warnings
7
8
  import sys
@@ -28,58 +29,60 @@ class ClusterArgs:
28
29
  access_entries: Optional[Mapping[str, 'AccessEntryArgs']] = None,
29
30
  authentication_mode: Optional['AuthenticationMode'] = None,
30
31
  auto_mode: Optional['AutoModeOptionsArgs'] = None,
32
+ bootstrap_self_managed_addons: Optional[pulumi.Input[builtins.bool]] = None,
31
33
  cluster_security_group: Optional[pulumi.Input['pulumi_aws.ec2.SecurityGroup']] = None,
32
- cluster_security_group_tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
33
- cluster_tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
34
+ cluster_security_group_tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]] = None,
35
+ cluster_tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]] = None,
34
36
  coredns_addon_options: Optional['CoreDnsAddonOptionsArgs'] = None,
35
- create_instance_role: Optional[bool] = None,
36
- create_oidc_provider: Optional[pulumi.Input[bool]] = None,
37
+ create_instance_role: Optional[builtins.bool] = None,
38
+ create_oidc_provider: Optional[pulumi.Input[builtins.bool]] = None,
37
39
  creation_role_provider: Optional['CreationRoleProviderArgs'] = None,
38
- default_addons_to_remove: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
39
- desired_capacity: Optional[pulumi.Input[int]] = None,
40
- enable_config_map_mutable: Optional[pulumi.Input[bool]] = None,
41
- enabled_cluster_log_types: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
42
- encryption_config_key_arn: Optional[pulumi.Input[str]] = None,
43
- endpoint_private_access: Optional[pulumi.Input[bool]] = None,
44
- endpoint_public_access: Optional[pulumi.Input[bool]] = None,
45
- fargate: Optional[pulumi.Input[Union[bool, 'FargateProfileArgs']]] = None,
46
- gpu: Optional[pulumi.Input[bool]] = None,
47
- instance_profile_name: Optional[pulumi.Input[str]] = None,
40
+ deletion_protection: Optional[pulumi.Input[builtins.bool]] = None,
41
+ desired_capacity: Optional[pulumi.Input[builtins.int]] = None,
42
+ enable_config_map_mutable: Optional[pulumi.Input[builtins.bool]] = None,
43
+ enabled_cluster_log_types: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
44
+ encryption_config_key_arn: Optional[pulumi.Input[builtins.str]] = None,
45
+ endpoint_private_access: Optional[pulumi.Input[builtins.bool]] = None,
46
+ endpoint_public_access: Optional[pulumi.Input[builtins.bool]] = None,
47
+ fargate: Optional[pulumi.Input[Union[builtins.bool, 'FargateProfileArgs']]] = None,
48
+ gpu: Optional[pulumi.Input[builtins.bool]] = None,
49
+ instance_profile_name: Optional[pulumi.Input[builtins.str]] = None,
48
50
  instance_role: Optional[pulumi.Input['pulumi_aws.iam.Role']] = None,
49
51
  instance_roles: Optional[pulumi.Input[Sequence[pulumi.Input['pulumi_aws.iam.Role']]]] = None,
50
- instance_type: Optional[pulumi.Input[str]] = None,
51
- ip_family: Optional[pulumi.Input[str]] = None,
52
+ instance_type: Optional[pulumi.Input[builtins.str]] = None,
53
+ ip_family: Optional[pulumi.Input[builtins.str]] = None,
52
54
  kube_proxy_addon_options: Optional['KubeProxyAddonOptionsArgs'] = None,
53
- kubernetes_service_ip_address_range: Optional[pulumi.Input[str]] = None,
54
- max_size: Optional[pulumi.Input[int]] = None,
55
- min_size: Optional[pulumi.Input[int]] = None,
56
- name: Optional[pulumi.Input[str]] = None,
57
- node_ami_id: Optional[pulumi.Input[str]] = None,
58
- node_associate_public_ip_address: Optional[bool] = None,
55
+ kubernetes_service_ip_address_range: Optional[pulumi.Input[builtins.str]] = None,
56
+ max_size: Optional[pulumi.Input[builtins.int]] = None,
57
+ min_size: Optional[pulumi.Input[builtins.int]] = None,
58
+ name: Optional[pulumi.Input[builtins.str]] = None,
59
+ node_ami_id: Optional[pulumi.Input[builtins.str]] = None,
60
+ node_associate_public_ip_address: Optional[builtins.bool] = None,
59
61
  node_group_options: Optional['ClusterNodeGroupOptionsArgs'] = None,
60
- node_public_key: Optional[pulumi.Input[str]] = None,
61
- node_root_volume_encrypted: Optional[pulumi.Input[bool]] = None,
62
- node_root_volume_size: Optional[pulumi.Input[int]] = None,
63
- node_security_group_tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
64
- node_subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
65
- node_user_data: Optional[pulumi.Input[str]] = None,
66
- private_subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
62
+ node_public_key: Optional[pulumi.Input[builtins.str]] = None,
63
+ node_root_volume_encrypted: Optional[pulumi.Input[builtins.bool]] = None,
64
+ node_root_volume_size: Optional[pulumi.Input[builtins.int]] = None,
65
+ node_security_group_tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]] = None,
66
+ node_subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
67
+ node_user_data: Optional[pulumi.Input[builtins.str]] = None,
68
+ private_subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
67
69
  provider_credential_opts: Optional[pulumi.Input['KubeconfigOptionsArgs']] = None,
68
- proxy: Optional[str] = None,
69
- public_access_cidrs: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
70
- public_subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
70
+ proxy: Optional[builtins.str] = None,
71
+ public_access_cidrs: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
72
+ public_subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
71
73
  role_mappings: Optional[pulumi.Input[Sequence[pulumi.Input['RoleMappingArgs']]]] = None,
72
74
  service_role: Optional[pulumi.Input['pulumi_aws.iam.Role']] = None,
73
- skip_default_node_group: Optional[bool] = None,
74
- skip_default_security_groups: Optional[bool] = None,
75
- storage_classes: Optional[Union[str, Mapping[str, 'StorageClassArgs']]] = None,
76
- subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
77
- tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
78
- use_default_vpc_cni: Optional[bool] = None,
75
+ skip_default_node_group: Optional[builtins.bool] = None,
76
+ skip_default_security_groups: Optional[builtins.bool] = None,
77
+ storage_classes: Optional[Union[builtins.str, Mapping[str, 'StorageClassArgs']]] = None,
78
+ subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
79
+ tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]] = None,
80
+ upgrade_policy: Optional[pulumi.Input['pulumi_aws.eks.ClusterUpgradePolicyArgs']] = None,
81
+ use_default_vpc_cni: Optional[builtins.bool] = None,
79
82
  user_mappings: Optional[pulumi.Input[Sequence[pulumi.Input['UserMappingArgs']]]] = None,
80
- version: Optional[pulumi.Input[str]] = None,
83
+ version: Optional[pulumi.Input[builtins.str]] = None,
81
84
  vpc_cni_options: Optional['VpcCniOptionsArgs'] = None,
82
- vpc_id: Optional[pulumi.Input[str]] = None):
85
+ vpc_id: Optional[pulumi.Input[builtins.str]] = None):
83
86
  """
84
87
  The set of arguments for constructing a Cluster resource.
85
88
  :param Mapping[str, 'AccessEntryArgs'] access_entries: Access entries to add to the EKS cluster. They can be used to allow IAM principals to access the cluster. Access entries are only supported with authentication mode `API` or `API_AND_CONFIG_MAP`.
@@ -93,16 +96,17 @@ class ClusterArgs:
93
96
  :param 'AutoModeOptionsArgs' auto_mode: Configuration Options for EKS Auto Mode. If EKS Auto Mode is enabled, AWS will manage cluster infrastructure on your behalf.
94
97
 
95
98
  For more information, see: https://docs.aws.amazon.com/eks/latest/userguide/automode.html
99
+ :param pulumi.Input[builtins.bool] bootstrap_self_managed_addons: Install default unmanaged add-ons, such as `aws-cni`, `kube-proxy`, and CoreDNS during cluster creation. If `false`, you must manually install desired add-ons. Changing this value will force a new cluster to be created. Defaults to `true`
96
100
  :param pulumi.Input['pulumi_aws.ec2.SecurityGroup'] cluster_security_group: The security group to use for the cluster API endpoint. If not provided, a new security group will be created with full internet egress and ingress from node groups.
97
101
 
98
102
  Note: The security group resource should not contain any inline ingress or egress rules.
99
- :param pulumi.Input[Mapping[str, pulumi.Input[str]]] cluster_security_group_tags: The tags to apply to the cluster security group.
100
- :param pulumi.Input[Mapping[str, pulumi.Input[str]]] cluster_tags: The tags to apply to the EKS cluster.
103
+ :param pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]] cluster_security_group_tags: The tags to apply to the cluster security group.
104
+ :param pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]] cluster_tags: The tags to apply to the EKS cluster.
101
105
  :param 'CoreDnsAddonOptionsArgs' coredns_addon_options: Options for managing the `coredns` addon.
102
- :param bool create_instance_role: Whether to create the instance role for the EKS cluster. Defaults to true when using the default node group, false otherwise.
106
+ :param builtins.bool create_instance_role: Whether to create the instance role for the EKS cluster. Defaults to true when using the default node group, false otherwise.
103
107
  If set to false when using the default node group, an instance role or instance profile must be provided.n
104
108
  Note: this option has no effect if a custom instance role is provided with `instanceRole` or `instanceRoles`.
105
- :param pulumi.Input[bool] create_oidc_provider: Indicates whether an IAM OIDC Provider is created for the EKS cluster.
109
+ :param pulumi.Input[builtins.bool] create_oidc_provider: Indicates whether an IAM OIDC Provider is created for the EKS cluster.
106
110
 
107
111
  The OIDC provider is used in the cluster in combination with k8s Service Account annotations to provide IAM roles at the k8s Pod level.
108
112
 
@@ -114,22 +118,22 @@ class ClusterArgs:
114
118
  :param 'CreationRoleProviderArgs' creation_role_provider: The IAM Role Provider used to create & authenticate against the EKS cluster. This role is given `[system:masters]` permission in K8S, See: https://docs.aws.amazon.com/eks/latest/userguide/add-user-role.html
115
119
 
116
120
  Note: This option is only supported with Pulumi nodejs programs. Please use `ProviderCredentialOpts` as an alternative instead.
117
- :param pulumi.Input[Sequence[pulumi.Input[str]]] default_addons_to_remove: List of addons to remove upon creation. Any addon listed will be "adopted" and then removed. This allows for the creation of a baremetal cluster where no addon is deployed and direct management of addons via Pulumi Kubernetes resources. Valid entries are kube-proxy, coredns and vpc-cni. Only works on first creation of a cluster.
118
- :param pulumi.Input[int] desired_capacity: The number of worker nodes that should be running in the cluster. Defaults to 2.
119
- :param pulumi.Input[bool] enable_config_map_mutable: Sets the 'enableConfigMapMutable' option on the cluster kubernetes provider.
121
+ :param pulumi.Input[builtins.bool] deletion_protection: Whether to enable deletion protection for the cluster. When enabled, the cluster cannot be deleted unless deletion protection is first disabled. Default: `false`.
122
+ :param pulumi.Input[builtins.int] desired_capacity: The number of worker nodes that should be running in the cluster. Defaults to 2.
123
+ :param pulumi.Input[builtins.bool] enable_config_map_mutable: Sets the 'enableConfigMapMutable' option on the cluster kubernetes provider.
120
124
 
121
125
  Applies updates to the aws-auth ConfigMap in place over a replace operation if set to true.
122
126
  https://www.pulumi.com/registry/packages/kubernetes/api-docs/provider/#enableconfigmapmutable_nodejs
123
- :param pulumi.Input[Sequence[pulumi.Input[str]]] enabled_cluster_log_types: Enable EKS control plane logging. This sends logs to cloudwatch. Possible list of values are: ["api", "audit", "authenticator", "controllerManager", "scheduler"]. By default it is off.
124
- :param pulumi.Input[str] encryption_config_key_arn: KMS Key ARN to use with the encryption configuration for the cluster.
127
+ :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] enabled_cluster_log_types: Enable EKS control plane logging. This sends logs to cloudwatch. Possible list of values are: ["api", "audit", "authenticator", "controllerManager", "scheduler"]. By default it is off.
128
+ :param pulumi.Input[builtins.str] encryption_config_key_arn: KMS Key ARN to use with the encryption configuration for the cluster.
125
129
 
126
130
  Only available on Kubernetes 1.13+ clusters created after March 6, 2020.
127
131
  See for more details:
128
132
  - https://aws.amazon.com/about-aws/whats-new/2020/03/amazon-eks-adds-envelope-encryption-for-secrets-with-aws-kms/
129
- :param pulumi.Input[bool] endpoint_private_access: Indicates whether or not the Amazon EKS private API server endpoint is enabled. Default is `false`.
130
- :param pulumi.Input[bool] endpoint_public_access: Indicates whether or not the Amazon EKS public API server endpoint is enabled. Default is `true`.
131
- :param pulumi.Input[Union[bool, 'FargateProfileArgs']] fargate: Add support for launching pods in Fargate. Defaults to launching pods in the `default` namespace. If specified, the default node group is skipped as though `skipDefaultNodeGroup: true` had been passed.
132
- :param pulumi.Input[bool] gpu: Use the latest recommended EKS Optimized Linux AMI with GPU support for the worker nodes from the AWS Systems Manager Parameter Store.
133
+ :param pulumi.Input[builtins.bool] endpoint_private_access: Indicates whether or not the Amazon EKS private API server endpoint is enabled. Default is `false`.
134
+ :param pulumi.Input[builtins.bool] endpoint_public_access: Indicates whether or not the Amazon EKS public API server endpoint is enabled. Default is `true`.
135
+ :param pulumi.Input[Union[builtins.bool, 'FargateProfileArgs']] fargate: Add support for launching pods in Fargate. Defaults to launching pods in the `default` namespace. If specified, the default node group is skipped as though `skipDefaultNodeGroup: true` had been passed.
136
+ :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.
133
137
 
134
138
  Defaults to false.
135
139
 
@@ -138,18 +142,18 @@ class ClusterArgs:
138
142
  See for more details:
139
143
  - https://docs.aws.amazon.com/eks/latest/userguide/eks-optimized-ami.html
140
144
  - https://docs.aws.amazon.com/eks/latest/userguide/retrieve-ami-id.html
141
- :param pulumi.Input[str] instance_profile_name: The default IAM InstanceProfile to use on the Worker NodeGroups, if one is not already set in the NodeGroup.
145
+ :param pulumi.Input[builtins.str] instance_profile_name: The default IAM InstanceProfile to use on the Worker NodeGroups, if one is not already set in the NodeGroup.
142
146
  :param pulumi.Input['pulumi_aws.iam.Role'] instance_role: This enables the simple case of only registering a *single* IAM instance role with the cluster, that is required to be shared by *all* node groups in their instance profiles.
143
147
 
144
148
  Note: options `instanceRole` and `instanceRoles` are mutually exclusive.
145
149
  :param pulumi.Input[Sequence[pulumi.Input['pulumi_aws.iam.Role']]] instance_roles: This enables the advanced case of registering *many* IAM instance roles with the cluster for per node group IAM, instead of the simpler, shared case of `instanceRole`.
146
150
 
147
151
  Note: options `instanceRole` and `instanceRoles` are mutually exclusive.
148
- :param pulumi.Input[str] instance_type: The instance type to use for the cluster's nodes. Defaults to "t3.medium".
149
- :param pulumi.Input[str] ip_family: The IP family used to assign Kubernetes pod and service addresses. Valid values are `ipv4` (default) and `ipv6`.
152
+ :param pulumi.Input[builtins.str] instance_type: The instance type to use for the cluster's nodes. Defaults to "t3.medium".
153
+ :param pulumi.Input[builtins.str] ip_family: The IP family used to assign Kubernetes pod and service addresses. Valid values are `ipv4` (default) and `ipv6`.
150
154
  You can only specify an IP family when you create a cluster, changing this value will force a new cluster to be created.
151
155
  :param 'KubeProxyAddonOptionsArgs' kube_proxy_addon_options: Options for managing the `kube-proxy` addon.
152
- :param pulumi.Input[str] kubernetes_service_ip_address_range: The CIDR block to assign Kubernetes service IP addresses from. If you don't
156
+ :param pulumi.Input[builtins.str] kubernetes_service_ip_address_range: The CIDR block to assign Kubernetes service IP addresses from. If you don't
153
157
  specify a block, Kubernetes assigns addresses from either the 10.100.0.0/16 or
154
158
  172.20.0.0/16 CIDR blocks. This setting only applies to IPv4 clusters. We recommend that you specify a block
155
159
  that does not overlap with resources in other networks that are peered or connected to your VPC. You can only specify
@@ -159,14 +163,14 @@ class ClusterArgs:
159
163
  - Within one of the following private IP address blocks: 10.0.0.0/8, 172.16.0.0.0/12, or 192.168.0.0/16.
160
164
  - Doesn't overlap with any CIDR block assigned to the VPC that you selected for VPC.
161
165
  - Between /24 and /12.
162
- :param pulumi.Input[int] max_size: The maximum number of worker nodes running in the cluster. Defaults to 2.
163
- :param pulumi.Input[int] min_size: The minimum number of worker nodes running in the cluster. Defaults to 1.
164
- :param pulumi.Input[str] name: The cluster's physical resource name.
166
+ :param pulumi.Input[builtins.int] max_size: The maximum number of worker nodes running in the cluster. Defaults to 2.
167
+ :param pulumi.Input[builtins.int] min_size: The minimum number of worker nodes running in the cluster. Defaults to 1.
168
+ :param pulumi.Input[builtins.str] name: The cluster's physical resource name.
165
169
 
166
170
  If not specified, the default is to use auto-naming for the cluster's name, resulting in a physical name with the format `${name}-eksCluster-0123abcd`.
167
171
 
168
172
  See for more details: https://www.pulumi.com/docs/intro/concepts/programming-model/#autonaming
169
- :param pulumi.Input[str] node_ami_id: The AMI ID to use for the worker nodes.
173
+ :param pulumi.Input[builtins.str] node_ami_id: The AMI ID to use for the worker nodes.
170
174
 
171
175
  Defaults to the latest recommended EKS Optimized Linux AMI from the AWS Systems Manager Parameter Store.
172
176
 
@@ -174,19 +178,19 @@ class ClusterArgs:
174
178
 
175
179
  See for more details:
176
180
  - https://docs.aws.amazon.com/eks/latest/userguide/eks-optimized-ami.html.
177
- :param bool node_associate_public_ip_address: Whether or not to auto-assign the EKS worker nodes public IP addresses. 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.
181
+ :param builtins.bool node_associate_public_ip_address: Whether or not to auto-assign the EKS worker nodes public IP addresses. 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.
178
182
  :param 'ClusterNodeGroupOptionsArgs' node_group_options: The common configuration settings for NodeGroups.
179
- :param pulumi.Input[str] node_public_key: Public key material for SSH access to worker nodes. See allowed formats at:
183
+ :param pulumi.Input[builtins.str] node_public_key: Public key material for SSH access to worker nodes. See allowed formats at:
180
184
  https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html
181
185
  If not provided, no SSH access is enabled on VMs.
182
- :param pulumi.Input[bool] node_root_volume_encrypted: Encrypt the root block device of the nodes in the node group.
183
- :param pulumi.Input[int] node_root_volume_size: The size in GiB of a cluster node's root volume. Defaults to 20.
184
- :param pulumi.Input[Mapping[str, pulumi.Input[str]]] node_security_group_tags: The tags to apply to the default `nodeSecurityGroup` created by the cluster.
186
+ :param pulumi.Input[builtins.bool] node_root_volume_encrypted: Encrypt the root block device of the nodes in the node group.
187
+ :param pulumi.Input[builtins.int] node_root_volume_size: The size in GiB of a cluster node's root volume. Defaults to 20.
188
+ :param pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]] node_security_group_tags: The tags to apply to the default `nodeSecurityGroup` created by the cluster.
185
189
 
186
190
  Note: The `nodeSecurityGroupTags` option and the node group option `nodeSecurityGroup` are mutually exclusive.
187
- :param pulumi.Input[Sequence[pulumi.Input[str]]] node_subnet_ids: The subnets to use for worker nodes. Defaults to the value of subnetIds.
188
- :param pulumi.Input[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 `#!`).
189
- :param pulumi.Input[Sequence[pulumi.Input[str]]] private_subnet_ids: The set of private subnets to use for the worker node groups on the EKS cluster. These subnets are automatically tagged by EKS for Kubernetes purposes.
191
+ :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] node_subnet_ids: The subnets to use for worker nodes. Defaults to the value of subnetIds.
192
+ :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 `#!`).
193
+ :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] private_subnet_ids: The set of private subnets to use for the worker node groups on the EKS cluster. These subnets are automatically tagged by EKS for Kubernetes purposes.
190
194
 
191
195
  If `vpcId` is not set, the cluster will use the AWS account's default VPC subnets.
192
196
 
@@ -214,7 +218,7 @@ class ClusterArgs:
214
218
  - https://www.pulumi.com/docs/intro/cloud-providers/aws/setup/
215
219
  - https://www.pulumi.com/docs/intro/cloud-providers/aws/#configuration
216
220
  - https://docs.aws.amazon.com/eks/latest/userguide/create-kubeconfig.html
217
- :param str proxy: The HTTP(S) proxy to use within a proxied environment.
221
+ :param builtins.str proxy: The HTTP(S) proxy to use within a proxied environment.
218
222
 
219
223
  The proxy is used during cluster creation, and OIDC configuration.
220
224
 
@@ -229,8 +233,8 @@ class ClusterArgs:
229
233
  - "http://proxy.example.com:3128"
230
234
  - "https://proxy.example.com"
231
235
  - "http://username:password@proxy.example.com:3128"
232
- :param pulumi.Input[Sequence[pulumi.Input[str]]] public_access_cidrs: Indicates which CIDR blocks can access the Amazon EKS public API server endpoint.
233
- :param pulumi.Input[Sequence[pulumi.Input[str]]] public_subnet_ids: The set of public subnets to use for the worker node groups on the EKS cluster. These subnets are automatically tagged by EKS for Kubernetes purposes.
236
+ :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] public_access_cidrs: Indicates which CIDR blocks can access the Amazon EKS public API server endpoint.
237
+ :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] public_subnet_ids: The set of public subnets to use for the worker node groups on the EKS cluster. These subnets are automatically tagged by EKS for Kubernetes purposes.
234
238
 
235
239
  If `vpcId` is not set, the cluster will use the AWS account's default VPC subnets.
236
240
 
@@ -245,14 +249,14 @@ class ClusterArgs:
245
249
  See for more details: https://docs.aws.amazon.com/eks/latest/userguide/network_reqs.html.Note: The use of `subnetIds`, along with `publicSubnetIds` and/or `privateSubnetIds` is mutually exclusive. The use of `publicSubnetIds` and `privateSubnetIds` is encouraged.
246
250
  :param pulumi.Input[Sequence[pulumi.Input['RoleMappingArgs']]] role_mappings: Optional mappings from AWS IAM roles to Kubernetes users and groups. Only supported with authentication mode `CONFIG_MAP` or `API_AND_CONFIG_MAP`
247
251
  :param pulumi.Input['pulumi_aws.iam.Role'] service_role: IAM Service Role for EKS to use to manage the cluster.
248
- :param bool skip_default_node_group: If this toggle is set to true, the EKS cluster will be created without node group attached. Defaults to false, unless `fargate` or `autoMode` is enabled.
249
- :param bool skip_default_security_groups: If this toggle is set to true, the EKS cluster will be created without the default node and cluster security groups. Defaults to false, unless `autoMode` is enabled.
252
+ :param builtins.bool skip_default_node_group: If this toggle is set to true, the EKS cluster will be created without node group attached. Defaults to false, unless `fargate` or `autoMode` is enabled.
253
+ :param builtins.bool skip_default_security_groups: If this toggle is set to true, the EKS cluster will be created without the default node and cluster security groups. Defaults to false, unless `autoMode` is enabled.
250
254
 
251
255
  See for more details: https://docs.aws.amazon.com/eks/latest/userguide/sec-group-reqs.html
252
- :param Union[str, Mapping[str, 'StorageClassArgs']] storage_classes: An optional set of StorageClasses to enable for the cluster. If this is a single volume type rather than a map, a single StorageClass will be created for that volume type.
256
+ :param Union[builtins.str, Mapping[str, 'StorageClassArgs']] storage_classes: An optional set of StorageClasses to enable for the cluster. If this is a single volume type rather than a map, a single StorageClass will be created for that volume type.
253
257
 
254
258
  Note: As of Kubernetes v1.11+ on EKS, a default `gp2` storage class will always be created automatically for the cluster by the EKS service. See https://docs.aws.amazon.com/eks/latest/userguide/storage-classes.html
255
- :param pulumi.Input[Sequence[pulumi.Input[str]]] subnet_ids: The set of all subnets, public and private, to use for the worker node groups on the EKS cluster. These subnets are automatically tagged by EKS for Kubernetes purposes.
259
+ :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] subnet_ids: The set of all subnets, public and private, to use for the worker node groups on the EKS cluster. These subnets are automatically tagged by EKS for Kubernetes purposes.
256
260
 
257
261
  If `vpcId` is not set, the cluster will use the AWS account's default VPC subnets.
258
262
 
@@ -261,13 +265,14 @@ class ClusterArgs:
261
265
  See for more details: https://docs.aws.amazon.com/eks/latest/userguide/network_reqs.html.
262
266
 
263
267
  Note: The use of `subnetIds`, along with `publicSubnetIds` and/or `privateSubnetIds` is mutually exclusive. The use of `publicSubnetIds` and `privateSubnetIds` is encouraged.
264
- :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value mapping of tags that are automatically applied to all AWS resources directly under management with this cluster, which support tagging.
265
- :param bool use_default_vpc_cni: Use the default VPC CNI instead of creating a custom one. Should not be used in conjunction with `vpcCniOptions`.
268
+ :param pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]] tags: Key-value mapping of tags that are automatically applied to all AWS resources directly under management with this cluster, which support tagging.
269
+ :param pulumi.Input['pulumi_aws.eks.ClusterUpgradePolicyArgs'] upgrade_policy: The cluster's upgrade policy. Valid support types are "STANDARD" and "EXTENDED". Defaults to "EXTENDED".
270
+ :param builtins.bool use_default_vpc_cni: Use the default VPC CNI instead of creating a custom one. Should not be used in conjunction with `vpcCniOptions`.
266
271
  Defaults to true, unless `autoMode` is enabled.
267
272
  :param pulumi.Input[Sequence[pulumi.Input['UserMappingArgs']]] user_mappings: Optional mappings from AWS IAM users to Kubernetes users and groups. Only supported with authentication mode `CONFIG_MAP` or `API_AND_CONFIG_MAP`.
268
- :param pulumi.Input[str] version: Desired Kubernetes master / control plane version. If you do not specify a value, the latest available version is used.
273
+ :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.
269
274
  :param 'VpcCniOptionsArgs' vpc_cni_options: The configuration of the Amazon VPC CNI plugin for this instance. Defaults are described in the documentation for the VpcCniOptions type.
270
- :param pulumi.Input[str] vpc_id: The VPC in which to create the cluster and its worker nodes. If unset, the cluster will be created in the default VPC.
275
+ :param pulumi.Input[builtins.str] vpc_id: The VPC in which to create the cluster and its worker nodes. If unset, the cluster will be created in the default VPC.
271
276
  """
272
277
  if access_entries is not None:
273
278
  pulumi.set(__self__, "access_entries", access_entries)
@@ -275,6 +280,8 @@ class ClusterArgs:
275
280
  pulumi.set(__self__, "authentication_mode", authentication_mode)
276
281
  if auto_mode is not None:
277
282
  pulumi.set(__self__, "auto_mode", auto_mode)
283
+ if bootstrap_self_managed_addons is not None:
284
+ pulumi.set(__self__, "bootstrap_self_managed_addons", bootstrap_self_managed_addons)
278
285
  if cluster_security_group is not None:
279
286
  pulumi.set(__self__, "cluster_security_group", cluster_security_group)
280
287
  if cluster_security_group_tags is not None:
@@ -289,8 +296,8 @@ class ClusterArgs:
289
296
  pulumi.set(__self__, "create_oidc_provider", create_oidc_provider)
290
297
  if creation_role_provider is not None:
291
298
  pulumi.set(__self__, "creation_role_provider", creation_role_provider)
292
- if default_addons_to_remove is not None:
293
- pulumi.set(__self__, "default_addons_to_remove", default_addons_to_remove)
299
+ if deletion_protection is not None:
300
+ pulumi.set(__self__, "deletion_protection", deletion_protection)
294
301
  if desired_capacity is not None:
295
302
  pulumi.set(__self__, "desired_capacity", desired_capacity)
296
303
  if enable_config_map_mutable is not None:
@@ -369,6 +376,8 @@ class ClusterArgs:
369
376
  pulumi.set(__self__, "subnet_ids", subnet_ids)
370
377
  if tags is not None:
371
378
  pulumi.set(__self__, "tags", tags)
379
+ if upgrade_policy is not None:
380
+ pulumi.set(__self__, "upgrade_policy", upgrade_policy)
372
381
  if use_default_vpc_cni is not None:
373
382
  pulumi.set(__self__, "use_default_vpc_cni", use_default_vpc_cni)
374
383
  if user_mappings is not None:
@@ -424,6 +433,18 @@ class ClusterArgs:
424
433
  def auto_mode(self, value: Optional['AutoModeOptionsArgs']):
425
434
  pulumi.set(self, "auto_mode", value)
426
435
 
436
+ @property
437
+ @pulumi.getter(name="bootstrapSelfManagedAddons")
438
+ def bootstrap_self_managed_addons(self) -> Optional[pulumi.Input[builtins.bool]]:
439
+ """
440
+ Install default unmanaged add-ons, such as `aws-cni`, `kube-proxy`, and CoreDNS during cluster creation. If `false`, you must manually install desired add-ons. Changing this value will force a new cluster to be created. Defaults to `true`
441
+ """
442
+ return pulumi.get(self, "bootstrap_self_managed_addons")
443
+
444
+ @bootstrap_self_managed_addons.setter
445
+ def bootstrap_self_managed_addons(self, value: Optional[pulumi.Input[builtins.bool]]):
446
+ pulumi.set(self, "bootstrap_self_managed_addons", value)
447
+
427
448
  @property
428
449
  @pulumi.getter(name="clusterSecurityGroup")
429
450
  def cluster_security_group(self) -> Optional[pulumi.Input['pulumi_aws.ec2.SecurityGroup']]:
@@ -440,26 +461,26 @@ class ClusterArgs:
440
461
 
441
462
  @property
442
463
  @pulumi.getter(name="clusterSecurityGroupTags")
443
- def cluster_security_group_tags(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
464
+ def cluster_security_group_tags(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]]:
444
465
  """
445
466
  The tags to apply to the cluster security group.
446
467
  """
447
468
  return pulumi.get(self, "cluster_security_group_tags")
448
469
 
449
470
  @cluster_security_group_tags.setter
450
- def cluster_security_group_tags(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
471
+ def cluster_security_group_tags(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]]):
451
472
  pulumi.set(self, "cluster_security_group_tags", value)
452
473
 
453
474
  @property
454
475
  @pulumi.getter(name="clusterTags")
455
- def cluster_tags(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
476
+ def cluster_tags(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]]:
456
477
  """
457
478
  The tags to apply to the EKS cluster.
458
479
  """
459
480
  return pulumi.get(self, "cluster_tags")
460
481
 
461
482
  @cluster_tags.setter
462
- def cluster_tags(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
483
+ def cluster_tags(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]]):
463
484
  pulumi.set(self, "cluster_tags", value)
464
485
 
465
486
  @property
@@ -476,7 +497,7 @@ class ClusterArgs:
476
497
 
477
498
  @property
478
499
  @pulumi.getter(name="createInstanceRole")
479
- def create_instance_role(self) -> Optional[bool]:
500
+ def create_instance_role(self) -> Optional[builtins.bool]:
480
501
  """
481
502
  Whether to create the instance role for the EKS cluster. Defaults to true when using the default node group, false otherwise.
482
503
  If set to false when using the default node group, an instance role or instance profile must be provided.n
@@ -485,12 +506,12 @@ class ClusterArgs:
485
506
  return pulumi.get(self, "create_instance_role")
486
507
 
487
508
  @create_instance_role.setter
488
- def create_instance_role(self, value: Optional[bool]):
509
+ def create_instance_role(self, value: Optional[builtins.bool]):
489
510
  pulumi.set(self, "create_instance_role", value)
490
511
 
491
512
  @property
492
513
  @pulumi.getter(name="createOidcProvider")
493
- def create_oidc_provider(self) -> Optional[pulumi.Input[bool]]:
514
+ def create_oidc_provider(self) -> Optional[pulumi.Input[builtins.bool]]:
494
515
  """
495
516
  Indicates whether an IAM OIDC Provider is created for the EKS cluster.
496
517
 
@@ -505,7 +526,7 @@ class ClusterArgs:
505
526
  return pulumi.get(self, "create_oidc_provider")
506
527
 
507
528
  @create_oidc_provider.setter
508
- def create_oidc_provider(self, value: Optional[pulumi.Input[bool]]):
529
+ def create_oidc_provider(self, value: Optional[pulumi.Input[builtins.bool]]):
509
530
  pulumi.set(self, "create_oidc_provider", value)
510
531
 
511
532
  @property
@@ -523,32 +544,32 @@ class ClusterArgs:
523
544
  pulumi.set(self, "creation_role_provider", value)
524
545
 
525
546
  @property
526
- @pulumi.getter(name="defaultAddonsToRemove")
527
- def default_addons_to_remove(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
547
+ @pulumi.getter(name="deletionProtection")
548
+ def deletion_protection(self) -> Optional[pulumi.Input[builtins.bool]]:
528
549
  """
529
- List of addons to remove upon creation. Any addon listed will be "adopted" and then removed. This allows for the creation of a baremetal cluster where no addon is deployed and direct management of addons via Pulumi Kubernetes resources. Valid entries are kube-proxy, coredns and vpc-cni. Only works on first creation of a cluster.
550
+ Whether to enable deletion protection for the cluster. When enabled, the cluster cannot be deleted unless deletion protection is first disabled. Default: `false`.
530
551
  """
531
- return pulumi.get(self, "default_addons_to_remove")
552
+ return pulumi.get(self, "deletion_protection")
532
553
 
533
- @default_addons_to_remove.setter
534
- def default_addons_to_remove(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
535
- pulumi.set(self, "default_addons_to_remove", value)
554
+ @deletion_protection.setter
555
+ def deletion_protection(self, value: Optional[pulumi.Input[builtins.bool]]):
556
+ pulumi.set(self, "deletion_protection", value)
536
557
 
537
558
  @property
538
559
  @pulumi.getter(name="desiredCapacity")
539
- def desired_capacity(self) -> Optional[pulumi.Input[int]]:
560
+ def desired_capacity(self) -> Optional[pulumi.Input[builtins.int]]:
540
561
  """
541
562
  The number of worker nodes that should be running in the cluster. Defaults to 2.
542
563
  """
543
564
  return pulumi.get(self, "desired_capacity")
544
565
 
545
566
  @desired_capacity.setter
546
- def desired_capacity(self, value: Optional[pulumi.Input[int]]):
567
+ def desired_capacity(self, value: Optional[pulumi.Input[builtins.int]]):
547
568
  pulumi.set(self, "desired_capacity", value)
548
569
 
549
570
  @property
550
571
  @pulumi.getter(name="enableConfigMapMutable")
551
- def enable_config_map_mutable(self) -> Optional[pulumi.Input[bool]]:
572
+ def enable_config_map_mutable(self) -> Optional[pulumi.Input[builtins.bool]]:
552
573
  """
553
574
  Sets the 'enableConfigMapMutable' option on the cluster kubernetes provider.
554
575
 
@@ -558,24 +579,24 @@ class ClusterArgs:
558
579
  return pulumi.get(self, "enable_config_map_mutable")
559
580
 
560
581
  @enable_config_map_mutable.setter
561
- def enable_config_map_mutable(self, value: Optional[pulumi.Input[bool]]):
582
+ def enable_config_map_mutable(self, value: Optional[pulumi.Input[builtins.bool]]):
562
583
  pulumi.set(self, "enable_config_map_mutable", value)
563
584
 
564
585
  @property
565
586
  @pulumi.getter(name="enabledClusterLogTypes")
566
- def enabled_cluster_log_types(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
587
+ def enabled_cluster_log_types(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]:
567
588
  """
568
589
  Enable EKS control plane logging. This sends logs to cloudwatch. Possible list of values are: ["api", "audit", "authenticator", "controllerManager", "scheduler"]. By default it is off.
569
590
  """
570
591
  return pulumi.get(self, "enabled_cluster_log_types")
571
592
 
572
593
  @enabled_cluster_log_types.setter
573
- def enabled_cluster_log_types(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
594
+ def enabled_cluster_log_types(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]):
574
595
  pulumi.set(self, "enabled_cluster_log_types", value)
575
596
 
576
597
  @property
577
598
  @pulumi.getter(name="encryptionConfigKeyArn")
578
- def encryption_config_key_arn(self) -> Optional[pulumi.Input[str]]:
599
+ def encryption_config_key_arn(self) -> Optional[pulumi.Input[builtins.str]]:
579
600
  """
580
601
  KMS Key ARN to use with the encryption configuration for the cluster.
581
602
 
@@ -586,48 +607,48 @@ class ClusterArgs:
586
607
  return pulumi.get(self, "encryption_config_key_arn")
587
608
 
588
609
  @encryption_config_key_arn.setter
589
- def encryption_config_key_arn(self, value: Optional[pulumi.Input[str]]):
610
+ def encryption_config_key_arn(self, value: Optional[pulumi.Input[builtins.str]]):
590
611
  pulumi.set(self, "encryption_config_key_arn", value)
591
612
 
592
613
  @property
593
614
  @pulumi.getter(name="endpointPrivateAccess")
594
- def endpoint_private_access(self) -> Optional[pulumi.Input[bool]]:
615
+ def endpoint_private_access(self) -> Optional[pulumi.Input[builtins.bool]]:
595
616
  """
596
617
  Indicates whether or not the Amazon EKS private API server endpoint is enabled. Default is `false`.
597
618
  """
598
619
  return pulumi.get(self, "endpoint_private_access")
599
620
 
600
621
  @endpoint_private_access.setter
601
- def endpoint_private_access(self, value: Optional[pulumi.Input[bool]]):
622
+ def endpoint_private_access(self, value: Optional[pulumi.Input[builtins.bool]]):
602
623
  pulumi.set(self, "endpoint_private_access", value)
603
624
 
604
625
  @property
605
626
  @pulumi.getter(name="endpointPublicAccess")
606
- def endpoint_public_access(self) -> Optional[pulumi.Input[bool]]:
627
+ def endpoint_public_access(self) -> Optional[pulumi.Input[builtins.bool]]:
607
628
  """
608
629
  Indicates whether or not the Amazon EKS public API server endpoint is enabled. Default is `true`.
609
630
  """
610
631
  return pulumi.get(self, "endpoint_public_access")
611
632
 
612
633
  @endpoint_public_access.setter
613
- def endpoint_public_access(self, value: Optional[pulumi.Input[bool]]):
634
+ def endpoint_public_access(self, value: Optional[pulumi.Input[builtins.bool]]):
614
635
  pulumi.set(self, "endpoint_public_access", value)
615
636
 
616
637
  @property
617
638
  @pulumi.getter
618
- def fargate(self) -> Optional[pulumi.Input[Union[bool, 'FargateProfileArgs']]]:
639
+ def fargate(self) -> Optional[pulumi.Input[Union[builtins.bool, 'FargateProfileArgs']]]:
619
640
  """
620
641
  Add support for launching pods in Fargate. Defaults to launching pods in the `default` namespace. If specified, the default node group is skipped as though `skipDefaultNodeGroup: true` had been passed.
621
642
  """
622
643
  return pulumi.get(self, "fargate")
623
644
 
624
645
  @fargate.setter
625
- def fargate(self, value: Optional[pulumi.Input[Union[bool, 'FargateProfileArgs']]]):
646
+ def fargate(self, value: Optional[pulumi.Input[Union[builtins.bool, 'FargateProfileArgs']]]):
626
647
  pulumi.set(self, "fargate", value)
627
648
 
628
649
  @property
629
650
  @pulumi.getter
630
- def gpu(self) -> Optional[pulumi.Input[bool]]:
651
+ def gpu(self) -> Optional[pulumi.Input[builtins.bool]]:
631
652
  """
632
653
  Use the latest recommended EKS Optimized Linux AMI with GPU support for the worker nodes from the AWS Systems Manager Parameter Store.
633
654
 
@@ -642,19 +663,19 @@ class ClusterArgs:
642
663
  return pulumi.get(self, "gpu")
643
664
 
644
665
  @gpu.setter
645
- def gpu(self, value: Optional[pulumi.Input[bool]]):
666
+ def gpu(self, value: Optional[pulumi.Input[builtins.bool]]):
646
667
  pulumi.set(self, "gpu", value)
647
668
 
648
669
  @property
649
670
  @pulumi.getter(name="instanceProfileName")
650
- def instance_profile_name(self) -> Optional[pulumi.Input[str]]:
671
+ def instance_profile_name(self) -> Optional[pulumi.Input[builtins.str]]:
651
672
  """
652
673
  The default IAM InstanceProfile to use on the Worker NodeGroups, if one is not already set in the NodeGroup.
653
674
  """
654
675
  return pulumi.get(self, "instance_profile_name")
655
676
 
656
677
  @instance_profile_name.setter
657
- def instance_profile_name(self, value: Optional[pulumi.Input[str]]):
678
+ def instance_profile_name(self, value: Optional[pulumi.Input[builtins.str]]):
658
679
  pulumi.set(self, "instance_profile_name", value)
659
680
 
660
681
  @property
@@ -687,19 +708,19 @@ class ClusterArgs:
687
708
 
688
709
  @property
689
710
  @pulumi.getter(name="instanceType")
690
- def instance_type(self) -> Optional[pulumi.Input[str]]:
711
+ def instance_type(self) -> Optional[pulumi.Input[builtins.str]]:
691
712
  """
692
713
  The instance type to use for the cluster's nodes. Defaults to "t3.medium".
693
714
  """
694
715
  return pulumi.get(self, "instance_type")
695
716
 
696
717
  @instance_type.setter
697
- def instance_type(self, value: Optional[pulumi.Input[str]]):
718
+ def instance_type(self, value: Optional[pulumi.Input[builtins.str]]):
698
719
  pulumi.set(self, "instance_type", value)
699
720
 
700
721
  @property
701
722
  @pulumi.getter(name="ipFamily")
702
- def ip_family(self) -> Optional[pulumi.Input[str]]:
723
+ def ip_family(self) -> Optional[pulumi.Input[builtins.str]]:
703
724
  """
704
725
  The IP family used to assign Kubernetes pod and service addresses. Valid values are `ipv4` (default) and `ipv6`.
705
726
  You can only specify an IP family when you create a cluster, changing this value will force a new cluster to be created.
@@ -707,7 +728,7 @@ class ClusterArgs:
707
728
  return pulumi.get(self, "ip_family")
708
729
 
709
730
  @ip_family.setter
710
- def ip_family(self, value: Optional[pulumi.Input[str]]):
731
+ def ip_family(self, value: Optional[pulumi.Input[builtins.str]]):
711
732
  pulumi.set(self, "ip_family", value)
712
733
 
713
734
  @property
@@ -724,7 +745,7 @@ class ClusterArgs:
724
745
 
725
746
  @property
726
747
  @pulumi.getter(name="kubernetesServiceIpAddressRange")
727
- def kubernetes_service_ip_address_range(self) -> Optional[pulumi.Input[str]]:
748
+ def kubernetes_service_ip_address_range(self) -> Optional[pulumi.Input[builtins.str]]:
728
749
  """
729
750
  The CIDR block to assign Kubernetes service IP addresses from. If you don't
730
751
  specify a block, Kubernetes assigns addresses from either the 10.100.0.0/16 or
@@ -740,36 +761,36 @@ class ClusterArgs:
740
761
  return pulumi.get(self, "kubernetes_service_ip_address_range")
741
762
 
742
763
  @kubernetes_service_ip_address_range.setter
743
- def kubernetes_service_ip_address_range(self, value: Optional[pulumi.Input[str]]):
764
+ def kubernetes_service_ip_address_range(self, value: Optional[pulumi.Input[builtins.str]]):
744
765
  pulumi.set(self, "kubernetes_service_ip_address_range", value)
745
766
 
746
767
  @property
747
768
  @pulumi.getter(name="maxSize")
748
- def max_size(self) -> Optional[pulumi.Input[int]]:
769
+ def max_size(self) -> Optional[pulumi.Input[builtins.int]]:
749
770
  """
750
771
  The maximum number of worker nodes running in the cluster. Defaults to 2.
751
772
  """
752
773
  return pulumi.get(self, "max_size")
753
774
 
754
775
  @max_size.setter
755
- def max_size(self, value: Optional[pulumi.Input[int]]):
776
+ def max_size(self, value: Optional[pulumi.Input[builtins.int]]):
756
777
  pulumi.set(self, "max_size", value)
757
778
 
758
779
  @property
759
780
  @pulumi.getter(name="minSize")
760
- def min_size(self) -> Optional[pulumi.Input[int]]:
781
+ def min_size(self) -> Optional[pulumi.Input[builtins.int]]:
761
782
  """
762
783
  The minimum number of worker nodes running in the cluster. Defaults to 1.
763
784
  """
764
785
  return pulumi.get(self, "min_size")
765
786
 
766
787
  @min_size.setter
767
- def min_size(self, value: Optional[pulumi.Input[int]]):
788
+ def min_size(self, value: Optional[pulumi.Input[builtins.int]]):
768
789
  pulumi.set(self, "min_size", value)
769
790
 
770
791
  @property
771
792
  @pulumi.getter
772
- def name(self) -> Optional[pulumi.Input[str]]:
793
+ def name(self) -> Optional[pulumi.Input[builtins.str]]:
773
794
  """
774
795
  The cluster's physical resource name.
775
796
 
@@ -780,12 +801,12 @@ class ClusterArgs:
780
801
  return pulumi.get(self, "name")
781
802
 
782
803
  @name.setter
783
- def name(self, value: Optional[pulumi.Input[str]]):
804
+ def name(self, value: Optional[pulumi.Input[builtins.str]]):
784
805
  pulumi.set(self, "name", value)
785
806
 
786
807
  @property
787
808
  @pulumi.getter(name="nodeAmiId")
788
- def node_ami_id(self) -> Optional[pulumi.Input[str]]:
809
+ def node_ami_id(self) -> Optional[pulumi.Input[builtins.str]]:
789
810
  """
790
811
  The AMI ID to use for the worker nodes.
791
812
 
@@ -799,19 +820,19 @@ class ClusterArgs:
799
820
  return pulumi.get(self, "node_ami_id")
800
821
 
801
822
  @node_ami_id.setter
802
- def node_ami_id(self, value: Optional[pulumi.Input[str]]):
823
+ def node_ami_id(self, value: Optional[pulumi.Input[builtins.str]]):
803
824
  pulumi.set(self, "node_ami_id", value)
804
825
 
805
826
  @property
806
827
  @pulumi.getter(name="nodeAssociatePublicIpAddress")
807
- def node_associate_public_ip_address(self) -> Optional[bool]:
828
+ def node_associate_public_ip_address(self) -> Optional[builtins.bool]:
808
829
  """
809
830
  Whether or not to auto-assign the EKS worker nodes public IP addresses. 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.
810
831
  """
811
832
  return pulumi.get(self, "node_associate_public_ip_address")
812
833
 
813
834
  @node_associate_public_ip_address.setter
814
- def node_associate_public_ip_address(self, value: Optional[bool]):
835
+ def node_associate_public_ip_address(self, value: Optional[builtins.bool]):
815
836
  pulumi.set(self, "node_associate_public_ip_address", value)
816
837
 
817
838
  @property
@@ -828,7 +849,7 @@ class ClusterArgs:
828
849
 
829
850
  @property
830
851
  @pulumi.getter(name="nodePublicKey")
831
- def node_public_key(self) -> Optional[pulumi.Input[str]]:
852
+ def node_public_key(self) -> Optional[pulumi.Input[builtins.str]]:
832
853
  """
833
854
  Public key material for SSH access to worker nodes. See allowed formats at:
834
855
  https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html
@@ -837,36 +858,36 @@ class ClusterArgs:
837
858
  return pulumi.get(self, "node_public_key")
838
859
 
839
860
  @node_public_key.setter
840
- def node_public_key(self, value: Optional[pulumi.Input[str]]):
861
+ def node_public_key(self, value: Optional[pulumi.Input[builtins.str]]):
841
862
  pulumi.set(self, "node_public_key", value)
842
863
 
843
864
  @property
844
865
  @pulumi.getter(name="nodeRootVolumeEncrypted")
845
- def node_root_volume_encrypted(self) -> Optional[pulumi.Input[bool]]:
866
+ def node_root_volume_encrypted(self) -> Optional[pulumi.Input[builtins.bool]]:
846
867
  """
847
868
  Encrypt the root block device of the nodes in the node group.
848
869
  """
849
870
  return pulumi.get(self, "node_root_volume_encrypted")
850
871
 
851
872
  @node_root_volume_encrypted.setter
852
- def node_root_volume_encrypted(self, value: Optional[pulumi.Input[bool]]):
873
+ def node_root_volume_encrypted(self, value: Optional[pulumi.Input[builtins.bool]]):
853
874
  pulumi.set(self, "node_root_volume_encrypted", value)
854
875
 
855
876
  @property
856
877
  @pulumi.getter(name="nodeRootVolumeSize")
857
- def node_root_volume_size(self) -> Optional[pulumi.Input[int]]:
878
+ def node_root_volume_size(self) -> Optional[pulumi.Input[builtins.int]]:
858
879
  """
859
880
  The size in GiB of a cluster node's root volume. Defaults to 20.
860
881
  """
861
882
  return pulumi.get(self, "node_root_volume_size")
862
883
 
863
884
  @node_root_volume_size.setter
864
- def node_root_volume_size(self, value: Optional[pulumi.Input[int]]):
885
+ def node_root_volume_size(self, value: Optional[pulumi.Input[builtins.int]]):
865
886
  pulumi.set(self, "node_root_volume_size", value)
866
887
 
867
888
  @property
868
889
  @pulumi.getter(name="nodeSecurityGroupTags")
869
- def node_security_group_tags(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
890
+ def node_security_group_tags(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]]:
870
891
  """
871
892
  The tags to apply to the default `nodeSecurityGroup` created by the cluster.
872
893
 
@@ -875,36 +896,36 @@ class ClusterArgs:
875
896
  return pulumi.get(self, "node_security_group_tags")
876
897
 
877
898
  @node_security_group_tags.setter
878
- def node_security_group_tags(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
899
+ def node_security_group_tags(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]]):
879
900
  pulumi.set(self, "node_security_group_tags", value)
880
901
 
881
902
  @property
882
903
  @pulumi.getter(name="nodeSubnetIds")
883
- def node_subnet_ids(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
904
+ def node_subnet_ids(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]:
884
905
  """
885
906
  The subnets to use for worker nodes. Defaults to the value of subnetIds.
886
907
  """
887
908
  return pulumi.get(self, "node_subnet_ids")
888
909
 
889
910
  @node_subnet_ids.setter
890
- def node_subnet_ids(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
911
+ def node_subnet_ids(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]):
891
912
  pulumi.set(self, "node_subnet_ids", value)
892
913
 
893
914
  @property
894
915
  @pulumi.getter(name="nodeUserData")
895
- def node_user_data(self) -> Optional[pulumi.Input[str]]:
916
+ def node_user_data(self) -> Optional[pulumi.Input[builtins.str]]:
896
917
  """
897
918
  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 `#!`).
898
919
  """
899
920
  return pulumi.get(self, "node_user_data")
900
921
 
901
922
  @node_user_data.setter
902
- def node_user_data(self, value: Optional[pulumi.Input[str]]):
923
+ def node_user_data(self, value: Optional[pulumi.Input[builtins.str]]):
903
924
  pulumi.set(self, "node_user_data", value)
904
925
 
905
926
  @property
906
927
  @pulumi.getter(name="privateSubnetIds")
907
- def private_subnet_ids(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
928
+ def private_subnet_ids(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]:
908
929
  """
909
930
  The set of private subnets to use for the worker node groups on the EKS cluster. These subnets are automatically tagged by EKS for Kubernetes purposes.
910
931
 
@@ -925,7 +946,7 @@ class ClusterArgs:
925
946
  return pulumi.get(self, "private_subnet_ids")
926
947
 
927
948
  @private_subnet_ids.setter
928
- def private_subnet_ids(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
949
+ def private_subnet_ids(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]):
929
950
  pulumi.set(self, "private_subnet_ids", value)
930
951
 
931
952
  @property
@@ -954,7 +975,7 @@ class ClusterArgs:
954
975
 
955
976
  @property
956
977
  @pulumi.getter
957
- def proxy(self) -> Optional[str]:
978
+ def proxy(self) -> Optional[builtins.str]:
958
979
  """
959
980
  The HTTP(S) proxy to use within a proxied environment.
960
981
 
@@ -975,24 +996,24 @@ class ClusterArgs:
975
996
  return pulumi.get(self, "proxy")
976
997
 
977
998
  @proxy.setter
978
- def proxy(self, value: Optional[str]):
999
+ def proxy(self, value: Optional[builtins.str]):
979
1000
  pulumi.set(self, "proxy", value)
980
1001
 
981
1002
  @property
982
1003
  @pulumi.getter(name="publicAccessCidrs")
983
- def public_access_cidrs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
1004
+ def public_access_cidrs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]:
984
1005
  """
985
1006
  Indicates which CIDR blocks can access the Amazon EKS public API server endpoint.
986
1007
  """
987
1008
  return pulumi.get(self, "public_access_cidrs")
988
1009
 
989
1010
  @public_access_cidrs.setter
990
- def public_access_cidrs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
1011
+ def public_access_cidrs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]):
991
1012
  pulumi.set(self, "public_access_cidrs", value)
992
1013
 
993
1014
  @property
994
1015
  @pulumi.getter(name="publicSubnetIds")
995
- def public_subnet_ids(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
1016
+ def public_subnet_ids(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]:
996
1017
  """
997
1018
  The set of public subnets to use for the worker node groups on the EKS cluster. These subnets are automatically tagged by EKS for Kubernetes purposes.
998
1019
 
@@ -1011,7 +1032,7 @@ class ClusterArgs:
1011
1032
  return pulumi.get(self, "public_subnet_ids")
1012
1033
 
1013
1034
  @public_subnet_ids.setter
1014
- def public_subnet_ids(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
1035
+ def public_subnet_ids(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]):
1015
1036
  pulumi.set(self, "public_subnet_ids", value)
1016
1037
 
1017
1038
  @property
@@ -1040,19 +1061,19 @@ class ClusterArgs:
1040
1061
 
1041
1062
  @property
1042
1063
  @pulumi.getter(name="skipDefaultNodeGroup")
1043
- def skip_default_node_group(self) -> Optional[bool]:
1064
+ def skip_default_node_group(self) -> Optional[builtins.bool]:
1044
1065
  """
1045
1066
  If this toggle is set to true, the EKS cluster will be created without node group attached. Defaults to false, unless `fargate` or `autoMode` is enabled.
1046
1067
  """
1047
1068
  return pulumi.get(self, "skip_default_node_group")
1048
1069
 
1049
1070
  @skip_default_node_group.setter
1050
- def skip_default_node_group(self, value: Optional[bool]):
1071
+ def skip_default_node_group(self, value: Optional[builtins.bool]):
1051
1072
  pulumi.set(self, "skip_default_node_group", value)
1052
1073
 
1053
1074
  @property
1054
1075
  @pulumi.getter(name="skipDefaultSecurityGroups")
1055
- def skip_default_security_groups(self) -> Optional[bool]:
1076
+ def skip_default_security_groups(self) -> Optional[builtins.bool]:
1056
1077
  """
1057
1078
  If this toggle is set to true, the EKS cluster will be created without the default node and cluster security groups. Defaults to false, unless `autoMode` is enabled.
1058
1079
 
@@ -1061,12 +1082,12 @@ class ClusterArgs:
1061
1082
  return pulumi.get(self, "skip_default_security_groups")
1062
1083
 
1063
1084
  @skip_default_security_groups.setter
1064
- def skip_default_security_groups(self, value: Optional[bool]):
1085
+ def skip_default_security_groups(self, value: Optional[builtins.bool]):
1065
1086
  pulumi.set(self, "skip_default_security_groups", value)
1066
1087
 
1067
1088
  @property
1068
1089
  @pulumi.getter(name="storageClasses")
1069
- def storage_classes(self) -> Optional[Union[str, Mapping[str, 'StorageClassArgs']]]:
1090
+ def storage_classes(self) -> Optional[Union[builtins.str, Mapping[str, 'StorageClassArgs']]]:
1070
1091
  """
1071
1092
  An optional set of StorageClasses to enable for the cluster. If this is a single volume type rather than a map, a single StorageClass will be created for that volume type.
1072
1093
 
@@ -1075,12 +1096,12 @@ class ClusterArgs:
1075
1096
  return pulumi.get(self, "storage_classes")
1076
1097
 
1077
1098
  @storage_classes.setter
1078
- def storage_classes(self, value: Optional[Union[str, Mapping[str, 'StorageClassArgs']]]):
1099
+ def storage_classes(self, value: Optional[Union[builtins.str, Mapping[str, 'StorageClassArgs']]]):
1079
1100
  pulumi.set(self, "storage_classes", value)
1080
1101
 
1081
1102
  @property
1082
1103
  @pulumi.getter(name="subnetIds")
1083
- def subnet_ids(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
1104
+ def subnet_ids(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]:
1084
1105
  """
1085
1106
  The set of all subnets, public and private, to use for the worker node groups on the EKS cluster. These subnets are automatically tagged by EKS for Kubernetes purposes.
1086
1107
 
@@ -1095,24 +1116,36 @@ class ClusterArgs:
1095
1116
  return pulumi.get(self, "subnet_ids")
1096
1117
 
1097
1118
  @subnet_ids.setter
1098
- def subnet_ids(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
1119
+ def subnet_ids(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]):
1099
1120
  pulumi.set(self, "subnet_ids", value)
1100
1121
 
1101
1122
  @property
1102
1123
  @pulumi.getter
1103
- def tags(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
1124
+ def tags(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]]:
1104
1125
  """
1105
1126
  Key-value mapping of tags that are automatically applied to all AWS resources directly under management with this cluster, which support tagging.
1106
1127
  """
1107
1128
  return pulumi.get(self, "tags")
1108
1129
 
1109
1130
  @tags.setter
1110
- def tags(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
1131
+ def tags(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]]):
1111
1132
  pulumi.set(self, "tags", value)
1112
1133
 
1134
+ @property
1135
+ @pulumi.getter(name="upgradePolicy")
1136
+ def upgrade_policy(self) -> Optional[pulumi.Input['pulumi_aws.eks.ClusterUpgradePolicyArgs']]:
1137
+ """
1138
+ The cluster's upgrade policy. Valid support types are "STANDARD" and "EXTENDED". Defaults to "EXTENDED".
1139
+ """
1140
+ return pulumi.get(self, "upgrade_policy")
1141
+
1142
+ @upgrade_policy.setter
1143
+ def upgrade_policy(self, value: Optional[pulumi.Input['pulumi_aws.eks.ClusterUpgradePolicyArgs']]):
1144
+ pulumi.set(self, "upgrade_policy", value)
1145
+
1113
1146
  @property
1114
1147
  @pulumi.getter(name="useDefaultVpcCni")
1115
- def use_default_vpc_cni(self) -> Optional[bool]:
1148
+ def use_default_vpc_cni(self) -> Optional[builtins.bool]:
1116
1149
  """
1117
1150
  Use the default VPC CNI instead of creating a custom one. Should not be used in conjunction with `vpcCniOptions`.
1118
1151
  Defaults to true, unless `autoMode` is enabled.
@@ -1120,7 +1153,7 @@ class ClusterArgs:
1120
1153
  return pulumi.get(self, "use_default_vpc_cni")
1121
1154
 
1122
1155
  @use_default_vpc_cni.setter
1123
- def use_default_vpc_cni(self, value: Optional[bool]):
1156
+ def use_default_vpc_cni(self, value: Optional[builtins.bool]):
1124
1157
  pulumi.set(self, "use_default_vpc_cni", value)
1125
1158
 
1126
1159
  @property
@@ -1137,14 +1170,14 @@ class ClusterArgs:
1137
1170
 
1138
1171
  @property
1139
1172
  @pulumi.getter
1140
- def version(self) -> Optional[pulumi.Input[str]]:
1173
+ def version(self) -> Optional[pulumi.Input[builtins.str]]:
1141
1174
  """
1142
1175
  Desired Kubernetes master / control plane version. If you do not specify a value, the latest available version is used.
1143
1176
  """
1144
1177
  return pulumi.get(self, "version")
1145
1178
 
1146
1179
  @version.setter
1147
- def version(self, value: Optional[pulumi.Input[str]]):
1180
+ def version(self, value: Optional[pulumi.Input[builtins.str]]):
1148
1181
  pulumi.set(self, "version", value)
1149
1182
 
1150
1183
  @property
@@ -1161,17 +1194,18 @@ class ClusterArgs:
1161
1194
 
1162
1195
  @property
1163
1196
  @pulumi.getter(name="vpcId")
1164
- def vpc_id(self) -> Optional[pulumi.Input[str]]:
1197
+ def vpc_id(self) -> Optional[pulumi.Input[builtins.str]]:
1165
1198
  """
1166
1199
  The VPC in which to create the cluster and its worker nodes. If unset, the cluster will be created in the default VPC.
1167
1200
  """
1168
1201
  return pulumi.get(self, "vpc_id")
1169
1202
 
1170
1203
  @vpc_id.setter
1171
- def vpc_id(self, value: Optional[pulumi.Input[str]]):
1204
+ def vpc_id(self, value: Optional[pulumi.Input[builtins.str]]):
1172
1205
  pulumi.set(self, "vpc_id", value)
1173
1206
 
1174
1207
 
1208
+ @pulumi.type_token("eks:index:Cluster")
1175
1209
  class Cluster(pulumi.ComponentResource):
1176
1210
  @overload
1177
1211
  def __init__(__self__,
@@ -1180,58 +1214,60 @@ class Cluster(pulumi.ComponentResource):
1180
1214
  access_entries: Optional[Mapping[str, Union['AccessEntryArgs', 'AccessEntryArgsDict']]] = None,
1181
1215
  authentication_mode: Optional['AuthenticationMode'] = None,
1182
1216
  auto_mode: Optional[Union['AutoModeOptionsArgs', 'AutoModeOptionsArgsDict']] = None,
1217
+ bootstrap_self_managed_addons: Optional[pulumi.Input[builtins.bool]] = None,
1183
1218
  cluster_security_group: Optional[pulumi.Input['pulumi_aws.ec2.SecurityGroup']] = None,
1184
- cluster_security_group_tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
1185
- cluster_tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
1219
+ cluster_security_group_tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]] = None,
1220
+ cluster_tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]] = None,
1186
1221
  coredns_addon_options: Optional[Union['CoreDnsAddonOptionsArgs', 'CoreDnsAddonOptionsArgsDict']] = None,
1187
- create_instance_role: Optional[bool] = None,
1188
- create_oidc_provider: Optional[pulumi.Input[bool]] = None,
1222
+ create_instance_role: Optional[builtins.bool] = None,
1223
+ create_oidc_provider: Optional[pulumi.Input[builtins.bool]] = None,
1189
1224
  creation_role_provider: Optional[Union['CreationRoleProviderArgs', 'CreationRoleProviderArgsDict']] = None,
1190
- default_addons_to_remove: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
1191
- desired_capacity: Optional[pulumi.Input[int]] = None,
1192
- enable_config_map_mutable: Optional[pulumi.Input[bool]] = None,
1193
- enabled_cluster_log_types: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
1194
- encryption_config_key_arn: Optional[pulumi.Input[str]] = None,
1195
- endpoint_private_access: Optional[pulumi.Input[bool]] = None,
1196
- endpoint_public_access: Optional[pulumi.Input[bool]] = None,
1197
- fargate: Optional[pulumi.Input[Union[bool, Union['FargateProfileArgs', 'FargateProfileArgsDict']]]] = None,
1198
- gpu: Optional[pulumi.Input[bool]] = None,
1199
- instance_profile_name: Optional[pulumi.Input[str]] = None,
1225
+ deletion_protection: Optional[pulumi.Input[builtins.bool]] = None,
1226
+ desired_capacity: Optional[pulumi.Input[builtins.int]] = None,
1227
+ enable_config_map_mutable: Optional[pulumi.Input[builtins.bool]] = None,
1228
+ enabled_cluster_log_types: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
1229
+ encryption_config_key_arn: Optional[pulumi.Input[builtins.str]] = None,
1230
+ endpoint_private_access: Optional[pulumi.Input[builtins.bool]] = None,
1231
+ endpoint_public_access: Optional[pulumi.Input[builtins.bool]] = None,
1232
+ fargate: Optional[pulumi.Input[Union[builtins.bool, Union['FargateProfileArgs', 'FargateProfileArgsDict']]]] = None,
1233
+ gpu: Optional[pulumi.Input[builtins.bool]] = None,
1234
+ instance_profile_name: Optional[pulumi.Input[builtins.str]] = None,
1200
1235
  instance_role: Optional[pulumi.Input['pulumi_aws.iam.Role']] = None,
1201
1236
  instance_roles: Optional[pulumi.Input[Sequence[pulumi.Input['pulumi_aws.iam.Role']]]] = None,
1202
- instance_type: Optional[pulumi.Input[str]] = None,
1203
- ip_family: Optional[pulumi.Input[str]] = None,
1237
+ instance_type: Optional[pulumi.Input[builtins.str]] = None,
1238
+ ip_family: Optional[pulumi.Input[builtins.str]] = None,
1204
1239
  kube_proxy_addon_options: Optional[Union['KubeProxyAddonOptionsArgs', 'KubeProxyAddonOptionsArgsDict']] = None,
1205
- kubernetes_service_ip_address_range: Optional[pulumi.Input[str]] = None,
1206
- max_size: Optional[pulumi.Input[int]] = None,
1207
- min_size: Optional[pulumi.Input[int]] = None,
1208
- name: Optional[pulumi.Input[str]] = None,
1209
- node_ami_id: Optional[pulumi.Input[str]] = None,
1210
- node_associate_public_ip_address: Optional[bool] = None,
1240
+ kubernetes_service_ip_address_range: Optional[pulumi.Input[builtins.str]] = None,
1241
+ max_size: Optional[pulumi.Input[builtins.int]] = None,
1242
+ min_size: Optional[pulumi.Input[builtins.int]] = None,
1243
+ name: Optional[pulumi.Input[builtins.str]] = None,
1244
+ node_ami_id: Optional[pulumi.Input[builtins.str]] = None,
1245
+ node_associate_public_ip_address: Optional[builtins.bool] = None,
1211
1246
  node_group_options: Optional[Union['ClusterNodeGroupOptionsArgs', 'ClusterNodeGroupOptionsArgsDict']] = None,
1212
- node_public_key: Optional[pulumi.Input[str]] = None,
1213
- node_root_volume_encrypted: Optional[pulumi.Input[bool]] = None,
1214
- node_root_volume_size: Optional[pulumi.Input[int]] = None,
1215
- node_security_group_tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
1216
- node_subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
1217
- node_user_data: Optional[pulumi.Input[str]] = None,
1218
- private_subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
1247
+ node_public_key: Optional[pulumi.Input[builtins.str]] = None,
1248
+ node_root_volume_encrypted: Optional[pulumi.Input[builtins.bool]] = None,
1249
+ node_root_volume_size: Optional[pulumi.Input[builtins.int]] = None,
1250
+ node_security_group_tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]] = None,
1251
+ node_subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
1252
+ node_user_data: Optional[pulumi.Input[builtins.str]] = None,
1253
+ private_subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
1219
1254
  provider_credential_opts: Optional[pulumi.Input[Union['KubeconfigOptionsArgs', 'KubeconfigOptionsArgsDict']]] = None,
1220
- proxy: Optional[str] = None,
1221
- public_access_cidrs: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
1222
- public_subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
1255
+ proxy: Optional[builtins.str] = None,
1256
+ public_access_cidrs: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
1257
+ public_subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
1223
1258
  role_mappings: Optional[pulumi.Input[Sequence[pulumi.Input[Union['RoleMappingArgs', 'RoleMappingArgsDict']]]]] = None,
1224
1259
  service_role: Optional[pulumi.Input['pulumi_aws.iam.Role']] = None,
1225
- skip_default_node_group: Optional[bool] = None,
1226
- skip_default_security_groups: Optional[bool] = None,
1227
- storage_classes: Optional[Union[str, Mapping[str, Union['StorageClassArgs', 'StorageClassArgsDict']]]] = None,
1228
- subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
1229
- tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
1230
- use_default_vpc_cni: Optional[bool] = None,
1260
+ skip_default_node_group: Optional[builtins.bool] = None,
1261
+ skip_default_security_groups: Optional[builtins.bool] = None,
1262
+ storage_classes: Optional[Union[builtins.str, Mapping[str, Union['StorageClassArgs', 'StorageClassArgsDict']]]] = None,
1263
+ subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
1264
+ tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]] = None,
1265
+ upgrade_policy: Optional[pulumi.Input[pulumi.InputType['pulumi_aws.eks.ClusterUpgradePolicyArgs']]] = None,
1266
+ use_default_vpc_cni: Optional[builtins.bool] = None,
1231
1267
  user_mappings: Optional[pulumi.Input[Sequence[pulumi.Input[Union['UserMappingArgs', 'UserMappingArgsDict']]]]] = None,
1232
- version: Optional[pulumi.Input[str]] = None,
1268
+ version: Optional[pulumi.Input[builtins.str]] = None,
1233
1269
  vpc_cni_options: Optional[Union['VpcCniOptionsArgs', 'VpcCniOptionsArgsDict']] = None,
1234
- vpc_id: Optional[pulumi.Input[str]] = None,
1270
+ vpc_id: Optional[pulumi.Input[builtins.str]] = None,
1235
1271
  __props__=None):
1236
1272
  """
1237
1273
  Cluster is a component that wraps the AWS and Kubernetes resources necessary to run an EKS cluster, its worker nodes, its optional StorageClasses, and an optional deployment of the Kubernetes Dashboard.
@@ -1267,16 +1303,17 @@ class Cluster(pulumi.ComponentResource):
1267
1303
  :param Union['AutoModeOptionsArgs', 'AutoModeOptionsArgsDict'] auto_mode: Configuration Options for EKS Auto Mode. If EKS Auto Mode is enabled, AWS will manage cluster infrastructure on your behalf.
1268
1304
 
1269
1305
  For more information, see: https://docs.aws.amazon.com/eks/latest/userguide/automode.html
1306
+ :param pulumi.Input[builtins.bool] bootstrap_self_managed_addons: Install default unmanaged add-ons, such as `aws-cni`, `kube-proxy`, and CoreDNS during cluster creation. If `false`, you must manually install desired add-ons. Changing this value will force a new cluster to be created. Defaults to `true`
1270
1307
  :param pulumi.Input['pulumi_aws.ec2.SecurityGroup'] cluster_security_group: The security group to use for the cluster API endpoint. If not provided, a new security group will be created with full internet egress and ingress from node groups.
1271
1308
 
1272
1309
  Note: The security group resource should not contain any inline ingress or egress rules.
1273
- :param pulumi.Input[Mapping[str, pulumi.Input[str]]] cluster_security_group_tags: The tags to apply to the cluster security group.
1274
- :param pulumi.Input[Mapping[str, pulumi.Input[str]]] cluster_tags: The tags to apply to the EKS cluster.
1310
+ :param pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]] cluster_security_group_tags: The tags to apply to the cluster security group.
1311
+ :param pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]] cluster_tags: The tags to apply to the EKS cluster.
1275
1312
  :param Union['CoreDnsAddonOptionsArgs', 'CoreDnsAddonOptionsArgsDict'] coredns_addon_options: Options for managing the `coredns` addon.
1276
- :param bool create_instance_role: Whether to create the instance role for the EKS cluster. Defaults to true when using the default node group, false otherwise.
1313
+ :param builtins.bool create_instance_role: Whether to create the instance role for the EKS cluster. Defaults to true when using the default node group, false otherwise.
1277
1314
  If set to false when using the default node group, an instance role or instance profile must be provided.n
1278
1315
  Note: this option has no effect if a custom instance role is provided with `instanceRole` or `instanceRoles`.
1279
- :param pulumi.Input[bool] create_oidc_provider: Indicates whether an IAM OIDC Provider is created for the EKS cluster.
1316
+ :param pulumi.Input[builtins.bool] create_oidc_provider: Indicates whether an IAM OIDC Provider is created for the EKS cluster.
1280
1317
 
1281
1318
  The OIDC provider is used in the cluster in combination with k8s Service Account annotations to provide IAM roles at the k8s Pod level.
1282
1319
 
@@ -1288,22 +1325,22 @@ class Cluster(pulumi.ComponentResource):
1288
1325
  :param Union['CreationRoleProviderArgs', 'CreationRoleProviderArgsDict'] creation_role_provider: The IAM Role Provider used to create & authenticate against the EKS cluster. This role is given `[system:masters]` permission in K8S, See: https://docs.aws.amazon.com/eks/latest/userguide/add-user-role.html
1289
1326
 
1290
1327
  Note: This option is only supported with Pulumi nodejs programs. Please use `ProviderCredentialOpts` as an alternative instead.
1291
- :param pulumi.Input[Sequence[pulumi.Input[str]]] default_addons_to_remove: List of addons to remove upon creation. Any addon listed will be "adopted" and then removed. This allows for the creation of a baremetal cluster where no addon is deployed and direct management of addons via Pulumi Kubernetes resources. Valid entries are kube-proxy, coredns and vpc-cni. Only works on first creation of a cluster.
1292
- :param pulumi.Input[int] desired_capacity: The number of worker nodes that should be running in the cluster. Defaults to 2.
1293
- :param pulumi.Input[bool] enable_config_map_mutable: Sets the 'enableConfigMapMutable' option on the cluster kubernetes provider.
1328
+ :param pulumi.Input[builtins.bool] deletion_protection: Whether to enable deletion protection for the cluster. When enabled, the cluster cannot be deleted unless deletion protection is first disabled. Default: `false`.
1329
+ :param pulumi.Input[builtins.int] desired_capacity: The number of worker nodes that should be running in the cluster. Defaults to 2.
1330
+ :param pulumi.Input[builtins.bool] enable_config_map_mutable: Sets the 'enableConfigMapMutable' option on the cluster kubernetes provider.
1294
1331
 
1295
1332
  Applies updates to the aws-auth ConfigMap in place over a replace operation if set to true.
1296
1333
  https://www.pulumi.com/registry/packages/kubernetes/api-docs/provider/#enableconfigmapmutable_nodejs
1297
- :param pulumi.Input[Sequence[pulumi.Input[str]]] enabled_cluster_log_types: Enable EKS control plane logging. This sends logs to cloudwatch. Possible list of values are: ["api", "audit", "authenticator", "controllerManager", "scheduler"]. By default it is off.
1298
- :param pulumi.Input[str] encryption_config_key_arn: KMS Key ARN to use with the encryption configuration for the cluster.
1334
+ :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] enabled_cluster_log_types: Enable EKS control plane logging. This sends logs to cloudwatch. Possible list of values are: ["api", "audit", "authenticator", "controllerManager", "scheduler"]. By default it is off.
1335
+ :param pulumi.Input[builtins.str] encryption_config_key_arn: KMS Key ARN to use with the encryption configuration for the cluster.
1299
1336
 
1300
1337
  Only available on Kubernetes 1.13+ clusters created after March 6, 2020.
1301
1338
  See for more details:
1302
1339
  - https://aws.amazon.com/about-aws/whats-new/2020/03/amazon-eks-adds-envelope-encryption-for-secrets-with-aws-kms/
1303
- :param pulumi.Input[bool] endpoint_private_access: Indicates whether or not the Amazon EKS private API server endpoint is enabled. Default is `false`.
1304
- :param pulumi.Input[bool] endpoint_public_access: Indicates whether or not the Amazon EKS public API server endpoint is enabled. Default is `true`.
1305
- :param pulumi.Input[Union[bool, Union['FargateProfileArgs', 'FargateProfileArgsDict']]] fargate: Add support for launching pods in Fargate. Defaults to launching pods in the `default` namespace. If specified, the default node group is skipped as though `skipDefaultNodeGroup: true` had been passed.
1306
- :param pulumi.Input[bool] gpu: Use the latest recommended EKS Optimized Linux AMI with GPU support for the worker nodes from the AWS Systems Manager Parameter Store.
1340
+ :param pulumi.Input[builtins.bool] endpoint_private_access: Indicates whether or not the Amazon EKS private API server endpoint is enabled. Default is `false`.
1341
+ :param pulumi.Input[builtins.bool] endpoint_public_access: Indicates whether or not the Amazon EKS public API server endpoint is enabled. Default is `true`.
1342
+ :param pulumi.Input[Union[builtins.bool, Union['FargateProfileArgs', 'FargateProfileArgsDict']]] fargate: Add support for launching pods in Fargate. Defaults to launching pods in the `default` namespace. If specified, the default node group is skipped as though `skipDefaultNodeGroup: true` had been passed.
1343
+ :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.
1307
1344
 
1308
1345
  Defaults to false.
1309
1346
 
@@ -1312,18 +1349,18 @@ class Cluster(pulumi.ComponentResource):
1312
1349
  See for more details:
1313
1350
  - https://docs.aws.amazon.com/eks/latest/userguide/eks-optimized-ami.html
1314
1351
  - https://docs.aws.amazon.com/eks/latest/userguide/retrieve-ami-id.html
1315
- :param pulumi.Input[str] instance_profile_name: The default IAM InstanceProfile to use on the Worker NodeGroups, if one is not already set in the NodeGroup.
1352
+ :param pulumi.Input[builtins.str] instance_profile_name: The default IAM InstanceProfile to use on the Worker NodeGroups, if one is not already set in the NodeGroup.
1316
1353
  :param pulumi.Input['pulumi_aws.iam.Role'] instance_role: This enables the simple case of only registering a *single* IAM instance role with the cluster, that is required to be shared by *all* node groups in their instance profiles.
1317
1354
 
1318
1355
  Note: options `instanceRole` and `instanceRoles` are mutually exclusive.
1319
1356
  :param pulumi.Input[Sequence[pulumi.Input['pulumi_aws.iam.Role']]] instance_roles: This enables the advanced case of registering *many* IAM instance roles with the cluster for per node group IAM, instead of the simpler, shared case of `instanceRole`.
1320
1357
 
1321
1358
  Note: options `instanceRole` and `instanceRoles` are mutually exclusive.
1322
- :param pulumi.Input[str] instance_type: The instance type to use for the cluster's nodes. Defaults to "t3.medium".
1323
- :param pulumi.Input[str] ip_family: The IP family used to assign Kubernetes pod and service addresses. Valid values are `ipv4` (default) and `ipv6`.
1359
+ :param pulumi.Input[builtins.str] instance_type: The instance type to use for the cluster's nodes. Defaults to "t3.medium".
1360
+ :param pulumi.Input[builtins.str] ip_family: The IP family used to assign Kubernetes pod and service addresses. Valid values are `ipv4` (default) and `ipv6`.
1324
1361
  You can only specify an IP family when you create a cluster, changing this value will force a new cluster to be created.
1325
1362
  :param Union['KubeProxyAddonOptionsArgs', 'KubeProxyAddonOptionsArgsDict'] kube_proxy_addon_options: Options for managing the `kube-proxy` addon.
1326
- :param pulumi.Input[str] kubernetes_service_ip_address_range: The CIDR block to assign Kubernetes service IP addresses from. If you don't
1363
+ :param pulumi.Input[builtins.str] kubernetes_service_ip_address_range: The CIDR block to assign Kubernetes service IP addresses from. If you don't
1327
1364
  specify a block, Kubernetes assigns addresses from either the 10.100.0.0/16 or
1328
1365
  172.20.0.0/16 CIDR blocks. This setting only applies to IPv4 clusters. We recommend that you specify a block
1329
1366
  that does not overlap with resources in other networks that are peered or connected to your VPC. You can only specify
@@ -1333,14 +1370,14 @@ class Cluster(pulumi.ComponentResource):
1333
1370
  - Within one of the following private IP address blocks: 10.0.0.0/8, 172.16.0.0.0/12, or 192.168.0.0/16.
1334
1371
  - Doesn't overlap with any CIDR block assigned to the VPC that you selected for VPC.
1335
1372
  - Between /24 and /12.
1336
- :param pulumi.Input[int] max_size: The maximum number of worker nodes running in the cluster. Defaults to 2.
1337
- :param pulumi.Input[int] min_size: The minimum number of worker nodes running in the cluster. Defaults to 1.
1338
- :param pulumi.Input[str] name: The cluster's physical resource name.
1373
+ :param pulumi.Input[builtins.int] max_size: The maximum number of worker nodes running in the cluster. Defaults to 2.
1374
+ :param pulumi.Input[builtins.int] min_size: The minimum number of worker nodes running in the cluster. Defaults to 1.
1375
+ :param pulumi.Input[builtins.str] name: The cluster's physical resource name.
1339
1376
 
1340
1377
  If not specified, the default is to use auto-naming for the cluster's name, resulting in a physical name with the format `${name}-eksCluster-0123abcd`.
1341
1378
 
1342
1379
  See for more details: https://www.pulumi.com/docs/intro/concepts/programming-model/#autonaming
1343
- :param pulumi.Input[str] node_ami_id: The AMI ID to use for the worker nodes.
1380
+ :param pulumi.Input[builtins.str] node_ami_id: The AMI ID to use for the worker nodes.
1344
1381
 
1345
1382
  Defaults to the latest recommended EKS Optimized Linux AMI from the AWS Systems Manager Parameter Store.
1346
1383
 
@@ -1348,19 +1385,19 @@ class Cluster(pulumi.ComponentResource):
1348
1385
 
1349
1386
  See for more details:
1350
1387
  - https://docs.aws.amazon.com/eks/latest/userguide/eks-optimized-ami.html.
1351
- :param bool node_associate_public_ip_address: Whether or not to auto-assign the EKS worker nodes public IP addresses. 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.
1388
+ :param builtins.bool node_associate_public_ip_address: Whether or not to auto-assign the EKS worker nodes public IP addresses. 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.
1352
1389
  :param Union['ClusterNodeGroupOptionsArgs', 'ClusterNodeGroupOptionsArgsDict'] node_group_options: The common configuration settings for NodeGroups.
1353
- :param pulumi.Input[str] node_public_key: Public key material for SSH access to worker nodes. See allowed formats at:
1390
+ :param pulumi.Input[builtins.str] node_public_key: Public key material for SSH access to worker nodes. See allowed formats at:
1354
1391
  https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html
1355
1392
  If not provided, no SSH access is enabled on VMs.
1356
- :param pulumi.Input[bool] node_root_volume_encrypted: Encrypt the root block device of the nodes in the node group.
1357
- :param pulumi.Input[int] node_root_volume_size: The size in GiB of a cluster node's root volume. Defaults to 20.
1358
- :param pulumi.Input[Mapping[str, pulumi.Input[str]]] node_security_group_tags: The tags to apply to the default `nodeSecurityGroup` created by the cluster.
1393
+ :param pulumi.Input[builtins.bool] node_root_volume_encrypted: Encrypt the root block device of the nodes in the node group.
1394
+ :param pulumi.Input[builtins.int] node_root_volume_size: The size in GiB of a cluster node's root volume. Defaults to 20.
1395
+ :param pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]] node_security_group_tags: The tags to apply to the default `nodeSecurityGroup` created by the cluster.
1359
1396
 
1360
1397
  Note: The `nodeSecurityGroupTags` option and the node group option `nodeSecurityGroup` are mutually exclusive.
1361
- :param pulumi.Input[Sequence[pulumi.Input[str]]] node_subnet_ids: The subnets to use for worker nodes. Defaults to the value of subnetIds.
1362
- :param pulumi.Input[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 `#!`).
1363
- :param pulumi.Input[Sequence[pulumi.Input[str]]] private_subnet_ids: The set of private subnets to use for the worker node groups on the EKS cluster. These subnets are automatically tagged by EKS for Kubernetes purposes.
1398
+ :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] node_subnet_ids: The subnets to use for worker nodes. Defaults to the value of subnetIds.
1399
+ :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 `#!`).
1400
+ :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] private_subnet_ids: The set of private subnets to use for the worker node groups on the EKS cluster. These subnets are automatically tagged by EKS for Kubernetes purposes.
1364
1401
 
1365
1402
  If `vpcId` is not set, the cluster will use the AWS account's default VPC subnets.
1366
1403
 
@@ -1388,7 +1425,7 @@ class Cluster(pulumi.ComponentResource):
1388
1425
  - https://www.pulumi.com/docs/intro/cloud-providers/aws/setup/
1389
1426
  - https://www.pulumi.com/docs/intro/cloud-providers/aws/#configuration
1390
1427
  - https://docs.aws.amazon.com/eks/latest/userguide/create-kubeconfig.html
1391
- :param str proxy: The HTTP(S) proxy to use within a proxied environment.
1428
+ :param builtins.str proxy: The HTTP(S) proxy to use within a proxied environment.
1392
1429
 
1393
1430
  The proxy is used during cluster creation, and OIDC configuration.
1394
1431
 
@@ -1403,8 +1440,8 @@ class Cluster(pulumi.ComponentResource):
1403
1440
  - "http://proxy.example.com:3128"
1404
1441
  - "https://proxy.example.com"
1405
1442
  - "http://username:password@proxy.example.com:3128"
1406
- :param pulumi.Input[Sequence[pulumi.Input[str]]] public_access_cidrs: Indicates which CIDR blocks can access the Amazon EKS public API server endpoint.
1407
- :param pulumi.Input[Sequence[pulumi.Input[str]]] public_subnet_ids: The set of public subnets to use for the worker node groups on the EKS cluster. These subnets are automatically tagged by EKS for Kubernetes purposes.
1443
+ :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] public_access_cidrs: Indicates which CIDR blocks can access the Amazon EKS public API server endpoint.
1444
+ :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] public_subnet_ids: The set of public subnets to use for the worker node groups on the EKS cluster. These subnets are automatically tagged by EKS for Kubernetes purposes.
1408
1445
 
1409
1446
  If `vpcId` is not set, the cluster will use the AWS account's default VPC subnets.
1410
1447
 
@@ -1419,14 +1456,14 @@ class Cluster(pulumi.ComponentResource):
1419
1456
  See for more details: https://docs.aws.amazon.com/eks/latest/userguide/network_reqs.html.Note: The use of `subnetIds`, along with `publicSubnetIds` and/or `privateSubnetIds` is mutually exclusive. The use of `publicSubnetIds` and `privateSubnetIds` is encouraged.
1420
1457
  :param pulumi.Input[Sequence[pulumi.Input[Union['RoleMappingArgs', 'RoleMappingArgsDict']]]] role_mappings: Optional mappings from AWS IAM roles to Kubernetes users and groups. Only supported with authentication mode `CONFIG_MAP` or `API_AND_CONFIG_MAP`
1421
1458
  :param pulumi.Input['pulumi_aws.iam.Role'] service_role: IAM Service Role for EKS to use to manage the cluster.
1422
- :param bool skip_default_node_group: If this toggle is set to true, the EKS cluster will be created without node group attached. Defaults to false, unless `fargate` or `autoMode` is enabled.
1423
- :param bool skip_default_security_groups: If this toggle is set to true, the EKS cluster will be created without the default node and cluster security groups. Defaults to false, unless `autoMode` is enabled.
1459
+ :param builtins.bool skip_default_node_group: If this toggle is set to true, the EKS cluster will be created without node group attached. Defaults to false, unless `fargate` or `autoMode` is enabled.
1460
+ :param builtins.bool skip_default_security_groups: If this toggle is set to true, the EKS cluster will be created without the default node and cluster security groups. Defaults to false, unless `autoMode` is enabled.
1424
1461
 
1425
1462
  See for more details: https://docs.aws.amazon.com/eks/latest/userguide/sec-group-reqs.html
1426
- :param Union[str, Mapping[str, Union['StorageClassArgs', 'StorageClassArgsDict']]] storage_classes: An optional set of StorageClasses to enable for the cluster. If this is a single volume type rather than a map, a single StorageClass will be created for that volume type.
1463
+ :param Union[builtins.str, Mapping[str, Union['StorageClassArgs', 'StorageClassArgsDict']]] storage_classes: An optional set of StorageClasses to enable for the cluster. If this is a single volume type rather than a map, a single StorageClass will be created for that volume type.
1427
1464
 
1428
1465
  Note: As of Kubernetes v1.11+ on EKS, a default `gp2` storage class will always be created automatically for the cluster by the EKS service. See https://docs.aws.amazon.com/eks/latest/userguide/storage-classes.html
1429
- :param pulumi.Input[Sequence[pulumi.Input[str]]] subnet_ids: The set of all subnets, public and private, to use for the worker node groups on the EKS cluster. These subnets are automatically tagged by EKS for Kubernetes purposes.
1466
+ :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] subnet_ids: The set of all subnets, public and private, to use for the worker node groups on the EKS cluster. These subnets are automatically tagged by EKS for Kubernetes purposes.
1430
1467
 
1431
1468
  If `vpcId` is not set, the cluster will use the AWS account's default VPC subnets.
1432
1469
 
@@ -1435,13 +1472,14 @@ class Cluster(pulumi.ComponentResource):
1435
1472
  See for more details: https://docs.aws.amazon.com/eks/latest/userguide/network_reqs.html.
1436
1473
 
1437
1474
  Note: The use of `subnetIds`, along with `publicSubnetIds` and/or `privateSubnetIds` is mutually exclusive. The use of `publicSubnetIds` and `privateSubnetIds` is encouraged.
1438
- :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value mapping of tags that are automatically applied to all AWS resources directly under management with this cluster, which support tagging.
1439
- :param bool use_default_vpc_cni: Use the default VPC CNI instead of creating a custom one. Should not be used in conjunction with `vpcCniOptions`.
1475
+ :param pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]] tags: Key-value mapping of tags that are automatically applied to all AWS resources directly under management with this cluster, which support tagging.
1476
+ :param pulumi.Input[pulumi.InputType['pulumi_aws.eks.ClusterUpgradePolicyArgs']] upgrade_policy: The cluster's upgrade policy. Valid support types are "STANDARD" and "EXTENDED". Defaults to "EXTENDED".
1477
+ :param builtins.bool use_default_vpc_cni: Use the default VPC CNI instead of creating a custom one. Should not be used in conjunction with `vpcCniOptions`.
1440
1478
  Defaults to true, unless `autoMode` is enabled.
1441
1479
  :param pulumi.Input[Sequence[pulumi.Input[Union['UserMappingArgs', 'UserMappingArgsDict']]]] user_mappings: Optional mappings from AWS IAM users to Kubernetes users and groups. Only supported with authentication mode `CONFIG_MAP` or `API_AND_CONFIG_MAP`.
1442
- :param pulumi.Input[str] version: Desired Kubernetes master / control plane version. If you do not specify a value, the latest available version is used.
1480
+ :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.
1443
1481
  :param Union['VpcCniOptionsArgs', 'VpcCniOptionsArgsDict'] vpc_cni_options: The configuration of the Amazon VPC CNI plugin for this instance. Defaults are described in the documentation for the VpcCniOptions type.
1444
- :param pulumi.Input[str] vpc_id: The VPC in which to create the cluster and its worker nodes. If unset, the cluster will be created in the default VPC.
1482
+ :param pulumi.Input[builtins.str] vpc_id: The VPC in which to create the cluster and its worker nodes. If unset, the cluster will be created in the default VPC.
1445
1483
  """
1446
1484
  ...
1447
1485
  @overload
@@ -1488,58 +1526,60 @@ class Cluster(pulumi.ComponentResource):
1488
1526
  access_entries: Optional[Mapping[str, Union['AccessEntryArgs', 'AccessEntryArgsDict']]] = None,
1489
1527
  authentication_mode: Optional['AuthenticationMode'] = None,
1490
1528
  auto_mode: Optional[Union['AutoModeOptionsArgs', 'AutoModeOptionsArgsDict']] = None,
1529
+ bootstrap_self_managed_addons: Optional[pulumi.Input[builtins.bool]] = None,
1491
1530
  cluster_security_group: Optional[pulumi.Input['pulumi_aws.ec2.SecurityGroup']] = None,
1492
- cluster_security_group_tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
1493
- cluster_tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
1531
+ cluster_security_group_tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]] = None,
1532
+ cluster_tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]] = None,
1494
1533
  coredns_addon_options: Optional[Union['CoreDnsAddonOptionsArgs', 'CoreDnsAddonOptionsArgsDict']] = None,
1495
- create_instance_role: Optional[bool] = None,
1496
- create_oidc_provider: Optional[pulumi.Input[bool]] = None,
1534
+ create_instance_role: Optional[builtins.bool] = None,
1535
+ create_oidc_provider: Optional[pulumi.Input[builtins.bool]] = None,
1497
1536
  creation_role_provider: Optional[Union['CreationRoleProviderArgs', 'CreationRoleProviderArgsDict']] = None,
1498
- default_addons_to_remove: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
1499
- desired_capacity: Optional[pulumi.Input[int]] = None,
1500
- enable_config_map_mutable: Optional[pulumi.Input[bool]] = None,
1501
- enabled_cluster_log_types: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
1502
- encryption_config_key_arn: Optional[pulumi.Input[str]] = None,
1503
- endpoint_private_access: Optional[pulumi.Input[bool]] = None,
1504
- endpoint_public_access: Optional[pulumi.Input[bool]] = None,
1505
- fargate: Optional[pulumi.Input[Union[bool, Union['FargateProfileArgs', 'FargateProfileArgsDict']]]] = None,
1506
- gpu: Optional[pulumi.Input[bool]] = None,
1507
- instance_profile_name: Optional[pulumi.Input[str]] = None,
1537
+ deletion_protection: Optional[pulumi.Input[builtins.bool]] = None,
1538
+ desired_capacity: Optional[pulumi.Input[builtins.int]] = None,
1539
+ enable_config_map_mutable: Optional[pulumi.Input[builtins.bool]] = None,
1540
+ enabled_cluster_log_types: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
1541
+ encryption_config_key_arn: Optional[pulumi.Input[builtins.str]] = None,
1542
+ endpoint_private_access: Optional[pulumi.Input[builtins.bool]] = None,
1543
+ endpoint_public_access: Optional[pulumi.Input[builtins.bool]] = None,
1544
+ fargate: Optional[pulumi.Input[Union[builtins.bool, Union['FargateProfileArgs', 'FargateProfileArgsDict']]]] = None,
1545
+ gpu: Optional[pulumi.Input[builtins.bool]] = None,
1546
+ instance_profile_name: Optional[pulumi.Input[builtins.str]] = None,
1508
1547
  instance_role: Optional[pulumi.Input['pulumi_aws.iam.Role']] = None,
1509
1548
  instance_roles: Optional[pulumi.Input[Sequence[pulumi.Input['pulumi_aws.iam.Role']]]] = None,
1510
- instance_type: Optional[pulumi.Input[str]] = None,
1511
- ip_family: Optional[pulumi.Input[str]] = None,
1549
+ instance_type: Optional[pulumi.Input[builtins.str]] = None,
1550
+ ip_family: Optional[pulumi.Input[builtins.str]] = None,
1512
1551
  kube_proxy_addon_options: Optional[Union['KubeProxyAddonOptionsArgs', 'KubeProxyAddonOptionsArgsDict']] = None,
1513
- kubernetes_service_ip_address_range: Optional[pulumi.Input[str]] = None,
1514
- max_size: Optional[pulumi.Input[int]] = None,
1515
- min_size: Optional[pulumi.Input[int]] = None,
1516
- name: Optional[pulumi.Input[str]] = None,
1517
- node_ami_id: Optional[pulumi.Input[str]] = None,
1518
- node_associate_public_ip_address: Optional[bool] = None,
1552
+ kubernetes_service_ip_address_range: Optional[pulumi.Input[builtins.str]] = None,
1553
+ max_size: Optional[pulumi.Input[builtins.int]] = None,
1554
+ min_size: Optional[pulumi.Input[builtins.int]] = None,
1555
+ name: Optional[pulumi.Input[builtins.str]] = None,
1556
+ node_ami_id: Optional[pulumi.Input[builtins.str]] = None,
1557
+ node_associate_public_ip_address: Optional[builtins.bool] = None,
1519
1558
  node_group_options: Optional[Union['ClusterNodeGroupOptionsArgs', 'ClusterNodeGroupOptionsArgsDict']] = None,
1520
- node_public_key: Optional[pulumi.Input[str]] = None,
1521
- node_root_volume_encrypted: Optional[pulumi.Input[bool]] = None,
1522
- node_root_volume_size: Optional[pulumi.Input[int]] = None,
1523
- node_security_group_tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
1524
- node_subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
1525
- node_user_data: Optional[pulumi.Input[str]] = None,
1526
- private_subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
1559
+ node_public_key: Optional[pulumi.Input[builtins.str]] = None,
1560
+ node_root_volume_encrypted: Optional[pulumi.Input[builtins.bool]] = None,
1561
+ node_root_volume_size: Optional[pulumi.Input[builtins.int]] = None,
1562
+ node_security_group_tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]] = None,
1563
+ node_subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
1564
+ node_user_data: Optional[pulumi.Input[builtins.str]] = None,
1565
+ private_subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
1527
1566
  provider_credential_opts: Optional[pulumi.Input[Union['KubeconfigOptionsArgs', 'KubeconfigOptionsArgsDict']]] = None,
1528
- proxy: Optional[str] = None,
1529
- public_access_cidrs: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
1530
- public_subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
1567
+ proxy: Optional[builtins.str] = None,
1568
+ public_access_cidrs: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
1569
+ public_subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
1531
1570
  role_mappings: Optional[pulumi.Input[Sequence[pulumi.Input[Union['RoleMappingArgs', 'RoleMappingArgsDict']]]]] = None,
1532
1571
  service_role: Optional[pulumi.Input['pulumi_aws.iam.Role']] = None,
1533
- skip_default_node_group: Optional[bool] = None,
1534
- skip_default_security_groups: Optional[bool] = None,
1535
- storage_classes: Optional[Union[str, Mapping[str, Union['StorageClassArgs', 'StorageClassArgsDict']]]] = None,
1536
- subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
1537
- tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
1538
- use_default_vpc_cni: Optional[bool] = None,
1572
+ skip_default_node_group: Optional[builtins.bool] = None,
1573
+ skip_default_security_groups: Optional[builtins.bool] = None,
1574
+ storage_classes: Optional[Union[builtins.str, Mapping[str, Union['StorageClassArgs', 'StorageClassArgsDict']]]] = None,
1575
+ subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
1576
+ tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]] = None,
1577
+ upgrade_policy: Optional[pulumi.Input[pulumi.InputType['pulumi_aws.eks.ClusterUpgradePolicyArgs']]] = None,
1578
+ use_default_vpc_cni: Optional[builtins.bool] = None,
1539
1579
  user_mappings: Optional[pulumi.Input[Sequence[pulumi.Input[Union['UserMappingArgs', 'UserMappingArgsDict']]]]] = None,
1540
- version: Optional[pulumi.Input[str]] = None,
1580
+ version: Optional[pulumi.Input[builtins.str]] = None,
1541
1581
  vpc_cni_options: Optional[Union['VpcCniOptionsArgs', 'VpcCniOptionsArgsDict']] = None,
1542
- vpc_id: Optional[pulumi.Input[str]] = None,
1582
+ vpc_id: Optional[pulumi.Input[builtins.str]] = None,
1543
1583
  __props__=None):
1544
1584
  opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
1545
1585
  if not isinstance(opts, pulumi.ResourceOptions):
@@ -1554,6 +1594,7 @@ class Cluster(pulumi.ComponentResource):
1554
1594
  __props__.__dict__["access_entries"] = access_entries
1555
1595
  __props__.__dict__["authentication_mode"] = authentication_mode
1556
1596
  __props__.__dict__["auto_mode"] = auto_mode
1597
+ __props__.__dict__["bootstrap_self_managed_addons"] = bootstrap_self_managed_addons
1557
1598
  __props__.__dict__["cluster_security_group"] = cluster_security_group
1558
1599
  __props__.__dict__["cluster_security_group_tags"] = cluster_security_group_tags
1559
1600
  __props__.__dict__["cluster_tags"] = cluster_tags
@@ -1561,7 +1602,7 @@ class Cluster(pulumi.ComponentResource):
1561
1602
  __props__.__dict__["create_instance_role"] = create_instance_role
1562
1603
  __props__.__dict__["create_oidc_provider"] = create_oidc_provider
1563
1604
  __props__.__dict__["creation_role_provider"] = creation_role_provider
1564
- __props__.__dict__["default_addons_to_remove"] = default_addons_to_remove
1605
+ __props__.__dict__["deletion_protection"] = deletion_protection
1565
1606
  __props__.__dict__["desired_capacity"] = desired_capacity
1566
1607
  __props__.__dict__["enable_config_map_mutable"] = enable_config_map_mutable
1567
1608
  __props__.__dict__["enabled_cluster_log_types"] = enabled_cluster_log_types
@@ -1601,6 +1642,7 @@ class Cluster(pulumi.ComponentResource):
1601
1642
  __props__.__dict__["storage_classes"] = storage_classes
1602
1643
  __props__.__dict__["subnet_ids"] = subnet_ids
1603
1644
  __props__.__dict__["tags"] = tags
1645
+ __props__.__dict__["upgrade_policy"] = upgrade_policy
1604
1646
  __props__.__dict__["use_default_vpc_cni"] = use_default_vpc_cni
1605
1647
  __props__.__dict__["user_mappings"] = user_mappings
1606
1648
  __props__.__dict__["version"] = version
@@ -1633,7 +1675,7 @@ class Cluster(pulumi.ComponentResource):
1633
1675
 
1634
1676
  @property
1635
1677
  @pulumi.getter(name="autoModeNodeRoleName")
1636
- def auto_mode_node_role_name(self) -> pulumi.Output[str]:
1678
+ def auto_mode_node_role_name(self) -> pulumi.Output[builtins.str]:
1637
1679
  """
1638
1680
  The name of the IAM role created for nodes managed by EKS Auto Mode. Defaults to an empty string.
1639
1681
  """
@@ -1649,7 +1691,7 @@ class Cluster(pulumi.ComponentResource):
1649
1691
 
1650
1692
  @property
1651
1693
  @pulumi.getter(name="clusterIngressRuleId")
1652
- def cluster_ingress_rule_id(self) -> pulumi.Output[str]:
1694
+ def cluster_ingress_rule_id(self) -> pulumi.Output[builtins.str]:
1653
1695
  """
1654
1696
  The ID of the security group rule that gives node group access to the cluster API server. Defaults to an empty string if `skipDefaultSecurityGroups` is set to true.
1655
1697
  """
@@ -1665,7 +1707,7 @@ class Cluster(pulumi.ComponentResource):
1665
1707
 
1666
1708
  @property
1667
1709
  @pulumi.getter(name="clusterSecurityGroupId")
1668
- def cluster_security_group_id(self) -> pulumi.Output[str]:
1710
+ def cluster_security_group_id(self) -> pulumi.Output[builtins.str]:
1669
1711
  """
1670
1712
  The cluster security group ID of the EKS cluster. Returns the EKS created security group if `skipDefaultSecurityGroups` is set to true.
1671
1713
  """
@@ -1689,7 +1731,7 @@ class Cluster(pulumi.ComponentResource):
1689
1731
 
1690
1732
  @property
1691
1733
  @pulumi.getter(name="defaultNodeGroupAsgName")
1692
- def default_node_group_asg_name(self) -> pulumi.Output[str]:
1734
+ def default_node_group_asg_name(self) -> pulumi.Output[builtins.str]:
1693
1735
  """
1694
1736
  The name of the default node group's AutoScaling Group. Defaults to an empty string if `skipDefaultNodeGroup` is set to true.
1695
1737
  """
@@ -1713,7 +1755,7 @@ class Cluster(pulumi.ComponentResource):
1713
1755
 
1714
1756
  @property
1715
1757
  @pulumi.getter(name="fargateProfileId")
1716
- def fargate_profile_id(self) -> pulumi.Output[str]:
1758
+ def fargate_profile_id(self) -> pulumi.Output[builtins.str]:
1717
1759
  """
1718
1760
  The ID of the Fargate Profile. Defaults to an empty string if no Fargate profile is configured.
1719
1761
  """
@@ -1721,7 +1763,7 @@ class Cluster(pulumi.ComponentResource):
1721
1763
 
1722
1764
  @property
1723
1765
  @pulumi.getter(name="fargateProfileStatus")
1724
- def fargate_profile_status(self) -> pulumi.Output[str]:
1766
+ def fargate_profile_status(self) -> pulumi.Output[builtins.str]:
1725
1767
  """
1726
1768
  The status of the Fargate Profile. Defaults to an empty string if no Fargate profile is configured.
1727
1769
  """
@@ -1745,7 +1787,7 @@ class Cluster(pulumi.ComponentResource):
1745
1787
 
1746
1788
  @property
1747
1789
  @pulumi.getter(name="kubeconfigJson")
1748
- def kubeconfig_json(self) -> pulumi.Output[str]:
1790
+ def kubeconfig_json(self) -> pulumi.Output[builtins.str]:
1749
1791
  """
1750
1792
  A kubeconfig that can be used to connect to the EKS cluster as a JSON string.
1751
1793
  """
@@ -1761,7 +1803,7 @@ class Cluster(pulumi.ComponentResource):
1761
1803
 
1762
1804
  @property
1763
1805
  @pulumi.getter(name="nodeSecurityGroupId")
1764
- def node_security_group_id(self) -> pulumi.Output[str]:
1806
+ def node_security_group_id(self) -> pulumi.Output[builtins.str]:
1765
1807
  """
1766
1808
  The node security group ID of the EKS cluster. Returns the EKS created security group if `skipDefaultSecurityGroups` is set to true.
1767
1809
  """
@@ -1769,7 +1811,7 @@ class Cluster(pulumi.ComponentResource):
1769
1811
 
1770
1812
  @property
1771
1813
  @pulumi.getter(name="oidcIssuer")
1772
- def oidc_issuer(self) -> pulumi.Output[str]:
1814
+ def oidc_issuer(self) -> pulumi.Output[builtins.str]:
1773
1815
  """
1774
1816
  The OIDC Issuer of the EKS cluster (OIDC Provider URL without leading `https://`).
1775
1817
 
@@ -1779,7 +1821,7 @@ class Cluster(pulumi.ComponentResource):
1779
1821
 
1780
1822
  @property
1781
1823
  @pulumi.getter(name="oidcProviderArn")
1782
- def oidc_provider_arn(self) -> pulumi.Output[str]:
1824
+ def oidc_provider_arn(self) -> pulumi.Output[builtins.str]:
1783
1825
  """
1784
1826
  The ARN of the IAM OpenID Connect Provider for the EKS cluster. Defaults to an empty string if no OIDC provider is configured.
1785
1827
  """
@@ -1787,7 +1829,7 @@ class Cluster(pulumi.ComponentResource):
1787
1829
 
1788
1830
  @property
1789
1831
  @pulumi.getter(name="oidcProviderUrl")
1790
- def oidc_provider_url(self) -> pulumi.Output[str]:
1832
+ def oidc_provider_url(self) -> pulumi.Output[builtins.str]:
1791
1833
  """
1792
1834
  Issuer URL for the OpenID Connect identity provider of the EKS cluster.
1793
1835
  """
@@ -1802,15 +1844,15 @@ class Cluster(pulumi.ComponentResource):
1802
1844
 
1803
1845
  @property
1804
1846
  @pulumi.getter
1805
- def result(self) -> str:
1847
+ def result(self) -> builtins.str:
1806
1848
  """
1807
1849
  The kubeconfig for the cluster.
1808
1850
  """
1809
1851
  return pulumi.get(self, "result")
1810
1852
 
1811
1853
  def get_kubeconfig(__self__, *,
1812
- profile_name: Optional[pulumi.Input[str]] = None,
1813
- role_arn: Optional[pulumi.Input[str]] = None) -> pulumi.Output['str']:
1854
+ profile_name: Optional[pulumi.Input[builtins.str]] = None,
1855
+ role_arn: Optional[pulumi.Input[builtins.str]] = None) -> pulumi.Output['str']:
1814
1856
  """
1815
1857
  Generate a kubeconfig for cluster authentication that does not use the default AWS credential provider chain, and instead is scoped to the supported options in `KubeconfigOptions`.
1816
1858
 
@@ -1822,10 +1864,10 @@ class Cluster(pulumi.ComponentResource):
1822
1864
  - https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html
1823
1865
 
1824
1866
 
1825
- :param pulumi.Input[str] profile_name: AWS credential profile name to always use instead of the default AWS credential provider chain.
1867
+ :param pulumi.Input[builtins.str] profile_name: AWS credential profile name to always use instead of the default AWS credential provider chain.
1826
1868
 
1827
1869
  The profile is passed to kubeconfig as an authentication environment setting.
1828
- :param pulumi.Input[str] role_arn: Role ARN to assume instead of the default AWS credential provider chain.
1870
+ :param pulumi.Input[builtins.str] role_arn: Role ARN to assume instead of the default AWS credential provider chain.
1829
1871
 
1830
1872
  The role is passed to kubeconfig as an authentication exec argument.
1831
1873
  """