aws-cdk-lib 2.144.0__py3-none-any.whl → 2.145.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.

Potentially problematic release.


This version of aws-cdk-lib might be problematic. Click here for more details.

@@ -74,13 +74,13 @@ This example defines an Amazon EKS cluster with the following configuration:
74
74
  * A Kubernetes pod with a container based on the [paulbouwer/hello-kubernetes](https://github.com/paulbouwer/hello-kubernetes) image.
75
75
 
76
76
  ```python
77
- from aws_cdk.lambda_layer_kubectl_v29 import KubectlV29Layer
77
+ from aws_cdk.lambda_layer_kubectl_v30 import KubectlV30Layer
78
78
 
79
79
 
80
80
  # provisioning a cluster
81
81
  cluster = eks.Cluster(self, "hello-eks",
82
- version=eks.KubernetesVersion.V1_29,
83
- kubectl_layer=KubectlV29Layer(self, "kubectl")
82
+ version=eks.KubernetesVersion.V1_30,
83
+ kubectl_layer=KubectlV30Layer(self, "kubectl")
84
84
  )
85
85
 
86
86
  # apply a kubernetes manifest to the cluster
@@ -145,7 +145,7 @@ Creating a new cluster is done using the `Cluster` or `FargateCluster` construct
145
145
 
146
146
  ```python
147
147
  eks.Cluster(self, "HelloEKS",
148
- version=eks.KubernetesVersion.V1_29
148
+ version=eks.KubernetesVersion.V1_30
149
149
  )
150
150
  ```
151
151
 
@@ -153,7 +153,7 @@ You can also use `FargateCluster` to provision a cluster that uses only fargate
153
153
 
154
154
  ```python
155
155
  eks.FargateCluster(self, "HelloEKS",
156
- version=eks.KubernetesVersion.V1_29
156
+ version=eks.KubernetesVersion.V1_30
157
157
  )
158
158
  ```
159
159
 
@@ -177,7 +177,7 @@ At cluster instantiation time, you can customize the number of instances and the
177
177
 
178
178
  ```python
179
179
  eks.Cluster(self, "HelloEKS",
180
- version=eks.KubernetesVersion.V1_29,
180
+ version=eks.KubernetesVersion.V1_30,
181
181
  default_capacity=5,
182
182
  default_capacity_instance=ec2.InstanceType.of(ec2.InstanceClass.M5, ec2.InstanceSize.SMALL)
183
183
  )
@@ -189,7 +189,7 @@ Additional customizations are available post instantiation. To apply them, set t
189
189
 
190
190
  ```python
191
191
  cluster = eks.Cluster(self, "HelloEKS",
192
- version=eks.KubernetesVersion.V1_29,
192
+ version=eks.KubernetesVersion.V1_30,
193
193
  default_capacity=0
194
194
  )
195
195
 
@@ -291,7 +291,7 @@ eks_cluster_node_group_role = iam.Role(self, "eksClusterNodeGroupRole",
291
291
  )
292
292
 
293
293
  cluster = eks.Cluster(self, "HelloEKS",
294
- version=eks.KubernetesVersion.V1_29,
294
+ version=eks.KubernetesVersion.V1_30,
295
295
  default_capacity=0
296
296
  )
297
297
 
@@ -403,7 +403,7 @@ successful replacement. Consider this example if you are renaming the cluster fr
403
403
  ```python
404
404
  cluster = eks.Cluster(self, "cluster-to-rename",
405
405
  cluster_name="foo", # rename this to 'bar'
406
- version=eks.KubernetesVersion.V1_29
406
+ version=eks.KubernetesVersion.V1_30
407
407
  )
408
408
 
409
409
  # allow the cluster admin role to delete the cluster 'foo'
@@ -457,7 +457,7 @@ The following code defines an Amazon EKS cluster with a default Fargate Profile
457
457
 
458
458
  ```python
459
459
  cluster = eks.FargateCluster(self, "MyCluster",
460
- version=eks.KubernetesVersion.V1_29
460
+ version=eks.KubernetesVersion.V1_30
461
461
  )
462
462
  ```
463
463
 
@@ -538,7 +538,7 @@ You can also configure the cluster to use an auto-scaling group as the default c
538
538
 
539
539
  ```python
540
540
  cluster = eks.Cluster(self, "HelloEKS",
541
- version=eks.KubernetesVersion.V1_29,
541
+ version=eks.KubernetesVersion.V1_30,
542
542
  default_capacity_type=eks.DefaultCapacityType.EC2
543
543
  )
544
544
  ```
@@ -647,7 +647,7 @@ You can configure the [cluster endpoint access](https://docs.aws.amazon.com/eks/
647
647
 
648
648
  ```python
649
649
  cluster = eks.Cluster(self, "hello-eks",
650
- version=eks.KubernetesVersion.V1_29,
650
+ version=eks.KubernetesVersion.V1_30,
651
651
  endpoint_access=eks.EndpointAccess.PRIVATE
652
652
  )
653
653
  ```
@@ -669,7 +669,7 @@ To deploy the controller on your EKS cluster, configure the `albController` prop
669
669
 
670
670
  ```python
671
671
  eks.Cluster(self, "HelloEKS",
672
- version=eks.KubernetesVersion.V1_29,
672
+ version=eks.KubernetesVersion.V1_30,
673
673
  alb_controller=eks.AlbControllerOptions(
674
674
  version=eks.AlbControllerVersion.V2_6_2
675
675
  )
@@ -713,7 +713,7 @@ You can specify the VPC of the cluster using the `vpc` and `vpcSubnets` properti
713
713
 
714
714
 
715
715
  eks.Cluster(self, "HelloEKS",
716
- version=eks.KubernetesVersion.V1_29,
716
+ version=eks.KubernetesVersion.V1_30,
717
717
  vpc=vpc,
718
718
  vpc_subnets=[ec2.SubnetSelection(subnet_type=ec2.SubnetType.PRIVATE_WITH_EGRESS)]
719
719
  )
@@ -762,7 +762,7 @@ You can configure the environment of the Cluster Handler functions by specifying
762
762
  # proxy_instance_security_group: ec2.SecurityGroup
763
763
 
764
764
  cluster = eks.Cluster(self, "hello-eks",
765
- version=eks.KubernetesVersion.V1_29,
765
+ version=eks.KubernetesVersion.V1_30,
766
766
  cluster_handler_environment={
767
767
  "https_proxy": "http://proxy.myproxy.com"
768
768
  },
@@ -803,7 +803,7 @@ for subnet in subnets:
803
803
  subnetcount = subnetcount + 1
804
804
 
805
805
  cluster = eks.Cluster(self, "hello-eks",
806
- version=eks.KubernetesVersion.V1_29,
806
+ version=eks.KubernetesVersion.V1_30,
807
807
  vpc=vpc,
808
808
  ip_family=eks.IpFamily.IP_V6,
809
809
  vpc_subnets=[ec2.SubnetSelection(subnets=vpc.public_subnets)]
@@ -838,7 +838,7 @@ You can configure the environment of this function by specifying it at cluster i
838
838
 
839
839
  ```python
840
840
  cluster = eks.Cluster(self, "hello-eks",
841
- version=eks.KubernetesVersion.V1_29,
841
+ version=eks.KubernetesVersion.V1_30,
842
842
  kubectl_environment={
843
843
  "http_proxy": "http://proxy.myproxy.com"
844
844
  }
@@ -858,12 +858,12 @@ Depending on which version of kubernetes you're targeting, you will need to use
858
858
  the `@aws-cdk/lambda-layer-kubectl-vXY` packages.
859
859
 
860
860
  ```python
861
- from aws_cdk.lambda_layer_kubectl_v29 import KubectlV29Layer
861
+ from aws_cdk.lambda_layer_kubectl_v30 import KubectlV30Layer
862
862
 
863
863
 
864
864
  cluster = eks.Cluster(self, "hello-eks",
865
- version=eks.KubernetesVersion.V1_29,
866
- kubectl_layer=KubectlV29Layer(self, "kubectl")
865
+ version=eks.KubernetesVersion.V1_30,
866
+ kubectl_layer=KubectlV30Layer(self, "kubectl")
867
867
  )
868
868
  ```
869
869
 
@@ -899,7 +899,7 @@ cluster1 = eks.Cluster(self, "MyCluster",
899
899
  kubectl_layer=layer,
900
900
  vpc=vpc,
901
901
  cluster_name="cluster-name",
902
- version=eks.KubernetesVersion.V1_29
902
+ version=eks.KubernetesVersion.V1_30
903
903
  )
904
904
 
905
905
  # or
@@ -919,7 +919,7 @@ By default, the kubectl provider is configured with 1024MiB of memory. You can u
919
919
  # vpc: ec2.Vpc
920
920
  eks.Cluster(self, "MyCluster",
921
921
  kubectl_memory=Size.gibibytes(4),
922
- version=eks.KubernetesVersion.V1_29
922
+ version=eks.KubernetesVersion.V1_30
923
923
  )
924
924
  eks.Cluster.from_cluster_attributes(self, "MyCluster",
925
925
  kubectl_memory=Size.gibibytes(4),
@@ -957,7 +957,7 @@ When you create a cluster, you can specify a `mastersRole`. The `Cluster` constr
957
957
  # role: iam.Role
958
958
 
959
959
  eks.Cluster(self, "HelloEKS",
960
- version=eks.KubernetesVersion.V1_29,
960
+ version=eks.KubernetesVersion.V1_30,
961
961
  masters_role=role
962
962
  )
963
963
  ```
@@ -1007,7 +1007,7 @@ You can use the `secretsEncryptionKey` to configure which key the cluster will u
1007
1007
  secrets_key = kms.Key(self, "SecretsKey")
1008
1008
  cluster = eks.Cluster(self, "MyCluster",
1009
1009
  secrets_encryption_key=secrets_key,
1010
- version=eks.KubernetesVersion.V1_29
1010
+ version=eks.KubernetesVersion.V1_30
1011
1011
  )
1012
1012
  ```
1013
1013
 
@@ -1017,7 +1017,7 @@ You can also use a similar configuration for running a cluster built using the F
1017
1017
  secrets_key = kms.Key(self, "SecretsKey")
1018
1018
  cluster = eks.FargateCluster(self, "MyFargateCluster",
1019
1019
  secrets_encryption_key=secrets_key,
1020
- version=eks.KubernetesVersion.V1_29
1020
+ version=eks.KubernetesVersion.V1_30
1021
1021
  )
1022
1022
  ```
1023
1023
 
@@ -1064,7 +1064,7 @@ To access the Kubernetes resources from the console, make sure your viewing prin
1064
1064
  in the `aws-auth` ConfigMap. Some options to consider:
1065
1065
 
1066
1066
  ```python
1067
- from aws_cdk.lambda_layer_kubectl_v29 import KubectlV29Layer
1067
+ from aws_cdk.lambda_layer_kubectl_v30 import KubectlV30Layer
1068
1068
  # cluster: eks.Cluster
1069
1069
  # your_current_role: iam.Role
1070
1070
  # vpc: ec2.Vpc
@@ -1082,7 +1082,7 @@ your_current_role.add_to_policy(iam.PolicyStatement(
1082
1082
 
1083
1083
  ```python
1084
1084
  # Option 2: create your custom mastersRole with scoped assumeBy arn as the Cluster prop. Switch to this role from the AWS console.
1085
- from aws_cdk.lambda_layer_kubectl_v29 import KubectlV29Layer
1085
+ from aws_cdk.lambda_layer_kubectl_v30 import KubectlV30Layer
1086
1086
  # vpc: ec2.Vpc
1087
1087
 
1088
1088
 
@@ -1092,8 +1092,8 @@ masters_role = iam.Role(self, "MastersRole",
1092
1092
 
1093
1093
  cluster = eks.Cluster(self, "EksCluster",
1094
1094
  vpc=vpc,
1095
- version=eks.KubernetesVersion.V1_29,
1096
- kubectl_layer=KubectlV29Layer(self, "KubectlLayer"),
1095
+ version=eks.KubernetesVersion.V1_30,
1096
+ kubectl_layer=KubectlV30Layer(self, "KubectlLayer"),
1097
1097
  masters_role=masters_role
1098
1098
  )
1099
1099
 
@@ -1372,7 +1372,7 @@ when a cluster is defined:
1372
1372
 
1373
1373
  ```python
1374
1374
  eks.Cluster(self, "MyCluster",
1375
- version=eks.KubernetesVersion.V1_29,
1375
+ version=eks.KubernetesVersion.V1_30,
1376
1376
  prune=False
1377
1377
  )
1378
1378
  ```
@@ -1754,7 +1754,7 @@ property. For example:
1754
1754
  ```python
1755
1755
  cluster = eks.Cluster(self, "Cluster",
1756
1756
  # ...
1757
- version=eks.KubernetesVersion.V1_29,
1757
+ version=eks.KubernetesVersion.V1_30,
1758
1758
  cluster_logging=[eks.ClusterLoggingTypes.API, eks.ClusterLoggingTypes.AUTHENTICATOR, eks.ClusterLoggingTypes.SCHEDULER
1759
1759
  ]
1760
1760
  )
@@ -1958,7 +1958,7 @@ class AlbControllerOptions:
1958
1958
  Example::
1959
1959
 
1960
1960
  eks.Cluster(self, "HelloEKS",
1961
- version=eks.KubernetesVersion.V1_29,
1961
+ version=eks.KubernetesVersion.V1_30,
1962
1962
  alb_controller=eks.AlbControllerOptions(
1963
1963
  version=eks.AlbControllerVersion.V2_6_2
1964
1964
  )
@@ -2151,7 +2151,7 @@ class AlbControllerVersion(
2151
2151
  Example::
2152
2152
 
2153
2153
  eks.Cluster(self, "HelloEKS",
2154
- version=eks.KubernetesVersion.V1_29,
2154
+ version=eks.KubernetesVersion.V1_30,
2155
2155
  alb_controller=eks.AlbControllerOptions(
2156
2156
  version=eks.AlbControllerVersion.V2_6_2
2157
2157
  )
@@ -4207,6 +4207,10 @@ class CfnAddon(
4207
4207
  # the properties below are optional
4208
4208
  addon_version="addonVersion",
4209
4209
  configuration_values="configurationValues",
4210
+ pod_identity_associations=[eks.CfnAddon.PodIdentityAssociationProperty(
4211
+ role_arn="roleArn",
4212
+ service_account="serviceAccount"
4213
+ )],
4210
4214
  preserve_on_delete=False,
4211
4215
  resolve_conflicts="resolveConflicts",
4212
4216
  service_account_role_arn="serviceAccountRoleArn",
@@ -4226,6 +4230,7 @@ class CfnAddon(
4226
4230
  cluster_name: builtins.str,
4227
4231
  addon_version: typing.Optional[builtins.str] = None,
4228
4232
  configuration_values: typing.Optional[builtins.str] = None,
4233
+ pod_identity_associations: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnAddon.PodIdentityAssociationProperty", typing.Dict[builtins.str, typing.Any]]]]]] = None,
4229
4234
  preserve_on_delete: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
4230
4235
  resolve_conflicts: typing.Optional[builtins.str] = None,
4231
4236
  service_account_role_arn: typing.Optional[builtins.str] = None,
@@ -4238,6 +4243,7 @@ class CfnAddon(
4238
4243
  :param cluster_name: The name of your cluster.
4239
4244
  :param addon_version: The version of the add-on.
4240
4245
  :param configuration_values: The configuration values that you provided.
4246
+ :param pod_identity_associations: An array of pod identities to apply to this add-on.
4241
4247
  :param preserve_on_delete: Specifying this option preserves the add-on software on your cluster but Amazon EKS stops managing any settings for the add-on. If an IAM account is associated with the add-on, it isn't removed.
4242
4248
  :param resolve_conflicts: How to resolve field value conflicts for an Amazon EKS add-on. Conflicts are handled based on the value you choose: - *None* – If the self-managed version of the add-on is installed on your cluster, Amazon EKS doesn't change the value. Creation of the add-on might fail. - *Overwrite* – If the self-managed version of the add-on is installed on your cluster and the Amazon EKS default value is different than the existing value, Amazon EKS changes the value to the Amazon EKS default value. - *Preserve* – This is similar to the NONE option. If the self-managed version of the add-on is installed on your cluster Amazon EKS doesn't change the add-on resource properties. Creation of the add-on might fail if conflicts are detected. This option works differently during the update operation. For more information, see `UpdateAddon <https://docs.aws.amazon.com/eks/latest/APIReference/API_UpdateAddon.html>`_ . If you don't currently have the self-managed version of the add-on installed on your cluster, the Amazon EKS add-on is installed. Amazon EKS sets all values to default values, regardless of the option that you specify.
4243
4249
  :param service_account_role_arn: The Amazon Resource Name (ARN) of an existing IAM role to bind to the add-on's service account. The role must be assigned the IAM permissions required by the add-on. If you don't specify an existing IAM role, then the add-on uses the permissions assigned to the node IAM role. For more information, see `Amazon EKS node IAM role <https://docs.aws.amazon.com/eks/latest/userguide/create-node-role.html>`_ in the *Amazon EKS User Guide* . .. epigraph:: To specify an existing IAM role, you must have an IAM OpenID Connect (OIDC) provider created for your cluster. For more information, see `Enabling IAM roles for service accounts on your cluster <https://docs.aws.amazon.com/eks/latest/userguide/enable-iam-roles-for-service-accounts.html>`_ in the *Amazon EKS User Guide* .
@@ -4252,6 +4258,7 @@ class CfnAddon(
4252
4258
  cluster_name=cluster_name,
4253
4259
  addon_version=addon_version,
4254
4260
  configuration_values=configuration_values,
4261
+ pod_identity_associations=pod_identity_associations,
4255
4262
  preserve_on_delete=preserve_on_delete,
4256
4263
  resolve_conflicts=resolve_conflicts,
4257
4264
  service_account_role_arn=service_account_role_arn,
@@ -4362,6 +4369,24 @@ class CfnAddon(
4362
4369
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
4363
4370
  jsii.set(self, "configurationValues", value)
4364
4371
 
4372
+ @builtins.property
4373
+ @jsii.member(jsii_name="podIdentityAssociations")
4374
+ def pod_identity_associations(
4375
+ self,
4376
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnAddon.PodIdentityAssociationProperty"]]]]:
4377
+ '''An array of pod identities to apply to this add-on.'''
4378
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnAddon.PodIdentityAssociationProperty"]]]], jsii.get(self, "podIdentityAssociations"))
4379
+
4380
+ @pod_identity_associations.setter
4381
+ def pod_identity_associations(
4382
+ self,
4383
+ value: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnAddon.PodIdentityAssociationProperty"]]]],
4384
+ ) -> None:
4385
+ if __debug__:
4386
+ type_hints = typing.get_type_hints(_typecheckingstub__04a430658e28600fba10a8c3e5edab2978904829dda6f2c70e9cca8560f7e400)
4387
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
4388
+ jsii.set(self, "podIdentityAssociations", value)
4389
+
4365
4390
  @builtins.property
4366
4391
  @jsii.member(jsii_name="preserveOnDelete")
4367
4392
  def preserve_on_delete(
@@ -4419,6 +4444,77 @@ class CfnAddon(
4419
4444
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
4420
4445
  jsii.set(self, "tagsRaw", value)
4421
4446
 
4447
+ @jsii.data_type(
4448
+ jsii_type="aws-cdk-lib.aws_eks.CfnAddon.PodIdentityAssociationProperty",
4449
+ jsii_struct_bases=[],
4450
+ name_mapping={"role_arn": "roleArn", "service_account": "serviceAccount"},
4451
+ )
4452
+ class PodIdentityAssociationProperty:
4453
+ def __init__(
4454
+ self,
4455
+ *,
4456
+ role_arn: builtins.str,
4457
+ service_account: builtins.str,
4458
+ ) -> None:
4459
+ '''A pod identity to associate with an add-on.
4460
+
4461
+ :param role_arn: The IAM role ARN that the pod identity association is created for.
4462
+ :param service_account: The Kubernetes service account that the pod identity association is created for.
4463
+
4464
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-addon-podidentityassociation.html
4465
+ :exampleMetadata: fixture=_generated
4466
+
4467
+ Example::
4468
+
4469
+ # The code below shows an example of how to instantiate this type.
4470
+ # The values are placeholders you should change.
4471
+ from aws_cdk import aws_eks as eks
4472
+
4473
+ pod_identity_association_property = eks.CfnAddon.PodIdentityAssociationProperty(
4474
+ role_arn="roleArn",
4475
+ service_account="serviceAccount"
4476
+ )
4477
+ '''
4478
+ if __debug__:
4479
+ type_hints = typing.get_type_hints(_typecheckingstub__3925c850dd0d0ad3b9faeea87aafbe69220a7bf33d95af5527715674625c9891)
4480
+ check_type(argname="argument role_arn", value=role_arn, expected_type=type_hints["role_arn"])
4481
+ check_type(argname="argument service_account", value=service_account, expected_type=type_hints["service_account"])
4482
+ self._values: typing.Dict[builtins.str, typing.Any] = {
4483
+ "role_arn": role_arn,
4484
+ "service_account": service_account,
4485
+ }
4486
+
4487
+ @builtins.property
4488
+ def role_arn(self) -> builtins.str:
4489
+ '''The IAM role ARN that the pod identity association is created for.
4490
+
4491
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-addon-podidentityassociation.html#cfn-eks-addon-podidentityassociation-rolearn
4492
+ '''
4493
+ result = self._values.get("role_arn")
4494
+ assert result is not None, "Required property 'role_arn' is missing"
4495
+ return typing.cast(builtins.str, result)
4496
+
4497
+ @builtins.property
4498
+ def service_account(self) -> builtins.str:
4499
+ '''The Kubernetes service account that the pod identity association is created for.
4500
+
4501
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-addon-podidentityassociation.html#cfn-eks-addon-podidentityassociation-serviceaccount
4502
+ '''
4503
+ result = self._values.get("service_account")
4504
+ assert result is not None, "Required property 'service_account' is missing"
4505
+ return typing.cast(builtins.str, result)
4506
+
4507
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
4508
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
4509
+
4510
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
4511
+ return not (rhs == self)
4512
+
4513
+ def __repr__(self) -> str:
4514
+ return "PodIdentityAssociationProperty(%s)" % ", ".join(
4515
+ k + "=" + repr(v) for k, v in self._values.items()
4516
+ )
4517
+
4422
4518
 
4423
4519
  @jsii.data_type(
4424
4520
  jsii_type="aws-cdk-lib.aws_eks.CfnAddonProps",
@@ -4428,6 +4524,7 @@ class CfnAddon(
4428
4524
  "cluster_name": "clusterName",
4429
4525
  "addon_version": "addonVersion",
4430
4526
  "configuration_values": "configurationValues",
4527
+ "pod_identity_associations": "podIdentityAssociations",
4431
4528
  "preserve_on_delete": "preserveOnDelete",
4432
4529
  "resolve_conflicts": "resolveConflicts",
4433
4530
  "service_account_role_arn": "serviceAccountRoleArn",
@@ -4442,6 +4539,7 @@ class CfnAddonProps:
4442
4539
  cluster_name: builtins.str,
4443
4540
  addon_version: typing.Optional[builtins.str] = None,
4444
4541
  configuration_values: typing.Optional[builtins.str] = None,
4542
+ pod_identity_associations: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnAddon.PodIdentityAssociationProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
4445
4543
  preserve_on_delete: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
4446
4544
  resolve_conflicts: typing.Optional[builtins.str] = None,
4447
4545
  service_account_role_arn: typing.Optional[builtins.str] = None,
@@ -4453,6 +4551,7 @@ class CfnAddonProps:
4453
4551
  :param cluster_name: The name of your cluster.
4454
4552
  :param addon_version: The version of the add-on.
4455
4553
  :param configuration_values: The configuration values that you provided.
4554
+ :param pod_identity_associations: An array of pod identities to apply to this add-on.
4456
4555
  :param preserve_on_delete: Specifying this option preserves the add-on software on your cluster but Amazon EKS stops managing any settings for the add-on. If an IAM account is associated with the add-on, it isn't removed.
4457
4556
  :param resolve_conflicts: How to resolve field value conflicts for an Amazon EKS add-on. Conflicts are handled based on the value you choose: - *None* – If the self-managed version of the add-on is installed on your cluster, Amazon EKS doesn't change the value. Creation of the add-on might fail. - *Overwrite* – If the self-managed version of the add-on is installed on your cluster and the Amazon EKS default value is different than the existing value, Amazon EKS changes the value to the Amazon EKS default value. - *Preserve* – This is similar to the NONE option. If the self-managed version of the add-on is installed on your cluster Amazon EKS doesn't change the add-on resource properties. Creation of the add-on might fail if conflicts are detected. This option works differently during the update operation. For more information, see `UpdateAddon <https://docs.aws.amazon.com/eks/latest/APIReference/API_UpdateAddon.html>`_ . If you don't currently have the self-managed version of the add-on installed on your cluster, the Amazon EKS add-on is installed. Amazon EKS sets all values to default values, regardless of the option that you specify.
4458
4557
  :param service_account_role_arn: The Amazon Resource Name (ARN) of an existing IAM role to bind to the add-on's service account. The role must be assigned the IAM permissions required by the add-on. If you don't specify an existing IAM role, then the add-on uses the permissions assigned to the node IAM role. For more information, see `Amazon EKS node IAM role <https://docs.aws.amazon.com/eks/latest/userguide/create-node-role.html>`_ in the *Amazon EKS User Guide* . .. epigraph:: To specify an existing IAM role, you must have an IAM OpenID Connect (OIDC) provider created for your cluster. For more information, see `Enabling IAM roles for service accounts on your cluster <https://docs.aws.amazon.com/eks/latest/userguide/enable-iam-roles-for-service-accounts.html>`_ in the *Amazon EKS User Guide* .
@@ -4474,6 +4573,10 @@ class CfnAddonProps:
4474
4573
  # the properties below are optional
4475
4574
  addon_version="addonVersion",
4476
4575
  configuration_values="configurationValues",
4576
+ pod_identity_associations=[eks.CfnAddon.PodIdentityAssociationProperty(
4577
+ role_arn="roleArn",
4578
+ service_account="serviceAccount"
4579
+ )],
4477
4580
  preserve_on_delete=False,
4478
4581
  resolve_conflicts="resolveConflicts",
4479
4582
  service_account_role_arn="serviceAccountRoleArn",
@@ -4489,6 +4592,7 @@ class CfnAddonProps:
4489
4592
  check_type(argname="argument cluster_name", value=cluster_name, expected_type=type_hints["cluster_name"])
4490
4593
  check_type(argname="argument addon_version", value=addon_version, expected_type=type_hints["addon_version"])
4491
4594
  check_type(argname="argument configuration_values", value=configuration_values, expected_type=type_hints["configuration_values"])
4595
+ check_type(argname="argument pod_identity_associations", value=pod_identity_associations, expected_type=type_hints["pod_identity_associations"])
4492
4596
  check_type(argname="argument preserve_on_delete", value=preserve_on_delete, expected_type=type_hints["preserve_on_delete"])
4493
4597
  check_type(argname="argument resolve_conflicts", value=resolve_conflicts, expected_type=type_hints["resolve_conflicts"])
4494
4598
  check_type(argname="argument service_account_role_arn", value=service_account_role_arn, expected_type=type_hints["service_account_role_arn"])
@@ -4501,6 +4605,8 @@ class CfnAddonProps:
4501
4605
  self._values["addon_version"] = addon_version
4502
4606
  if configuration_values is not None:
4503
4607
  self._values["configuration_values"] = configuration_values
4608
+ if pod_identity_associations is not None:
4609
+ self._values["pod_identity_associations"] = pod_identity_associations
4504
4610
  if preserve_on_delete is not None:
4505
4611
  self._values["preserve_on_delete"] = preserve_on_delete
4506
4612
  if resolve_conflicts is not None:
@@ -4548,6 +4654,17 @@ class CfnAddonProps:
4548
4654
  result = self._values.get("configuration_values")
4549
4655
  return typing.cast(typing.Optional[builtins.str], result)
4550
4656
 
4657
+ @builtins.property
4658
+ def pod_identity_associations(
4659
+ self,
4660
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, CfnAddon.PodIdentityAssociationProperty]]]]:
4661
+ '''An array of pod identities to apply to this add-on.
4662
+
4663
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-addon.html#cfn-eks-addon-podidentityassociations
4664
+ '''
4665
+ result = self._values.get("pod_identity_associations")
4666
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, CfnAddon.PodIdentityAssociationProperty]]]], result)
4667
+
4551
4668
  @builtins.property
4552
4669
  def preserve_on_delete(
4553
4670
  self,
@@ -9340,7 +9457,7 @@ class ClusterLoggingTypes(enum.Enum):
9340
9457
 
9341
9458
  cluster = eks.Cluster(self, "Cluster",
9342
9459
  # ...
9343
- version=eks.KubernetesVersion.V1_29,
9460
+ version=eks.KubernetesVersion.V1_30,
9344
9461
  cluster_logging=[eks.ClusterLoggingTypes.API, eks.ClusterLoggingTypes.AUTHENTICATOR, eks.ClusterLoggingTypes.SCHEDULER
9345
9462
  ]
9346
9463
  )
@@ -9579,7 +9696,7 @@ class DefaultCapacityType(enum.Enum):
9579
9696
  Example::
9580
9697
 
9581
9698
  cluster = eks.Cluster(self, "HelloEKS",
9582
- version=eks.KubernetesVersion.V1_29,
9699
+ version=eks.KubernetesVersion.V1_30,
9583
9700
  default_capacity_type=eks.DefaultCapacityType.EC2
9584
9701
  )
9585
9702
  '''
@@ -9748,7 +9865,7 @@ class EndpointAccess(
9748
9865
  Example::
9749
9866
 
9750
9867
  cluster = eks.Cluster(self, "hello-eks",
9751
- version=eks.KubernetesVersion.V1_29,
9868
+ version=eks.KubernetesVersion.V1_30,
9752
9869
  endpoint_access=eks.EndpointAccess.PRIVATE
9753
9870
  )
9754
9871
  '''
@@ -11690,7 +11807,7 @@ class IpFamily(enum.Enum):
11690
11807
  subnetcount = subnetcount + 1
11691
11808
 
11692
11809
  cluster = eks.Cluster(self, "hello-eks",
11693
- version=eks.KubernetesVersion.V1_29,
11810
+ version=eks.KubernetesVersion.V1_30,
11694
11811
  vpc=vpc,
11695
11812
  ip_family=eks.IpFamily.IP_V6,
11696
11813
  vpc_subnets=[ec2.SubnetSelection(subnets=vpc.public_subnets)]
@@ -12815,7 +12932,7 @@ class KubernetesVersion(
12815
12932
  Example::
12816
12933
 
12817
12934
  cluster = eks.Cluster(self, "HelloEKS",
12818
- version=eks.KubernetesVersion.V1_29,
12935
+ version=eks.KubernetesVersion.V1_30,
12819
12936
  default_capacity=0
12820
12937
  )
12821
12938
 
@@ -13020,6 +13137,17 @@ class KubernetesVersion(
13020
13137
  '''
13021
13138
  return typing.cast("KubernetesVersion", jsii.sget(cls, "V1_29"))
13022
13139
 
13140
+ @jsii.python.classproperty
13141
+ @jsii.member(jsii_name="V1_30")
13142
+ def V1_30(cls) -> "KubernetesVersion":
13143
+ '''Kubernetes version 1.30.
13144
+
13145
+ When creating a ``Cluster`` with this version, you need to also specify the
13146
+ ``kubectlLayer`` property with a ``KubectlV29Layer`` from
13147
+ ``@aws-cdk/lambda-layer-kubectl-v30``.
13148
+ '''
13149
+ return typing.cast("KubernetesVersion", jsii.sget(cls, "V1_30"))
13150
+
13023
13151
  @builtins.property
13024
13152
  @jsii.member(jsii_name="version")
13025
13153
  def version(self) -> builtins.str:
@@ -16760,7 +16888,7 @@ class ClusterProps(ClusterOptions):
16760
16888
  # vpc: ec2.Vpc
16761
16889
  eks.Cluster(self, "MyCluster",
16762
16890
  kubectl_memory=Size.gibibytes(4),
16763
- version=eks.KubernetesVersion.V1_29
16891
+ version=eks.KubernetesVersion.V1_30
16764
16892
  )
16765
16893
  eks.Cluster.from_cluster_attributes(self, "MyCluster",
16766
16894
  kubectl_memory=Size.gibibytes(4),
@@ -17250,7 +17378,7 @@ class FargateCluster(
17250
17378
  Example::
17251
17379
 
17252
17380
  cluster = eks.FargateCluster(self, "MyCluster",
17253
- version=eks.KubernetesVersion.V1_29
17381
+ version=eks.KubernetesVersion.V1_30
17254
17382
  )
17255
17383
  '''
17256
17384
 
@@ -17461,7 +17589,7 @@ class FargateClusterProps(ClusterOptions):
17461
17589
  Example::
17462
17590
 
17463
17591
  cluster = eks.FargateCluster(self, "MyCluster",
17464
- version=eks.KubernetesVersion.V1_29
17592
+ version=eks.KubernetesVersion.V1_30
17465
17593
  )
17466
17594
  '''
17467
17595
  if isinstance(alb_controller, dict):
@@ -18306,6 +18434,7 @@ def _typecheckingstub__45ff0728c7d6fc5f47c97aa791c327f70a32e19bdf463d94d9351053f
18306
18434
  cluster_name: builtins.str,
18307
18435
  addon_version: typing.Optional[builtins.str] = None,
18308
18436
  configuration_values: typing.Optional[builtins.str] = None,
18437
+ pod_identity_associations: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnAddon.PodIdentityAssociationProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
18309
18438
  preserve_on_delete: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
18310
18439
  resolve_conflicts: typing.Optional[builtins.str] = None,
18311
18440
  service_account_role_arn: typing.Optional[builtins.str] = None,
@@ -18350,6 +18479,12 @@ def _typecheckingstub__f2b158aed78a78d2962c2650df64f6c3880ccb508ebd6b281bda6c1a1
18350
18479
  """Type checking stubs"""
18351
18480
  pass
18352
18481
 
18482
+ def _typecheckingstub__04a430658e28600fba10a8c3e5edab2978904829dda6f2c70e9cca8560f7e400(
18483
+ value: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, CfnAddon.PodIdentityAssociationProperty]]]],
18484
+ ) -> None:
18485
+ """Type checking stubs"""
18486
+ pass
18487
+
18353
18488
  def _typecheckingstub__c38bc0bc32707ba96b79f5dda73d99054ea5b77577796b10a0f95ff6fe51b133(
18354
18489
  value: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]],
18355
18490
  ) -> None:
@@ -18374,12 +18509,21 @@ def _typecheckingstub__61cfcc2cd9aba81e02df7f2a5c976044dc5e5cbf6c05b880c4944cb35
18374
18509
  """Type checking stubs"""
18375
18510
  pass
18376
18511
 
18512
+ def _typecheckingstub__3925c850dd0d0ad3b9faeea87aafbe69220a7bf33d95af5527715674625c9891(
18513
+ *,
18514
+ role_arn: builtins.str,
18515
+ service_account: builtins.str,
18516
+ ) -> None:
18517
+ """Type checking stubs"""
18518
+ pass
18519
+
18377
18520
  def _typecheckingstub__484b2779e40e4780cb0940ac7bc9daaf91fa04347613d732138d3be3d3f5a2d9(
18378
18521
  *,
18379
18522
  addon_name: builtins.str,
18380
18523
  cluster_name: builtins.str,
18381
18524
  addon_version: typing.Optional[builtins.str] = None,
18382
18525
  configuration_values: typing.Optional[builtins.str] = None,
18526
+ pod_identity_associations: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnAddon.PodIdentityAssociationProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
18383
18527
  preserve_on_delete: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
18384
18528
  resolve_conflicts: typing.Optional[builtins.str] = None,
18385
18529
  service_account_role_arn: typing.Optional[builtins.str] = None,
@@ -13753,7 +13753,7 @@ class ArnPrincipal(
13753
13753
  Example::
13754
13754
 
13755
13755
  # Option 2: create your custom mastersRole with scoped assumeBy arn as the Cluster prop. Switch to this role from the AWS console.
13756
- from aws_cdk.lambda_layer_kubectl_v29 import KubectlV29Layer
13756
+ from aws_cdk.lambda_layer_kubectl_v30 import KubectlV30Layer
13757
13757
  # vpc: ec2.Vpc
13758
13758
 
13759
13759
 
@@ -13763,8 +13763,8 @@ class ArnPrincipal(
13763
13763
 
13764
13764
  cluster = eks.Cluster(self, "EksCluster",
13765
13765
  vpc=vpc,
13766
- version=eks.KubernetesVersion.V1_29,
13767
- kubectl_layer=KubectlV29Layer(self, "KubectlLayer"),
13766
+ version=eks.KubernetesVersion.V1_30,
13767
+ kubectl_layer=KubectlV30Layer(self, "KubectlLayer"),
13768
13768
  masters_role=masters_role
13769
13769
  )
13770
13770
 
@@ -1647,6 +1647,12 @@ class AdotLambdaLayerGenericVersion(
1647
1647
  '''Version 0.90.1.'''
1648
1648
  return typing.cast("AdotLambdaLayerGenericVersion", jsii.sget(cls, "V0_90_1"))
1649
1649
 
1650
+ @jsii.python.classproperty
1651
+ @jsii.member(jsii_name="V0_98_0")
1652
+ def V0_98_0(cls) -> "AdotLambdaLayerGenericVersion":
1653
+ '''Version 0.98.0.'''
1654
+ return typing.cast("AdotLambdaLayerGenericVersion", jsii.sget(cls, "V0_98_0"))
1655
+
1650
1656
  @builtins.property
1651
1657
  @jsii.member(jsii_name="layerVersion")
1652
1658
  def _layer_version(self) -> builtins.str:
@@ -2002,6 +2008,12 @@ class AdotLambdaLayerPythonSdkVersion(
2002
2008
  '''Version 1.21.0.'''
2003
2009
  return typing.cast("AdotLambdaLayerPythonSdkVersion", jsii.sget(cls, "V1_21_0"))
2004
2010
 
2011
+ @jsii.python.classproperty
2012
+ @jsii.member(jsii_name="V1_24_0")
2013
+ def V1_24_0(cls) -> "AdotLambdaLayerPythonSdkVersion":
2014
+ '''Version 1.24.0.'''
2015
+ return typing.cast("AdotLambdaLayerPythonSdkVersion", jsii.sget(cls, "V1_24_0"))
2016
+
2005
2017
  @builtins.property
2006
2018
  @jsii.member(jsii_name="layerVersion")
2007
2019
  def _layer_version(self) -> builtins.str: