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

Files changed (62) hide show
  1. aws_cdk/__init__.py +129 -37
  2. aws_cdk/_jsii/__init__.py +1 -1
  3. aws_cdk/_jsii/{aws-cdk-lib@2.200.2.jsii.tgz → aws-cdk-lib@2.202.0.jsii.tgz} +0 -0
  4. aws_cdk/aws_amazonmq/__init__.py +2 -3
  5. aws_cdk/aws_amplify/__init__.py +3 -3
  6. aws_cdk/aws_apigateway/__init__.py +21 -17
  7. aws_cdk/aws_apigatewayv2/__init__.py +87 -45
  8. aws_cdk/aws_appconfig/__init__.py +38 -1
  9. aws_cdk/aws_appsync/__init__.py +10 -10
  10. aws_cdk/aws_athena/__init__.py +227 -0
  11. aws_cdk/aws_autoscaling/__init__.py +38 -37
  12. aws_cdk/aws_bedrock/__init__.py +5108 -1571
  13. aws_cdk/aws_cloudfront/__init__.py +38 -38
  14. aws_cdk/aws_cloudfront/experimental/__init__.py +5 -0
  15. aws_cdk/aws_cloudtrail/__init__.py +178 -0
  16. aws_cdk/aws_cloudwatch/__init__.py +7 -3
  17. aws_cdk/aws_codepipeline_actions/__init__.py +746 -0
  18. aws_cdk/aws_connect/__init__.py +5 -5
  19. aws_cdk/aws_customerprofiles/__init__.py +377 -8
  20. aws_cdk/aws_datasync/__init__.py +189 -160
  21. aws_cdk/aws_datazone/__init__.py +512 -170
  22. aws_cdk/aws_deadline/__init__.py +32 -4
  23. aws_cdk/aws_dsql/__init__.py +150 -10
  24. aws_cdk/aws_ec2/__init__.py +1191 -304
  25. aws_cdk/aws_ecs/__init__.py +94 -11
  26. aws_cdk/aws_efs/__init__.py +103 -12
  27. aws_cdk/aws_eks/__init__.py +337 -168
  28. aws_cdk/aws_elasticloadbalancingv2/__init__.py +2 -2
  29. aws_cdk/aws_emr/__init__.py +10 -4
  30. aws_cdk/aws_entityresolution/__init__.py +25 -10
  31. aws_cdk/aws_evs/__init__.py +2204 -0
  32. aws_cdk/aws_fsx/__init__.py +7 -7
  33. aws_cdk/aws_glue/__init__.py +58 -24
  34. aws_cdk/aws_iam/__init__.py +3 -3
  35. aws_cdk/aws_kms/__init__.py +10 -4
  36. aws_cdk/aws_lambda/__init__.py +1167 -55
  37. aws_cdk/aws_lambda_event_sources/__init__.py +638 -1
  38. aws_cdk/aws_lightsail/__init__.py +17 -13
  39. aws_cdk/aws_logs/__init__.py +1 -0
  40. aws_cdk/aws_msk/__init__.py +21 -2
  41. aws_cdk/aws_mwaa/__init__.py +45 -2
  42. aws_cdk/aws_networkfirewall/__init__.py +562 -0
  43. aws_cdk/aws_opensearchservice/__init__.py +3 -3
  44. aws_cdk/aws_opsworkscm/__init__.py +9 -43
  45. aws_cdk/aws_rds/__init__.py +287 -87
  46. aws_cdk/aws_s3/__init__.py +39 -15
  47. aws_cdk/aws_sagemaker/__init__.py +223 -3
  48. aws_cdk/aws_securityhub/__init__.py +18 -34
  49. aws_cdk/aws_ssm/__init__.py +83 -1
  50. aws_cdk/aws_stepfunctions/__init__.py +235 -45
  51. aws_cdk/aws_synthetics/__init__.py +74 -0
  52. aws_cdk/aws_transfer/__init__.py +3 -3
  53. aws_cdk/aws_verifiedpermissions/__init__.py +17 -6
  54. aws_cdk/aws_wafv2/__init__.py +770 -7
  55. aws_cdk/cx_api/__init__.py +14 -0
  56. aws_cdk/pipelines/__init__.py +147 -38
  57. {aws_cdk_lib-2.200.2.dist-info → aws_cdk_lib-2.202.0.dist-info}/METADATA +3 -3
  58. {aws_cdk_lib-2.200.2.dist-info → aws_cdk_lib-2.202.0.dist-info}/RECORD +62 -61
  59. {aws_cdk_lib-2.200.2.dist-info → aws_cdk_lib-2.202.0.dist-info}/LICENSE +0 -0
  60. {aws_cdk_lib-2.200.2.dist-info → aws_cdk_lib-2.202.0.dist-info}/NOTICE +0 -0
  61. {aws_cdk_lib-2.200.2.dist-info → aws_cdk_lib-2.202.0.dist-info}/WHEEL +0 -0
  62. {aws_cdk_lib-2.200.2.dist-info → aws_cdk_lib-2.202.0.dist-info}/top_level.txt +0 -0
