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.
- aws_cdk/__init__.py +129 -37
- aws_cdk/_jsii/__init__.py +1 -1
- aws_cdk/_jsii/{aws-cdk-lib@2.200.2.jsii.tgz → aws-cdk-lib@2.202.0.jsii.tgz} +0 -0
- aws_cdk/aws_amazonmq/__init__.py +2 -3
- aws_cdk/aws_amplify/__init__.py +3 -3
- aws_cdk/aws_apigateway/__init__.py +21 -17
- aws_cdk/aws_apigatewayv2/__init__.py +87 -45
- aws_cdk/aws_appconfig/__init__.py +38 -1
- aws_cdk/aws_appsync/__init__.py +10 -10
- aws_cdk/aws_athena/__init__.py +227 -0
- aws_cdk/aws_autoscaling/__init__.py +38 -37
- aws_cdk/aws_bedrock/__init__.py +5108 -1571
- aws_cdk/aws_cloudfront/__init__.py +38 -38
- aws_cdk/aws_cloudfront/experimental/__init__.py +5 -0
- aws_cdk/aws_cloudtrail/__init__.py +178 -0
- aws_cdk/aws_cloudwatch/__init__.py +7 -3
- aws_cdk/aws_codepipeline_actions/__init__.py +746 -0
- aws_cdk/aws_connect/__init__.py +5 -5
- aws_cdk/aws_customerprofiles/__init__.py +377 -8
- aws_cdk/aws_datasync/__init__.py +189 -160
- aws_cdk/aws_datazone/__init__.py +512 -170
- aws_cdk/aws_deadline/__init__.py +32 -4
- aws_cdk/aws_dsql/__init__.py +150 -10
- aws_cdk/aws_ec2/__init__.py +1191 -304
- aws_cdk/aws_ecs/__init__.py +94 -11
- aws_cdk/aws_efs/__init__.py +103 -12
- aws_cdk/aws_eks/__init__.py +337 -168
- aws_cdk/aws_elasticloadbalancingv2/__init__.py +2 -2
- aws_cdk/aws_emr/__init__.py +10 -4
- aws_cdk/aws_entityresolution/__init__.py +25 -10
- aws_cdk/aws_evs/__init__.py +2204 -0
- aws_cdk/aws_fsx/__init__.py +7 -7
- aws_cdk/aws_glue/__init__.py +58 -24
- aws_cdk/aws_iam/__init__.py +3 -3
- aws_cdk/aws_kms/__init__.py +10 -4
- aws_cdk/aws_lambda/__init__.py +1167 -55
- aws_cdk/aws_lambda_event_sources/__init__.py +638 -1
- aws_cdk/aws_lightsail/__init__.py +17 -13
- aws_cdk/aws_logs/__init__.py +1 -0
- aws_cdk/aws_msk/__init__.py +21 -2
- aws_cdk/aws_mwaa/__init__.py +45 -2
- aws_cdk/aws_networkfirewall/__init__.py +562 -0
- aws_cdk/aws_opensearchservice/__init__.py +3 -3
- aws_cdk/aws_opsworkscm/__init__.py +9 -43
- aws_cdk/aws_rds/__init__.py +287 -87
- aws_cdk/aws_s3/__init__.py +39 -15
- aws_cdk/aws_sagemaker/__init__.py +223 -3
- aws_cdk/aws_securityhub/__init__.py +18 -34
- aws_cdk/aws_ssm/__init__.py +83 -1
- aws_cdk/aws_stepfunctions/__init__.py +235 -45
- aws_cdk/aws_synthetics/__init__.py +74 -0
- aws_cdk/aws_transfer/__init__.py +3 -3
- aws_cdk/aws_verifiedpermissions/__init__.py +17 -6
- aws_cdk/aws_wafv2/__init__.py +770 -7
- aws_cdk/cx_api/__init__.py +14 -0
- aws_cdk/pipelines/__init__.py +147 -38
- {aws_cdk_lib-2.200.2.dist-info → aws_cdk_lib-2.202.0.dist-info}/METADATA +3 -3
- {aws_cdk_lib-2.200.2.dist-info → aws_cdk_lib-2.202.0.dist-info}/RECORD +62 -61
- {aws_cdk_lib-2.200.2.dist-info → aws_cdk_lib-2.202.0.dist-info}/LICENSE +0 -0
- {aws_cdk_lib-2.200.2.dist-info → aws_cdk_lib-2.202.0.dist-info}/NOTICE +0 -0
- {aws_cdk_lib-2.200.2.dist-info → aws_cdk_lib-2.202.0.dist-info}/WHEEL +0 -0
- {aws_cdk_lib-2.200.2.dist-info → aws_cdk_lib-2.202.0.dist-info}/top_level.txt +0 -0
aws_cdk/aws_eks/__init__.py
CHANGED
|
@@ -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.
|
|
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.
|
|
88
|
-
kubectl_layer=
|
|
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.
|
|
152
|
+
from aws_cdk.lambda_layer_kubectl_v33 import KubectlV33Layer
|
|
153
153
|
|
|
154
154
|
|
|
155
155
|
eks.Cluster(self, "HelloEKS",
|
|
156
|
-
version=eks.KubernetesVersion.
|
|
157
|
-
kubectl_layer=
|
|
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.
|
|
164
|
+
from aws_cdk.lambda_layer_kubectl_v33 import KubectlV33Layer
|
|
165
165
|
|
|
166
166
|
|
|
167
167
|
eks.FargateCluster(self, "HelloEKS",
|
|
168
|
-
version=eks.KubernetesVersion.
|
|
169
|
-
kubectl_layer=
|
|
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.
|
|
192
|
+
from aws_cdk.lambda_layer_kubectl_v33 import KubectlV33Layer
|
|
193
193
|
|
|
194
194
|
|
|
195
195
|
eks.Cluster(self, "HelloEKS",
|
|
196
|
-
version=eks.KubernetesVersion.
|
|
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=
|
|
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.
|
|
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.
|
|
212
|
+
version=eks.KubernetesVersion.V1_33,
|
|
213
213
|
default_capacity=0,
|
|
214
|
-
kubectl_layer=
|
|
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.
|
|
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.
|
|
318
|
+
version=eks.KubernetesVersion.V1_33,
|
|
319
319
|
default_capacity=0,
|
|
320
|
-
kubectl_layer=
|
|
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.
|
|
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=
|
|
435
|
-
version=eks.KubernetesVersion.
|
|
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.
|
|
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.
|
|
493
|
-
kubectl_layer=
|
|
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.
|
|
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.
|
|
577
|
+
version=eks.KubernetesVersion.V1_33,
|
|
578
578
|
default_capacity_type=eks.DefaultCapacityType.EC2,
|
|
579
|
-
kubectl_layer=
|
|
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.
|
|
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.
|
|
690
|
+
version=eks.KubernetesVersion.V1_33,
|
|
691
691
|
endpoint_access=eks.EndpointAccess.PRIVATE, # No access outside of your VPC.
|
|
692
|
-
kubectl_layer=
|
|
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.
|
|
712
|
+
from aws_cdk.lambda_layer_kubectl_v33 import KubectlV33Layer
|
|
713
713
|
|
|
714
714
|
|
|
715
715
|
eks.Cluster(self, "HelloEKS",
|
|
716
|
-
version=eks.KubernetesVersion.
|
|
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=
|
|
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.
|
|
727
|
+
from aws_cdk.lambda_layer_kubectl_v33 import KubectlV33Layer
|
|
728
728
|
|
|
729
729
|
|
|
730
730
|
eks.Cluster(self, "HelloEKS",
|
|
731
|
-
version=eks.KubernetesVersion.
|
|
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=
|
|
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.
|
|
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.
|
|
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=
|
|
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.
|
|
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.
|
|
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=
|
|
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.
|
|
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.
|
|
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=
|
|
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.
|
|
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.
|
|
915
|
+
version=eks.KubernetesVersion.V1_33,
|
|
916
916
|
kubectl_environment={
|
|
917
917
|
"http_proxy": "http://proxy.myproxy.com"
|
|
918
918
|
},
|
|
919
|
-
kubectl_layer=
|
|
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.
|
|
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.
|
|
941
|
-
kubectl_layer=
|
|
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.
|
|
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.
|
|
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.
|
|
1002
|
-
kubectl_layer=
|
|
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.
|
|
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.
|
|
1042
|
+
version=eks.KubernetesVersion.V1_33,
|
|
1043
1043
|
masters_role=role,
|
|
1044
|
-
kubectl_layer=
|
|
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.
|
|
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.
|
|
1097
|
-
kubectl_layer=
|
|
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.
|
|
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.
|
|
1111
|
-
kubectl_layer=
|
|
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.
|
|
1130
|
+
from aws_cdk.lambda_layer_kubectl_v33 import KubectlV33Layer
|
|
1131
1131
|
|
|
1132
1132
|
|
|
1133
1133
|
eks.Cluster(self, "Cluster",
|
|
1134
|
-
version=eks.KubernetesVersion.
|
|
1135
|
-
kubectl_layer=
|
|
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.
|
|
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.
|
|
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.
|
|
1211
|
-
kubectl_layer=
|
|
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.
|
|
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.
|
|
1257
|
-
kubectl_layer=
|
|
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.
|
|
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.
|
|
1322
|
-
kubectl_layer=
|
|
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.
|
|
1659
|
+
from aws_cdk.lambda_layer_kubectl_v33 import KubectlV33Layer
|
|
1654
1660
|
|
|
1655
1661
|
|
|
1656
1662
|
eks.Cluster(self, "MyCluster",
|
|
1657
|
-
version=eks.KubernetesVersion.
|
|
1663
|
+
version=eks.KubernetesVersion.V1_33,
|
|
1658
1664
|
prune=False,
|
|
1659
|
-
kubectl_layer=
|
|
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.
|
|
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.
|
|
2069
|
+
version=eks.KubernetesVersion.V1_33,
|
|
2064
2070
|
cluster_logging=[eks.ClusterLoggingTypes.API, eks.ClusterLoggingTypes.AUTHENTICATOR, eks.ClusterLoggingTypes.SCHEDULER
|
|
2065
2071
|
],
|
|
2066
|
-
kubectl_layer=
|
|
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.
|
|
3068
|
+
from aws_cdk.lambda_layer_kubectl_v33 import KubectlV33Layer
|
|
3063
3069
|
|
|
3064
3070
|
|
|
3065
3071
|
eks.Cluster(self, "HelloEKS",
|
|
3066
|
-
version=eks.KubernetesVersion.
|
|
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=
|
|
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.
|
|
3152
|
+
from aws_cdk.lambda_layer_kubectl_v33 import KubectlV33Layer
|
|
3147
3153
|
|
|
3148
3154
|
|
|
3149
3155
|
eks.Cluster(self, "HelloEKS",
|
|
3150
|
-
version=eks.KubernetesVersion.
|
|
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=
|
|
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.
|
|
3388
|
+
from aws_cdk.lambda_layer_kubectl_v33 import KubectlV33Layer
|
|
3383
3389
|
|
|
3384
3390
|
|
|
3385
3391
|
eks.Cluster(self, "HelloEKS",
|
|
3386
|
-
version=eks.KubernetesVersion.
|
|
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=
|
|
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.
|
|
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.
|
|
3673
|
-
kubectl_layer=
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
6007
|
+
'''An array of EKS Pod Identity associations owned by the add-on.
|
|
6002
6008
|
|
|
6003
|
-
Each
|
|
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
|
|
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 /
|
|
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 /
|
|
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 /
|
|
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 /
|
|
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 /
|
|
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 /
|
|
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 /
|
|
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 /
|
|
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 /
|
|
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 /
|
|
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 `
|
|
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 `
|
|
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 `
|
|
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 `
|
|
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 `
|
|
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 `
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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.
|
|
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.
|
|
12060
|
+
version=eks.KubernetesVersion.V1_33,
|
|
11960
12061
|
cluster_logging=[eks.ClusterLoggingTypes.API, eks.ClusterLoggingTypes.AUTHENTICATOR, eks.ClusterLoggingTypes.SCHEDULER
|
|
11961
12062
|
],
|
|
11962
|
-
kubectl_layer=
|
|
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
|
|
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
|
|
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.
|
|
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.
|
|
12307
|
+
version=eks.KubernetesVersion.V1_33,
|
|
12203
12308
|
default_capacity_type=eks.DefaultCapacityType.EC2,
|
|
12204
|
-
kubectl_layer=
|
|
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.
|
|
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.
|
|
12480
|
+
version=eks.KubernetesVersion.V1_33,
|
|
12376
12481
|
endpoint_access=eks.EndpointAccess.PRIVATE, # No access outside of your VPC.
|
|
12377
|
-
kubectl_layer=
|
|
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.
|
|
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.
|
|
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=
|
|
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.
|
|
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.
|
|
15716
|
-
kubectl_layer=
|
|
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.
|
|
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.
|
|
18579
|
-
kubectl_layer=
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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.
|
|
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.
|
|
20363
|
-
kubectl_layer=
|
|
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
|
|
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.
|
|
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.
|
|
20906
|
-
kubectl_layer=
|
|
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
|
|
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
|
|
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.
|
|
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.
|
|
21145
|
-
kubectl_layer=
|
|
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
|
|
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,
|