@@ -79,13 +79,13 @@ This example defines an Amazon EKS cluster with the following configuration:
79
79
  * A Kubernetes pod with a container based on the [paulbouwer/hello-kubernetes](https://github.com/paulbouwer/hello-kubernetes) image.
80
80
 
81
81
  ```python
82
- from aws_cdk.lambda_layer_kubectl_v32 import KubectlV32Layer
82
+ from aws_cdk.lambda_layer_kubectl_v33 import KubectlV33Layer
83
83
 
84
84
 
85
85
  # provisioning a cluster
86
86
  cluster = eks.Cluster(self, "hello-eks",
87
- version=eks.KubernetesVersion.V1_32,
88
- kubectl_layer=KubectlV32Layer(self, "kubectl")
87
+ version=eks.KubernetesVersion.V1_33,
88
+ kubectl_layer=KubectlV33Layer(self, "kubectl")
89
89
  )
90
90
 
91
91
  # apply a kubernetes manifest to the cluster
@@ -149,24 +149,24 @@ A more detailed breakdown of each is provided further down this README.
149
149
  Creating a new cluster is done using the `Cluster` or `FargateCluster` constructs. The only required properties are the kubernetes `version` and `kubectlLayer`.
150
150
 
151
151
  ```python
152
- from aws_cdk.lambda_layer_kubectl_v32 import KubectlV32Layer
152
+ from aws_cdk.lambda_layer_kubectl_v33 import KubectlV33Layer
153
153
 
154
154
 
155
155
  eks.Cluster(self, "HelloEKS",
156
- version=eks.KubernetesVersion.V1_32,
157
- kubectl_layer=KubectlV32Layer(self, "kubectl")
156
+ version=eks.KubernetesVersion.V1_33,
157
+ kubectl_layer=KubectlV33Layer(self, "kubectl")
158
158
  )
159
159
  ```
160
160
 
161
161
  You can also use `FargateCluster` to provision a cluster that uses only fargate workers.
162
162
 
163
163
  ```python
164
- from aws_cdk.lambda_layer_kubectl_v32 import KubectlV32Layer
164
+ from aws_cdk.lambda_layer_kubectl_v33 import KubectlV33Layer
165
165
 
166
166
 
167
167
  eks.FargateCluster(self, "HelloEKS",
168
- version=eks.KubernetesVersion.V1_32,
169
- kubectl_layer=KubectlV32Layer(self, "kubectl")
168
+ version=eks.KubernetesVersion.V1_33,
169
+ kubectl_layer=KubectlV33Layer(self, "kubectl")
170
170
  )
171
171
  ```
172
172
 
@@ -189,14 +189,14 @@ By default, this library will allocate a managed node group with 2 *m5.large* in
189
189
  At cluster instantiation time, you can customize the number of instances and their type:
190
190
 
191
191
  ```python
192
- from aws_cdk.lambda_layer_kubectl_v32 import KubectlV32Layer
192
+ from aws_cdk.lambda_layer_kubectl_v33 import KubectlV33Layer
193
193
 
194
194
 
195
195
  eks.Cluster(self, "HelloEKS",
196
- version=eks.KubernetesVersion.V1_32,
196
+ version=eks.KubernetesVersion.V1_33,
197
197
  default_capacity=5,
198
198
  default_capacity_instance=ec2.InstanceType.of(ec2.InstanceClass.M5, ec2.InstanceSize.SMALL),
199
- kubectl_layer=KubectlV32Layer(self, "kubectl")
199
+ kubectl_layer=KubectlV33Layer(self, "kubectl")
200
200
  )
201
201
  ```
202
202
 
@@ -205,13 +205,13 @@ To access the node group that was created on your behalf, you can use `cluster.d
205
205
  Additional customizations are available post instantiation. To apply them, set the default capacity to 0, and use the `cluster.addNodegroupCapacity` method:
206
206
 
207
207
  ```python
208
- from aws_cdk.lambda_layer_kubectl_v32 import KubectlV32Layer
208
+ from aws_cdk.lambda_layer_kubectl_v33 import KubectlV33Layer
209
209
 
210
210
 
211
211
  cluster = eks.Cluster(self, "HelloEKS",
212
- version=eks.KubernetesVersion.V1_32,
212
+ version=eks.KubernetesVersion.V1_33,
213
213
  default_capacity=0,
214
- kubectl_layer=KubectlV32Layer(self, "kubectl")
214
+ kubectl_layer=KubectlV33Layer(self, "kubectl")
215
215
  )
216
216
 
217
217
  cluster.add_nodegroup_capacity("custom-node-group",
@@ -290,7 +290,7 @@ Node groups are available with IPv6 configured networks. For custom roles assig
290
290
  > For more details visit [Configuring the Amazon VPC CNI plugin for Kubernetes to use IAM roles for service accounts](https://docs.aws.amazon.com/eks/latest/userguide/cni-iam-role.html#cni-iam-role-create-role)
291
291
 
292
292
  ```python
293
- from aws_cdk.lambda_layer_kubectl_v32 import KubectlV32Layer
293
+ from aws_cdk.lambda_layer_kubectl_v33 import KubectlV33Layer
294
294
 
295
295
 
296
296
  ipv6_management = iam.PolicyDocument(
@@ -315,9 +315,9 @@ eks_cluster_node_group_role = iam.Role(self, "eksClusterNodeGroupRole",
315
315
  )
316
316
 
317
317
  cluster = eks.Cluster(self, "HelloEKS",
318
- version=eks.KubernetesVersion.V1_32,
318
+ version=eks.KubernetesVersion.V1_33,
319
319
  default_capacity=0,
320
- kubectl_layer=KubectlV32Layer(self, "kubectl")
320
+ kubectl_layer=KubectlV33Layer(self, "kubectl")
321
321
  )
322
322
 
323
323
  cluster.add_nodegroup_capacity("custom-node-group",
@@ -426,13 +426,13 @@ has been changed. As a workaround, you need to add a temporary policy to the clu
426
426
  successful replacement. Consider this example if you are renaming the cluster from `foo` to `bar`:
427
427
 
428
428
  ```python
429
- from aws_cdk.lambda_layer_kubectl_v32 import KubectlV32Layer
429
+ from aws_cdk.lambda_layer_kubectl_v33 import KubectlV33Layer
430
430
 
431
431
 
432
432
  cluster = eks.Cluster(self, "cluster-to-rename",
433
433
  cluster_name="foo", # rename this to 'bar'
434
- kubectl_layer=KubectlV32Layer(self, "kubectl"),
435
- version=eks.KubernetesVersion.V1_32
434
+ kubectl_layer=KubectlV33Layer(self, "kubectl"),
435
+ version=eks.KubernetesVersion.V1_33
436
436
  )
437
437
 
438
438
  # allow the cluster admin role to delete the cluster 'foo'
@@ -485,12 +485,12 @@ To create an EKS cluster that **only** uses Fargate capacity, you can use `Farga
485
485
  The following code defines an Amazon EKS cluster with a default Fargate Profile that matches all pods from the "kube-system" and "default" namespaces. It is also configured to [run CoreDNS on Fargate](https://docs.aws.amazon.com/eks/latest/userguide/fargate-getting-started.html#fargate-gs-coredns).
486
486
 
487
487
  ```python
488
- from aws_cdk.lambda_layer_kubectl_v32 import KubectlV32Layer
488
+ from aws_cdk.lambda_layer_kubectl_v33 import KubectlV33Layer
489
489
 
490
490
 
491
491
  cluster = eks.FargateCluster(self, "MyCluster",
492
- version=eks.KubernetesVersion.V1_32,
493
- kubectl_layer=KubectlV32Layer(self, "kubectl")
492
+ version=eks.KubernetesVersion.V1_33,
493
+ kubectl_layer=KubectlV33Layer(self, "kubectl")
494
494
  )
495
495
  ```
496
496
 
@@ -570,13 +570,13 @@ To disable bootstrapping altogether (i.e. to fully customize user-data), set `bo
570
570
  You can also configure the cluster to use an auto-scaling group as the default capacity:
571
571
 
572
572
  ```python
573
- from aws_cdk.lambda_layer_kubectl_v32 import KubectlV32Layer
573
+ from aws_cdk.lambda_layer_kubectl_v33 import KubectlV33Layer
574
574
 
575
575
 
576
576
  cluster = eks.Cluster(self, "HelloEKS",
577
- version=eks.KubernetesVersion.V1_32,
577
+ version=eks.KubernetesVersion.V1_33,
578
578
  default_capacity_type=eks.DefaultCapacityType.EC2,
579
- kubectl_layer=KubectlV32Layer(self, "kubectl")
579
+ kubectl_layer=KubectlV33Layer(self, "kubectl")
580
580
  )
581
581
  ```
582
582
 
@@ -683,13 +683,13 @@ AWS Identity and Access Management (IAM) and native Kubernetes [Role Based Acces
683
683
  You can configure the [cluster endpoint access](https://docs.aws.amazon.com/eks/latest/userguide/cluster-endpoint.html) by using the `endpointAccess` property:
684
684
 
685
685
  ```python
686
- from aws_cdk.lambda_layer_kubectl_v32 import KubectlV32Layer
686
+ from aws_cdk.lambda_layer_kubectl_v33 import KubectlV33Layer
687
687
 
688
688
 
689
689
  cluster = eks.Cluster(self, "hello-eks",
690
- version=eks.KubernetesVersion.V1_32,
690
+ version=eks.KubernetesVersion.V1_33,
691
691
  endpoint_access=eks.EndpointAccess.PRIVATE, # No access outside of your VPC.
692
- kubectl_layer=KubectlV32Layer(self, "kubectl")
692
+ kubectl_layer=KubectlV33Layer(self, "kubectl")
693
693
  )
694
694
  ```
695
695
 
@@ -709,33 +709,33 @@ From the docs:
709
709
  To deploy the controller on your EKS cluster, configure the `albController` property:
710
710
 
711
711
  ```python
712
- from aws_cdk.lambda_layer_kubectl_v32 import KubectlV32Layer
712
+ from aws_cdk.lambda_layer_kubectl_v33 import KubectlV33Layer
713
713
 
714
714
 
715
715
  eks.Cluster(self, "HelloEKS",
716
- version=eks.KubernetesVersion.V1_32,
716
+ version=eks.KubernetesVersion.V1_33,
717
717
  alb_controller=eks.AlbControllerOptions(
718
718
  version=eks.AlbControllerVersion.V2_8_2
719
719
  ),
720
- kubectl_layer=KubectlV32Layer(self, "kubectl")
720
+ kubectl_layer=KubectlV33Layer(self, "kubectl")
721
721
  )
722
722
  ```
723
723
 
724
724
  To provide additional Helm chart values supported by `albController` in CDK, use the `additionalHelmChartValues` property. For example, the following code snippet shows how to set the `enableWafV2` flag:
725
725
 
726
726
  ```python
727
- from aws_cdk.lambda_layer_kubectl_v32 import KubectlV32Layer
727
+ from aws_cdk.lambda_layer_kubectl_v33 import KubectlV33Layer
728
728
 
729
729
 
730
730
  eks.Cluster(self, "HelloEKS",
731
- version=eks.KubernetesVersion.V1_32,
731
+ version=eks.KubernetesVersion.V1_33,
732
732
  alb_controller=eks.AlbControllerOptions(
733
733
  version=eks.AlbControllerVersion.V2_8_2,
734
734
  additional_helm_chart_values=eks.AlbControllerHelmChartOptions(
735
735
  enable_wafv2=False
736
736
  )
737
737
  ),
738
- kubectl_layer=KubectlV32Layer(self, "kubectl")
738
+ kubectl_layer=KubectlV33Layer(self, "kubectl")
739
739
  )
740
740
  ```
741
741
 
@@ -772,16 +772,16 @@ if cluster.alb_controller:
772
772
  You can specify the VPC of the cluster using the `vpc` and `vpcSubnets` properties:
773
773
 
774
774
  ```python
775
- from aws_cdk.lambda_layer_kubectl_v32 import KubectlV32Layer
775
+ from aws_cdk.lambda_layer_kubectl_v33 import KubectlV33Layer
776
776
 
777
777
  # vpc: ec2.Vpc
778
778
 
779
779
 
780
780
  eks.Cluster(self, "HelloEKS",
781
- version=eks.KubernetesVersion.V1_32,
781
+ version=eks.KubernetesVersion.V1_33,
782
782
  vpc=vpc,
783
783
  vpc_subnets=[ec2.SubnetSelection(subnet_type=ec2.SubnetType.PRIVATE_WITH_EGRESS)],
784
- kubectl_layer=KubectlV32Layer(self, "kubectl")
784
+ kubectl_layer=KubectlV33Layer(self, "kubectl")
785
785
  )
786
786
  ```
787
787
 
@@ -825,12 +825,12 @@ The `ClusterHandler` is a set of Lambda functions (`onEventHandler`, `isComplete
825
825
  You can configure the environment of the Cluster Handler functions by specifying it at cluster instantiation. For example, this can be useful in order to configure an http proxy:
826
826
 
827
827
  ```python
828
- from aws_cdk.lambda_layer_kubectl_v32 import KubectlV32Layer
828
+ from aws_cdk.lambda_layer_kubectl_v33 import KubectlV33Layer
829
829
 
830
830
  # proxy_instance_security_group: ec2.SecurityGroup
831
831
 
832
832
  cluster = eks.Cluster(self, "hello-eks",
833
- version=eks.KubernetesVersion.V1_32,
833
+ version=eks.KubernetesVersion.V1_33,
834
834
  cluster_handler_environment={
835
835
  "https_proxy": "http://proxy.myproxy.com"
836
836
  },
@@ -839,7 +839,7 @@ cluster = eks.Cluster(self, "hello-eks",
839
839
  # Cluster Handler Lambdas so that it can reach the proxy.
840
840
  #
841
841
  cluster_handler_security_group=proxy_instance_security_group,
842
- kubectl_layer=KubectlV32Layer(self, "kubectl")
842
+ kubectl_layer=KubectlV33Layer(self, "kubectl")
843
843
  )
844
844
  ```
845
845
 
@@ -848,7 +848,7 @@ cluster = eks.Cluster(self, "hello-eks",
848
848
  You can optionally choose to configure your cluster to use IPv6 using the [`ipFamily`](https://docs.aws.amazon.com/eks/latest/APIReference/API_KubernetesNetworkConfigRequest.html#AmazonEKS-Type-KubernetesNetworkConfigRequest-ipFamily) definition for your cluster. Note that this will require the underlying subnets to have an associated IPv6 CIDR.
849
849
 
850
850
  ```python
851
- from aws_cdk.lambda_layer_kubectl_v32 import KubectlV32Layer
851
+ from aws_cdk.lambda_layer_kubectl_v33 import KubectlV33Layer
852
852
  # vpc: ec2.Vpc
853
853
 
854
854
 
@@ -873,11 +873,11 @@ for subnet in subnets:
873
873
  subnetcount = subnetcount + 1
874
874
 
875
875
  cluster = eks.Cluster(self, "hello-eks",
876
- version=eks.KubernetesVersion.V1_32,
876
+ version=eks.KubernetesVersion.V1_33,
877
877
  vpc=vpc,
878
878
  ip_family=eks.IpFamily.IP_V6,
879
879
  vpc_subnets=[ec2.SubnetSelection(subnets=vpc.public_subnets)],
880
- kubectl_layer=KubectlV32Layer(self, "kubectl")
880
+ kubectl_layer=KubectlV33Layer(self, "kubectl")
881
881
  )
882
882
  ```
883
883
 
@@ -908,15 +908,15 @@ cluster = eks.Cluster.from_cluster_attributes(self, "Cluster",
908
908
  You can configure the environment of this function by specifying it at cluster instantiation. For example, this can be useful in order to configure an http proxy:
909
909
 
910
910
  ```python
911
- from aws_cdk.lambda_layer_kubectl_v32 import KubectlV32Layer
911
+ from aws_cdk.lambda_layer_kubectl_v33 import KubectlV33Layer
912
912
 
913
913
 
914
914
  cluster = eks.Cluster(self, "hello-eks",
915
- version=eks.KubernetesVersion.V1_32,
915
+ version=eks.KubernetesVersion.V1_33,
916
916
  kubectl_environment={
917
917
  "http_proxy": "http://proxy.myproxy.com"
918
918
  },
919
- kubectl_layer=KubectlV32Layer(self, "kubectl")
919
+ kubectl_layer=KubectlV33Layer(self, "kubectl")
920
920
  )
921
921
  ```
922
922
 
@@ -933,12 +933,12 @@ Depending on which version of kubernetes you're targeting, you will need to use
933
933
  the `@aws-cdk/lambda-layer-kubectl-vXY` packages.
934
934
 
935
935
  ```python
936
- from aws_cdk.lambda_layer_kubectl_v32 import KubectlV32Layer
936
+ from aws_cdk.lambda_layer_kubectl_v33 import KubectlV33Layer
937
937
 
938
938
 
939
939
  cluster = eks.Cluster(self, "hello-eks",
940
- version=eks.KubernetesVersion.V1_32,
941
- kubectl_layer=KubectlV32Layer(self, "kubectl")
940
+ version=eks.KubernetesVersion.V1_33,
941
+ kubectl_layer=KubectlV33Layer(self, "kubectl")
942
942
  )
943
943
  ```
944
944
 
@@ -974,7 +974,7 @@ cluster1 = eks.Cluster(self, "MyCluster",
974
974
  kubectl_layer=layer,
975
975
  vpc=vpc,
976
976
  cluster_name="cluster-name",
977
- version=eks.KubernetesVersion.V1_32
977
+ version=eks.KubernetesVersion.V1_33
978
978
  )
979
979
 
980
980
  # or
@@ -990,7 +990,7 @@ cluster2 = eks.Cluster.from_cluster_attributes(self, "MyCluster",
990
990
  By default, the kubectl provider is configured with 1024MiB of memory. You can use the `kubectlMemory` option to specify the memory size for the AWS Lambda function:
991
991
 
992
992
  ```python
993
- from aws_cdk.lambda_layer_kubectl_v32 import KubectlV32Layer
993
+ from aws_cdk.lambda_layer_kubectl_v33 import KubectlV33Layer
994
994
 
995
995
  # or
996
996
  # vpc: ec2.Vpc
@@ -998,8 +998,8 @@ from aws_cdk.lambda_layer_kubectl_v32 import KubectlV32Layer
998
998
 
999
999
  eks.Cluster(self, "MyCluster",
1000
1000
  kubectl_memory=Size.gibibytes(4),
1001
- version=eks.KubernetesVersion.V1_32,
1002
- kubectl_layer=KubectlV32Layer(self, "kubectl")
1001
+ version=eks.KubernetesVersion.V1_33,
1002
+ kubectl_layer=KubectlV33Layer(self, "kubectl")
1003
1003
  )
1004
1004
  eks.Cluster.from_cluster_attributes(self, "MyCluster",
1005
1005
  kubectl_memory=Size.gibibytes(4),
@@ -1034,14 +1034,14 @@ cluster.add_auto_scaling_group_capacity("self-ng-arm",
1034
1034
  When you create a cluster, you can specify a `mastersRole`. The `Cluster` construct will associate this role with the `system:masters` [RBAC](https://kubernetes.io/docs/reference/access-authn-authz/rbac/) group, giving it super-user access to the cluster.
1035
1035
 
1036
1036
  ```python
1037
- from aws_cdk.lambda_layer_kubectl_v32 import KubectlV32Layer
1037
+ from aws_cdk.lambda_layer_kubectl_v33 import KubectlV33Layer
1038
1038
 
1039
1039
  # role: iam.Role
1040
1040
 
1041
1041
  eks.Cluster(self, "HelloEKS",
1042
- version=eks.KubernetesVersion.V1_32,
1042
+ version=eks.KubernetesVersion.V1_33,
1043
1043
  masters_role=role,
1044
- kubectl_layer=KubectlV32Layer(self, "kubectl")
1044
+ kubectl_layer=KubectlV33Layer(self, "kubectl")
1045
1045
  )
1046
1046
  ```
1047
1047
 
@@ -1087,28 +1087,28 @@ You can use the `secretsEncryptionKey` to configure which key the cluster will u
1087
1087
  > This setting can only be specified when the cluster is created and cannot be updated.
1088
1088
 
1089
1089
  ```python
1090
- from aws_cdk.lambda_layer_kubectl_v32 import KubectlV32Layer
1090
+ from aws_cdk.lambda_layer_kubectl_v33 import KubectlV33Layer
1091
1091
 
1092
1092
 
1093
1093
  secrets_key = kms.Key(self, "SecretsKey")
1094
1094
  cluster = eks.Cluster(self, "MyCluster",
1095
1095
  secrets_encryption_key=secrets_key,
1096
- version=eks.KubernetesVersion.V1_32,
1097
- kubectl_layer=KubectlV32Layer(self, "kubectl")
1096
+ version=eks.KubernetesVersion.V1_33,
1097
+ kubectl_layer=KubectlV33Layer(self, "kubectl")
1098
1098
  )
1099
1099
  ```
1100
1100
 
1101
1101
  You can also use a similar configuration for running a cluster built using the FargateCluster construct.
1102
1102
 
1103
1103
  ```python
1104
- from aws_cdk.lambda_layer_kubectl_v32 import KubectlV32Layer
1104
+ from aws_cdk.lambda_layer_kubectl_v33 import KubectlV33Layer
1105
1105
 
1106
1106
 
1107
1107
  secrets_key = kms.Key(self, "SecretsKey")
1108
1108
  cluster = eks.FargateCluster(self, "MyFargateCluster",
1109
1109
  secrets_encryption_key=secrets_key,
1110
- version=eks.KubernetesVersion.V1_32,
1111
- kubectl_layer=KubectlV32Layer(self, "kubectl")
1110
+ version=eks.KubernetesVersion.V1_33,
1111
+ kubectl_layer=KubectlV33Layer(self, "kubectl")
1112
1112
  )
1113
1113
  ```
1114
1114
 
@@ -1127,12 +1127,12 @@ When you create an Amazon EKS cluster, you can configure it to leverage the [EKS
1127
1127
  Once you have identified the on-premises node and pod (optional) CIDRs you will use for your hybrid nodes and the workloads running on them, you can specify them during cluster creation using the `remoteNodeNetworks` and `remotePodNetworks` (optional) properties:
1128
1128
 
1129
1129
  ```python
1130
- from aws_cdk.lambda_layer_kubectl_v32 import KubectlV32Layer
1130
+ from aws_cdk.lambda_layer_kubectl_v33 import KubectlV33Layer
1131
1131
 
1132
1132
 
1133
1133
  eks.Cluster(self, "Cluster",
1134
- version=eks.KubernetesVersion.V1_32,
1135
- kubectl_layer=KubectlV32Layer(self, "KubectlLayer"),
1134
+ version=eks.KubernetesVersion.V1_33,
1135
+ kubectl_layer=KubectlV33Layer(self, "KubectlLayer"),
1136
1136
  remote_node_networks=[eks.RemoteNodeNetwork(
1137
1137
  cidrs=["10.0.0.0/16"]
1138
1138
  )
@@ -1144,6 +1144,12 @@ eks.Cluster(self, "Cluster",
1144
1144
  )
1145
1145
  ```
1146
1146
 
1147
+ ### Self-Managed Add-ons
1148
+
1149
+ Amazon EKS automatically installs self-managed add-ons such as the Amazon VPC CNI plugin for Kubernetes, kube-proxy, and CoreDNS for every cluster. You can change the default configuration of the add-ons and update them when desired. If you wish to create a cluster without the default add-ons, set `bootstrapSelfManagedAddons` as `false`. When this is set to false, make sure to install the necessary alternatives which provide functionality that enables pod and service operations for your EKS cluster.
1150
+
1151
+ > Changing the value of `bootstrapSelfManagedAddons` after the EKS cluster creation will result in a replacement of the cluster.
1152
+
1147
1153
  ## Permissions and Security
1148
1154
 
1149
1155
  Amazon EKS provides several mechanism of securing the cluster and granting permissions to specific IAM users and roles.
@@ -1179,7 +1185,7 @@ To access the Kubernetes resources from the console, make sure your viewing prin
1179
1185
  in the `aws-auth` ConfigMap. Some options to consider:
1180
1186
 
1181
1187
  ```python
1182
- from aws_cdk.lambda_layer_kubectl_v32 import KubectlV32Layer
1188
+ from aws_cdk.lambda_layer_kubectl_v33 import KubectlV33Layer
1183
1189
  # cluster: eks.Cluster
1184
1190
  # your_current_role: iam.Role
1185
1191
  # vpc: ec2.Vpc
@@ -1197,7 +1203,7 @@ your_current_role.add_to_policy(iam.PolicyStatement(
1197
1203
 
1198
1204
  ```python
1199
1205
  # Option 2: create your custom mastersRole with scoped assumeBy arn as the Cluster prop. Switch to this role from the AWS console.
1200
- from aws_cdk.lambda_layer_kubectl_v32 import KubectlV32Layer
1206
+ from aws_cdk.lambda_layer_kubectl_v33 import KubectlV33Layer
1201
1207
  # vpc: ec2.Vpc
1202
1208
 
1203
1209
 
@@ -1207,8 +1213,8 @@ masters_role = iam.Role(self, "MastersRole",
1207
1213
 
1208
1214
  cluster = eks.Cluster(self, "EksCluster",
1209
1215
  vpc=vpc,
1210
- version=eks.KubernetesVersion.V1_32,
1211
- kubectl_layer=KubectlV32Layer(self, "KubectlLayer"),
1216
+ version=eks.KubernetesVersion.V1_33,
1217
+ kubectl_layer=KubectlV33Layer(self, "KubectlLayer"),
1212
1218
  masters_role=masters_role
1213
1219
  )
1214
1220
 
@@ -1247,14 +1253,14 @@ AWS IAM principals from both Amazon EKS access entry APIs and the aws-auth confi
1247
1253
  To specify the `authenticationMode`:
1248
1254
 
1249
1255
  ```python
1250
- from aws_cdk.lambda_layer_kubectl_v32 import KubectlV32Layer
1256
+ from aws_cdk.lambda_layer_kubectl_v33 import KubectlV33Layer
1251
1257
  # vpc: ec2.Vpc
1252
1258
 
1253
1259
 
1254
1260
  eks.Cluster(self, "Cluster",
1255
1261
  vpc=vpc,
1256
- version=eks.KubernetesVersion.V1_32,
1257
- kubectl_layer=KubectlV32Layer(self, "KubectlLayer"),
1262
+ version=eks.KubernetesVersion.V1_33,
1263
+ kubectl_layer=KubectlV33Layer(self, "KubectlLayer"),
1258
1264
  authentication_mode=eks.AuthenticationMode.API_AND_CONFIG_MAP
1259
1265
  )
1260
1266
  ```
@@ -1299,7 +1305,7 @@ eks.AccessPolicy.from_access_policy_name("AmazonEKSAdminPolicy",
1299
1305
  Use `grantAccess()` to grant the AccessPolicy to an IAM principal:
1300
1306
 
1301
1307
  ```python
1302
- from aws_cdk.lambda_layer_kubectl_v32 import KubectlV32Layer
1308
+ from aws_cdk.lambda_layer_kubectl_v33 import KubectlV33Layer
1303
1309
  # vpc: ec2.Vpc
1304
1310
 
1305
1311
 
@@ -1318,8 +1324,8 @@ eks_admin_view_role = iam.Role(self, "EKSAdminViewRole",
1318
1324
  cluster = eks.Cluster(self, "Cluster",
1319
1325
  vpc=vpc,
1320
1326
  masters_role=cluster_admin_role,
1321
- version=eks.KubernetesVersion.V1_32,
1322
- kubectl_layer=KubectlV32Layer(self, "KubectlLayer"),
1327
+ version=eks.KubernetesVersion.V1_33,
1328
+ kubectl_layer=KubectlV33Layer(self, "KubectlLayer"),
1323
1329
  authentication_mode=eks.AuthenticationMode.API_AND_CONFIG_MAP
1324
1330
  )
1325
1331
 
@@ -1650,13 +1656,13 @@ Pruning is enabled by default but can be disabled through the `prune` option
1650
1656
  when a cluster is defined:
1651
1657
 
1652
1658
  ```python
1653
- from aws_cdk.lambda_layer_kubectl_v32 import KubectlV32Layer
1659
+ from aws_cdk.lambda_layer_kubectl_v33 import KubectlV33Layer
1654
1660
 
1655
1661
 
1656
1662
  eks.Cluster(self, "MyCluster",
1657
- version=eks.KubernetesVersion.V1_32,
1663
+ version=eks.KubernetesVersion.V1_33,
1658
1664
  prune=False,
1659
- kubectl_layer=KubectlV32Layer(self, "kubectl")
1665
+ kubectl_layer=KubectlV33Layer(self, "kubectl")
1660
1666
  )
1661
1667
  ```
1662
1668
 
@@ -2055,15 +2061,15 @@ You can enable logging for each one separately using the `clusterLogging`
2055
2061
  property. For example:
2056
2062
 
2057
2063
  ```python
2058
- from aws_cdk.lambda_layer_kubectl_v32 import KubectlV32Layer
2064
+ from aws_cdk.lambda_layer_kubectl_v33 import KubectlV33Layer
2059
2065
 
2060
2066
 
2061
2067
  cluster = eks.Cluster(self, "Cluster",
2062
2068
  # ...
2063
- version=eks.KubernetesVersion.V1_32,
2069
+ version=eks.KubernetesVersion.V1_33,
2064
2070
  cluster_logging=[eks.ClusterLoggingTypes.API, eks.ClusterLoggingTypes.AUTHENTICATOR, eks.ClusterLoggingTypes.SCHEDULER
2065
2071
  ],
2066
- kubectl_layer=KubectlV32Layer(self, "kubectl")
2072
+ kubectl_layer=KubectlV33Layer(self, "kubectl")
2067
2073
  )
2068
2074
  ```
2069
2075
 
@@ -3059,18 +3065,18 @@ class AlbControllerHelmChartOptions:
3059
3065
 
3060
3066
  Example::
3061
3067
 
3062
- from aws_cdk.lambda_layer_kubectl_v32 import KubectlV32Layer
3068
+ from aws_cdk.lambda_layer_kubectl_v33 import KubectlV33Layer
3063
3069
 
3064
3070
 
3065
3071
  eks.Cluster(self, "HelloEKS",
3066
- version=eks.KubernetesVersion.V1_32,
3072
+ version=eks.KubernetesVersion.V1_33,
3067
3073
  alb_controller=eks.AlbControllerOptions(
3068
3074
  version=eks.AlbControllerVersion.V2_8_2,
3069
3075
  additional_helm_chart_values=eks.AlbControllerHelmChartOptions(
3070
3076
  enable_wafv2=False
3071
3077
  )
3072
3078
  ),
3073
- kubectl_layer=KubectlV32Layer(self, "kubectl")
3079
+ kubectl_layer=KubectlV33Layer(self, "kubectl")
3074
3080
  )
3075
3081
  '''
3076
3082
  if __debug__:
@@ -3143,15 +3149,15 @@ class AlbControllerOptions:
3143
3149
 
3144
3150
  Example::
3145
3151
 
3146
- from aws_cdk.lambda_layer_kubectl_v32 import KubectlV32Layer
3152
+ from aws_cdk.lambda_layer_kubectl_v33 import KubectlV33Layer
3147
3153
 
3148
3154
 
3149
3155
  eks.Cluster(self, "HelloEKS",
3150
- version=eks.KubernetesVersion.V1_32,
3156
+ version=eks.KubernetesVersion.V1_33,
3151
3157
  alb_controller=eks.AlbControllerOptions(
3152
3158
  version=eks.AlbControllerVersion.V2_8_2
3153
3159
  ),
3154
- kubectl_layer=KubectlV32Layer(self, "kubectl")
3160
+ kubectl_layer=KubectlV33Layer(self, "kubectl")
3155
3161
  )
3156
3162
  '''
3157
3163
  if isinstance(additional_helm_chart_values, dict):
@@ -3379,15 +3385,15 @@ class AlbControllerVersion(
3379
3385
 
3380
3386
  Example::
3381
3387
 
3382
- from aws_cdk.lambda_layer_kubectl_v32 import KubectlV32Layer
3388
+ from aws_cdk.lambda_layer_kubectl_v33 import KubectlV33Layer
3383
3389
 
3384
3390
 
3385
3391
  eks.Cluster(self, "HelloEKS",
3386
- version=eks.KubernetesVersion.V1_32,
3392
+ version=eks.KubernetesVersion.V1_33,
3387
3393
  alb_controller=eks.AlbControllerOptions(
3388
3394
  version=eks.AlbControllerVersion.V2_8_2
3389
3395
  ),
3390
- kubectl_layer=KubectlV32Layer(self, "kubectl")
3396
+ kubectl_layer=KubectlV33Layer(self, "kubectl")
3391
3397
  )
3392
3398
  '''
3393
3399
 
@@ -3663,14 +3669,14 @@ class AuthenticationMode(enum.Enum):
3663
3669
 
3664
3670
  Example::
3665
3671
 
3666
- from aws_cdk.lambda_layer_kubectl_v32 import KubectlV32Layer
3672
+ from aws_cdk.lambda_layer_kubectl_v33 import KubectlV33Layer
3667
3673
  # vpc: ec2.Vpc
3668
3674
 
3669
3675
 
3670
3676
  eks.Cluster(self, "Cluster",
3671
3677
  vpc=vpc,
3672
- version=eks.KubernetesVersion.V1_32,
3673
- kubectl_layer=KubectlV32Layer(self, "KubectlLayer"),
3678
+ version=eks.KubernetesVersion.V1_33,
3679
+ kubectl_layer=KubectlV33Layer(self, "KubectlLayer"),
3674
3680
  authentication_mode=eks.AuthenticationMode.API_AND_CONFIG_MAP
3675
3681
  )
3676
3682
  '''
@@ -5581,7 +5587,7 @@ class CfnAddon(
5581
5587
  :param cluster_name: The name of your cluster.
5582
5588
  :param addon_version: The version of the add-on.
5583
5589
  :param configuration_values: The configuration values that you provided.
5584
- :param pod_identity_associations: An array of Pod Identity Assocations owned by the Addon. Each EKS Pod Identity association maps a role to a service account in a namespace in the cluster. For more information, see `Attach an IAM Role to an Amazon EKS add-on using Pod Identity <https://docs.aws.amazon.com/eks/latest/userguide/add-ons-iam.html>`_ in the *Amazon EKS User Guide* .
5590
+ :param pod_identity_associations: An array of EKS Pod Identity associations owned by the add-on. Each association maps a role to a service account in a namespace in the cluster. For more information, see `Attach an IAM Role to an Amazon EKS add-on using EKS Pod Identity <https://docs.aws.amazon.com/eks/latest/userguide/add-ons-iam.html>`_ in the *Amazon EKS User Guide* .
5585
5591
  :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.
5586
5592
  :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.
5587
5593
  :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* .
@@ -5712,7 +5718,7 @@ class CfnAddon(
5712
5718
  def pod_identity_associations(
5713
5719
  self,
5714
5720
  ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnAddon.PodIdentityAssociationProperty"]]]]:
5715
- '''An array of Pod Identity Assocations owned by the Addon.'''
5721
+ '''An array of EKS Pod Identity associations owned by the add-on.'''
5716
5722
  return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnAddon.PodIdentityAssociationProperty"]]]], jsii.get(self, "podIdentityAssociations"))
5717
5723
 
5718
5724
  @pod_identity_associations.setter
@@ -5796,7 +5802,7 @@ class CfnAddon(
5796
5802
  ) -> None:
5797
5803
  '''Amazon EKS Pod Identity associations provide the ability to manage credentials for your applications, similar to the way that Amazon EC2 instance profiles provide credentials to Amazon EC2 instances.
5798
5804
 
5799
- :param role_arn: The Amazon Resource Name (ARN) of the IAM role to associate with the service account. The EKS Pod Identity agent manages credentials to assume this role for applications in the containers in the pods that use this service account.
5805
+ :param role_arn: The Amazon Resource Name (ARN) of the IAM role to associate with the service account. The EKS Pod Identity agent manages credentials to assume this role for applications in the containers in the Pods that use this service account.
5800
5806
  :param service_account: The name of the Kubernetes service account inside the cluster to associate the IAM credentials with.
5801
5807
 
5802
5808
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-addon-podidentityassociation.html
@@ -5826,7 +5832,7 @@ class CfnAddon(
5826
5832
  def role_arn(self) -> builtins.str:
5827
5833
  '''The Amazon Resource Name (ARN) of the IAM role to associate with the service account.
5828
5834
 
5829
- The EKS Pod Identity agent manages credentials to assume this role for applications in the containers in the pods that use this service account.
5835
+ The EKS Pod Identity agent manages credentials to assume this role for applications in the containers in the Pods that use this service account.
5830
5836
 
5831
5837
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-addon-podidentityassociation.html#cfn-eks-addon-podidentityassociation-rolearn
5832
5838
  '''
@@ -5891,7 +5897,7 @@ class CfnAddonProps:
5891
5897
  :param cluster_name: The name of your cluster.
5892
5898
  :param addon_version: The version of the add-on.
5893
5899
  :param configuration_values: The configuration values that you provided.
5894
- :param pod_identity_associations: An array of Pod Identity Assocations owned by the Addon. Each EKS Pod Identity association maps a role to a service account in a namespace in the cluster. For more information, see `Attach an IAM Role to an Amazon EKS add-on using Pod Identity <https://docs.aws.amazon.com/eks/latest/userguide/add-ons-iam.html>`_ in the *Amazon EKS User Guide* .
5900
+ :param pod_identity_associations: An array of EKS Pod Identity associations owned by the add-on. Each association maps a role to a service account in a namespace in the cluster. For more information, see `Attach an IAM Role to an Amazon EKS add-on using EKS Pod Identity <https://docs.aws.amazon.com/eks/latest/userguide/add-ons-iam.html>`_ in the *Amazon EKS User Guide* .
5895
5901
  :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.
5896
5902
  :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.
5897
5903
  :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* .
@@ -5998,11 +6004,11 @@ class CfnAddonProps:
5998
6004
  def pod_identity_associations(
5999
6005
  self,
6000
6006
  ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, CfnAddon.PodIdentityAssociationProperty]]]]:
6001
- '''An array of Pod Identity Assocations owned by the Addon.
6007
+ '''An array of EKS Pod Identity associations owned by the add-on.
6002
6008
 
6003
- Each EKS Pod Identity association maps a role to a service account in a namespace in the cluster.
6009
+ Each association maps a role to a service account in a namespace in the cluster.
6004
6010
 
6005
- For more information, see `Attach an IAM Role to an Amazon EKS add-on using Pod Identity <https://docs.aws.amazon.com/eks/latest/userguide/add-ons-iam.html>`_ in the *Amazon EKS User Guide* .
6011
+ For more information, see `Attach an IAM Role to an Amazon EKS add-on using EKS Pod Identity <https://docs.aws.amazon.com/eks/latest/userguide/add-ons-iam.html>`_ in the *Amazon EKS User Guide* .
6006
6012
 
6007
6013
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-addon.html#cfn-eks-addon-podidentityassociations
6008
6014
  '''
@@ -6090,7 +6096,7 @@ class CfnCluster(
6090
6096
 
6091
6097
  Amazon EKS nodes run in your AWS account and connect to your cluster's control plane over the Kubernetes API server endpoint and a certificate file that is created for your cluster.
6092
6098
 
6093
- You can use the ``endpointPublicAccess`` and ``endpointPrivateAccess`` parameters to enable or disable public and private access to your cluster's Kubernetes API server endpoint. By default, public access is enabled, and private access is disabled. For more information, see `Amazon EKS Cluster Endpoint Access Control <https://docs.aws.amazon.com/eks/latest/userguide/cluster-endpoint.html>`_ in the **Amazon EKS User Guide** .
6099
+ You can use the ``endpointPublicAccess`` and ``endpointPrivateAccess`` parameters to enable or disable public and private access to your cluster's Kubernetes API server endpoint. By default, public access is enabled, and private access is disabled. The endpoint domain name and IP address family depends on the value of the ``ipFamily`` for the cluster. For more information, see `Amazon EKS Cluster Endpoint Access Control <https://docs.aws.amazon.com/eks/latest/userguide/cluster-endpoint.html>`_ in the **Amazon EKS User Guide** .
6094
6100
 
6095
6101
  You can use the ``logging`` parameter to enable or disable exporting the Kubernetes control plane logs for your cluster to CloudWatch Logs. By default, cluster control plane logs aren't exported to CloudWatch Logs. For more information, see `Amazon EKS Cluster Control Plane Logs <https://docs.aws.amazon.com/eks/latest/userguide/control-plane-logs.html>`_ in the **Amazon EKS User Guide** .
6096
6102
  .. epigraph::
@@ -6222,7 +6228,7 @@ class CfnCluster(
6222
6228
  :param resources_vpc_config: The VPC configuration that's used by the cluster control plane. Amazon EKS VPC resources have specific requirements to work properly with Kubernetes. For more information, see `Cluster VPC Considerations <https://docs.aws.amazon.com/eks/latest/userguide/network_reqs.html>`_ and `Cluster Security Group Considerations <https://docs.aws.amazon.com/eks/latest/userguide/sec-group-reqs.html>`_ in the *Amazon EKS User Guide* . You must specify at least two subnets. You can specify up to five security groups, but we recommend that you use a dedicated security group for your cluster control plane.
6223
6229
  :param role_arn: The Amazon Resource Name (ARN) of the IAM role that provides permissions for the Kubernetes control plane to make calls to AWS API operations on your behalf. For more information, see `Amazon EKS Service IAM Role <https://docs.aws.amazon.com/eks/latest/userguide/service_IAM_role.html>`_ in the **Amazon EKS User Guide** .
6224
6230
  :param access_config: The access configuration for the cluster.
6225
- :param bootstrap_self_managed_addons: If you set this value to ``False`` when creating a cluster, the default networking add-ons will not be installed. The default networking addons include vpc-cni, coredns, and kube-proxy. Use this option when you plan to install third-party alternative add-ons or self-manage the default networking add-ons.
6231
+ :param bootstrap_self_managed_addons: If you set this value to ``False`` when creating a cluster, the default networking add-ons will not be installed. The default networking add-ons include ``vpc-cni`` , ``coredns`` , and ``kube-proxy`` . Use this option when you plan to install third-party alternative add-ons or self-manage the default networking add-ons.
6226
6232
  :param compute_config: Indicates the current configuration of the compute capability on your EKS Auto Mode cluster. For example, if the capability is enabled or disabled. If the compute capability is enabled, EKS Auto Mode will create and delete EC2 Managed Instances in your AWS account. For more information, see EKS Auto Mode compute capability in the *Amazon EKS User Guide* .
6227
6233
  :param encryption_config: The encryption configuration for the cluster.
6228
6234
  :param force: Set this value to ``true`` to override upgrade-blocking readiness checks when updating a cluster. Default: - false
@@ -7590,8 +7596,8 @@ class CfnCluster(
7590
7596
 
7591
7597
  You can add, change, or remove this configuration after the cluster is created.
7592
7598
 
7593
- :param remote_node_networks: The list of network CIDRs that can contain hybrid nodes. These CIDR blocks define the expected IP address range of the hybrid nodes that join the cluster. These blocks are typically determined by your network administrator. Enter one or more IPv4 CIDR blocks in decimal dotted-quad notation (for example, ``10.2.0.0/16`` ). It must satisfy the following requirements: - Each block must be within an ``IPv4`` RFC-1918 network range. Minimum allowed size is /24, maximum allowed size is /8. Publicly-routable addresses aren't supported. - Each block cannot overlap with the range of the VPC CIDR blocks for your EKS resources, or the block of the Kubernetes service IP range. - Each block must have a route to the VPC that uses the VPC CIDR blocks, not public IPs or Elastic IPs. There are many options including AWS Transit Gateway , AWS Site-to-Site VPN , or AWS Direct Connect . - Each host must allow outbound connection to the EKS cluster control plane on TCP ports ``443`` and ``10250`` . - Each host must allow inbound connection from the EKS cluster control plane on TCP port 10250 for logs, exec and port-forward operations. - Each host must allow TCP and UDP network connectivity to and from other hosts that are running ``CoreDNS`` on UDP port ``53`` for service and pod DNS names.
7594
- :param remote_pod_networks: The list of network CIDRs that can contain pods that run Kubernetes webhooks on hybrid nodes. These CIDR blocks are determined by configuring your Container Network Interface (CNI) plugin. We recommend the Calico CNI or Cilium CNI. Note that the Amazon VPC CNI plugin for Kubernetes isn't available for on-premises and edge locations. Enter one or more IPv4 CIDR blocks in decimal dotted-quad notation (for example, ``10.2.0.0/16`` ). It must satisfy the following requirements: - Each block must be within an ``IPv4`` RFC-1918 network range. Minimum allowed size is /24, maximum allowed size is /8. Publicly-routable addresses aren't supported. - Each block cannot overlap with the range of the VPC CIDR blocks for your EKS resources, or the block of the Kubernetes service IP range.
7599
+ :param remote_node_networks: The list of network CIDRs that can contain hybrid nodes. These CIDR blocks define the expected IP address range of the hybrid nodes that join the cluster. These blocks are typically determined by your network administrator. Enter one or more IPv4 CIDR blocks in decimal dotted-quad notation (for example, ``10.2.0.0/16`` ). It must satisfy the following requirements: - Each block must be within an ``IPv4`` RFC-1918 network range. Minimum allowed size is /32, maximum allowed size is /8. Publicly-routable addresses aren't supported. - Each block cannot overlap with the range of the VPC CIDR blocks for your EKS resources, or the block of the Kubernetes service IP range. - Each block must have a route to the VPC that uses the VPC CIDR blocks, not public IPs or Elastic IPs. There are many options including AWS Transit Gateway , AWS Site-to-Site VPN , or AWS Direct Connect . - Each host must allow outbound connection to the EKS cluster control plane on TCP ports ``443`` and ``10250`` . - Each host must allow inbound connection from the EKS cluster control plane on TCP port 10250 for logs, exec and port-forward operations. - Each host must allow TCP and UDP network connectivity to and from other hosts that are running ``CoreDNS`` on UDP port ``53`` for service and pod DNS names.
7600
+ :param remote_pod_networks: The list of network CIDRs that can contain pods that run Kubernetes webhooks on hybrid nodes. These CIDR blocks are determined by configuring your Container Network Interface (CNI) plugin. We recommend the Calico CNI or Cilium CNI. Note that the Amazon VPC CNI plugin for Kubernetes isn't available for on-premises and edge locations. Enter one or more IPv4 CIDR blocks in decimal dotted-quad notation (for example, ``10.2.0.0/16`` ). It must satisfy the following requirements: - Each block must be within an ``IPv4`` RFC-1918 network range. Minimum allowed size is /32, maximum allowed size is /8. Publicly-routable addresses aren't supported. - Each block cannot overlap with the range of the VPC CIDR blocks for your EKS resources, or the block of the Kubernetes service IP range.
7595
7601
 
7596
7602
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-remotenetworkconfig.html
7597
7603
  :exampleMetadata: fixture=_generated
@@ -7635,7 +7641,7 @@ class CfnCluster(
7635
7641
 
7636
7642
  It must satisfy the following requirements:
7637
7643
 
7638
- - Each block must be within an ``IPv4`` RFC-1918 network range. Minimum allowed size is /24, maximum allowed size is /8. Publicly-routable addresses aren't supported.
7644
+ - Each block must be within an ``IPv4`` RFC-1918 network range. Minimum allowed size is /32, maximum allowed size is /8. Publicly-routable addresses aren't supported.
7639
7645
  - Each block cannot overlap with the range of the VPC CIDR blocks for your EKS resources, or the block of the Kubernetes service IP range.
7640
7646
  - Each block must have a route to the VPC that uses the VPC CIDR blocks, not public IPs or Elastic IPs. There are many options including AWS Transit Gateway , AWS Site-to-Site VPN , or AWS Direct Connect .
7641
7647
  - Each host must allow outbound connection to the EKS cluster control plane on TCP ports ``443`` and ``10250`` .
@@ -7660,7 +7666,7 @@ class CfnCluster(
7660
7666
 
7661
7667
  It must satisfy the following requirements:
7662
7668
 
7663
- - Each block must be within an ``IPv4`` RFC-1918 network range. Minimum allowed size is /24, maximum allowed size is /8. Publicly-routable addresses aren't supported.
7669
+ - Each block must be within an ``IPv4`` RFC-1918 network range. Minimum allowed size is /32, maximum allowed size is /8. Publicly-routable addresses aren't supported.
7664
7670
  - Each block cannot overlap with the range of the VPC CIDR blocks for your EKS resources, or the block of the Kubernetes service IP range.
7665
7671
 
7666
7672
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-remotenetworkconfig.html#cfn-eks-cluster-remotenetworkconfig-remotepodnetworks
@@ -7694,14 +7700,14 @@ class CfnCluster(
7694
7700
 
7695
7701
  It must satisfy the following requirements:
7696
7702
 
7697
- - Each block must be within an ``IPv4`` RFC-1918 network range. Minimum allowed size is /24, maximum allowed size is /8. Publicly-routable addresses aren't supported.
7703
+ - Each block must be within an ``IPv4`` RFC-1918 network range. Minimum allowed size is /32, maximum allowed size is /8. Publicly-routable addresses aren't supported.
7698
7704
  - Each block cannot overlap with the range of the VPC CIDR blocks for your EKS resources, or the block of the Kubernetes service IP range.
7699
7705
  - Each block must have a route to the VPC that uses the VPC CIDR blocks, not public IPs or Elastic IPs. There are many options including AWS Transit Gateway , AWS Site-to-Site VPN , or AWS Direct Connect .
7700
7706
  - Each host must allow outbound connection to the EKS cluster control plane on TCP ports ``443`` and ``10250`` .
7701
7707
  - Each host must allow inbound connection from the EKS cluster control plane on TCP port 10250 for logs, exec and port-forward operations.
7702
7708
  - Each host must allow TCP and UDP network connectivity to and from other hosts that are running ``CoreDNS`` on UDP port ``53`` for service and pod DNS names.
7703
7709
 
7704
- :param cidrs: A network CIDR that can contain hybrid nodes. These CIDR blocks define the expected IP address range of the hybrid nodes that join the cluster. These blocks are typically determined by your network administrator. Enter one or more IPv4 CIDR blocks in decimal dotted-quad notation (for example, ``10.2.0.0/16`` ). It must satisfy the following requirements: - Each block must be within an ``IPv4`` RFC-1918 network range. Minimum allowed size is /24, maximum allowed size is /8. Publicly-routable addresses aren't supported. - Each block cannot overlap with the range of the VPC CIDR blocks for your EKS resources, or the block of the Kubernetes service IP range. - Each block must have a route to the VPC that uses the VPC CIDR blocks, not public IPs or Elastic IPs. There are many options including AWS Transit Gateway , AWS Site-to-Site VPN , or AWS Direct Connect . - Each host must allow outbound connection to the EKS cluster control plane on TCP ports ``443`` and ``10250`` . - Each host must allow inbound connection from the EKS cluster control plane on TCP port 10250 for logs, exec and port-forward operations. - Each host must allow TCP and UDP network connectivity to and from other hosts that are running ``CoreDNS`` on UDP port ``53`` for service and pod DNS names.
7710
+ :param cidrs: A network CIDR that can contain hybrid nodes. These CIDR blocks define the expected IP address range of the hybrid nodes that join the cluster. These blocks are typically determined by your network administrator. Enter one or more IPv4 CIDR blocks in decimal dotted-quad notation (for example, ``10.2.0.0/16`` ). It must satisfy the following requirements: - Each block must be within an ``IPv4`` RFC-1918 network range. Minimum allowed size is /32, maximum allowed size is /8. Publicly-routable addresses aren't supported. - Each block cannot overlap with the range of the VPC CIDR blocks for your EKS resources, or the block of the Kubernetes service IP range. - Each block must have a route to the VPC that uses the VPC CIDR blocks, not public IPs or Elastic IPs. There are many options including AWS Transit Gateway , AWS Site-to-Site VPN , or AWS Direct Connect . - Each host must allow outbound connection to the EKS cluster control plane on TCP ports ``443`` and ``10250`` . - Each host must allow inbound connection from the EKS cluster control plane on TCP port 10250 for logs, exec and port-forward operations. - Each host must allow TCP and UDP network connectivity to and from other hosts that are running ``CoreDNS`` on UDP port ``53`` for service and pod DNS names.
7705
7711
 
7706
7712
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-remotenodenetwork.html
7707
7713
  :exampleMetadata: fixture=_generated
@@ -7733,7 +7739,7 @@ class CfnCluster(
7733
7739
 
7734
7740
  It must satisfy the following requirements:
7735
7741
 
7736
- - Each block must be within an ``IPv4`` RFC-1918 network range. Minimum allowed size is /24, maximum allowed size is /8. Publicly-routable addresses aren't supported.
7742
+ - Each block must be within an ``IPv4`` RFC-1918 network range. Minimum allowed size is /32, maximum allowed size is /8. Publicly-routable addresses aren't supported.
7737
7743
  - Each block cannot overlap with the range of the VPC CIDR blocks for your EKS resources, or the block of the Kubernetes service IP range.
7738
7744
  - Each block must have a route to the VPC that uses the VPC CIDR blocks, not public IPs or Elastic IPs. There are many options including AWS Transit Gateway , AWS Site-to-Site VPN , or AWS Direct Connect .
7739
7745
  - Each host must allow outbound connection to the EKS cluster control plane on TCP ports ``443`` and ``10250`` .
@@ -7772,10 +7778,10 @@ class CfnCluster(
7772
7778
 
7773
7779
  It must satisfy the following requirements:
7774
7780
 
7775
- - Each block must be within an ``IPv4`` RFC-1918 network range. Minimum allowed size is /24, maximum allowed size is /8. Publicly-routable addresses aren't supported.
7781
+ - Each block must be within an ``IPv4`` RFC-1918 network range. Minimum allowed size is /32, maximum allowed size is /8. Publicly-routable addresses aren't supported.
7776
7782
  - Each block cannot overlap with the range of the VPC CIDR blocks for your EKS resources, or the block of the Kubernetes service IP range.
7777
7783
 
7778
- :param cidrs: A network CIDR that can contain pods that run Kubernetes webhooks on hybrid nodes. These CIDR blocks are determined by configuring your Container Network Interface (CNI) plugin. We recommend the Calico CNI or Cilium CNI. Note that the Amazon VPC CNI plugin for Kubernetes isn't available for on-premises and edge locations. Enter one or more IPv4 CIDR blocks in decimal dotted-quad notation (for example, ``10.2.0.0/16`` ). It must satisfy the following requirements: - Each block must be within an ``IPv4`` RFC-1918 network range. Minimum allowed size is /24, maximum allowed size is /8. Publicly-routable addresses aren't supported. - Each block cannot overlap with the range of the VPC CIDR blocks for your EKS resources, or the block of the Kubernetes service IP range.
7784
+ :param cidrs: A network CIDR that can contain pods that run Kubernetes webhooks on hybrid nodes. These CIDR blocks are determined by configuring your Container Network Interface (CNI) plugin. We recommend the Calico CNI or Cilium CNI. Note that the Amazon VPC CNI plugin for Kubernetes isn't available for on-premises and edge locations. Enter one or more IPv4 CIDR blocks in decimal dotted-quad notation (for example, ``10.2.0.0/16`` ). It must satisfy the following requirements: - Each block must be within an ``IPv4`` RFC-1918 network range. Minimum allowed size is /32, maximum allowed size is /8. Publicly-routable addresses aren't supported. - Each block cannot overlap with the range of the VPC CIDR blocks for your EKS resources, or the block of the Kubernetes service IP range.
7779
7785
 
7780
7786
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-remotepodnetwork.html
7781
7787
  :exampleMetadata: fixture=_generated
@@ -7807,7 +7813,7 @@ class CfnCluster(
7807
7813
 
7808
7814
  It must satisfy the following requirements:
7809
7815
 
7810
- - Each block must be within an ``IPv4`` RFC-1918 network range. Minimum allowed size is /24, maximum allowed size is /8. Publicly-routable addresses aren't supported.
7816
+ - Each block must be within an ``IPv4`` RFC-1918 network range. Minimum allowed size is /32, maximum allowed size is /8. Publicly-routable addresses aren't supported.
7811
7817
  - Each block cannot overlap with the range of the VPC CIDR blocks for your EKS resources, or the block of the Kubernetes service IP range.
7812
7818
 
7813
7819
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-remotepodnetwork.html#cfn-eks-cluster-remotepodnetwork-cidrs
@@ -7859,9 +7865,9 @@ class CfnCluster(
7859
7865
  - ``PublicAccessCidrs``
7860
7866
 
7861
7867
  :param subnet_ids: Specify subnets for your Amazon EKS nodes. Amazon EKS creates cross-account elastic network interfaces in these subnets to allow communication between your nodes and the Kubernetes control plane.
7862
- :param endpoint_private_access: Set this value to ``true`` to enable private access for your cluster's Kubernetes API server endpoint. If you enable private access, Kubernetes API requests from within your cluster's VPC use the private VPC endpoint. The default value for this parameter is ``false`` , which disables private access for your Kubernetes API server. If you disable private access and you have nodes or AWS Fargate pods in the cluster, then ensure that ``publicAccessCidrs`` includes the necessary CIDR blocks for communication with the nodes or Fargate pods. For more information, see `Amazon EKS cluster endpoint access control <https://docs.aws.amazon.com/eks/latest/userguide/cluster-endpoint.html>`_ in the **Amazon EKS User Guide** .
7863
- :param endpoint_public_access: Set this value to ``false`` to disable public access to your cluster's Kubernetes API server endpoint. If you disable public access, your cluster's Kubernetes API server can only receive requests from within the cluster VPC. The default value for this parameter is ``true`` , which enables public access for your Kubernetes API server. For more information, see `Amazon EKS cluster endpoint access control <https://docs.aws.amazon.com/eks/latest/userguide/cluster-endpoint.html>`_ in the **Amazon EKS User Guide** .
7864
- :param public_access_cidrs: The CIDR blocks that are allowed access to your cluster's public Kubernetes API server endpoint. Communication to the endpoint from addresses outside of the CIDR blocks that you specify is denied. The default value is ``0.0.0.0/0`` . If you've disabled private endpoint access, make sure that you specify the necessary CIDR blocks for every node and AWS Fargate ``Pod`` in the cluster. For more information, see `Amazon EKS cluster endpoint access control <https://docs.aws.amazon.com/eks/latest/userguide/cluster-endpoint.html>`_ in the **Amazon EKS User Guide** .
7868
+ :param endpoint_private_access: Set this value to ``true`` to enable private access for your cluster's Kubernetes API server endpoint. If you enable private access, Kubernetes API requests from within your cluster's VPC use the private VPC endpoint. The default value for this parameter is ``false`` , which disables private access for your Kubernetes API server. If you disable private access and you have nodes or AWS Fargate pods in the cluster, then ensure that ``publicAccessCidrs`` includes the necessary CIDR blocks for communication with the nodes or Fargate pods. For more information, see `Cluster API server endpoint <https://docs.aws.amazon.com/eks/latest/userguide/cluster-endpoint.html>`_ in the **Amazon EKS User Guide** .
7869
+ :param endpoint_public_access: Set this value to ``false`` to disable public access to your cluster's Kubernetes API server endpoint. If you disable public access, your cluster's Kubernetes API server can only receive requests from within the cluster VPC. The default value for this parameter is ``true`` , which enables public access for your Kubernetes API server. The endpoint domain name and IP address family depends on the value of the ``ipFamily`` for the cluster. For more information, see `Cluster API server endpoint <https://docs.aws.amazon.com/eks/latest/userguide/cluster-endpoint.html>`_ in the **Amazon EKS User Guide** .
7870
+ :param public_access_cidrs: The CIDR blocks that are allowed access to your cluster's public Kubernetes API server endpoint. Communication to the endpoint from addresses outside of the CIDR blocks that you specify is denied. The default value is ``0.0.0.0/0`` and additionally ``::/0`` for dual-stack ``IPv6`` clusters. If you've disabled private endpoint access, make sure that you specify the necessary CIDR blocks for every node and AWS Fargate ``Pod`` in the cluster. For more information, see `Cluster API server endpoint <https://docs.aws.amazon.com/eks/latest/userguide/cluster-endpoint.html>`_ in the **Amazon EKS User Guide** . Note that the public endpoints are dual-stack for only ``IPv6`` clusters that are made after October 2024. You can't add ``IPv6`` CIDR blocks to ``IPv4`` clusters or ``IPv6`` clusters that were made before October 2024.
7865
7871
  :param security_group_ids: Specify one or more security groups for the cross-account elastic network interfaces that Amazon EKS creates to use that allow communication between your nodes and the Kubernetes control plane. If you don't specify any security groups, then familiarize yourself with the difference between Amazon EKS defaults for clusters deployed with Kubernetes. For more information, see `Amazon EKS security group considerations <https://docs.aws.amazon.com/eks/latest/userguide/sec-group-reqs.html>`_ in the **Amazon EKS User Guide** .
7866
7872
 
7867
7873
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-resourcesvpcconfig.html
@@ -7920,7 +7926,7 @@ class CfnCluster(
7920
7926
  ) -> typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]]:
7921
7927
  '''Set this value to ``true`` to enable private access for your cluster's Kubernetes API server endpoint.
7922
7928
 
7923
- If you enable private access, Kubernetes API requests from within your cluster's VPC use the private VPC endpoint. The default value for this parameter is ``false`` , which disables private access for your Kubernetes API server. If you disable private access and you have nodes or AWS Fargate pods in the cluster, then ensure that ``publicAccessCidrs`` includes the necessary CIDR blocks for communication with the nodes or Fargate pods. For more information, see `Amazon EKS cluster endpoint access control <https://docs.aws.amazon.com/eks/latest/userguide/cluster-endpoint.html>`_ in the **Amazon EKS User Guide** .
7929
+ If you enable private access, Kubernetes API requests from within your cluster's VPC use the private VPC endpoint. The default value for this parameter is ``false`` , which disables private access for your Kubernetes API server. If you disable private access and you have nodes or AWS Fargate pods in the cluster, then ensure that ``publicAccessCidrs`` includes the necessary CIDR blocks for communication with the nodes or Fargate pods. For more information, see `Cluster API server endpoint <https://docs.aws.amazon.com/eks/latest/userguide/cluster-endpoint.html>`_ in the **Amazon EKS User Guide** .
7924
7930
 
7925
7931
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-resourcesvpcconfig.html#cfn-eks-cluster-resourcesvpcconfig-endpointprivateaccess
7926
7932
  '''
@@ -7933,7 +7939,7 @@ class CfnCluster(
7933
7939
  ) -> typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]]:
7934
7940
  '''Set this value to ``false`` to disable public access to your cluster's Kubernetes API server endpoint.
7935
7941
 
7936
- If you disable public access, your cluster's Kubernetes API server can only receive requests from within the cluster VPC. The default value for this parameter is ``true`` , which enables public access for your Kubernetes API server. For more information, see `Amazon EKS cluster endpoint access control <https://docs.aws.amazon.com/eks/latest/userguide/cluster-endpoint.html>`_ in the **Amazon EKS User Guide** .
7942
+ If you disable public access, your cluster's Kubernetes API server can only receive requests from within the cluster VPC. The default value for this parameter is ``true`` , which enables public access for your Kubernetes API server. The endpoint domain name and IP address family depends on the value of the ``ipFamily`` for the cluster. For more information, see `Cluster API server endpoint <https://docs.aws.amazon.com/eks/latest/userguide/cluster-endpoint.html>`_ in the **Amazon EKS User Guide** .
7937
7943
 
7938
7944
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-resourcesvpcconfig.html#cfn-eks-cluster-resourcesvpcconfig-endpointpublicaccess
7939
7945
  '''
@@ -7944,7 +7950,9 @@ class CfnCluster(
7944
7950
  def public_access_cidrs(self) -> typing.Optional[typing.List[builtins.str]]:
7945
7951
  '''The CIDR blocks that are allowed access to your cluster's public Kubernetes API server endpoint.
7946
7952
 
7947
- Communication to the endpoint from addresses outside of the CIDR blocks that you specify is denied. The default value is ``0.0.0.0/0`` . If you've disabled private endpoint access, make sure that you specify the necessary CIDR blocks for every node and AWS Fargate ``Pod`` in the cluster. For more information, see `Amazon EKS cluster endpoint access control <https://docs.aws.amazon.com/eks/latest/userguide/cluster-endpoint.html>`_ in the **Amazon EKS User Guide** .
7953
+ Communication to the endpoint from addresses outside of the CIDR blocks that you specify is denied. The default value is ``0.0.0.0/0`` and additionally ``::/0`` for dual-stack ``IPv6`` clusters. If you've disabled private endpoint access, make sure that you specify the necessary CIDR blocks for every node and AWS Fargate ``Pod`` in the cluster. For more information, see `Cluster API server endpoint <https://docs.aws.amazon.com/eks/latest/userguide/cluster-endpoint.html>`_ in the **Amazon EKS User Guide** .
7954
+
7955
+ Note that the public endpoints are dual-stack for only ``IPv6`` clusters that are made after October 2024. You can't add ``IPv6`` CIDR blocks to ``IPv4`` clusters or ``IPv6`` clusters that were made before October 2024.
7948
7956
 
7949
7957
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-resourcesvpcconfig.html#cfn-eks-cluster-resourcesvpcconfig-publicaccesscidrs
7950
7958
  '''
@@ -8205,7 +8213,7 @@ class CfnClusterProps:
8205
8213
  :param resources_vpc_config: The VPC configuration that's used by the cluster control plane. Amazon EKS VPC resources have specific requirements to work properly with Kubernetes. For more information, see `Cluster VPC Considerations <https://docs.aws.amazon.com/eks/latest/userguide/network_reqs.html>`_ and `Cluster Security Group Considerations <https://docs.aws.amazon.com/eks/latest/userguide/sec-group-reqs.html>`_ in the *Amazon EKS User Guide* . You must specify at least two subnets. You can specify up to five security groups, but we recommend that you use a dedicated security group for your cluster control plane.
8206
8214
  :param role_arn: The Amazon Resource Name (ARN) of the IAM role that provides permissions for the Kubernetes control plane to make calls to AWS API operations on your behalf. For more information, see `Amazon EKS Service IAM Role <https://docs.aws.amazon.com/eks/latest/userguide/service_IAM_role.html>`_ in the **Amazon EKS User Guide** .
8207
8215
  :param access_config: The access configuration for the cluster.
8208
- :param bootstrap_self_managed_addons: If you set this value to ``False`` when creating a cluster, the default networking add-ons will not be installed. The default networking addons include vpc-cni, coredns, and kube-proxy. Use this option when you plan to install third-party alternative add-ons or self-manage the default networking add-ons.
8216
+ :param bootstrap_self_managed_addons: If you set this value to ``False`` when creating a cluster, the default networking add-ons will not be installed. The default networking add-ons include ``vpc-cni`` , ``coredns`` , and ``kube-proxy`` . Use this option when you plan to install third-party alternative add-ons or self-manage the default networking add-ons.
8209
8217
  :param compute_config: Indicates the current configuration of the compute capability on your EKS Auto Mode cluster. For example, if the capability is enabled or disabled. If the compute capability is enabled, EKS Auto Mode will create and delete EC2 Managed Instances in your AWS account. For more information, see EKS Auto Mode compute capability in the *Amazon EKS User Guide* .
8210
8218
  :param encryption_config: The encryption configuration for the cluster.
8211
8219
  :param force: Set this value to ``true`` to override upgrade-blocking readiness checks when updating a cluster. Default: - false
@@ -8409,7 +8417,7 @@ class CfnClusterProps:
8409
8417
  ) -> typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]]:
8410
8418
  '''If you set this value to ``False`` when creating a cluster, the default networking add-ons will not be installed.
8411
8419
 
8412
- The default networking addons include vpc-cni, coredns, and kube-proxy.
8420
+ The default networking add-ons include ``vpc-cni`` , ``coredns`` , and ``kube-proxy`` .
8413
8421
 
8414
8422
  Use this option when you plan to install third-party alternative add-ons or self-manage the default networking add-ons.
8415
8423
 
@@ -11207,10 +11215,12 @@ class CfnPodIdentityAssociation(
11207
11215
  service_account="serviceAccount",
11208
11216
 
11209
11217
  # the properties below are optional
11218
+ disable_session_tags=False,
11210
11219
  tags=[CfnTag(
11211
11220
  key="key",
11212
11221
  value="value"
11213
- )]
11222
+ )],
11223
+ target_role_arn="targetRoleArn"
11214
11224
  )
11215
11225
  '''
11216
11226
 
@@ -11223,16 +11233,20 @@ class CfnPodIdentityAssociation(
11223
11233
  namespace: builtins.str,
11224
11234
  role_arn: builtins.str,
11225
11235
  service_account: builtins.str,
11236
+ disable_session_tags: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
11226
11237
  tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
11238
+ target_role_arn: typing.Optional[builtins.str] = None,
11227
11239
  ) -> None:
11228
11240
  '''
11229
11241
  :param scope: Scope in which this resource is defined.
11230
11242
  :param id: Construct identifier for this resource (unique in its scope).
11231
11243
  :param cluster_name: The name of the cluster that the association is in.
11232
- :param namespace: The name of the Kubernetes namespace inside the cluster to create the association in. The service account and the pods that use the service account must be in this namespace.
11233
- :param role_arn: The Amazon Resource Name (ARN) of the IAM role to associate with the service account. The EKS Pod Identity agent manages credentials to assume this role for applications in the containers in the pods that use this service account.
11244
+ :param namespace: The name of the Kubernetes namespace inside the cluster to create the association in. The service account and the Pods that use the service account must be in this namespace.
11245
+ :param role_arn: The Amazon Resource Name (ARN) of the IAM role to associate with the service account. The EKS Pod Identity agent manages credentials to assume this role for applications in the containers in the Pods that use this service account.
11234
11246
  :param service_account: The name of the Kubernetes service account inside the cluster to associate the IAM credentials with.
11247
+ :param disable_session_tags: The state of the automatic sessions tags. The value of *true* disables these tags. EKS Pod Identity adds a pre-defined set of session tags when it assumes the role. You can use these tags to author a single role that can work across resources by allowing access to AWS resources based on matching tags. By default, EKS Pod Identity attaches six tags, including tags for cluster name, namespace, and service account name. For the list of tags added by EKS Pod Identity, see `List of session tags added by EKS Pod Identity <https://docs.aws.amazon.com/eks/latest/userguide/pod-id-abac.html#pod-id-abac-tags>`_ in the *Amazon EKS User Guide* .
11235
11248
  :param tags: Metadata that assists with categorization and organization. Each tag consists of a key and an optional value. You define both. Tags don't propagate to any other cluster or AWS resources. The following basic restrictions apply to tags: - Maximum number of tags per resource – 50 - For each resource, each tag key must be unique, and each tag key can have only one value. - Maximum key length – 128 Unicode characters in UTF-8 - Maximum value length – 256 Unicode characters in UTF-8 - If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : /
11249
+ :param target_role_arn: The Amazon Resource Name (ARN) of the target IAM role to associate with the service account. This role is assumed by using the EKS Pod Identity association role, then the credentials for this role are injected into the Pod.
11236
11250
  '''
11237
11251
  if __debug__:
11238
11252
  type_hints = typing.get_type_hints(_typecheckingstub__be8311b6089cea26f85c63a586f0c5b063230a1b4a96ffcd4c6c983a331d8652)
@@ -11243,7 +11257,9 @@ class CfnPodIdentityAssociation(
11243
11257
  namespace=namespace,
11244
11258
  role_arn=role_arn,
11245
11259
  service_account=service_account,
11260
+ disable_session_tags=disable_session_tags,
11246
11261
  tags=tags,
11262
+ target_role_arn=target_role_arn,
11247
11263
  )
11248
11264
 
11249
11265
  jsii.create(self.__class__, self, [scope, id, props])
@@ -11296,6 +11312,19 @@ class CfnPodIdentityAssociation(
11296
11312
  '''
11297
11313
  return typing.cast(builtins.str, jsii.get(self, "attrAssociationId"))
11298
11314
 
11315
+ @builtins.property
11316
+ @jsii.member(jsii_name="attrExternalId")
11317
+ def attr_external_id(self) -> builtins.str:
11318
+ '''The unique identifier for this EKS Pod Identity association for a target IAM role.
11319
+
11320
+ You put this value in the trust policy of the target role, in a ``Condition`` to match the ``sts.ExternalId`` . This ensures that the target role can only be assumed by this association. This prevents the *confused deputy problem* . For more information about the confused deputy problem, see `The confused deputy problem <https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html>`_ in the *IAM User Guide* .
11321
+
11322
+ If you want to use the same target role with multiple associations or other roles, use independent statements in the trust policy to allow ``sts:AssumeRole`` access from each role.
11323
+
11324
+ :cloudformationAttribute: ExternalId
11325
+ '''
11326
+ return typing.cast(builtins.str, jsii.get(self, "attrExternalId"))
11327
+
11299
11328
  @builtins.property
11300
11329
  @jsii.member(jsii_name="cdkTagManager")
11301
11330
  def cdk_tag_manager(self) -> _TagManager_0a598cb3:
@@ -11359,6 +11388,27 @@ class CfnPodIdentityAssociation(
11359
11388
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
11360
11389
  jsii.set(self, "serviceAccount", value) # pyright: ignore[reportArgumentType]
11361
11390
 
11391
+ @builtins.property
11392
+ @jsii.member(jsii_name="disableSessionTags")
11393
+ def disable_session_tags(
11394
+ self,
11395
+ ) -> typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]]:
11396
+ '''The state of the automatic sessions tags.
11397
+
11398
+ The value of *true* disables these tags.
11399
+ '''
11400
+ return typing.cast(typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]], jsii.get(self, "disableSessionTags"))
11401
+
11402
+ @disable_session_tags.setter
11403
+ def disable_session_tags(
11404
+ self,
11405
+ value: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]],
11406
+ ) -> None:
11407
+ if __debug__:
11408
+ type_hints = typing.get_type_hints(_typecheckingstub__cb3dbe4cc3b44e9265bbfe13e41235db909b0c1dc0e052b3bdda07fd4b228e8b)
11409
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
11410
+ jsii.set(self, "disableSessionTags", value) # pyright: ignore[reportArgumentType]
11411
+
11362
11412
  @builtins.property
11363
11413
  @jsii.member(jsii_name="tags")
11364
11414
  def tags(self) -> typing.Optional[typing.List[_CfnTag_f6864754]]:
@@ -11372,6 +11422,19 @@ class CfnPodIdentityAssociation(
11372
11422
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
11373
11423
  jsii.set(self, "tags", value) # pyright: ignore[reportArgumentType]
11374
11424
 
11425
+ @builtins.property
11426
+ @jsii.member(jsii_name="targetRoleArn")
11427
+ def target_role_arn(self) -> typing.Optional[builtins.str]:
11428
+ '''The Amazon Resource Name (ARN) of the target IAM role to associate with the service account.'''
11429
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "targetRoleArn"))
11430
+
11431
+ @target_role_arn.setter
11432
+ def target_role_arn(self, value: typing.Optional[builtins.str]) -> None:
11433
+ if __debug__:
11434
+ type_hints = typing.get_type_hints(_typecheckingstub__cb6220c6db8cf93a8a307b1ba0630d6bc64b4a09325e7cfe5854228aa75ff833)
11435
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
11436
+ jsii.set(self, "targetRoleArn", value) # pyright: ignore[reportArgumentType]
11437
+
11375
11438
 
11376
11439
  @jsii.data_type(
11377
11440
  jsii_type="aws-cdk-lib.aws_eks.CfnPodIdentityAssociationProps",
@@ -11381,7 +11444,9 @@ class CfnPodIdentityAssociation(
11381
11444
  "namespace": "namespace",
11382
11445
  "role_arn": "roleArn",
11383
11446
  "service_account": "serviceAccount",
11447
+ "disable_session_tags": "disableSessionTags",
11384
11448
  "tags": "tags",
11449
+ "target_role_arn": "targetRoleArn",
11385
11450
  },
11386
11451
  )
11387
11452
  class CfnPodIdentityAssociationProps:
@@ -11392,15 +11457,19 @@ class CfnPodIdentityAssociationProps:
11392
11457
  namespace: builtins.str,
11393
11458
  role_arn: builtins.str,
11394
11459
  service_account: builtins.str,
11460
+ disable_session_tags: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
11395
11461
  tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
11462
+ target_role_arn: typing.Optional[builtins.str] = None,
11396
11463
  ) -> None:
11397
11464
  '''Properties for defining a ``CfnPodIdentityAssociation``.
11398
11465
 
11399
11466
  :param cluster_name: The name of the cluster that the association is in.
11400
- :param namespace: The name of the Kubernetes namespace inside the cluster to create the association in. The service account and the pods that use the service account must be in this namespace.
11401
- :param role_arn: The Amazon Resource Name (ARN) of the IAM role to associate with the service account. The EKS Pod Identity agent manages credentials to assume this role for applications in the containers in the pods that use this service account.
11467
+ :param namespace: The name of the Kubernetes namespace inside the cluster to create the association in. The service account and the Pods that use the service account must be in this namespace.
11468
+ :param role_arn: The Amazon Resource Name (ARN) of the IAM role to associate with the service account. The EKS Pod Identity agent manages credentials to assume this role for applications in the containers in the Pods that use this service account.
11402
11469
  :param service_account: The name of the Kubernetes service account inside the cluster to associate the IAM credentials with.
11470
+ :param disable_session_tags: The state of the automatic sessions tags. The value of *true* disables these tags. EKS Pod Identity adds a pre-defined set of session tags when it assumes the role. You can use these tags to author a single role that can work across resources by allowing access to AWS resources based on matching tags. By default, EKS Pod Identity attaches six tags, including tags for cluster name, namespace, and service account name. For the list of tags added by EKS Pod Identity, see `List of session tags added by EKS Pod Identity <https://docs.aws.amazon.com/eks/latest/userguide/pod-id-abac.html#pod-id-abac-tags>`_ in the *Amazon EKS User Guide* .
11403
11471
  :param tags: Metadata that assists with categorization and organization. Each tag consists of a key and an optional value. You define both. Tags don't propagate to any other cluster or AWS resources. The following basic restrictions apply to tags: - Maximum number of tags per resource – 50 - For each resource, each tag key must be unique, and each tag key can have only one value. - Maximum key length – 128 Unicode characters in UTF-8 - Maximum value length – 256 Unicode characters in UTF-8 - If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : /
11472
+ :param target_role_arn: The Amazon Resource Name (ARN) of the target IAM role to associate with the service account. This role is assumed by using the EKS Pod Identity association role, then the credentials for this role are injected into the Pod.
11404
11473
 
11405
11474
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-podidentityassociation.html
11406
11475
  :exampleMetadata: fixture=_generated
@@ -11418,10 +11487,12 @@ class CfnPodIdentityAssociationProps:
11418
11487
  service_account="serviceAccount",
11419
11488
 
11420
11489
  # the properties below are optional
11490
+ disable_session_tags=False,
11421
11491
  tags=[CfnTag(
11422
11492
  key="key",
11423
11493
  value="value"
11424
- )]
11494
+ )],
11495
+ target_role_arn="targetRoleArn"
11425
11496
  )
11426
11497
  '''
11427
11498
  if __debug__:
@@ -11430,15 +11501,21 @@ class CfnPodIdentityAssociationProps:
11430
11501
  check_type(argname="argument namespace", value=namespace, expected_type=type_hints["namespace"])
11431
11502
  check_type(argname="argument role_arn", value=role_arn, expected_type=type_hints["role_arn"])
11432
11503
  check_type(argname="argument service_account", value=service_account, expected_type=type_hints["service_account"])
11504
+ check_type(argname="argument disable_session_tags", value=disable_session_tags, expected_type=type_hints["disable_session_tags"])
11433
11505
  check_type(argname="argument tags", value=tags, expected_type=type_hints["tags"])
11506
+ check_type(argname="argument target_role_arn", value=target_role_arn, expected_type=type_hints["target_role_arn"])
11434
11507
  self._values: typing.Dict[builtins.str, typing.Any] = {
11435
11508
  "cluster_name": cluster_name,
11436
11509
  "namespace": namespace,
11437
11510
  "role_arn": role_arn,
11438
11511
  "service_account": service_account,
11439
11512
  }
11513
+ if disable_session_tags is not None:
11514
+ self._values["disable_session_tags"] = disable_session_tags
11440
11515
  if tags is not None:
11441
11516
  self._values["tags"] = tags
11517
+ if target_role_arn is not None:
11518
+ self._values["target_role_arn"] = target_role_arn
11442
11519
 
11443
11520
  @builtins.property
11444
11521
  def cluster_name(self) -> builtins.str:
@@ -11454,7 +11531,7 @@ class CfnPodIdentityAssociationProps:
11454
11531
  def namespace(self) -> builtins.str:
11455
11532
  '''The name of the Kubernetes namespace inside the cluster to create the association in.
11456
11533
 
11457
- The service account and the pods that use the service account must be in this namespace.
11534
+ The service account and the Pods that use the service account must be in this namespace.
11458
11535
 
11459
11536
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-podidentityassociation.html#cfn-eks-podidentityassociation-namespace
11460
11537
  '''
@@ -11466,7 +11543,7 @@ class CfnPodIdentityAssociationProps:
11466
11543
  def role_arn(self) -> builtins.str:
11467
11544
  '''The Amazon Resource Name (ARN) of the IAM role to associate with the service account.
11468
11545
 
11469
- The EKS Pod Identity agent manages credentials to assume this role for applications in the containers in the pods that use this service account.
11546
+ The EKS Pod Identity agent manages credentials to assume this role for applications in the containers in the Pods that use this service account.
11470
11547
 
11471
11548
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-podidentityassociation.html#cfn-eks-podidentityassociation-rolearn
11472
11549
  '''
@@ -11484,6 +11561,19 @@ class CfnPodIdentityAssociationProps:
11484
11561
  assert result is not None, "Required property 'service_account' is missing"
11485
11562
  return typing.cast(builtins.str, result)
11486
11563
 
11564
+ @builtins.property
11565
+ def disable_session_tags(
11566
+ self,
11567
+ ) -> typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]]:
11568
+ '''The state of the automatic sessions tags. The value of *true* disables these tags.
11569
+
11570
+ EKS Pod Identity adds a pre-defined set of session tags when it assumes the role. You can use these tags to author a single role that can work across resources by allowing access to AWS resources based on matching tags. By default, EKS Pod Identity attaches six tags, including tags for cluster name, namespace, and service account name. For the list of tags added by EKS Pod Identity, see `List of session tags added by EKS Pod Identity <https://docs.aws.amazon.com/eks/latest/userguide/pod-id-abac.html#pod-id-abac-tags>`_ in the *Amazon EKS User Guide* .
11571
+
11572
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-podidentityassociation.html#cfn-eks-podidentityassociation-disablesessiontags
11573
+ '''
11574
+ result = self._values.get("disable_session_tags")
11575
+ return typing.cast(typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]], result)
11576
+
11487
11577
  @builtins.property
11488
11578
  def tags(self) -> typing.Optional[typing.List[_CfnTag_f6864754]]:
11489
11579
  '''Metadata that assists with categorization and organization.
@@ -11509,6 +11599,17 @@ class CfnPodIdentityAssociationProps:
11509
11599
  result = self._values.get("tags")
11510
11600
  return typing.cast(typing.Optional[typing.List[_CfnTag_f6864754]], result)
11511
11601
 
11602
+ @builtins.property
11603
+ def target_role_arn(self) -> typing.Optional[builtins.str]:
11604
+ '''The Amazon Resource Name (ARN) of the target IAM role to associate with the service account.
11605
+
11606
+ This role is assumed by using the EKS Pod Identity association role, then the credentials for this role are injected into the Pod.
11607
+
11608
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-podidentityassociation.html#cfn-eks-podidentityassociation-targetrolearn
11609
+ '''
11610
+ result = self._values.get("target_role_arn")
11611
+ return typing.cast(typing.Optional[builtins.str], result)
11612
+
11512
11613
  def __eq__(self, rhs: typing.Any) -> builtins.bool:
11513
11614
  return isinstance(rhs, self.__class__) and rhs._values == self._values
11514
11615
 
@@ -11951,15 +12052,15 @@ class ClusterLoggingTypes(enum.Enum):
11951
12052
 
11952
12053
  Example::
11953
12054
 
11954
- from aws_cdk.lambda_layer_kubectl_v32 import KubectlV32Layer
12055
+ from aws_cdk.lambda_layer_kubectl_v33 import KubectlV33Layer
11955
12056
 
11956
12057
 
11957
12058
  cluster = eks.Cluster(self, "Cluster",
11958
12059
  # ...
11959
- version=eks.KubernetesVersion.V1_32,
12060
+ version=eks.KubernetesVersion.V1_33,
11960
12061
  cluster_logging=[eks.ClusterLoggingTypes.API, eks.ClusterLoggingTypes.AUTHENTICATOR, eks.ClusterLoggingTypes.SCHEDULER
11961
12062
  ],
11962
- kubectl_layer=KubectlV32Layer(self, "kubectl")
12063
+ kubectl_layer=KubectlV33Layer(self, "kubectl")
11963
12064
  )
11964
12065
  '''
11965
12066
 
@@ -12007,7 +12108,7 @@ class CommonClusterOptions:
12007
12108
  :param version: The Kubernetes version to run in the cluster.
12008
12109
  :param cluster_name: Name for the cluster. Default: - Automatically generated name
12009
12110
  :param output_cluster_name: Determines whether a CloudFormation output with the name of the cluster will be synthesized. Default: false
12010
- :param output_config_command: Determines whether a CloudFormation output with the ``aws eks update-kubeconfig`` command will be synthesized. This command will include the cluster name and, if applicable, the ARN of the masters IAM role. Default: true
12111
+ :param output_config_command: Determines whether a CloudFormation output with the ``aws eks update-kubeconfig`` command will be synthesized. This command will include the cluster name and the ARN of the masters IAM role. Note: If mastersRole is not specified, this property will be ignored and no config command will be emitted. Default: true
12011
12112
  :param role: Role that provides permissions for the Kubernetes control plane to make calls to AWS API operations on your behalf. Default: - A role is automatically created for you
12012
12113
  :param security_group: Security Group to use for Control Plane ENIs. Default: - A security group is automatically created
12013
12114
  :param vpc: The VPC in which to create the Cluster. Default: - a VPC with default configuration will be created and can be accessed through ``cluster.vpc``.
@@ -12108,9 +12209,13 @@ class CommonClusterOptions:
12108
12209
  '''Determines whether a CloudFormation output with the ``aws eks update-kubeconfig`` command will be synthesized.
12109
12210
 
12110
12211
  This command will include
12111
- the cluster name and, if applicable, the ARN of the masters IAM role.
12212
+ the cluster name and the ARN of the masters IAM role.
12213
+
12214
+ Note: If mastersRole is not specified, this property will be ignored and no config command will be emitted.
12112
12215
 
12113
12216
  :default: true
12217
+
12218
+ :see: https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_eks-readme.html#masters-role
12114
12219
  '''
12115
12220
  result = self._values.get("output_config_command")
12116
12221
  return typing.cast(typing.Optional[builtins.bool], result)
@@ -12195,13 +12300,13 @@ class DefaultCapacityType(enum.Enum):
12195
12300
 
12196
12301
  Example::
12197
12302
 
12198
- from aws_cdk.lambda_layer_kubectl_v32 import KubectlV32Layer
12303
+ from aws_cdk.lambda_layer_kubectl_v33 import KubectlV33Layer
12199
12304
 
12200
12305
 
12201
12306
  cluster = eks.Cluster(self, "HelloEKS",
12202
- version=eks.KubernetesVersion.V1_32,
12307
+ version=eks.KubernetesVersion.V1_33,
12203
12308
  default_capacity_type=eks.DefaultCapacityType.EC2,
12204
- kubectl_layer=KubectlV32Layer(self, "kubectl")
12309
+ kubectl_layer=KubectlV33Layer(self, "kubectl")
12205
12310
  )
12206
12311
  '''
12207
12312
 
@@ -12368,13 +12473,13 @@ class EndpointAccess(
12368
12473
 
12369
12474
  Example::
12370
12475
 
12371
- from aws_cdk.lambda_layer_kubectl_v32 import KubectlV32Layer
12476
+ from aws_cdk.lambda_layer_kubectl_v33 import KubectlV33Layer
12372
12477
 
12373
12478
 
12374
12479
  cluster = eks.Cluster(self, "hello-eks",
12375
- version=eks.KubernetesVersion.V1_32,
12480
+ version=eks.KubernetesVersion.V1_33,
12376
12481
  endpoint_access=eks.EndpointAccess.PRIVATE, # No access outside of your VPC.
12377
- kubectl_layer=KubectlV32Layer(self, "kubectl")
12482
+ kubectl_layer=KubectlV33Layer(self, "kubectl")
12378
12483
  )
12379
12484
  '''
12380
12485
 
@@ -14548,7 +14653,7 @@ class IpFamily(enum.Enum):
14548
14653
 
14549
14654
  Example::
14550
14655
 
14551
- from aws_cdk.lambda_layer_kubectl_v32 import KubectlV32Layer
14656
+ from aws_cdk.lambda_layer_kubectl_v33 import KubectlV33Layer
14552
14657
  # vpc: ec2.Vpc
14553
14658
 
14554
14659
 
@@ -14573,11 +14678,11 @@ class IpFamily(enum.Enum):
14573
14678
  subnetcount = subnetcount + 1
14574
14679
 
14575
14680
  cluster = eks.Cluster(self, "hello-eks",
14576
- version=eks.KubernetesVersion.V1_32,
14681
+ version=eks.KubernetesVersion.V1_33,
14577
14682
  vpc=vpc,
14578
14683
  ip_family=eks.IpFamily.IP_V6,
14579
14684
  vpc_subnets=[ec2.SubnetSelection(subnets=vpc.public_subnets)],
14580
- kubectl_layer=KubectlV32Layer(self, "kubectl")
14685
+ kubectl_layer=KubectlV33Layer(self, "kubectl")
14581
14686
  )
14582
14687
  '''
14583
14688
 
@@ -15704,7 +15809,7 @@ class KubernetesVersion(
15704
15809
 
15705
15810
  Example::
15706
15811
 
15707
- from aws_cdk.lambda_layer_kubectl_v32 import KubectlV32Layer
15812
+ from aws_cdk.lambda_layer_kubectl_v33 import KubectlV33Layer
15708
15813
 
15709
15814
  # or
15710
15815
  # vpc: ec2.Vpc
@@ -15712,8 +15817,8 @@ class KubernetesVersion(
15712
15817
 
15713
15818
  eks.Cluster(self, "MyCluster",
15714
15819
  kubectl_memory=Size.gibibytes(4),
15715
- version=eks.KubernetesVersion.V1_32,
15716
- kubectl_layer=KubectlV32Layer(self, "kubectl")
15820
+ version=eks.KubernetesVersion.V1_33,
15821
+ kubectl_layer=KubectlV33Layer(self, "kubectl")
15717
15822
  )
15718
15823
  eks.Cluster.from_cluster_attributes(self, "MyCluster",
15719
15824
  kubectl_memory=Size.gibibytes(4),
@@ -15943,6 +16048,17 @@ class KubernetesVersion(
15943
16048
  '''
15944
16049
  return typing.cast("KubernetesVersion", jsii.sget(cls, "V1_32"))
15945
16050
 
16051
+ @jsii.python.classproperty
16052
+ @jsii.member(jsii_name="V1_33")
16053
+ def V1_33(cls) -> "KubernetesVersion":
16054
+ '''Kubernetes version 1.33.
16055
+
16056
+ When creating a ``Cluster`` with this version, you need to also specify the
16057
+ ``kubectlLayer`` property with a ``KubectlV33Layer`` from
16058
+ ``@aws-cdk/lambda-layer-kubectl-v33``.
16059
+ '''
16060
+ return typing.cast("KubernetesVersion", jsii.sget(cls, "V1_33"))
16061
+
15946
16062
  @builtins.property
15947
16063
  @jsii.member(jsii_name="version")
15948
16064
  def version(self) -> builtins.str:
@@ -18567,7 +18683,7 @@ class Cluster(
18567
18683
 
18568
18684
  Example::
18569
18685
 
18570
- from aws_cdk.lambda_layer_kubectl_v32 import KubectlV32Layer
18686
+ from aws_cdk.lambda_layer_kubectl_v33 import KubectlV33Layer
18571
18687
 
18572
18688
  # or
18573
18689
  # vpc: ec2.Vpc
@@ -18575,8 +18691,8 @@ class Cluster(
18575
18691
 
18576
18692
  eks.Cluster(self, "MyCluster",
18577
18693
  kubectl_memory=Size.gibibytes(4),
18578
- version=eks.KubernetesVersion.V1_32,
18579
- kubectl_layer=KubectlV32Layer(self, "kubectl")
18694
+ version=eks.KubernetesVersion.V1_33,
18695
+ kubectl_layer=KubectlV33Layer(self, "kubectl")
18580
18696
  )
18581
18697
  eks.Cluster.from_cluster_attributes(self, "MyCluster",
18582
18698
  kubectl_memory=Size.gibibytes(4),
@@ -18591,6 +18707,7 @@ class Cluster(
18591
18707
  id: builtins.str,
18592
18708
  *,
18593
18709
  bootstrap_cluster_creator_admin_permissions: typing.Optional[builtins.bool] = None,
18710
+ bootstrap_self_managed_addons: typing.Optional[builtins.bool] = None,
18594
18711
  default_capacity: typing.Optional[jsii.Number] = None,
18595
18712
  default_capacity_instance: typing.Optional[_InstanceType_f64915b9] = None,
18596
18713
  default_capacity_type: typing.Optional[DefaultCapacityType] = None,
@@ -18631,6 +18748,7 @@ class Cluster(
18631
18748
  :param scope: a Construct, most likely a cdk.Stack created.
18632
18749
  :param id: the id of the Construct to create.
18633
18750
  :param bootstrap_cluster_creator_admin_permissions: Whether or not IAM principal of the cluster creator was set as a cluster admin access entry during cluster creation time. Changing this value after the cluster has been created will result in the cluster being replaced. Default: true
18751
+ :param bootstrap_self_managed_addons: If you set this value to False when creating a cluster, the default networking add-ons will not be installed. The default networking addons include vpc-cni, coredns, and kube-proxy. Use this option when you plan to install third-party alternative add-ons or self-manage the default networking add-ons. Changing this value after the cluster has been created will result in the cluster being replaced. Default: true
18634
18752
  :param default_capacity: Number of instances to allocate as an initial capacity for this cluster. Instance type can be configured through ``defaultCapacityInstanceType``, which defaults to ``m5.large``. Use ``cluster.addAutoScalingGroupCapacity`` to add additional customized capacity. Set this to ``0`` is you wish to avoid the initial capacity allocation. Default: 2
18635
18753
  :param default_capacity_instance: The instance type to use for the default capacity. This will only be taken into account if ``defaultCapacity`` is > 0. Default: m5.large
18636
18754
  :param default_capacity_type: The default capacity type for the cluster. Default: NODEGROUP
@@ -18660,7 +18778,7 @@ class Cluster(
18660
18778
  :param version: The Kubernetes version to run in the cluster.
18661
18779
  :param cluster_name: Name for the cluster. Default: - Automatically generated name
18662
18780
  :param output_cluster_name: Determines whether a CloudFormation output with the name of the cluster will be synthesized. Default: false
18663
- :param output_config_command: Determines whether a CloudFormation output with the ``aws eks update-kubeconfig`` command will be synthesized. This command will include the cluster name and, if applicable, the ARN of the masters IAM role. Default: true
18781
+ :param output_config_command: Determines whether a CloudFormation output with the ``aws eks update-kubeconfig`` command will be synthesized. This command will include the cluster name and the ARN of the masters IAM role. Note: If mastersRole is not specified, this property will be ignored and no config command will be emitted. Default: true
18664
18782
  :param role: Role that provides permissions for the Kubernetes control plane to make calls to AWS API operations on your behalf. Default: - A role is automatically created for you
18665
18783
  :param security_group: Security Group to use for Control Plane ENIs. Default: - A security group is automatically created
18666
18784
  :param vpc: The VPC in which to create the Cluster. Default: - a VPC with default configuration will be created and can be accessed through ``cluster.vpc``.
@@ -18672,6 +18790,7 @@ class Cluster(
18672
18790
  check_type(argname="argument id", value=id, expected_type=type_hints["id"])
18673
18791
  props = ClusterProps(
18674
18792
  bootstrap_cluster_creator_admin_permissions=bootstrap_cluster_creator_admin_permissions,
18793
+ bootstrap_self_managed_addons=bootstrap_self_managed_addons,
18675
18794
  default_capacity=default_capacity,
18676
18795
  default_capacity_instance=default_capacity_instance,
18677
18796
  default_capacity_type=default_capacity_type,
@@ -19686,7 +19805,7 @@ class ClusterOptions(CommonClusterOptions):
19686
19805
  :param version: The Kubernetes version to run in the cluster.
19687
19806
  :param cluster_name: Name for the cluster. Default: - Automatically generated name
19688
19807
  :param output_cluster_name: Determines whether a CloudFormation output with the name of the cluster will be synthesized. Default: false
19689
- :param output_config_command: Determines whether a CloudFormation output with the ``aws eks update-kubeconfig`` command will be synthesized. This command will include the cluster name and, if applicable, the ARN of the masters IAM role. Default: true
19808
+ :param output_config_command: Determines whether a CloudFormation output with the ``aws eks update-kubeconfig`` command will be synthesized. This command will include the cluster name and the ARN of the masters IAM role. Note: If mastersRole is not specified, this property will be ignored and no config command will be emitted. Default: true
19690
19809
  :param role: Role that provides permissions for the Kubernetes control plane to make calls to AWS API operations on your behalf. Default: - A role is automatically created for you
19691
19810
  :param security_group: Security Group to use for Control Plane ENIs. Default: - A security group is automatically created
19692
19811
  :param vpc: The VPC in which to create the Cluster. Default: - a VPC with default configuration will be created and can be accessed through ``cluster.vpc``.
@@ -19920,9 +20039,13 @@ class ClusterOptions(CommonClusterOptions):
19920
20039
  '''Determines whether a CloudFormation output with the ``aws eks update-kubeconfig`` command will be synthesized.
19921
20040
 
19922
20041
  This command will include
19923
- the cluster name and, if applicable, the ARN of the masters IAM role.
20042
+ the cluster name and the ARN of the masters IAM role.
20043
+
20044
+ Note: If mastersRole is not specified, this property will be ignored and no config command will be emitted.
19924
20045
 
19925
20046
  :default: true
20047
+
20048
+ :see: https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_eks-readme.html#masters-role
19926
20049
  '''
19927
20050
  result = self._values.get("output_config_command")
19928
20051
  return typing.cast(typing.Optional[builtins.bool], result)
@@ -20262,6 +20385,7 @@ class ClusterOptions(CommonClusterOptions):
20262
20385
  "secrets_encryption_key": "secretsEncryptionKey",
20263
20386
  "service_ipv4_cidr": "serviceIpv4Cidr",
20264
20387
  "bootstrap_cluster_creator_admin_permissions": "bootstrapClusterCreatorAdminPermissions",
20388
+ "bootstrap_self_managed_addons": "bootstrapSelfManagedAddons",
20265
20389
  "default_capacity": "defaultCapacity",
20266
20390
  "default_capacity_instance": "defaultCapacityInstance",
20267
20391
  "default_capacity_type": "defaultCapacityType",
@@ -20303,6 +20427,7 @@ class ClusterProps(ClusterOptions):
20303
20427
  secrets_encryption_key: typing.Optional[_IKey_5f11635f] = None,
20304
20428
  service_ipv4_cidr: typing.Optional[builtins.str] = None,
20305
20429
  bootstrap_cluster_creator_admin_permissions: typing.Optional[builtins.bool] = None,
20430
+ bootstrap_self_managed_addons: typing.Optional[builtins.bool] = None,
20306
20431
  default_capacity: typing.Optional[jsii.Number] = None,
20307
20432
  default_capacity_instance: typing.Optional[_InstanceType_f64915b9] = None,
20308
20433
  default_capacity_type: typing.Optional[DefaultCapacityType] = None,
@@ -20314,7 +20439,7 @@ class ClusterProps(ClusterOptions):
20314
20439
  :param version: The Kubernetes version to run in the cluster.
20315
20440
  :param cluster_name: Name for the cluster. Default: - Automatically generated name
20316
20441
  :param output_cluster_name: Determines whether a CloudFormation output with the name of the cluster will be synthesized. Default: false
20317
- :param output_config_command: Determines whether a CloudFormation output with the ``aws eks update-kubeconfig`` command will be synthesized. This command will include the cluster name and, if applicable, the ARN of the masters IAM role. Default: true
20442
+ :param output_config_command: Determines whether a CloudFormation output with the ``aws eks update-kubeconfig`` command will be synthesized. This command will include the cluster name and the ARN of the masters IAM role. Note: If mastersRole is not specified, this property will be ignored and no config command will be emitted. Default: true
20318
20443
  :param role: Role that provides permissions for the Kubernetes control plane to make calls to AWS API operations on your behalf. Default: - A role is automatically created for you
20319
20444
  :param security_group: Security Group to use for Control Plane ENIs. Default: - A security group is automatically created
20320
20445
  :param vpc: The VPC in which to create the Cluster. Default: - a VPC with default configuration will be created and can be accessed through ``cluster.vpc``.
@@ -20341,6 +20466,7 @@ class ClusterProps(ClusterOptions):
20341
20466
  :param secrets_encryption_key: KMS secret for envelope encryption for Kubernetes secrets. Default: - By default, Kubernetes stores all secret object data within etcd and all etcd volumes used by Amazon EKS are encrypted at the disk-level using AWS-Managed encryption keys.
20342
20467
  :param service_ipv4_cidr: The CIDR block to assign Kubernetes service IP addresses from. Default: - Kubernetes assigns addresses from either the 10.100.0.0/16 or 172.20.0.0/16 CIDR blocks
20343
20468
  :param bootstrap_cluster_creator_admin_permissions: Whether or not IAM principal of the cluster creator was set as a cluster admin access entry during cluster creation time. Changing this value after the cluster has been created will result in the cluster being replaced. Default: true
20469
+ :param bootstrap_self_managed_addons: If you set this value to False when creating a cluster, the default networking add-ons will not be installed. The default networking addons include vpc-cni, coredns, and kube-proxy. Use this option when you plan to install third-party alternative add-ons or self-manage the default networking add-ons. Changing this value after the cluster has been created will result in the cluster being replaced. Default: true
20344
20470
  :param default_capacity: Number of instances to allocate as an initial capacity for this cluster. Instance type can be configured through ``defaultCapacityInstanceType``, which defaults to ``m5.large``. Use ``cluster.addAutoScalingGroupCapacity`` to add additional customized capacity. Set this to ``0`` is you wish to avoid the initial capacity allocation. Default: 2
20345
20471
  :param default_capacity_instance: The instance type to use for the default capacity. This will only be taken into account if ``defaultCapacity`` is > 0. Default: m5.large
20346
20472
  :param default_capacity_type: The default capacity type for the cluster. Default: NODEGROUP
@@ -20351,7 +20477,7 @@ class ClusterProps(ClusterOptions):
20351
20477
 
20352
20478
  Example::
20353
20479
 
20354
- from aws_cdk.lambda_layer_kubectl_v32 import KubectlV32Layer
20480
+ from aws_cdk.lambda_layer_kubectl_v33 import KubectlV33Layer
20355
20481
 
20356
20482
  # or
20357
20483
  # vpc: ec2.Vpc
@@ -20359,8 +20485,8 @@ class ClusterProps(ClusterOptions):
20359
20485
 
20360
20486
  eks.Cluster(self, "MyCluster",
20361
20487
  kubectl_memory=Size.gibibytes(4),
20362
- version=eks.KubernetesVersion.V1_32,
20363
- kubectl_layer=KubectlV32Layer(self, "kubectl")
20488
+ version=eks.KubernetesVersion.V1_33,
20489
+ kubectl_layer=KubectlV33Layer(self, "kubectl")
20364
20490
  )
20365
20491
  eks.Cluster.from_cluster_attributes(self, "MyCluster",
20366
20492
  kubectl_memory=Size.gibibytes(4),
@@ -20402,6 +20528,7 @@ class ClusterProps(ClusterOptions):
20402
20528
  check_type(argname="argument secrets_encryption_key", value=secrets_encryption_key, expected_type=type_hints["secrets_encryption_key"])
20403
20529
  check_type(argname="argument service_ipv4_cidr", value=service_ipv4_cidr, expected_type=type_hints["service_ipv4_cidr"])
20404
20530
  check_type(argname="argument bootstrap_cluster_creator_admin_permissions", value=bootstrap_cluster_creator_admin_permissions, expected_type=type_hints["bootstrap_cluster_creator_admin_permissions"])
20531
+ check_type(argname="argument bootstrap_self_managed_addons", value=bootstrap_self_managed_addons, expected_type=type_hints["bootstrap_self_managed_addons"])
20405
20532
  check_type(argname="argument default_capacity", value=default_capacity, expected_type=type_hints["default_capacity"])
20406
20533
  check_type(argname="argument default_capacity_instance", value=default_capacity_instance, expected_type=type_hints["default_capacity_instance"])
20407
20534
  check_type(argname="argument default_capacity_type", value=default_capacity_type, expected_type=type_hints["default_capacity_type"])
@@ -20467,6 +20594,8 @@ class ClusterProps(ClusterOptions):
20467
20594
  self._values["service_ipv4_cidr"] = service_ipv4_cidr
20468
20595
  if bootstrap_cluster_creator_admin_permissions is not None:
20469
20596
  self._values["bootstrap_cluster_creator_admin_permissions"] = bootstrap_cluster_creator_admin_permissions
20597
+ if bootstrap_self_managed_addons is not None:
20598
+ self._values["bootstrap_self_managed_addons"] = bootstrap_self_managed_addons
20470
20599
  if default_capacity is not None:
20471
20600
  self._values["default_capacity"] = default_capacity
20472
20601
  if default_capacity_instance is not None:
@@ -20508,9 +20637,13 @@ class ClusterProps(ClusterOptions):
20508
20637
  '''Determines whether a CloudFormation output with the ``aws eks update-kubeconfig`` command will be synthesized.
20509
20638
 
20510
20639
  This command will include
20511
- the cluster name and, if applicable, the ARN of the masters IAM role.
20640
+ the cluster name and the ARN of the masters IAM role.
20641
+
20642
+ Note: If mastersRole is not specified, this property will be ignored and no config command will be emitted.
20512
20643
 
20513
20644
  :default: true
20645
+
20646
+ :see: https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_eks-readme.html#masters-role
20514
20647
  '''
20515
20648
  result = self._values.get("output_config_command")
20516
20649
  return typing.cast(typing.Optional[builtins.bool], result)
@@ -20817,6 +20950,20 @@ class ClusterProps(ClusterOptions):
20817
20950
  result = self._values.get("bootstrap_cluster_creator_admin_permissions")
20818
20951
  return typing.cast(typing.Optional[builtins.bool], result)
20819
20952
 
20953
+ @builtins.property
20954
+ def bootstrap_self_managed_addons(self) -> typing.Optional[builtins.bool]:
20955
+ '''If you set this value to False when creating a cluster, the default networking add-ons will not be installed.
20956
+
20957
+ The default networking addons include vpc-cni, coredns, and kube-proxy.
20958
+ Use this option when you plan to install third-party alternative add-ons or self-manage the default networking add-ons.
20959
+
20960
+ Changing this value after the cluster has been created will result in the cluster being replaced.
20961
+
20962
+ :default: true
20963
+ '''
20964
+ result = self._values.get("bootstrap_self_managed_addons")
20965
+ return typing.cast(typing.Optional[builtins.bool], result)
20966
+
20820
20967
  @builtins.property
20821
20968
  def default_capacity(self) -> typing.Optional[jsii.Number]:
20822
20969
  '''Number of instances to allocate as an initial capacity for this cluster.
@@ -20898,12 +21045,12 @@ class FargateCluster(
20898
21045
 
20899
21046
  Example::
20900
21047
 
20901
- from aws_cdk.lambda_layer_kubectl_v32 import KubectlV32Layer
21048
+ from aws_cdk.lambda_layer_kubectl_v33 import KubectlV33Layer
20902
21049
 
20903
21050
 
20904
21051
  cluster = eks.FargateCluster(self, "MyCluster",
20905
- version=eks.KubernetesVersion.V1_32,
20906
- kubectl_layer=KubectlV32Layer(self, "kubectl")
21052
+ version=eks.KubernetesVersion.V1_33,
21053
+ kubectl_layer=KubectlV33Layer(self, "kubectl")
20907
21054
  )
20908
21055
  '''
20909
21056
 
@@ -20971,7 +21118,7 @@ class FargateCluster(
20971
21118
  :param version: The Kubernetes version to run in the cluster.
20972
21119
  :param cluster_name: Name for the cluster. Default: - Automatically generated name
20973
21120
  :param output_cluster_name: Determines whether a CloudFormation output with the name of the cluster will be synthesized. Default: false
20974
- :param output_config_command: Determines whether a CloudFormation output with the ``aws eks update-kubeconfig`` command will be synthesized. This command will include the cluster name and, if applicable, the ARN of the masters IAM role. Default: true
21121
+ :param output_config_command: Determines whether a CloudFormation output with the ``aws eks update-kubeconfig`` command will be synthesized. This command will include the cluster name and the ARN of the masters IAM role. Note: If mastersRole is not specified, this property will be ignored and no config command will be emitted. Default: true
20975
21122
  :param role: Role that provides permissions for the Kubernetes control plane to make calls to AWS API operations on your behalf. Default: - A role is automatically created for you
20976
21123
  :param security_group: Security Group to use for Control Plane ENIs. Default: - A security group is automatically created
20977
21124
  :param vpc: The VPC in which to create the Cluster. Default: - a VPC with default configuration will be created and can be accessed through ``cluster.vpc``.
@@ -21105,7 +21252,7 @@ class FargateClusterProps(ClusterOptions):
21105
21252
  :param version: The Kubernetes version to run in the cluster.
21106
21253
  :param cluster_name: Name for the cluster. Default: - Automatically generated name
21107
21254
  :param output_cluster_name: Determines whether a CloudFormation output with the name of the cluster will be synthesized. Default: false
21108
- :param output_config_command: Determines whether a CloudFormation output with the ``aws eks update-kubeconfig`` command will be synthesized. This command will include the cluster name and, if applicable, the ARN of the masters IAM role. Default: true
21255
+ :param output_config_command: Determines whether a CloudFormation output with the ``aws eks update-kubeconfig`` command will be synthesized. This command will include the cluster name and the ARN of the masters IAM role. Note: If mastersRole is not specified, this property will be ignored and no config command will be emitted. Default: true
21109
21256
  :param role: Role that provides permissions for the Kubernetes control plane to make calls to AWS API operations on your behalf. Default: - A role is automatically created for you
21110
21257
  :param security_group: Security Group to use for Control Plane ENIs. Default: - A security group is automatically created
21111
21258
  :param vpc: The VPC in which to create the Cluster. Default: - a VPC with default configuration will be created and can be accessed through ``cluster.vpc``.
@@ -21137,12 +21284,12 @@ class FargateClusterProps(ClusterOptions):
21137
21284
 
21138
21285
  Example::
21139
21286
 
21140
- from aws_cdk.lambda_layer_kubectl_v32 import KubectlV32Layer
21287
+ from aws_cdk.lambda_layer_kubectl_v33 import KubectlV33Layer
21141
21288
 
21142
21289
 
21143
21290
  cluster = eks.FargateCluster(self, "MyCluster",
21144
- version=eks.KubernetesVersion.V1_32,
21145
- kubectl_layer=KubectlV32Layer(self, "kubectl")
21291
+ version=eks.KubernetesVersion.V1_33,
21292
+ kubectl_layer=KubectlV33Layer(self, "kubectl")
21146
21293
  )
21147
21294
  '''
21148
21295
  if isinstance(alb_controller, dict):
@@ -21272,9 +21419,13 @@ class FargateClusterProps(ClusterOptions):
21272
21419
  '''Determines whether a CloudFormation output with the ``aws eks update-kubeconfig`` command will be synthesized.
21273
21420
 
21274
21421
  This command will include
21275
- the cluster name and, if applicable, the ARN of the masters IAM role.
21422
+ the cluster name and the ARN of the masters IAM role.
21423
+
21424
+ Note: If mastersRole is not specified, this property will be ignored and no config command will be emitted.
21276
21425
 
21277
21426
  :default: true
21427
+
21428
+ :see: https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_eks-readme.html#masters-role
21278
21429
  '''
21279
21430
  result = self._values.get("output_config_command")
21280
21431
  return typing.cast(typing.Optional[builtins.bool], result)
@@ -22950,7 +23101,9 @@ def _typecheckingstub__be8311b6089cea26f85c63a586f0c5b063230a1b4a96ffcd4c6c983a3
22950
23101
  namespace: builtins.str,
22951
23102
  role_arn: builtins.str,
22952
23103
  service_account: builtins.str,
23104
+ disable_session_tags: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
22953
23105
  tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
23106
+ target_role_arn: typing.Optional[builtins.str] = None,
22954
23107
  ) -> None:
22955
23108
  """Type checking stubs"""
22956
23109
  pass
@@ -22991,19 +23144,33 @@ def _typecheckingstub__ea3bb34348aff57e29a5352e7460510bda8dd51720dbf7d275297137f
22991
23144
  """Type checking stubs"""
22992
23145
  pass
22993
23146
 
23147
+ def _typecheckingstub__cb3dbe4cc3b44e9265bbfe13e41235db909b0c1dc0e052b3bdda07fd4b228e8b(
23148
+ value: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]],
23149
+ ) -> None:
23150
+ """Type checking stubs"""
23151
+ pass
23152
+
22994
23153
  def _typecheckingstub__b0e0a0551adefc10761733af04b8c51e7dad6b483be9252882ecff10539c7dcc(
22995
23154
  value: typing.Optional[typing.List[_CfnTag_f6864754]],
22996
23155
  ) -> None:
22997
23156
  """Type checking stubs"""
22998
23157
  pass
22999
23158
 
23159
+ def _typecheckingstub__cb6220c6db8cf93a8a307b1ba0630d6bc64b4a09325e7cfe5854228aa75ff833(
23160
+ value: typing.Optional[builtins.str],
23161
+ ) -> None:
23162
+ """Type checking stubs"""
23163
+ pass
23164
+
23000
23165
  def _typecheckingstub__40e8da56b529234cdbb596fa46af952a935adf744e907347861dfc232b89038b(
23001
23166
  *,
23002
23167
  cluster_name: builtins.str,
23003
23168
  namespace: builtins.str,
23004
23169
  role_arn: builtins.str,
23005
23170
  service_account: builtins.str,
23171
+ disable_session_tags: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
23006
23172
  tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
23173
+ target_role_arn: typing.Optional[builtins.str] = None,
23007
23174
  ) -> None:
23008
23175
  """Type checking stubs"""
23009
23176
  pass
@@ -23644,6 +23811,7 @@ def _typecheckingstub__786576ad54eacdb9ab8e92277c0fd07f813bc56d4243937f3b5a85c0c
23644
23811
  id: builtins.str,
23645
23812
  *,
23646
23813
  bootstrap_cluster_creator_admin_permissions: typing.Optional[builtins.bool] = None,
23814
+ bootstrap_self_managed_addons: typing.Optional[builtins.bool] = None,
23647
23815
  default_capacity: typing.Optional[jsii.Number] = None,
23648
23816
  default_capacity_instance: typing.Optional[_InstanceType_f64915b9] = None,
23649
23817
  default_capacity_type: typing.Optional[DefaultCapacityType] = None,
@@ -23946,6 +24114,7 @@ def _typecheckingstub__ce7a73a63de29ba5e5b5cd5cabde7aca1c4bc7d119de52fc4c0f11d99
23946
24114
  secrets_encryption_key: typing.Optional[_IKey_5f11635f] = None,
23947
24115
  service_ipv4_cidr: typing.Optional[builtins.str] = None,
23948
24116
  bootstrap_cluster_creator_admin_permissions: typing.Optional[builtins.bool] = None,
24117
+ bootstrap_self_managed_addons: typing.Optional[builtins.bool] = None,
23949
24118
  default_capacity: typing.Optional[jsii.Number] = None,
23950
24119
  default_capacity_instance: typing.Optional[_InstanceType_f64915b9] = None,
23951
24120
  default_capacity_type: typing.Optional[DefaultCapacityType] = None,