aws-cdk-lib 2.178.2__py3-none-any.whl → 2.180.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 +83 -41
- aws_cdk/_jsii/__init__.py +1 -2
- aws_cdk/_jsii/{aws-cdk-lib@2.178.2.jsii.tgz → aws-cdk-lib@2.180.0.jsii.tgz} +0 -0
- aws_cdk/aws_acmpca/__init__.py +47 -0
- aws_cdk/aws_apigateway/__init__.py +176 -35
- aws_cdk/aws_apigatewayv2/__init__.py +151 -32
- aws_cdk/aws_apigatewayv2_integrations/__init__.py +348 -0
- aws_cdk/aws_applicationautoscaling/__init__.py +8 -8
- aws_cdk/aws_appsync/__init__.py +10 -7
- aws_cdk/aws_backup/__init__.py +89 -0
- aws_cdk/aws_batch/__init__.py +89 -50
- aws_cdk/aws_bedrock/__init__.py +506 -62
- aws_cdk/aws_cloudfront/__init__.py +1037 -146
- aws_cdk/aws_cloudfront_origins/__init__.py +1338 -144
- aws_cdk/aws_cloudtrail/__init__.py +4 -8
- aws_cdk/aws_cloudwatch/__init__.py +1 -1
- aws_cdk/aws_codebuild/__init__.py +218 -2
- aws_cdk/aws_codepipeline/__init__.py +113 -28
- aws_cdk/aws_codepipeline_actions/__init__.py +554 -63
- aws_cdk/aws_codestar/__init__.py +2 -1
- aws_cdk/aws_cognito/__init__.py +676 -29
- aws_cdk/aws_connect/__init__.py +257 -0
- aws_cdk/aws_datasync/__init__.py +279 -50
- aws_cdk/aws_deadline/__init__.py +683 -6
- aws_cdk/aws_directoryservice/__init__.py +9 -4
- aws_cdk/aws_dlm/__init__.py +2 -2
- aws_cdk/aws_dms/__init__.py +3 -3
- aws_cdk/aws_dynamodb/__init__.py +0 -54
- aws_cdk/aws_ec2/__init__.py +402 -130
- aws_cdk/aws_ecs/__init__.py +28 -43
- aws_cdk/aws_efs/__init__.py +1 -1
- aws_cdk/aws_eks/__init__.py +560 -182
- aws_cdk/aws_elasticloadbalancingv2/__init__.py +112 -27
- aws_cdk/aws_emrcontainers/__init__.py +44 -1
- aws_cdk/aws_events/__init__.py +17 -26
- aws_cdk/aws_events_targets/__init__.py +303 -16
- aws_cdk/aws_fms/__init__.py +5 -5
- aws_cdk/aws_fsx/__init__.py +5 -4
- aws_cdk/aws_glue/__init__.py +161 -0
- aws_cdk/aws_groundstation/__init__.py +23 -1
- aws_cdk/aws_iam/__init__.py +15 -15
- aws_cdk/aws_iot/__init__.py +7 -0
- aws_cdk/aws_ivs/__init__.py +254 -77
- aws_cdk/aws_kinesis/__init__.py +689 -35
- aws_cdk/aws_lambda/__init__.py +10 -15
- aws_cdk/aws_lambda_event_sources/__init__.py +175 -2
- aws_cdk/aws_logs/__init__.py +62 -13
- aws_cdk/aws_medialive/__init__.py +314 -4
- aws_cdk/aws_opensearchserverless/__init__.py +19 -0
- aws_cdk/aws_pinpoint/__init__.py +14 -9
- aws_cdk/aws_rds/__init__.py +246 -82
- aws_cdk/aws_s3/__init__.py +287 -9
- aws_cdk/aws_s3objectlambda/__init__.py +2 -2
- aws_cdk/aws_ses/__init__.py +228 -8
- aws_cdk/aws_ssm/__init__.py +4 -5
- aws_cdk/aws_stepfunctions/__init__.py +301 -70
- aws_cdk/aws_stepfunctions_tasks/__init__.py +269 -163
- aws_cdk/aws_supportapp/__init__.py +7 -7
- aws_cdk/aws_transfer/__init__.py +820 -2
- aws_cdk/aws_wafv2/__init__.py +17 -9
- aws_cdk/custom_resources/__init__.py +23 -26
- aws_cdk/cx_api/__init__.py +16 -0
- aws_cdk/pipelines/__init__.py +2 -2
- {aws_cdk_lib-2.178.2.dist-info → aws_cdk_lib-2.180.0.dist-info}/METADATA +1 -2
- {aws_cdk_lib-2.178.2.dist-info → aws_cdk_lib-2.180.0.dist-info}/RECORD +69 -70
- aws_cdk/lambda_layer_kubectl/__init__.py +0 -107
- {aws_cdk_lib-2.178.2.dist-info → aws_cdk_lib-2.180.0.dist-info}/LICENSE +0 -0
- {aws_cdk_lib-2.178.2.dist-info → aws_cdk_lib-2.180.0.dist-info}/NOTICE +0 -0
- {aws_cdk_lib-2.178.2.dist-info → aws_cdk_lib-2.180.0.dist-info}/WHEEL +0 -0
- {aws_cdk_lib-2.178.2.dist-info → aws_cdk_lib-2.180.0.dist-info}/top_level.txt +0 -0
aws_cdk/aws_eks/__init__.py
CHANGED
|
@@ -39,6 +39,7 @@ In addition, the library also supports defining Kubernetes resource manifests wi
|
|
|
39
39
|
* [ARM64 Support](#arm64-support)
|
|
40
40
|
* [Masters Role](#masters-role)
|
|
41
41
|
* [Encryption](#encryption)
|
|
42
|
+
* [Hybrid nodes](#hybrid-nodes)
|
|
42
43
|
* [Permissions and Security](#permissions-and-security)
|
|
43
44
|
|
|
44
45
|
* [AWS IAM Mapping](#aws-iam-mapping)
|
|
@@ -78,13 +79,13 @@ This example defines an Amazon EKS cluster with the following configuration:
|
|
|
78
79
|
* A Kubernetes pod with a container based on the [paulbouwer/hello-kubernetes](https://github.com/paulbouwer/hello-kubernetes) image.
|
|
79
80
|
|
|
80
81
|
```python
|
|
81
|
-
from aws_cdk.
|
|
82
|
+
from aws_cdk.lambda_layer_kubectl_v32 import KubectlV32Layer
|
|
82
83
|
|
|
83
84
|
|
|
84
85
|
# provisioning a cluster
|
|
85
86
|
cluster = eks.Cluster(self, "hello-eks",
|
|
86
|
-
version=eks.KubernetesVersion.
|
|
87
|
-
kubectl_layer=
|
|
87
|
+
version=eks.KubernetesVersion.V1_32,
|
|
88
|
+
kubectl_layer=KubectlV32Layer(self, "kubectl")
|
|
88
89
|
)
|
|
89
90
|
|
|
90
91
|
# apply a kubernetes manifest to the cluster
|
|
@@ -145,19 +146,27 @@ A more detailed breakdown of each is provided further down this README.
|
|
|
145
146
|
|
|
146
147
|
## Provisioning clusters
|
|
147
148
|
|
|
148
|
-
Creating a new cluster is done using the `Cluster` or `FargateCluster` constructs. The only required
|
|
149
|
+
Creating a new cluster is done using the `Cluster` or `FargateCluster` constructs. The only required properties are the kubernetes `version` and `kubectlLayer`.
|
|
149
150
|
|
|
150
151
|
```python
|
|
152
|
+
from aws_cdk.lambda_layer_kubectl_v32 import KubectlV32Layer
|
|
153
|
+
|
|
154
|
+
|
|
151
155
|
eks.Cluster(self, "HelloEKS",
|
|
152
|
-
version=eks.KubernetesVersion.
|
|
156
|
+
version=eks.KubernetesVersion.V1_32,
|
|
157
|
+
kubectl_layer=KubectlV32Layer(self, "kubectl")
|
|
153
158
|
)
|
|
154
159
|
```
|
|
155
160
|
|
|
156
161
|
You can also use `FargateCluster` to provision a cluster that uses only fargate workers.
|
|
157
162
|
|
|
158
163
|
```python
|
|
164
|
+
from aws_cdk.lambda_layer_kubectl_v32 import KubectlV32Layer
|
|
165
|
+
|
|
166
|
+
|
|
159
167
|
eks.FargateCluster(self, "HelloEKS",
|
|
160
|
-
version=eks.KubernetesVersion.
|
|
168
|
+
version=eks.KubernetesVersion.V1_32,
|
|
169
|
+
kubectl_layer=KubectlV32Layer(self, "kubectl")
|
|
161
170
|
)
|
|
162
171
|
```
|
|
163
172
|
|
|
@@ -169,7 +178,7 @@ Capacity is the amount and the type of worker nodes that are available to the cl
|
|
|
169
178
|
### Managed node groups
|
|
170
179
|
|
|
171
180
|
Amazon EKS managed node groups automate the provisioning and lifecycle management of nodes (Amazon EC2 instances) for Amazon EKS Kubernetes clusters.
|
|
172
|
-
With Amazon EKS managed node groups, you don
|
|
181
|
+
With Amazon EKS managed node groups, you don't need to separately provision or register the Amazon EC2 instances that provide compute capacity to run your Kubernetes applications. You can create, update, or terminate nodes for your cluster with a single operation. Nodes run using the latest Amazon EKS optimized AMIs in your AWS account while node updates and terminations gracefully drain nodes to ensure that your applications stay available.
|
|
173
182
|
|
|
174
183
|
> For more details visit [Amazon EKS Managed Node Groups](https://docs.aws.amazon.com/eks/latest/userguide/managed-node-groups.html).
|
|
175
184
|
|
|
@@ -180,10 +189,14 @@ By default, this library will allocate a managed node group with 2 *m5.large* in
|
|
|
180
189
|
At cluster instantiation time, you can customize the number of instances and their type:
|
|
181
190
|
|
|
182
191
|
```python
|
|
192
|
+
from aws_cdk.lambda_layer_kubectl_v32 import KubectlV32Layer
|
|
193
|
+
|
|
194
|
+
|
|
183
195
|
eks.Cluster(self, "HelloEKS",
|
|
184
|
-
version=eks.KubernetesVersion.
|
|
196
|
+
version=eks.KubernetesVersion.V1_32,
|
|
185
197
|
default_capacity=5,
|
|
186
|
-
default_capacity_instance=ec2.InstanceType.of(ec2.InstanceClass.M5, ec2.InstanceSize.SMALL)
|
|
198
|
+
default_capacity_instance=ec2.InstanceType.of(ec2.InstanceClass.M5, ec2.InstanceSize.SMALL),
|
|
199
|
+
kubectl_layer=KubectlV32Layer(self, "kubectl")
|
|
187
200
|
)
|
|
188
201
|
```
|
|
189
202
|
|
|
@@ -192,9 +205,13 @@ To access the node group that was created on your behalf, you can use `cluster.d
|
|
|
192
205
|
Additional customizations are available post instantiation. To apply them, set the default capacity to 0, and use the `cluster.addNodegroupCapacity` method:
|
|
193
206
|
|
|
194
207
|
```python
|
|
208
|
+
from aws_cdk.lambda_layer_kubectl_v32 import KubectlV32Layer
|
|
209
|
+
|
|
210
|
+
|
|
195
211
|
cluster = eks.Cluster(self, "HelloEKS",
|
|
196
|
-
version=eks.KubernetesVersion.
|
|
197
|
-
default_capacity=0
|
|
212
|
+
version=eks.KubernetesVersion.V1_32,
|
|
213
|
+
default_capacity=0,
|
|
214
|
+
kubectl_layer=KubectlV32Layer(self, "kubectl")
|
|
198
215
|
)
|
|
199
216
|
|
|
200
217
|
cluster.add_nodegroup_capacity("custom-node-group",
|
|
@@ -273,6 +290,9 @@ Node groups are available with IPv6 configured networks. For custom roles assig
|
|
|
273
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)
|
|
274
291
|
|
|
275
292
|
```python
|
|
293
|
+
from aws_cdk.lambda_layer_kubectl_v32 import KubectlV32Layer
|
|
294
|
+
|
|
295
|
+
|
|
276
296
|
ipv6_management = iam.PolicyDocument(
|
|
277
297
|
statements=[iam.PolicyStatement(
|
|
278
298
|
resources=["arn:aws:ec2:*:*:network-interface/*"],
|
|
@@ -295,8 +315,9 @@ eks_cluster_node_group_role = iam.Role(self, "eksClusterNodeGroupRole",
|
|
|
295
315
|
)
|
|
296
316
|
|
|
297
317
|
cluster = eks.Cluster(self, "HelloEKS",
|
|
298
|
-
version=eks.KubernetesVersion.
|
|
299
|
-
default_capacity=0
|
|
318
|
+
version=eks.KubernetesVersion.V1_32,
|
|
319
|
+
default_capacity=0,
|
|
320
|
+
kubectl_layer=KubectlV32Layer(self, "kubectl")
|
|
300
321
|
)
|
|
301
322
|
|
|
302
323
|
cluster.add_nodegroup_capacity("custom-node-group",
|
|
@@ -405,9 +426,13 @@ has been changed. As a workaround, you need to add a temporary policy to the clu
|
|
|
405
426
|
successful replacement. Consider this example if you are renaming the cluster from `foo` to `bar`:
|
|
406
427
|
|
|
407
428
|
```python
|
|
429
|
+
from aws_cdk.lambda_layer_kubectl_v32 import KubectlV32Layer
|
|
430
|
+
|
|
431
|
+
|
|
408
432
|
cluster = eks.Cluster(self, "cluster-to-rename",
|
|
409
433
|
cluster_name="foo", # rename this to 'bar'
|
|
410
|
-
|
|
434
|
+
kubectl_layer=KubectlV32Layer(self, "kubectl"),
|
|
435
|
+
version=eks.KubernetesVersion.V1_32
|
|
411
436
|
)
|
|
412
437
|
|
|
413
438
|
# allow the cluster admin role to delete the cluster 'foo'
|
|
@@ -460,8 +485,12 @@ To create an EKS cluster that **only** uses Fargate capacity, you can use `Farga
|
|
|
460
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).
|
|
461
486
|
|
|
462
487
|
```python
|
|
488
|
+
from aws_cdk.lambda_layer_kubectl_v32 import KubectlV32Layer
|
|
489
|
+
|
|
490
|
+
|
|
463
491
|
cluster = eks.FargateCluster(self, "MyCluster",
|
|
464
|
-
version=eks.KubernetesVersion.
|
|
492
|
+
version=eks.KubernetesVersion.V1_32,
|
|
493
|
+
kubectl_layer=KubectlV32Layer(self, "kubectl")
|
|
465
494
|
)
|
|
466
495
|
```
|
|
467
496
|
|
|
@@ -541,9 +570,13 @@ To disable bootstrapping altogether (i.e. to fully customize user-data), set `bo
|
|
|
541
570
|
You can also configure the cluster to use an auto-scaling group as the default capacity:
|
|
542
571
|
|
|
543
572
|
```python
|
|
573
|
+
from aws_cdk.lambda_layer_kubectl_v32 import KubectlV32Layer
|
|
574
|
+
|
|
575
|
+
|
|
544
576
|
cluster = eks.Cluster(self, "HelloEKS",
|
|
545
|
-
version=eks.KubernetesVersion.
|
|
546
|
-
default_capacity_type=eks.DefaultCapacityType.EC2
|
|
577
|
+
version=eks.KubernetesVersion.V1_32,
|
|
578
|
+
default_capacity_type=eks.DefaultCapacityType.EC2,
|
|
579
|
+
kubectl_layer=KubectlV32Layer(self, "kubectl")
|
|
547
580
|
)
|
|
548
581
|
```
|
|
549
582
|
|
|
@@ -650,9 +683,13 @@ AWS Identity and Access Management (IAM) and native Kubernetes [Role Based Acces
|
|
|
650
683
|
You can configure the [cluster endpoint access](https://docs.aws.amazon.com/eks/latest/userguide/cluster-endpoint.html) by using the `endpointAccess` property:
|
|
651
684
|
|
|
652
685
|
```python
|
|
686
|
+
from aws_cdk.lambda_layer_kubectl_v32 import KubectlV32Layer
|
|
687
|
+
|
|
688
|
+
|
|
653
689
|
cluster = eks.Cluster(self, "hello-eks",
|
|
654
|
-
version=eks.KubernetesVersion.
|
|
655
|
-
endpoint_access=eks.EndpointAccess.PRIVATE
|
|
690
|
+
version=eks.KubernetesVersion.V1_32,
|
|
691
|
+
endpoint_access=eks.EndpointAccess.PRIVATE, # No access outside of your VPC.
|
|
692
|
+
kubectl_layer=KubectlV32Layer(self, "kubectl")
|
|
656
693
|
)
|
|
657
694
|
```
|
|
658
695
|
|
|
@@ -672,11 +709,15 @@ From the docs:
|
|
|
672
709
|
To deploy the controller on your EKS cluster, configure the `albController` property:
|
|
673
710
|
|
|
674
711
|
```python
|
|
712
|
+
from aws_cdk.lambda_layer_kubectl_v32 import KubectlV32Layer
|
|
713
|
+
|
|
714
|
+
|
|
675
715
|
eks.Cluster(self, "HelloEKS",
|
|
676
|
-
version=eks.KubernetesVersion.
|
|
716
|
+
version=eks.KubernetesVersion.V1_32,
|
|
677
717
|
alb_controller=eks.AlbControllerOptions(
|
|
678
718
|
version=eks.AlbControllerVersion.V2_8_2
|
|
679
|
-
)
|
|
719
|
+
),
|
|
720
|
+
kubectl_layer=KubectlV32Layer(self, "kubectl")
|
|
680
721
|
)
|
|
681
722
|
```
|
|
682
723
|
|
|
@@ -713,13 +754,16 @@ if cluster.alb_controller:
|
|
|
713
754
|
You can specify the VPC of the cluster using the `vpc` and `vpcSubnets` properties:
|
|
714
755
|
|
|
715
756
|
```python
|
|
757
|
+
from aws_cdk.lambda_layer_kubectl_v32 import KubectlV32Layer
|
|
758
|
+
|
|
716
759
|
# vpc: ec2.Vpc
|
|
717
760
|
|
|
718
761
|
|
|
719
762
|
eks.Cluster(self, "HelloEKS",
|
|
720
|
-
version=eks.KubernetesVersion.
|
|
763
|
+
version=eks.KubernetesVersion.V1_32,
|
|
721
764
|
vpc=vpc,
|
|
722
|
-
vpc_subnets=[ec2.SubnetSelection(subnet_type=ec2.SubnetType.PRIVATE_WITH_EGRESS)]
|
|
765
|
+
vpc_subnets=[ec2.SubnetSelection(subnet_type=ec2.SubnetType.PRIVATE_WITH_EGRESS)],
|
|
766
|
+
kubectl_layer=KubectlV32Layer(self, "kubectl")
|
|
723
767
|
)
|
|
724
768
|
```
|
|
725
769
|
|
|
@@ -763,10 +807,12 @@ The `ClusterHandler` is a set of Lambda functions (`onEventHandler`, `isComplete
|
|
|
763
807
|
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:
|
|
764
808
|
|
|
765
809
|
```python
|
|
810
|
+
from aws_cdk.lambda_layer_kubectl_v32 import KubectlV32Layer
|
|
811
|
+
|
|
766
812
|
# proxy_instance_security_group: ec2.SecurityGroup
|
|
767
813
|
|
|
768
814
|
cluster = eks.Cluster(self, "hello-eks",
|
|
769
|
-
version=eks.KubernetesVersion.
|
|
815
|
+
version=eks.KubernetesVersion.V1_32,
|
|
770
816
|
cluster_handler_environment={
|
|
771
817
|
"https_proxy": "http://proxy.myproxy.com"
|
|
772
818
|
},
|
|
@@ -774,7 +820,8 @@ cluster = eks.Cluster(self, "hello-eks",
|
|
|
774
820
|
# If the proxy is not open publicly, you can pass a security group to the
|
|
775
821
|
# Cluster Handler Lambdas so that it can reach the proxy.
|
|
776
822
|
#
|
|
777
|
-
cluster_handler_security_group=proxy_instance_security_group
|
|
823
|
+
cluster_handler_security_group=proxy_instance_security_group,
|
|
824
|
+
kubectl_layer=KubectlV32Layer(self, "kubectl")
|
|
778
825
|
)
|
|
779
826
|
```
|
|
780
827
|
|
|
@@ -783,6 +830,7 @@ cluster = eks.Cluster(self, "hello-eks",
|
|
|
783
830
|
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.
|
|
784
831
|
|
|
785
832
|
```python
|
|
833
|
+
from aws_cdk.lambda_layer_kubectl_v32 import KubectlV32Layer
|
|
786
834
|
# vpc: ec2.Vpc
|
|
787
835
|
|
|
788
836
|
|
|
@@ -807,10 +855,11 @@ for subnet in subnets:
|
|
|
807
855
|
subnetcount = subnetcount + 1
|
|
808
856
|
|
|
809
857
|
cluster = eks.Cluster(self, "hello-eks",
|
|
810
|
-
version=eks.KubernetesVersion.
|
|
858
|
+
version=eks.KubernetesVersion.V1_32,
|
|
811
859
|
vpc=vpc,
|
|
812
860
|
ip_family=eks.IpFamily.IP_V6,
|
|
813
|
-
vpc_subnets=[ec2.SubnetSelection(subnets=vpc.public_subnets)]
|
|
861
|
+
vpc_subnets=[ec2.SubnetSelection(subnets=vpc.public_subnets)],
|
|
862
|
+
kubectl_layer=KubectlV32Layer(self, "kubectl")
|
|
814
863
|
)
|
|
815
864
|
```
|
|
816
865
|
|
|
@@ -841,11 +890,15 @@ cluster = eks.Cluster.from_cluster_attributes(self, "Cluster",
|
|
|
841
890
|
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:
|
|
842
891
|
|
|
843
892
|
```python
|
|
893
|
+
from aws_cdk.lambda_layer_kubectl_v32 import KubectlV32Layer
|
|
894
|
+
|
|
895
|
+
|
|
844
896
|
cluster = eks.Cluster(self, "hello-eks",
|
|
845
|
-
version=eks.KubernetesVersion.
|
|
897
|
+
version=eks.KubernetesVersion.V1_32,
|
|
846
898
|
kubectl_environment={
|
|
847
899
|
"http_proxy": "http://proxy.myproxy.com"
|
|
848
|
-
}
|
|
900
|
+
},
|
|
901
|
+
kubectl_layer=KubectlV32Layer(self, "kubectl")
|
|
849
902
|
)
|
|
850
903
|
```
|
|
851
904
|
|
|
@@ -862,12 +915,12 @@ Depending on which version of kubernetes you're targeting, you will need to use
|
|
|
862
915
|
the `@aws-cdk/lambda-layer-kubectl-vXY` packages.
|
|
863
916
|
|
|
864
917
|
```python
|
|
865
|
-
from aws_cdk.
|
|
918
|
+
from aws_cdk.lambda_layer_kubectl_v32 import KubectlV32Layer
|
|
866
919
|
|
|
867
920
|
|
|
868
921
|
cluster = eks.Cluster(self, "hello-eks",
|
|
869
|
-
version=eks.KubernetesVersion.
|
|
870
|
-
kubectl_layer=
|
|
922
|
+
version=eks.KubernetesVersion.V1_32,
|
|
923
|
+
kubectl_layer=KubectlV32Layer(self, "kubectl")
|
|
871
924
|
)
|
|
872
925
|
```
|
|
873
926
|
|
|
@@ -903,7 +956,7 @@ cluster1 = eks.Cluster(self, "MyCluster",
|
|
|
903
956
|
kubectl_layer=layer,
|
|
904
957
|
vpc=vpc,
|
|
905
958
|
cluster_name="cluster-name",
|
|
906
|
-
version=eks.KubernetesVersion.
|
|
959
|
+
version=eks.KubernetesVersion.V1_32
|
|
907
960
|
)
|
|
908
961
|
|
|
909
962
|
# or
|
|
@@ -919,11 +972,16 @@ cluster2 = eks.Cluster.from_cluster_attributes(self, "MyCluster",
|
|
|
919
972
|
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:
|
|
920
973
|
|
|
921
974
|
```python
|
|
975
|
+
from aws_cdk.lambda_layer_kubectl_v32 import KubectlV32Layer
|
|
976
|
+
|
|
922
977
|
# or
|
|
923
978
|
# vpc: ec2.Vpc
|
|
979
|
+
|
|
980
|
+
|
|
924
981
|
eks.Cluster(self, "MyCluster",
|
|
925
982
|
kubectl_memory=Size.gibibytes(4),
|
|
926
|
-
version=eks.KubernetesVersion.
|
|
983
|
+
version=eks.KubernetesVersion.V1_32,
|
|
984
|
+
kubectl_layer=KubectlV32Layer(self, "kubectl")
|
|
927
985
|
)
|
|
928
986
|
eks.Cluster.from_cluster_attributes(self, "MyCluster",
|
|
929
987
|
kubectl_memory=Size.gibibytes(4),
|
|
@@ -958,11 +1016,14 @@ cluster.add_auto_scaling_group_capacity("self-ng-arm",
|
|
|
958
1016
|
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.
|
|
959
1017
|
|
|
960
1018
|
```python
|
|
1019
|
+
from aws_cdk.lambda_layer_kubectl_v32 import KubectlV32Layer
|
|
1020
|
+
|
|
961
1021
|
# role: iam.Role
|
|
962
1022
|
|
|
963
1023
|
eks.Cluster(self, "HelloEKS",
|
|
964
|
-
version=eks.KubernetesVersion.
|
|
965
|
-
masters_role=role
|
|
1024
|
+
version=eks.KubernetesVersion.V1_32,
|
|
1025
|
+
masters_role=role,
|
|
1026
|
+
kubectl_layer=KubectlV32Layer(self, "kubectl")
|
|
966
1027
|
)
|
|
967
1028
|
```
|
|
968
1029
|
|
|
@@ -1008,20 +1069,28 @@ You can use the `secretsEncryptionKey` to configure which key the cluster will u
|
|
|
1008
1069
|
> This setting can only be specified when the cluster is created and cannot be updated.
|
|
1009
1070
|
|
|
1010
1071
|
```python
|
|
1072
|
+
from aws_cdk.lambda_layer_kubectl_v32 import KubectlV32Layer
|
|
1073
|
+
|
|
1074
|
+
|
|
1011
1075
|
secrets_key = kms.Key(self, "SecretsKey")
|
|
1012
1076
|
cluster = eks.Cluster(self, "MyCluster",
|
|
1013
1077
|
secrets_encryption_key=secrets_key,
|
|
1014
|
-
version=eks.KubernetesVersion.
|
|
1078
|
+
version=eks.KubernetesVersion.V1_32,
|
|
1079
|
+
kubectl_layer=KubectlV32Layer(self, "kubectl")
|
|
1015
1080
|
)
|
|
1016
1081
|
```
|
|
1017
1082
|
|
|
1018
1083
|
You can also use a similar configuration for running a cluster built using the FargateCluster construct.
|
|
1019
1084
|
|
|
1020
1085
|
```python
|
|
1086
|
+
from aws_cdk.lambda_layer_kubectl_v32 import KubectlV32Layer
|
|
1087
|
+
|
|
1088
|
+
|
|
1021
1089
|
secrets_key = kms.Key(self, "SecretsKey")
|
|
1022
1090
|
cluster = eks.FargateCluster(self, "MyFargateCluster",
|
|
1023
1091
|
secrets_encryption_key=secrets_key,
|
|
1024
|
-
version=eks.KubernetesVersion.
|
|
1092
|
+
version=eks.KubernetesVersion.V1_32,
|
|
1093
|
+
kubectl_layer=KubectlV32Layer(self, "kubectl")
|
|
1025
1094
|
)
|
|
1026
1095
|
```
|
|
1027
1096
|
|
|
@@ -1033,6 +1102,30 @@ The Amazon Resource Name (ARN) for that CMK can be retrieved.
|
|
|
1033
1102
|
cluster_encryption_config_key_arn = cluster.cluster_encryption_config_key_arn
|
|
1034
1103
|
```
|
|
1035
1104
|
|
|
1105
|
+
### Hybrid Nodes
|
|
1106
|
+
|
|
1107
|
+
When you create an Amazon EKS cluster, you can configure it to leverage the [EKS Hybrid Nodes](https://aws.amazon.com/eks/hybrid-nodes/) feature, allowing you to use your on-premises and edge infrastructure as nodes in your EKS cluster. Refer to the Hyrid Nodes [networking documentation](https://docs.aws.amazon.com/eks/latest/userguide/hybrid-nodes-networking.html) to configure your on-premises network, node and pod CIDRs, access control, etc before creating your EKS Cluster.
|
|
1108
|
+
|
|
1109
|
+
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:
|
|
1110
|
+
|
|
1111
|
+
```python
|
|
1112
|
+
from aws_cdk.lambda_layer_kubectl_v32 import KubectlV32Layer
|
|
1113
|
+
|
|
1114
|
+
|
|
1115
|
+
eks.Cluster(self, "Cluster",
|
|
1116
|
+
version=eks.KubernetesVersion.V1_32,
|
|
1117
|
+
kubectl_layer=KubectlV32Layer(self, "KubectlLayer"),
|
|
1118
|
+
remote_node_networks=[eks.RemoteNodeNetwork(
|
|
1119
|
+
cidrs=["10.0.0.0/16"]
|
|
1120
|
+
)
|
|
1121
|
+
],
|
|
1122
|
+
remote_pod_networks=[eks.RemotePodNetwork(
|
|
1123
|
+
cidrs=["192.168.0.0/16"]
|
|
1124
|
+
)
|
|
1125
|
+
]
|
|
1126
|
+
)
|
|
1127
|
+
```
|
|
1128
|
+
|
|
1036
1129
|
## Permissions and Security
|
|
1037
1130
|
|
|
1038
1131
|
Amazon EKS provides several mechanism of securing the cluster and granting permissions to specific IAM users and roles.
|
|
@@ -1068,7 +1161,7 @@ To access the Kubernetes resources from the console, make sure your viewing prin
|
|
|
1068
1161
|
in the `aws-auth` ConfigMap. Some options to consider:
|
|
1069
1162
|
|
|
1070
1163
|
```python
|
|
1071
|
-
from aws_cdk.
|
|
1164
|
+
from aws_cdk.lambda_layer_kubectl_v32 import KubectlV32Layer
|
|
1072
1165
|
# cluster: eks.Cluster
|
|
1073
1166
|
# your_current_role: iam.Role
|
|
1074
1167
|
# vpc: ec2.Vpc
|
|
@@ -1086,7 +1179,7 @@ your_current_role.add_to_policy(iam.PolicyStatement(
|
|
|
1086
1179
|
|
|
1087
1180
|
```python
|
|
1088
1181
|
# Option 2: create your custom mastersRole with scoped assumeBy arn as the Cluster prop. Switch to this role from the AWS console.
|
|
1089
|
-
from aws_cdk.
|
|
1182
|
+
from aws_cdk.lambda_layer_kubectl_v32 import KubectlV32Layer
|
|
1090
1183
|
# vpc: ec2.Vpc
|
|
1091
1184
|
|
|
1092
1185
|
|
|
@@ -1096,8 +1189,8 @@ masters_role = iam.Role(self, "MastersRole",
|
|
|
1096
1189
|
|
|
1097
1190
|
cluster = eks.Cluster(self, "EksCluster",
|
|
1098
1191
|
vpc=vpc,
|
|
1099
|
-
version=eks.KubernetesVersion.
|
|
1100
|
-
kubectl_layer=
|
|
1192
|
+
version=eks.KubernetesVersion.V1_32,
|
|
1193
|
+
kubectl_layer=KubectlV32Layer(self, "KubectlLayer"),
|
|
1101
1194
|
masters_role=masters_role
|
|
1102
1195
|
)
|
|
1103
1196
|
|
|
@@ -1136,14 +1229,14 @@ AWS IAM principals from both Amazon EKS access entry APIs and the aws-auth confi
|
|
|
1136
1229
|
To specify the `authenticationMode`:
|
|
1137
1230
|
|
|
1138
1231
|
```python
|
|
1139
|
-
from aws_cdk.
|
|
1232
|
+
from aws_cdk.lambda_layer_kubectl_v32 import KubectlV32Layer
|
|
1140
1233
|
# vpc: ec2.Vpc
|
|
1141
1234
|
|
|
1142
1235
|
|
|
1143
1236
|
eks.Cluster(self, "Cluster",
|
|
1144
1237
|
vpc=vpc,
|
|
1145
|
-
version=eks.KubernetesVersion.
|
|
1146
|
-
kubectl_layer=
|
|
1238
|
+
version=eks.KubernetesVersion.V1_32,
|
|
1239
|
+
kubectl_layer=KubectlV32Layer(self, "KubectlLayer"),
|
|
1147
1240
|
authentication_mode=eks.AuthenticationMode.API_AND_CONFIG_MAP
|
|
1148
1241
|
)
|
|
1149
1242
|
```
|
|
@@ -1188,7 +1281,7 @@ eks.AccessPolicy.from_access_policy_name("AmazonEKSAdminPolicy",
|
|
|
1188
1281
|
Use `grantAccess()` to grant the AccessPolicy to an IAM principal:
|
|
1189
1282
|
|
|
1190
1283
|
```python
|
|
1191
|
-
from aws_cdk.
|
|
1284
|
+
from aws_cdk.lambda_layer_kubectl_v32 import KubectlV32Layer
|
|
1192
1285
|
# vpc: ec2.Vpc
|
|
1193
1286
|
|
|
1194
1287
|
|
|
@@ -1207,8 +1300,8 @@ eks_admin_view_role = iam.Role(self, "EKSAdminViewRole",
|
|
|
1207
1300
|
cluster = eks.Cluster(self, "Cluster",
|
|
1208
1301
|
vpc=vpc,
|
|
1209
1302
|
masters_role=cluster_admin_role,
|
|
1210
|
-
version=eks.KubernetesVersion.
|
|
1211
|
-
kubectl_layer=
|
|
1303
|
+
version=eks.KubernetesVersion.V1_32,
|
|
1304
|
+
kubectl_layer=KubectlV32Layer(self, "KubectlLayer"),
|
|
1212
1305
|
authentication_mode=eks.AuthenticationMode.API_AND_CONFIG_MAP
|
|
1213
1306
|
)
|
|
1214
1307
|
|
|
@@ -1539,9 +1632,13 @@ Pruning is enabled by default but can be disabled through the `prune` option
|
|
|
1539
1632
|
when a cluster is defined:
|
|
1540
1633
|
|
|
1541
1634
|
```python
|
|
1635
|
+
from aws_cdk.lambda_layer_kubectl_v32 import KubectlV32Layer
|
|
1636
|
+
|
|
1637
|
+
|
|
1542
1638
|
eks.Cluster(self, "MyCluster",
|
|
1543
|
-
version=eks.KubernetesVersion.
|
|
1544
|
-
prune=False
|
|
1639
|
+
version=eks.KubernetesVersion.V1_32,
|
|
1640
|
+
prune=False,
|
|
1641
|
+
kubectl_layer=KubectlV32Layer(self, "kubectl")
|
|
1545
1642
|
)
|
|
1546
1643
|
```
|
|
1547
1644
|
|
|
@@ -1937,11 +2034,15 @@ You can enable logging for each one separately using the `clusterLogging`
|
|
|
1937
2034
|
property. For example:
|
|
1938
2035
|
|
|
1939
2036
|
```python
|
|
2037
|
+
from aws_cdk.lambda_layer_kubectl_v32 import KubectlV32Layer
|
|
2038
|
+
|
|
2039
|
+
|
|
1940
2040
|
cluster = eks.Cluster(self, "Cluster",
|
|
1941
2041
|
# ...
|
|
1942
|
-
version=eks.KubernetesVersion.
|
|
2042
|
+
version=eks.KubernetesVersion.V1_32,
|
|
1943
2043
|
cluster_logging=[eks.ClusterLoggingTypes.API, eks.ClusterLoggingTypes.AUTHENTICATOR, eks.ClusterLoggingTypes.SCHEDULER
|
|
1944
|
-
]
|
|
2044
|
+
],
|
|
2045
|
+
kubectl_layer=KubectlV32Layer(self, "kubectl")
|
|
1945
2046
|
)
|
|
1946
2047
|
```
|
|
1947
2048
|
|
|
@@ -2892,11 +2993,15 @@ class AlbControllerOptions:
|
|
|
2892
2993
|
|
|
2893
2994
|
Example::
|
|
2894
2995
|
|
|
2996
|
+
from aws_cdk.lambda_layer_kubectl_v32 import KubectlV32Layer
|
|
2997
|
+
|
|
2998
|
+
|
|
2895
2999
|
eks.Cluster(self, "HelloEKS",
|
|
2896
|
-
version=eks.KubernetesVersion.
|
|
3000
|
+
version=eks.KubernetesVersion.V1_32,
|
|
2897
3001
|
alb_controller=eks.AlbControllerOptions(
|
|
2898
3002
|
version=eks.AlbControllerVersion.V2_8_2
|
|
2899
|
-
)
|
|
3003
|
+
),
|
|
3004
|
+
kubectl_layer=KubectlV32Layer(self, "kubectl")
|
|
2900
3005
|
)
|
|
2901
3006
|
'''
|
|
2902
3007
|
if __debug__:
|
|
@@ -3085,11 +3190,15 @@ class AlbControllerVersion(
|
|
|
3085
3190
|
|
|
3086
3191
|
Example::
|
|
3087
3192
|
|
|
3193
|
+
from aws_cdk.lambda_layer_kubectl_v32 import KubectlV32Layer
|
|
3194
|
+
|
|
3195
|
+
|
|
3088
3196
|
eks.Cluster(self, "HelloEKS",
|
|
3089
|
-
version=eks.KubernetesVersion.
|
|
3197
|
+
version=eks.KubernetesVersion.V1_32,
|
|
3090
3198
|
alb_controller=eks.AlbControllerOptions(
|
|
3091
3199
|
version=eks.AlbControllerVersion.V2_8_2
|
|
3092
|
-
)
|
|
3200
|
+
),
|
|
3201
|
+
kubectl_layer=KubectlV32Layer(self, "kubectl")
|
|
3093
3202
|
)
|
|
3094
3203
|
'''
|
|
3095
3204
|
|
|
@@ -3365,14 +3474,14 @@ class AuthenticationMode(enum.Enum):
|
|
|
3365
3474
|
|
|
3366
3475
|
Example::
|
|
3367
3476
|
|
|
3368
|
-
from aws_cdk.
|
|
3477
|
+
from aws_cdk.lambda_layer_kubectl_v32 import KubectlV32Layer
|
|
3369
3478
|
# vpc: ec2.Vpc
|
|
3370
3479
|
|
|
3371
3480
|
|
|
3372
3481
|
eks.Cluster(self, "Cluster",
|
|
3373
3482
|
vpc=vpc,
|
|
3374
|
-
version=eks.KubernetesVersion.
|
|
3375
|
-
kubectl_layer=
|
|
3483
|
+
version=eks.KubernetesVersion.V1_32,
|
|
3484
|
+
kubectl_layer=KubectlV32Layer(self, "KubectlLayer"),
|
|
3376
3485
|
authentication_mode=eks.AuthenticationMode.API_AND_CONFIG_MAP
|
|
3377
3486
|
)
|
|
3378
3487
|
'''
|
|
@@ -10309,7 +10418,7 @@ class CfnNodegroup(
|
|
|
10309
10418
|
|
|
10310
10419
|
:param max_unavailable: The maximum number of nodes unavailable at once during a version update. Nodes are updated in parallel. This value or ``maxUnavailablePercentage`` is required to have a value.The maximum number is 100.
|
|
10311
10420
|
:param max_unavailable_percentage: The maximum percentage of nodes unavailable during a version update. This percentage of nodes are updated in parallel, up to 100 nodes at once. This value or ``maxUnavailable`` is required to have a value.
|
|
10312
|
-
:param update_strategy: The configuration for the behavior to follow during
|
|
10421
|
+
:param update_strategy: The configuration for the behavior to follow during a node group version update of this managed node group. You choose between two possible strategies for replacing nodes during an ```UpdateNodegroupVersion`` <https://docs.aws.amazon.com/eks/latest/APIReference/API_UpdateNodegroupVersion.html>`_ action. An Amazon EKS managed node group updates by replacing nodes with new nodes of newer AMI versions in parallel. The *update strategy* changes the managed node update behavior of the managed node group for each quantity. The *default* strategy has guardrails to protect you from misconfiguration and launches the new instances first, before terminating the old instances. The *minimal* strategy removes the guardrails and terminates the old instances before launching the new instances. This minimal strategy is useful in scenarios where you are constrained to resources or costs (for example, with hardware accelerators such as GPUs).
|
|
10313
10422
|
|
|
10314
10423
|
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-nodegroup-updateconfig.html
|
|
10315
10424
|
:exampleMetadata: fixture=_generated
|
|
@@ -10363,9 +10472,11 @@ class CfnNodegroup(
|
|
|
10363
10472
|
|
|
10364
10473
|
@builtins.property
|
|
10365
10474
|
def update_strategy(self) -> typing.Optional[builtins.str]:
|
|
10366
|
-
'''The configuration for the behavior to follow during
|
|
10475
|
+
'''The configuration for the behavior to follow during a node group version update of this managed node group.
|
|
10476
|
+
|
|
10477
|
+
You choose between two possible strategies for replacing nodes during an ```UpdateNodegroupVersion`` <https://docs.aws.amazon.com/eks/latest/APIReference/API_UpdateNodegroupVersion.html>`_ action.
|
|
10367
10478
|
|
|
10368
|
-
|
|
10479
|
+
An Amazon EKS managed node group updates by replacing nodes with new nodes of newer AMI versions in parallel. The *update strategy* changes the managed node update behavior of the managed node group for each quantity. The *default* strategy has guardrails to protect you from misconfiguration and launches the new instances first, before terminating the old instances. The *minimal* strategy removes the guardrails and terminates the old instances before launching the new instances. This minimal strategy is useful in scenarios where you are constrained to resources or costs (for example, with hardware accelerators such as GPUs).
|
|
10369
10480
|
|
|
10370
10481
|
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-nodegroup-updateconfig.html#cfn-eks-nodegroup-updateconfig-updatestrategy
|
|
10371
10482
|
'''
|
|
@@ -11215,7 +11326,7 @@ class ClusterAttributes:
|
|
|
11215
11326
|
:param ip_family: Specify which IP family is used to assign Kubernetes pod and service IP addresses. Default: - IpFamily.IP_V4
|
|
11216
11327
|
:param kubectl_environment: Environment variables to use when running ``kubectl`` against this cluster. Default: - no additional variables
|
|
11217
11328
|
:param kubectl_lambda_role: An IAM role that can perform kubectl operations against this cluster. The role should be mapped to the ``system:masters`` Kubernetes RBAC role. This role is directly passed to the lambda handler that sends Kube Ctl commands to the cluster. Default: - if not specified, the default role created by a lambda function will be used.
|
|
11218
|
-
:param kubectl_layer: An AWS Lambda Layer which includes ``kubectl`` and Helm. This layer is used by the kubectl handler to apply manifests and install helm charts. You must pick an appropriate releases of one of the ``@aws-cdk/layer-kubectl-vXX`` packages, that works with the version of Kubernetes you have chosen.
|
|
11329
|
+
:param kubectl_layer: An AWS Lambda Layer which includes ``kubectl`` and Helm. This layer is used by the kubectl handler to apply manifests and install helm charts. You must pick an appropriate releases of one of the ``@aws-cdk/layer-kubectl-vXX`` packages, that works with the version of Kubernetes you have chosen. The handler expects the layer to include the following executables:: /opt/helm/helm /opt/kubectl/kubectl Default: - No default layer will be provided
|
|
11219
11330
|
:param kubectl_memory: Amount of memory to allocate to the provider's lambda function. Default: Size.gibibytes(1)
|
|
11220
11331
|
:param kubectl_private_subnet_ids: Subnets to host the ``kubectl`` compute resources. If not specified, the k8s endpoint is expected to be accessible publicly. Default: - k8s endpoint is expected to be accessible publicly
|
|
11221
11332
|
:param kubectl_provider: KubectlProvider for issuing kubectl commands. Default: - Default CDK provider
|
|
@@ -11430,15 +11541,14 @@ class ClusterAttributes:
|
|
|
11430
11541
|
This layer is used by the kubectl handler to apply manifests and install
|
|
11431
11542
|
helm charts. You must pick an appropriate releases of one of the
|
|
11432
11543
|
``@aws-cdk/layer-kubectl-vXX`` packages, that works with the version of
|
|
11433
|
-
Kubernetes you have chosen.
|
|
11434
|
-
1.20 will be used, but that version is most likely too old.
|
|
11544
|
+
Kubernetes you have chosen.
|
|
11435
11545
|
|
|
11436
11546
|
The handler expects the layer to include the following executables::
|
|
11437
11547
|
|
|
11438
11548
|
/opt/helm/helm
|
|
11439
11549
|
/opt/kubectl/kubectl
|
|
11440
11550
|
|
|
11441
|
-
:default: -
|
|
11551
|
+
:default: - No default layer will be provided
|
|
11442
11552
|
'''
|
|
11443
11553
|
result = self._values.get("kubectl_layer")
|
|
11444
11554
|
return typing.cast(typing.Optional[_ILayerVersion_5ac127c8], result)
|
|
@@ -11581,11 +11691,15 @@ class ClusterLoggingTypes(enum.Enum):
|
|
|
11581
11691
|
|
|
11582
11692
|
Example::
|
|
11583
11693
|
|
|
11694
|
+
from aws_cdk.lambda_layer_kubectl_v32 import KubectlV32Layer
|
|
11695
|
+
|
|
11696
|
+
|
|
11584
11697
|
cluster = eks.Cluster(self, "Cluster",
|
|
11585
11698
|
# ...
|
|
11586
|
-
version=eks.KubernetesVersion.
|
|
11699
|
+
version=eks.KubernetesVersion.V1_32,
|
|
11587
11700
|
cluster_logging=[eks.ClusterLoggingTypes.API, eks.ClusterLoggingTypes.AUTHENTICATOR, eks.ClusterLoggingTypes.SCHEDULER
|
|
11588
|
-
]
|
|
11701
|
+
],
|
|
11702
|
+
kubectl_layer=KubectlV32Layer(self, "kubectl")
|
|
11589
11703
|
)
|
|
11590
11704
|
'''
|
|
11591
11705
|
|
|
@@ -11821,9 +11935,13 @@ class DefaultCapacityType(enum.Enum):
|
|
|
11821
11935
|
|
|
11822
11936
|
Example::
|
|
11823
11937
|
|
|
11938
|
+
from aws_cdk.lambda_layer_kubectl_v32 import KubectlV32Layer
|
|
11939
|
+
|
|
11940
|
+
|
|
11824
11941
|
cluster = eks.Cluster(self, "HelloEKS",
|
|
11825
|
-
version=eks.KubernetesVersion.
|
|
11826
|
-
default_capacity_type=eks.DefaultCapacityType.EC2
|
|
11942
|
+
version=eks.KubernetesVersion.V1_32,
|
|
11943
|
+
default_capacity_type=eks.DefaultCapacityType.EC2,
|
|
11944
|
+
kubectl_layer=KubectlV32Layer(self, "kubectl")
|
|
11827
11945
|
)
|
|
11828
11946
|
'''
|
|
11829
11947
|
|
|
@@ -11990,9 +12108,13 @@ class EndpointAccess(
|
|
|
11990
12108
|
|
|
11991
12109
|
Example::
|
|
11992
12110
|
|
|
12111
|
+
from aws_cdk.lambda_layer_kubectl_v32 import KubectlV32Layer
|
|
12112
|
+
|
|
12113
|
+
|
|
11993
12114
|
cluster = eks.Cluster(self, "hello-eks",
|
|
11994
|
-
version=eks.KubernetesVersion.
|
|
11995
|
-
endpoint_access=eks.EndpointAccess.PRIVATE
|
|
12115
|
+
version=eks.KubernetesVersion.V1_32,
|
|
12116
|
+
endpoint_access=eks.EndpointAccess.PRIVATE, # No access outside of your VPC.
|
|
12117
|
+
kubectl_layer=KubectlV32Layer(self, "kubectl")
|
|
11996
12118
|
)
|
|
11997
12119
|
'''
|
|
11998
12120
|
|
|
@@ -13399,10 +13521,7 @@ class ICluster(_IResource_c80c4260, _IConnectable_10015a05, typing_extensions.Pr
|
|
|
13399
13521
|
@builtins.property
|
|
13400
13522
|
@jsii.member(jsii_name="kubectlLayer")
|
|
13401
13523
|
def kubectl_layer(self) -> typing.Optional[_ILayerVersion_5ac127c8]:
|
|
13402
|
-
'''An AWS Lambda layer that includes ``kubectl`` and ``helm``.
|
|
13403
|
-
|
|
13404
|
-
If not defined, a default layer will be used containing Kubectl 1.20 and Helm 3.8
|
|
13405
|
-
'''
|
|
13524
|
+
'''An AWS Lambda layer that includes ``kubectl`` and ``helm``.'''
|
|
13406
13525
|
...
|
|
13407
13526
|
|
|
13408
13527
|
@builtins.property
|
|
@@ -13777,10 +13896,7 @@ class _IClusterProxy(
|
|
|
13777
13896
|
@builtins.property
|
|
13778
13897
|
@jsii.member(jsii_name="kubectlLayer")
|
|
13779
13898
|
def kubectl_layer(self) -> typing.Optional[_ILayerVersion_5ac127c8]:
|
|
13780
|
-
'''An AWS Lambda layer that includes ``kubectl`` and ``helm``.
|
|
13781
|
-
|
|
13782
|
-
If not defined, a default layer will be used containing Kubectl 1.20 and Helm 3.8
|
|
13783
|
-
'''
|
|
13899
|
+
'''An AWS Lambda layer that includes ``kubectl`` and ``helm``.'''
|
|
13784
13900
|
return typing.cast(typing.Optional[_ILayerVersion_5ac127c8], jsii.get(self, "kubectlLayer"))
|
|
13785
13901
|
|
|
13786
13902
|
@builtins.property
|
|
@@ -14172,6 +14288,7 @@ class IpFamily(enum.Enum):
|
|
|
14172
14288
|
|
|
14173
14289
|
Example::
|
|
14174
14290
|
|
|
14291
|
+
from aws_cdk.lambda_layer_kubectl_v32 import KubectlV32Layer
|
|
14175
14292
|
# vpc: ec2.Vpc
|
|
14176
14293
|
|
|
14177
14294
|
|
|
@@ -14196,10 +14313,11 @@ class IpFamily(enum.Enum):
|
|
|
14196
14313
|
subnetcount = subnetcount + 1
|
|
14197
14314
|
|
|
14198
14315
|
cluster = eks.Cluster(self, "hello-eks",
|
|
14199
|
-
version=eks.KubernetesVersion.
|
|
14316
|
+
version=eks.KubernetesVersion.V1_32,
|
|
14200
14317
|
vpc=vpc,
|
|
14201
14318
|
ip_family=eks.IpFamily.IP_V6,
|
|
14202
|
-
vpc_subnets=[ec2.SubnetSelection(subnets=vpc.public_subnets)]
|
|
14319
|
+
vpc_subnets=[ec2.SubnetSelection(subnets=vpc.public_subnets)],
|
|
14320
|
+
kubectl_layer=KubectlV32Layer(self, "kubectl")
|
|
14203
14321
|
)
|
|
14204
14322
|
'''
|
|
14205
14323
|
|
|
@@ -15320,11 +15438,16 @@ class KubernetesVersion(
|
|
|
15320
15438
|
|
|
15321
15439
|
Example::
|
|
15322
15440
|
|
|
15441
|
+
from aws_cdk.lambda_layer_kubectl_v32 import KubectlV32Layer
|
|
15442
|
+
|
|
15323
15443
|
# or
|
|
15324
15444
|
# vpc: ec2.Vpc
|
|
15445
|
+
|
|
15446
|
+
|
|
15325
15447
|
eks.Cluster(self, "MyCluster",
|
|
15326
15448
|
kubectl_memory=Size.gibibytes(4),
|
|
15327
|
-
version=eks.KubernetesVersion.
|
|
15449
|
+
version=eks.KubernetesVersion.V1_32,
|
|
15450
|
+
kubectl_layer=KubectlV32Layer(self, "kubectl")
|
|
15328
15451
|
)
|
|
15329
15452
|
eks.Cluster.from_cluster_attributes(self, "MyCluster",
|
|
15330
15453
|
kubectl_memory=Size.gibibytes(4),
|
|
@@ -15543,6 +15666,17 @@ class KubernetesVersion(
|
|
|
15543
15666
|
'''
|
|
15544
15667
|
return typing.cast("KubernetesVersion", jsii.sget(cls, "V1_31"))
|
|
15545
15668
|
|
|
15669
|
+
@jsii.python.classproperty
|
|
15670
|
+
@jsii.member(jsii_name="V1_32")
|
|
15671
|
+
def V1_32(cls) -> "KubernetesVersion":
|
|
15672
|
+
'''Kubernetes version 1.32.
|
|
15673
|
+
|
|
15674
|
+
When creating a ``Cluster`` with this version, you need to also specify the
|
|
15675
|
+
``kubectlLayer`` property with a ``KubectlV32Layer`` from
|
|
15676
|
+
``@aws-cdk/lambda-layer-kubectl-v32``.
|
|
15677
|
+
'''
|
|
15678
|
+
return typing.cast("KubernetesVersion", jsii.sget(cls, "V1_32"))
|
|
15679
|
+
|
|
15546
15680
|
@builtins.property
|
|
15547
15681
|
@jsii.member(jsii_name="version")
|
|
15548
15682
|
def version(self) -> builtins.str:
|
|
@@ -16999,6 +17133,110 @@ class PatchType(enum.Enum):
|
|
|
16999
17133
|
'''Strategic merge patch.'''
|
|
17000
17134
|
|
|
17001
17135
|
|
|
17136
|
+
@jsii.data_type(
|
|
17137
|
+
jsii_type="aws-cdk-lib.aws_eks.RemoteNodeNetwork",
|
|
17138
|
+
jsii_struct_bases=[],
|
|
17139
|
+
name_mapping={"cidrs": "cidrs"},
|
|
17140
|
+
)
|
|
17141
|
+
class RemoteNodeNetwork:
|
|
17142
|
+
def __init__(self, *, cidrs: typing.Sequence[builtins.str]) -> None:
|
|
17143
|
+
'''Network configuration of nodes run on-premises with EKS Hybrid Nodes.
|
|
17144
|
+
|
|
17145
|
+
:param cidrs: Specifies the list of remote node CIDRs.
|
|
17146
|
+
|
|
17147
|
+
:exampleMetadata: fixture=_generated
|
|
17148
|
+
|
|
17149
|
+
Example::
|
|
17150
|
+
|
|
17151
|
+
# The code below shows an example of how to instantiate this type.
|
|
17152
|
+
# The values are placeholders you should change.
|
|
17153
|
+
from aws_cdk import aws_eks as eks
|
|
17154
|
+
|
|
17155
|
+
remote_node_network = eks.RemoteNodeNetwork(
|
|
17156
|
+
cidrs=["cidrs"]
|
|
17157
|
+
)
|
|
17158
|
+
'''
|
|
17159
|
+
if __debug__:
|
|
17160
|
+
type_hints = typing.get_type_hints(_typecheckingstub__600789f5d1adc105e950fc1e01201ea975b89bb797b63227b757a633425a0f09)
|
|
17161
|
+
check_type(argname="argument cidrs", value=cidrs, expected_type=type_hints["cidrs"])
|
|
17162
|
+
self._values: typing.Dict[builtins.str, typing.Any] = {
|
|
17163
|
+
"cidrs": cidrs,
|
|
17164
|
+
}
|
|
17165
|
+
|
|
17166
|
+
@builtins.property
|
|
17167
|
+
def cidrs(self) -> typing.List[builtins.str]:
|
|
17168
|
+
'''Specifies the list of remote node CIDRs.
|
|
17169
|
+
|
|
17170
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-remotenodenetwork.html#cfn-eks-cluster-remotenodenetwork-cidrs
|
|
17171
|
+
'''
|
|
17172
|
+
result = self._values.get("cidrs")
|
|
17173
|
+
assert result is not None, "Required property 'cidrs' is missing"
|
|
17174
|
+
return typing.cast(typing.List[builtins.str], result)
|
|
17175
|
+
|
|
17176
|
+
def __eq__(self, rhs: typing.Any) -> builtins.bool:
|
|
17177
|
+
return isinstance(rhs, self.__class__) and rhs._values == self._values
|
|
17178
|
+
|
|
17179
|
+
def __ne__(self, rhs: typing.Any) -> builtins.bool:
|
|
17180
|
+
return not (rhs == self)
|
|
17181
|
+
|
|
17182
|
+
def __repr__(self) -> str:
|
|
17183
|
+
return "RemoteNodeNetwork(%s)" % ", ".join(
|
|
17184
|
+
k + "=" + repr(v) for k, v in self._values.items()
|
|
17185
|
+
)
|
|
17186
|
+
|
|
17187
|
+
|
|
17188
|
+
@jsii.data_type(
|
|
17189
|
+
jsii_type="aws-cdk-lib.aws_eks.RemotePodNetwork",
|
|
17190
|
+
jsii_struct_bases=[],
|
|
17191
|
+
name_mapping={"cidrs": "cidrs"},
|
|
17192
|
+
)
|
|
17193
|
+
class RemotePodNetwork:
|
|
17194
|
+
def __init__(self, *, cidrs: typing.Sequence[builtins.str]) -> None:
|
|
17195
|
+
'''Network configuration of pods run on-premises with EKS Hybrid Nodes.
|
|
17196
|
+
|
|
17197
|
+
:param cidrs: Specifies the list of remote pod CIDRs.
|
|
17198
|
+
|
|
17199
|
+
:exampleMetadata: fixture=_generated
|
|
17200
|
+
|
|
17201
|
+
Example::
|
|
17202
|
+
|
|
17203
|
+
# The code below shows an example of how to instantiate this type.
|
|
17204
|
+
# The values are placeholders you should change.
|
|
17205
|
+
from aws_cdk import aws_eks as eks
|
|
17206
|
+
|
|
17207
|
+
remote_pod_network = eks.RemotePodNetwork(
|
|
17208
|
+
cidrs=["cidrs"]
|
|
17209
|
+
)
|
|
17210
|
+
'''
|
|
17211
|
+
if __debug__:
|
|
17212
|
+
type_hints = typing.get_type_hints(_typecheckingstub__f9878a6e6680b6c2c6cb0db908c65c1de65fe68965909386c87176ba98e30705)
|
|
17213
|
+
check_type(argname="argument cidrs", value=cidrs, expected_type=type_hints["cidrs"])
|
|
17214
|
+
self._values: typing.Dict[builtins.str, typing.Any] = {
|
|
17215
|
+
"cidrs": cidrs,
|
|
17216
|
+
}
|
|
17217
|
+
|
|
17218
|
+
@builtins.property
|
|
17219
|
+
def cidrs(self) -> typing.List[builtins.str]:
|
|
17220
|
+
'''Specifies the list of remote pod CIDRs.
|
|
17221
|
+
|
|
17222
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-remotepodnetwork.html#cfn-eks-cluster-remotepodnetwork-cidrs
|
|
17223
|
+
'''
|
|
17224
|
+
result = self._values.get("cidrs")
|
|
17225
|
+
assert result is not None, "Required property 'cidrs' is missing"
|
|
17226
|
+
return typing.cast(typing.List[builtins.str], result)
|
|
17227
|
+
|
|
17228
|
+
def __eq__(self, rhs: typing.Any) -> builtins.bool:
|
|
17229
|
+
return isinstance(rhs, self.__class__) and rhs._values == self._values
|
|
17230
|
+
|
|
17231
|
+
def __ne__(self, rhs: typing.Any) -> builtins.bool:
|
|
17232
|
+
return not (rhs == self)
|
|
17233
|
+
|
|
17234
|
+
def __repr__(self) -> str:
|
|
17235
|
+
return "RemotePodNetwork(%s)" % ", ".join(
|
|
17236
|
+
k + "=" + repr(v) for k, v in self._values.items()
|
|
17237
|
+
)
|
|
17238
|
+
|
|
17239
|
+
|
|
17002
17240
|
@jsii.data_type(
|
|
17003
17241
|
jsii_type="aws-cdk-lib.aws_eks.Selector",
|
|
17004
17242
|
jsii_struct_bases=[],
|
|
@@ -17986,11 +18224,16 @@ class Cluster(
|
|
|
17986
18224
|
|
|
17987
18225
|
Example::
|
|
17988
18226
|
|
|
18227
|
+
from aws_cdk.lambda_layer_kubectl_v32 import KubectlV32Layer
|
|
18228
|
+
|
|
17989
18229
|
# or
|
|
17990
18230
|
# vpc: ec2.Vpc
|
|
18231
|
+
|
|
18232
|
+
|
|
17991
18233
|
eks.Cluster(self, "MyCluster",
|
|
17992
18234
|
kubectl_memory=Size.gibibytes(4),
|
|
17993
|
-
version=eks.KubernetesVersion.
|
|
18235
|
+
version=eks.KubernetesVersion.V1_32,
|
|
18236
|
+
kubectl_layer=KubectlV32Layer(self, "kubectl")
|
|
17994
18237
|
)
|
|
17995
18238
|
eks.Cluster.from_cluster_attributes(self, "MyCluster",
|
|
17996
18239
|
kubectl_memory=Size.gibibytes(4),
|
|
@@ -18010,6 +18253,7 @@ class Cluster(
|
|
|
18010
18253
|
default_capacity_type: typing.Optional[DefaultCapacityType] = None,
|
|
18011
18254
|
kubectl_lambda_role: typing.Optional[_IRole_235f5d8e] = None,
|
|
18012
18255
|
tags: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
|
|
18256
|
+
kubectl_layer: _ILayerVersion_5ac127c8,
|
|
18013
18257
|
alb_controller: typing.Optional[typing.Union[AlbControllerOptions, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
18014
18258
|
authentication_mode: typing.Optional[AuthenticationMode] = None,
|
|
18015
18259
|
awscli_layer: typing.Optional[_ILayerVersion_5ac127c8] = None,
|
|
@@ -18020,13 +18264,14 @@ class Cluster(
|
|
|
18020
18264
|
endpoint_access: typing.Optional[EndpointAccess] = None,
|
|
18021
18265
|
ip_family: typing.Optional[IpFamily] = None,
|
|
18022
18266
|
kubectl_environment: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
|
|
18023
|
-
kubectl_layer: typing.Optional[_ILayerVersion_5ac127c8] = None,
|
|
18024
18267
|
kubectl_memory: typing.Optional[_Size_7b441c34] = None,
|
|
18025
18268
|
masters_role: typing.Optional[_IRole_235f5d8e] = None,
|
|
18026
18269
|
on_event_layer: typing.Optional[_ILayerVersion_5ac127c8] = None,
|
|
18027
18270
|
output_masters_role_arn: typing.Optional[builtins.bool] = None,
|
|
18028
18271
|
place_cluster_handler_in_vpc: typing.Optional[builtins.bool] = None,
|
|
18029
18272
|
prune: typing.Optional[builtins.bool] = None,
|
|
18273
|
+
remote_node_networks: typing.Optional[typing.Sequence[typing.Union[RemoteNodeNetwork, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
18274
|
+
remote_pod_networks: typing.Optional[typing.Sequence[typing.Union[RemotePodNetwork, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
18030
18275
|
secrets_encryption_key: typing.Optional[_IKey_5f11635f] = None,
|
|
18031
18276
|
service_ipv4_cidr: typing.Optional[builtins.str] = None,
|
|
18032
18277
|
version: KubernetesVersion,
|
|
@@ -18048,6 +18293,7 @@ class Cluster(
|
|
|
18048
18293
|
:param default_capacity_type: The default capacity type for the cluster. Default: NODEGROUP
|
|
18049
18294
|
:param kubectl_lambda_role: The IAM role to pass to the Kubectl Lambda Handler. Default: - Default Lambda IAM Execution Role
|
|
18050
18295
|
:param tags: The tags assigned to the EKS cluster. Default: - none
|
|
18296
|
+
:param kubectl_layer: An AWS Lambda Layer which includes ``kubectl`` and Helm. This layer is used by the kubectl handler to apply manifests and install helm charts. You must pick an appropriate releases of one of the ``@aws-cdk/layer-kubectl-vXX`` packages, that works with the version of Kubernetes you have chosen. The handler expects the layer to include the following executables:: /opt/helm/helm /opt/kubectl/kubectl
|
|
18051
18297
|
:param alb_controller: Install the AWS Load Balancer Controller onto the cluster. Default: - The controller is not installed.
|
|
18052
18298
|
:param authentication_mode: The desired authentication mode for the cluster. Default: AuthenticationMode.CONFIG_MAP
|
|
18053
18299
|
:param awscli_layer: An AWS Lambda layer that contains the ``aws`` CLI. The handler expects the layer to include the following executables:: /opt/awscli/aws Default: - a default layer with the AWS CLI 1.x
|
|
@@ -18058,13 +18304,14 @@ class Cluster(
|
|
|
18058
18304
|
:param endpoint_access: Configure access to the Kubernetes API server endpoint.. Default: EndpointAccess.PUBLIC_AND_PRIVATE
|
|
18059
18305
|
:param ip_family: Specify which IP family is used to assign Kubernetes pod and service IP addresses. Default: - IpFamily.IP_V4
|
|
18060
18306
|
:param kubectl_environment: Environment variables for the kubectl execution. Only relevant for kubectl enabled clusters. Default: - No environment variables.
|
|
18061
|
-
:param kubectl_layer: An AWS Lambda Layer which includes ``kubectl`` and Helm. This layer is used by the kubectl handler to apply manifests and install helm charts. You must pick an appropriate releases of one of the ``@aws-cdk/layer-kubectl-vXX`` packages, that works with the version of Kubernetes you have chosen. If you don't supply this value ``kubectl`` 1.20 will be used, but that version is most likely too old. The handler expects the layer to include the following executables:: /opt/helm/helm /opt/kubectl/kubectl Default: - a default layer with Kubectl 1.20.
|
|
18062
18307
|
:param kubectl_memory: Amount of memory to allocate to the provider's lambda function. Default: Size.gibibytes(1)
|
|
18063
18308
|
:param masters_role: An IAM role that will be added to the ``system:masters`` Kubernetes RBAC group. Default: - no masters role.
|
|
18064
18309
|
:param on_event_layer: An AWS Lambda Layer which includes the NPM dependency ``proxy-agent``. This layer is used by the onEvent handler to route AWS SDK requests through a proxy. By default, the provider will use the layer included in the "aws-lambda-layer-node-proxy-agent" SAR application which is available in all commercial regions. To deploy the layer locally define it in your app as follows:: const layer = new lambda.LayerVersion(this, 'proxy-agent-layer', { code: lambda.Code.fromAsset(`${__dirname}/layer.zip`), compatibleRuntimes: [lambda.Runtime.NODEJS_LATEST], }); Default: - a layer bundled with this module.
|
|
18065
18310
|
:param output_masters_role_arn: Determines whether a CloudFormation output with the ARN of the "masters" IAM role will be synthesized (if ``mastersRole`` is specified). Default: false
|
|
18066
18311
|
:param place_cluster_handler_in_vpc: If set to true, the cluster handler functions will be placed in the private subnets of the cluster vpc, subject to the ``vpcSubnets`` selection strategy. Default: false
|
|
18067
18312
|
:param prune: Indicates whether Kubernetes resources added through ``addManifest()`` can be automatically pruned. When this is enabled (default), prune labels will be allocated and injected to each resource. These labels will then be used when issuing the ``kubectl apply`` operation with the ``--prune`` switch. Default: true
|
|
18313
|
+
:param remote_node_networks: IPv4 CIDR blocks defining the expected address range of hybrid nodes that will join the cluster. Default: - none
|
|
18314
|
+
:param remote_pod_networks: IPv4 CIDR blocks for Pods running Kubernetes webhooks on hybrid nodes. Default: - none
|
|
18068
18315
|
: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.
|
|
18069
18316
|
: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
|
|
18070
18317
|
:param version: The Kubernetes version to run in the cluster.
|
|
@@ -18087,6 +18334,7 @@ class Cluster(
|
|
|
18087
18334
|
default_capacity_type=default_capacity_type,
|
|
18088
18335
|
kubectl_lambda_role=kubectl_lambda_role,
|
|
18089
18336
|
tags=tags,
|
|
18337
|
+
kubectl_layer=kubectl_layer,
|
|
18090
18338
|
alb_controller=alb_controller,
|
|
18091
18339
|
authentication_mode=authentication_mode,
|
|
18092
18340
|
awscli_layer=awscli_layer,
|
|
@@ -18097,13 +18345,14 @@ class Cluster(
|
|
|
18097
18345
|
endpoint_access=endpoint_access,
|
|
18098
18346
|
ip_family=ip_family,
|
|
18099
18347
|
kubectl_environment=kubectl_environment,
|
|
18100
|
-
kubectl_layer=kubectl_layer,
|
|
18101
18348
|
kubectl_memory=kubectl_memory,
|
|
18102
18349
|
masters_role=masters_role,
|
|
18103
18350
|
on_event_layer=on_event_layer,
|
|
18104
18351
|
output_masters_role_arn=output_masters_role_arn,
|
|
18105
18352
|
place_cluster_handler_in_vpc=place_cluster_handler_in_vpc,
|
|
18106
18353
|
prune=prune,
|
|
18354
|
+
remote_node_networks=remote_node_networks,
|
|
18355
|
+
remote_pod_networks=remote_pod_networks,
|
|
18107
18356
|
secrets_encryption_key=secrets_encryption_key,
|
|
18108
18357
|
service_ipv4_cidr=service_ipv4_cidr,
|
|
18109
18358
|
version=version,
|
|
@@ -18161,7 +18410,7 @@ class Cluster(
|
|
|
18161
18410
|
:param ip_family: Specify which IP family is used to assign Kubernetes pod and service IP addresses. Default: - IpFamily.IP_V4
|
|
18162
18411
|
:param kubectl_environment: Environment variables to use when running ``kubectl`` against this cluster. Default: - no additional variables
|
|
18163
18412
|
:param kubectl_lambda_role: An IAM role that can perform kubectl operations against this cluster. The role should be mapped to the ``system:masters`` Kubernetes RBAC role. This role is directly passed to the lambda handler that sends Kube Ctl commands to the cluster. Default: - if not specified, the default role created by a lambda function will be used.
|
|
18164
|
-
:param kubectl_layer: An AWS Lambda Layer which includes ``kubectl`` and Helm. This layer is used by the kubectl handler to apply manifests and install helm charts. You must pick an appropriate releases of one of the ``@aws-cdk/layer-kubectl-vXX`` packages, that works with the version of Kubernetes you have chosen.
|
|
18413
|
+
:param kubectl_layer: An AWS Lambda Layer which includes ``kubectl`` and Helm. This layer is used by the kubectl handler to apply manifests and install helm charts. You must pick an appropriate releases of one of the ``@aws-cdk/layer-kubectl-vXX`` packages, that works with the version of Kubernetes you have chosen. The handler expects the layer to include the following executables:: /opt/helm/helm /opt/kubectl/kubectl Default: - No default layer will be provided
|
|
18165
18414
|
:param kubectl_memory: Amount of memory to allocate to the provider's lambda function. Default: Size.gibibytes(1)
|
|
18166
18415
|
:param kubectl_private_subnet_ids: Subnets to host the ``kubectl`` compute resources. If not specified, the k8s endpoint is expected to be accessible publicly. Default: - k8s endpoint is expected to be accessible publicly
|
|
18167
18416
|
:param kubectl_provider: KubectlProvider for issuing kubectl commands. Default: - Default CDK provider
|
|
@@ -18953,10 +19202,7 @@ class Cluster(
|
|
|
18953
19202
|
@builtins.property
|
|
18954
19203
|
@jsii.member(jsii_name="kubectlLayer")
|
|
18955
19204
|
def kubectl_layer(self) -> typing.Optional[_ILayerVersion_5ac127c8]:
|
|
18956
|
-
'''An AWS Lambda layer that includes ``kubectl`` and ``helm``.
|
|
18957
|
-
|
|
18958
|
-
If not defined, a default layer will be used containing Kubectl 1.20 and Helm 3.8
|
|
18959
|
-
'''
|
|
19205
|
+
'''An AWS Lambda layer that includes ``kubectl`` and ``helm``.'''
|
|
18960
19206
|
return typing.cast(typing.Optional[_ILayerVersion_5ac127c8], jsii.get(self, "kubectlLayer"))
|
|
18961
19207
|
|
|
18962
19208
|
@builtins.property
|
|
@@ -19023,6 +19269,7 @@ class Cluster(
|
|
|
19023
19269
|
"security_group": "securityGroup",
|
|
19024
19270
|
"vpc": "vpc",
|
|
19025
19271
|
"vpc_subnets": "vpcSubnets",
|
|
19272
|
+
"kubectl_layer": "kubectlLayer",
|
|
19026
19273
|
"alb_controller": "albController",
|
|
19027
19274
|
"authentication_mode": "authenticationMode",
|
|
19028
19275
|
"awscli_layer": "awscliLayer",
|
|
@@ -19033,13 +19280,14 @@ class Cluster(
|
|
|
19033
19280
|
"endpoint_access": "endpointAccess",
|
|
19034
19281
|
"ip_family": "ipFamily",
|
|
19035
19282
|
"kubectl_environment": "kubectlEnvironment",
|
|
19036
|
-
"kubectl_layer": "kubectlLayer",
|
|
19037
19283
|
"kubectl_memory": "kubectlMemory",
|
|
19038
19284
|
"masters_role": "mastersRole",
|
|
19039
19285
|
"on_event_layer": "onEventLayer",
|
|
19040
19286
|
"output_masters_role_arn": "outputMastersRoleArn",
|
|
19041
19287
|
"place_cluster_handler_in_vpc": "placeClusterHandlerInVpc",
|
|
19042
19288
|
"prune": "prune",
|
|
19289
|
+
"remote_node_networks": "remoteNodeNetworks",
|
|
19290
|
+
"remote_pod_networks": "remotePodNetworks",
|
|
19043
19291
|
"secrets_encryption_key": "secretsEncryptionKey",
|
|
19044
19292
|
"service_ipv4_cidr": "serviceIpv4Cidr",
|
|
19045
19293
|
},
|
|
@@ -19056,6 +19304,7 @@ class ClusterOptions(CommonClusterOptions):
|
|
|
19056
19304
|
security_group: typing.Optional[_ISecurityGroup_acf8a799] = None,
|
|
19057
19305
|
vpc: typing.Optional[_IVpc_f30d5663] = None,
|
|
19058
19306
|
vpc_subnets: typing.Optional[typing.Sequence[typing.Union[_SubnetSelection_e57d76df, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
19307
|
+
kubectl_layer: _ILayerVersion_5ac127c8,
|
|
19059
19308
|
alb_controller: typing.Optional[typing.Union[AlbControllerOptions, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
19060
19309
|
authentication_mode: typing.Optional[AuthenticationMode] = None,
|
|
19061
19310
|
awscli_layer: typing.Optional[_ILayerVersion_5ac127c8] = None,
|
|
@@ -19066,13 +19315,14 @@ class ClusterOptions(CommonClusterOptions):
|
|
|
19066
19315
|
endpoint_access: typing.Optional[EndpointAccess] = None,
|
|
19067
19316
|
ip_family: typing.Optional[IpFamily] = None,
|
|
19068
19317
|
kubectl_environment: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
|
|
19069
|
-
kubectl_layer: typing.Optional[_ILayerVersion_5ac127c8] = None,
|
|
19070
19318
|
kubectl_memory: typing.Optional[_Size_7b441c34] = None,
|
|
19071
19319
|
masters_role: typing.Optional[_IRole_235f5d8e] = None,
|
|
19072
19320
|
on_event_layer: typing.Optional[_ILayerVersion_5ac127c8] = None,
|
|
19073
19321
|
output_masters_role_arn: typing.Optional[builtins.bool] = None,
|
|
19074
19322
|
place_cluster_handler_in_vpc: typing.Optional[builtins.bool] = None,
|
|
19075
19323
|
prune: typing.Optional[builtins.bool] = None,
|
|
19324
|
+
remote_node_networks: typing.Optional[typing.Sequence[typing.Union[RemoteNodeNetwork, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
19325
|
+
remote_pod_networks: typing.Optional[typing.Sequence[typing.Union[RemotePodNetwork, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
19076
19326
|
secrets_encryption_key: typing.Optional[_IKey_5f11635f] = None,
|
|
19077
19327
|
service_ipv4_cidr: typing.Optional[builtins.str] = None,
|
|
19078
19328
|
) -> None:
|
|
@@ -19086,6 +19336,7 @@ class ClusterOptions(CommonClusterOptions):
|
|
|
19086
19336
|
:param security_group: Security Group to use for Control Plane ENIs. Default: - A security group is automatically created
|
|
19087
19337
|
: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``.
|
|
19088
19338
|
:param vpc_subnets: Where to place EKS Control Plane ENIs. For example, to only select private subnets, supply the following: ``vpcSubnets: [{ subnetType: ec2.SubnetType.PRIVATE_WITH_EGRESS }]`` Default: - All public and private subnets
|
|
19339
|
+
:param kubectl_layer: An AWS Lambda Layer which includes ``kubectl`` and Helm. This layer is used by the kubectl handler to apply manifests and install helm charts. You must pick an appropriate releases of one of the ``@aws-cdk/layer-kubectl-vXX`` packages, that works with the version of Kubernetes you have chosen. The handler expects the layer to include the following executables:: /opt/helm/helm /opt/kubectl/kubectl
|
|
19089
19340
|
:param alb_controller: Install the AWS Load Balancer Controller onto the cluster. Default: - The controller is not installed.
|
|
19090
19341
|
:param authentication_mode: The desired authentication mode for the cluster. Default: AuthenticationMode.CONFIG_MAP
|
|
19091
19342
|
:param awscli_layer: An AWS Lambda layer that contains the ``aws`` CLI. The handler expects the layer to include the following executables:: /opt/awscli/aws Default: - a default layer with the AWS CLI 1.x
|
|
@@ -19096,13 +19347,14 @@ class ClusterOptions(CommonClusterOptions):
|
|
|
19096
19347
|
:param endpoint_access: Configure access to the Kubernetes API server endpoint.. Default: EndpointAccess.PUBLIC_AND_PRIVATE
|
|
19097
19348
|
:param ip_family: Specify which IP family is used to assign Kubernetes pod and service IP addresses. Default: - IpFamily.IP_V4
|
|
19098
19349
|
:param kubectl_environment: Environment variables for the kubectl execution. Only relevant for kubectl enabled clusters. Default: - No environment variables.
|
|
19099
|
-
:param kubectl_layer: An AWS Lambda Layer which includes ``kubectl`` and Helm. This layer is used by the kubectl handler to apply manifests and install helm charts. You must pick an appropriate releases of one of the ``@aws-cdk/layer-kubectl-vXX`` packages, that works with the version of Kubernetes you have chosen. If you don't supply this value ``kubectl`` 1.20 will be used, but that version is most likely too old. The handler expects the layer to include the following executables:: /opt/helm/helm /opt/kubectl/kubectl Default: - a default layer with Kubectl 1.20.
|
|
19100
19350
|
:param kubectl_memory: Amount of memory to allocate to the provider's lambda function. Default: Size.gibibytes(1)
|
|
19101
19351
|
:param masters_role: An IAM role that will be added to the ``system:masters`` Kubernetes RBAC group. Default: - no masters role.
|
|
19102
19352
|
:param on_event_layer: An AWS Lambda Layer which includes the NPM dependency ``proxy-agent``. This layer is used by the onEvent handler to route AWS SDK requests through a proxy. By default, the provider will use the layer included in the "aws-lambda-layer-node-proxy-agent" SAR application which is available in all commercial regions. To deploy the layer locally define it in your app as follows:: const layer = new lambda.LayerVersion(this, 'proxy-agent-layer', { code: lambda.Code.fromAsset(`${__dirname}/layer.zip`), compatibleRuntimes: [lambda.Runtime.NODEJS_LATEST], }); Default: - a layer bundled with this module.
|
|
19103
19353
|
:param output_masters_role_arn: Determines whether a CloudFormation output with the ARN of the "masters" IAM role will be synthesized (if ``mastersRole`` is specified). Default: false
|
|
19104
19354
|
:param place_cluster_handler_in_vpc: If set to true, the cluster handler functions will be placed in the private subnets of the cluster vpc, subject to the ``vpcSubnets`` selection strategy. Default: false
|
|
19105
19355
|
:param prune: Indicates whether Kubernetes resources added through ``addManifest()`` can be automatically pruned. When this is enabled (default), prune labels will be allocated and injected to each resource. These labels will then be used when issuing the ``kubectl apply`` operation with the ``--prune`` switch. Default: true
|
|
19356
|
+
:param remote_node_networks: IPv4 CIDR blocks defining the expected address range of hybrid nodes that will join the cluster. Default: - none
|
|
19357
|
+
:param remote_pod_networks: IPv4 CIDR blocks for Pods running Kubernetes webhooks on hybrid nodes. Default: - none
|
|
19106
19358
|
: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.
|
|
19107
19359
|
: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
|
|
19108
19360
|
|
|
@@ -19133,6 +19385,7 @@ class ClusterOptions(CommonClusterOptions):
|
|
|
19133
19385
|
# vpc: ec2.Vpc
|
|
19134
19386
|
|
|
19135
19387
|
cluster_options = eks.ClusterOptions(
|
|
19388
|
+
kubectl_layer=layer_version,
|
|
19136
19389
|
version=kubernetes_version,
|
|
19137
19390
|
|
|
19138
19391
|
# the properties below are optional
|
|
@@ -19157,7 +19410,6 @@ class ClusterOptions(CommonClusterOptions):
|
|
|
19157
19410
|
kubectl_environment={
|
|
19158
19411
|
"kubectl_environment_key": "kubectlEnvironment"
|
|
19159
19412
|
},
|
|
19160
|
-
kubectl_layer=layer_version,
|
|
19161
19413
|
kubectl_memory=size,
|
|
19162
19414
|
masters_role=role,
|
|
19163
19415
|
on_event_layer=layer_version,
|
|
@@ -19166,6 +19418,12 @@ class ClusterOptions(CommonClusterOptions):
|
|
|
19166
19418
|
output_masters_role_arn=False,
|
|
19167
19419
|
place_cluster_handler_in_vpc=False,
|
|
19168
19420
|
prune=False,
|
|
19421
|
+
remote_node_networks=[eks.RemoteNodeNetwork(
|
|
19422
|
+
cidrs=["cidrs"]
|
|
19423
|
+
)],
|
|
19424
|
+
remote_pod_networks=[eks.RemotePodNetwork(
|
|
19425
|
+
cidrs=["cidrs"]
|
|
19426
|
+
)],
|
|
19169
19427
|
role=role,
|
|
19170
19428
|
secrets_encryption_key=key,
|
|
19171
19429
|
security_group=security_group,
|
|
@@ -19193,6 +19451,7 @@ class ClusterOptions(CommonClusterOptions):
|
|
|
19193
19451
|
check_type(argname="argument security_group", value=security_group, expected_type=type_hints["security_group"])
|
|
19194
19452
|
check_type(argname="argument vpc", value=vpc, expected_type=type_hints["vpc"])
|
|
19195
19453
|
check_type(argname="argument vpc_subnets", value=vpc_subnets, expected_type=type_hints["vpc_subnets"])
|
|
19454
|
+
check_type(argname="argument kubectl_layer", value=kubectl_layer, expected_type=type_hints["kubectl_layer"])
|
|
19196
19455
|
check_type(argname="argument alb_controller", value=alb_controller, expected_type=type_hints["alb_controller"])
|
|
19197
19456
|
check_type(argname="argument authentication_mode", value=authentication_mode, expected_type=type_hints["authentication_mode"])
|
|
19198
19457
|
check_type(argname="argument awscli_layer", value=awscli_layer, expected_type=type_hints["awscli_layer"])
|
|
@@ -19203,17 +19462,19 @@ class ClusterOptions(CommonClusterOptions):
|
|
|
19203
19462
|
check_type(argname="argument endpoint_access", value=endpoint_access, expected_type=type_hints["endpoint_access"])
|
|
19204
19463
|
check_type(argname="argument ip_family", value=ip_family, expected_type=type_hints["ip_family"])
|
|
19205
19464
|
check_type(argname="argument kubectl_environment", value=kubectl_environment, expected_type=type_hints["kubectl_environment"])
|
|
19206
|
-
check_type(argname="argument kubectl_layer", value=kubectl_layer, expected_type=type_hints["kubectl_layer"])
|
|
19207
19465
|
check_type(argname="argument kubectl_memory", value=kubectl_memory, expected_type=type_hints["kubectl_memory"])
|
|
19208
19466
|
check_type(argname="argument masters_role", value=masters_role, expected_type=type_hints["masters_role"])
|
|
19209
19467
|
check_type(argname="argument on_event_layer", value=on_event_layer, expected_type=type_hints["on_event_layer"])
|
|
19210
19468
|
check_type(argname="argument output_masters_role_arn", value=output_masters_role_arn, expected_type=type_hints["output_masters_role_arn"])
|
|
19211
19469
|
check_type(argname="argument place_cluster_handler_in_vpc", value=place_cluster_handler_in_vpc, expected_type=type_hints["place_cluster_handler_in_vpc"])
|
|
19212
19470
|
check_type(argname="argument prune", value=prune, expected_type=type_hints["prune"])
|
|
19471
|
+
check_type(argname="argument remote_node_networks", value=remote_node_networks, expected_type=type_hints["remote_node_networks"])
|
|
19472
|
+
check_type(argname="argument remote_pod_networks", value=remote_pod_networks, expected_type=type_hints["remote_pod_networks"])
|
|
19213
19473
|
check_type(argname="argument secrets_encryption_key", value=secrets_encryption_key, expected_type=type_hints["secrets_encryption_key"])
|
|
19214
19474
|
check_type(argname="argument service_ipv4_cidr", value=service_ipv4_cidr, expected_type=type_hints["service_ipv4_cidr"])
|
|
19215
19475
|
self._values: typing.Dict[builtins.str, typing.Any] = {
|
|
19216
19476
|
"version": version,
|
|
19477
|
+
"kubectl_layer": kubectl_layer,
|
|
19217
19478
|
}
|
|
19218
19479
|
if cluster_name is not None:
|
|
19219
19480
|
self._values["cluster_name"] = cluster_name
|
|
@@ -19249,8 +19510,6 @@ class ClusterOptions(CommonClusterOptions):
|
|
|
19249
19510
|
self._values["ip_family"] = ip_family
|
|
19250
19511
|
if kubectl_environment is not None:
|
|
19251
19512
|
self._values["kubectl_environment"] = kubectl_environment
|
|
19252
|
-
if kubectl_layer is not None:
|
|
19253
|
-
self._values["kubectl_layer"] = kubectl_layer
|
|
19254
19513
|
if kubectl_memory is not None:
|
|
19255
19514
|
self._values["kubectl_memory"] = kubectl_memory
|
|
19256
19515
|
if masters_role is not None:
|
|
@@ -19263,6 +19522,10 @@ class ClusterOptions(CommonClusterOptions):
|
|
|
19263
19522
|
self._values["place_cluster_handler_in_vpc"] = place_cluster_handler_in_vpc
|
|
19264
19523
|
if prune is not None:
|
|
19265
19524
|
self._values["prune"] = prune
|
|
19525
|
+
if remote_node_networks is not None:
|
|
19526
|
+
self._values["remote_node_networks"] = remote_node_networks
|
|
19527
|
+
if remote_pod_networks is not None:
|
|
19528
|
+
self._values["remote_pod_networks"] = remote_pod_networks
|
|
19266
19529
|
if secrets_encryption_key is not None:
|
|
19267
19530
|
self._values["secrets_encryption_key"] = secrets_encryption_key
|
|
19268
19531
|
if service_ipv4_cidr is not None:
|
|
@@ -19345,6 +19608,24 @@ class ClusterOptions(CommonClusterOptions):
|
|
|
19345
19608
|
result = self._values.get("vpc_subnets")
|
|
19346
19609
|
return typing.cast(typing.Optional[typing.List[_SubnetSelection_e57d76df]], result)
|
|
19347
19610
|
|
|
19611
|
+
@builtins.property
|
|
19612
|
+
def kubectl_layer(self) -> _ILayerVersion_5ac127c8:
|
|
19613
|
+
'''An AWS Lambda Layer which includes ``kubectl`` and Helm.
|
|
19614
|
+
|
|
19615
|
+
This layer is used by the kubectl handler to apply manifests and install
|
|
19616
|
+
helm charts. You must pick an appropriate releases of one of the
|
|
19617
|
+
``@aws-cdk/layer-kubectl-vXX`` packages, that works with the version of
|
|
19618
|
+
Kubernetes you have chosen.
|
|
19619
|
+
|
|
19620
|
+
The handler expects the layer to include the following executables::
|
|
19621
|
+
|
|
19622
|
+
/opt/helm/helm
|
|
19623
|
+
/opt/kubectl/kubectl
|
|
19624
|
+
'''
|
|
19625
|
+
result = self._values.get("kubectl_layer")
|
|
19626
|
+
assert result is not None, "Required property 'kubectl_layer' is missing"
|
|
19627
|
+
return typing.cast(_ILayerVersion_5ac127c8, result)
|
|
19628
|
+
|
|
19348
19629
|
@builtins.property
|
|
19349
19630
|
def alb_controller(self) -> typing.Optional[AlbControllerOptions]:
|
|
19350
19631
|
'''Install the AWS Load Balancer Controller onto the cluster.
|
|
@@ -19457,26 +19738,6 @@ class ClusterOptions(CommonClusterOptions):
|
|
|
19457
19738
|
result = self._values.get("kubectl_environment")
|
|
19458
19739
|
return typing.cast(typing.Optional[typing.Mapping[builtins.str, builtins.str]], result)
|
|
19459
19740
|
|
|
19460
|
-
@builtins.property
|
|
19461
|
-
def kubectl_layer(self) -> typing.Optional[_ILayerVersion_5ac127c8]:
|
|
19462
|
-
'''An AWS Lambda Layer which includes ``kubectl`` and Helm.
|
|
19463
|
-
|
|
19464
|
-
This layer is used by the kubectl handler to apply manifests and install
|
|
19465
|
-
helm charts. You must pick an appropriate releases of one of the
|
|
19466
|
-
``@aws-cdk/layer-kubectl-vXX`` packages, that works with the version of
|
|
19467
|
-
Kubernetes you have chosen. If you don't supply this value ``kubectl``
|
|
19468
|
-
1.20 will be used, but that version is most likely too old.
|
|
19469
|
-
|
|
19470
|
-
The handler expects the layer to include the following executables::
|
|
19471
|
-
|
|
19472
|
-
/opt/helm/helm
|
|
19473
|
-
/opt/kubectl/kubectl
|
|
19474
|
-
|
|
19475
|
-
:default: - a default layer with Kubectl 1.20.
|
|
19476
|
-
'''
|
|
19477
|
-
result = self._values.get("kubectl_layer")
|
|
19478
|
-
return typing.cast(typing.Optional[_ILayerVersion_5ac127c8], result)
|
|
19479
|
-
|
|
19480
19741
|
@builtins.property
|
|
19481
19742
|
def kubectl_memory(self) -> typing.Optional[_Size_7b441c34]:
|
|
19482
19743
|
'''Amount of memory to allocate to the provider's lambda function.
|
|
@@ -19551,6 +19812,24 @@ class ClusterOptions(CommonClusterOptions):
|
|
|
19551
19812
|
result = self._values.get("prune")
|
|
19552
19813
|
return typing.cast(typing.Optional[builtins.bool], result)
|
|
19553
19814
|
|
|
19815
|
+
@builtins.property
|
|
19816
|
+
def remote_node_networks(self) -> typing.Optional[typing.List[RemoteNodeNetwork]]:
|
|
19817
|
+
'''IPv4 CIDR blocks defining the expected address range of hybrid nodes that will join the cluster.
|
|
19818
|
+
|
|
19819
|
+
:default: - none
|
|
19820
|
+
'''
|
|
19821
|
+
result = self._values.get("remote_node_networks")
|
|
19822
|
+
return typing.cast(typing.Optional[typing.List[RemoteNodeNetwork]], result)
|
|
19823
|
+
|
|
19824
|
+
@builtins.property
|
|
19825
|
+
def remote_pod_networks(self) -> typing.Optional[typing.List[RemotePodNetwork]]:
|
|
19826
|
+
'''IPv4 CIDR blocks for Pods running Kubernetes webhooks on hybrid nodes.
|
|
19827
|
+
|
|
19828
|
+
:default: - none
|
|
19829
|
+
'''
|
|
19830
|
+
result = self._values.get("remote_pod_networks")
|
|
19831
|
+
return typing.cast(typing.Optional[typing.List[RemotePodNetwork]], result)
|
|
19832
|
+
|
|
19554
19833
|
@builtins.property
|
|
19555
19834
|
def secrets_encryption_key(self) -> typing.Optional[_IKey_5f11635f]:
|
|
19556
19835
|
'''KMS secret for envelope encryption for Kubernetes secrets.
|
|
@@ -19602,6 +19881,7 @@ class ClusterOptions(CommonClusterOptions):
|
|
|
19602
19881
|
"security_group": "securityGroup",
|
|
19603
19882
|
"vpc": "vpc",
|
|
19604
19883
|
"vpc_subnets": "vpcSubnets",
|
|
19884
|
+
"kubectl_layer": "kubectlLayer",
|
|
19605
19885
|
"alb_controller": "albController",
|
|
19606
19886
|
"authentication_mode": "authenticationMode",
|
|
19607
19887
|
"awscli_layer": "awscliLayer",
|
|
@@ -19612,13 +19892,14 @@ class ClusterOptions(CommonClusterOptions):
|
|
|
19612
19892
|
"endpoint_access": "endpointAccess",
|
|
19613
19893
|
"ip_family": "ipFamily",
|
|
19614
19894
|
"kubectl_environment": "kubectlEnvironment",
|
|
19615
|
-
"kubectl_layer": "kubectlLayer",
|
|
19616
19895
|
"kubectl_memory": "kubectlMemory",
|
|
19617
19896
|
"masters_role": "mastersRole",
|
|
19618
19897
|
"on_event_layer": "onEventLayer",
|
|
19619
19898
|
"output_masters_role_arn": "outputMastersRoleArn",
|
|
19620
19899
|
"place_cluster_handler_in_vpc": "placeClusterHandlerInVpc",
|
|
19621
19900
|
"prune": "prune",
|
|
19901
|
+
"remote_node_networks": "remoteNodeNetworks",
|
|
19902
|
+
"remote_pod_networks": "remotePodNetworks",
|
|
19622
19903
|
"secrets_encryption_key": "secretsEncryptionKey",
|
|
19623
19904
|
"service_ipv4_cidr": "serviceIpv4Cidr",
|
|
19624
19905
|
"bootstrap_cluster_creator_admin_permissions": "bootstrapClusterCreatorAdminPermissions",
|
|
@@ -19641,6 +19922,7 @@ class ClusterProps(ClusterOptions):
|
|
|
19641
19922
|
security_group: typing.Optional[_ISecurityGroup_acf8a799] = None,
|
|
19642
19923
|
vpc: typing.Optional[_IVpc_f30d5663] = None,
|
|
19643
19924
|
vpc_subnets: typing.Optional[typing.Sequence[typing.Union[_SubnetSelection_e57d76df, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
19925
|
+
kubectl_layer: _ILayerVersion_5ac127c8,
|
|
19644
19926
|
alb_controller: typing.Optional[typing.Union[AlbControllerOptions, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
19645
19927
|
authentication_mode: typing.Optional[AuthenticationMode] = None,
|
|
19646
19928
|
awscli_layer: typing.Optional[_ILayerVersion_5ac127c8] = None,
|
|
@@ -19651,13 +19933,14 @@ class ClusterProps(ClusterOptions):
|
|
|
19651
19933
|
endpoint_access: typing.Optional[EndpointAccess] = None,
|
|
19652
19934
|
ip_family: typing.Optional[IpFamily] = None,
|
|
19653
19935
|
kubectl_environment: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
|
|
19654
|
-
kubectl_layer: typing.Optional[_ILayerVersion_5ac127c8] = None,
|
|
19655
19936
|
kubectl_memory: typing.Optional[_Size_7b441c34] = None,
|
|
19656
19937
|
masters_role: typing.Optional[_IRole_235f5d8e] = None,
|
|
19657
19938
|
on_event_layer: typing.Optional[_ILayerVersion_5ac127c8] = None,
|
|
19658
19939
|
output_masters_role_arn: typing.Optional[builtins.bool] = None,
|
|
19659
19940
|
place_cluster_handler_in_vpc: typing.Optional[builtins.bool] = None,
|
|
19660
19941
|
prune: typing.Optional[builtins.bool] = None,
|
|
19942
|
+
remote_node_networks: typing.Optional[typing.Sequence[typing.Union[RemoteNodeNetwork, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
19943
|
+
remote_pod_networks: typing.Optional[typing.Sequence[typing.Union[RemotePodNetwork, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
19661
19944
|
secrets_encryption_key: typing.Optional[_IKey_5f11635f] = None,
|
|
19662
19945
|
service_ipv4_cidr: typing.Optional[builtins.str] = None,
|
|
19663
19946
|
bootstrap_cluster_creator_admin_permissions: typing.Optional[builtins.bool] = None,
|
|
@@ -19677,6 +19960,7 @@ class ClusterProps(ClusterOptions):
|
|
|
19677
19960
|
:param security_group: Security Group to use for Control Plane ENIs. Default: - A security group is automatically created
|
|
19678
19961
|
: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``.
|
|
19679
19962
|
:param vpc_subnets: Where to place EKS Control Plane ENIs. For example, to only select private subnets, supply the following: ``vpcSubnets: [{ subnetType: ec2.SubnetType.PRIVATE_WITH_EGRESS }]`` Default: - All public and private subnets
|
|
19963
|
+
:param kubectl_layer: An AWS Lambda Layer which includes ``kubectl`` and Helm. This layer is used by the kubectl handler to apply manifests and install helm charts. You must pick an appropriate releases of one of the ``@aws-cdk/layer-kubectl-vXX`` packages, that works with the version of Kubernetes you have chosen. The handler expects the layer to include the following executables:: /opt/helm/helm /opt/kubectl/kubectl
|
|
19680
19964
|
:param alb_controller: Install the AWS Load Balancer Controller onto the cluster. Default: - The controller is not installed.
|
|
19681
19965
|
:param authentication_mode: The desired authentication mode for the cluster. Default: AuthenticationMode.CONFIG_MAP
|
|
19682
19966
|
:param awscli_layer: An AWS Lambda layer that contains the ``aws`` CLI. The handler expects the layer to include the following executables:: /opt/awscli/aws Default: - a default layer with the AWS CLI 1.x
|
|
@@ -19687,13 +19971,14 @@ class ClusterProps(ClusterOptions):
|
|
|
19687
19971
|
:param endpoint_access: Configure access to the Kubernetes API server endpoint.. Default: EndpointAccess.PUBLIC_AND_PRIVATE
|
|
19688
19972
|
:param ip_family: Specify which IP family is used to assign Kubernetes pod and service IP addresses. Default: - IpFamily.IP_V4
|
|
19689
19973
|
:param kubectl_environment: Environment variables for the kubectl execution. Only relevant for kubectl enabled clusters. Default: - No environment variables.
|
|
19690
|
-
:param kubectl_layer: An AWS Lambda Layer which includes ``kubectl`` and Helm. This layer is used by the kubectl handler to apply manifests and install helm charts. You must pick an appropriate releases of one of the ``@aws-cdk/layer-kubectl-vXX`` packages, that works with the version of Kubernetes you have chosen. If you don't supply this value ``kubectl`` 1.20 will be used, but that version is most likely too old. The handler expects the layer to include the following executables:: /opt/helm/helm /opt/kubectl/kubectl Default: - a default layer with Kubectl 1.20.
|
|
19691
19974
|
:param kubectl_memory: Amount of memory to allocate to the provider's lambda function. Default: Size.gibibytes(1)
|
|
19692
19975
|
:param masters_role: An IAM role that will be added to the ``system:masters`` Kubernetes RBAC group. Default: - no masters role.
|
|
19693
19976
|
:param on_event_layer: An AWS Lambda Layer which includes the NPM dependency ``proxy-agent``. This layer is used by the onEvent handler to route AWS SDK requests through a proxy. By default, the provider will use the layer included in the "aws-lambda-layer-node-proxy-agent" SAR application which is available in all commercial regions. To deploy the layer locally define it in your app as follows:: const layer = new lambda.LayerVersion(this, 'proxy-agent-layer', { code: lambda.Code.fromAsset(`${__dirname}/layer.zip`), compatibleRuntimes: [lambda.Runtime.NODEJS_LATEST], }); Default: - a layer bundled with this module.
|
|
19694
19977
|
:param output_masters_role_arn: Determines whether a CloudFormation output with the ARN of the "masters" IAM role will be synthesized (if ``mastersRole`` is specified). Default: false
|
|
19695
19978
|
:param place_cluster_handler_in_vpc: If set to true, the cluster handler functions will be placed in the private subnets of the cluster vpc, subject to the ``vpcSubnets`` selection strategy. Default: false
|
|
19696
19979
|
:param prune: Indicates whether Kubernetes resources added through ``addManifest()`` can be automatically pruned. When this is enabled (default), prune labels will be allocated and injected to each resource. These labels will then be used when issuing the ``kubectl apply`` operation with the ``--prune`` switch. Default: true
|
|
19980
|
+
:param remote_node_networks: IPv4 CIDR blocks defining the expected address range of hybrid nodes that will join the cluster. Default: - none
|
|
19981
|
+
:param remote_pod_networks: IPv4 CIDR blocks for Pods running Kubernetes webhooks on hybrid nodes. Default: - none
|
|
19697
19982
|
: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.
|
|
19698
19983
|
: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
|
|
19699
19984
|
: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
|
|
@@ -19707,11 +19992,16 @@ class ClusterProps(ClusterOptions):
|
|
|
19707
19992
|
|
|
19708
19993
|
Example::
|
|
19709
19994
|
|
|
19995
|
+
from aws_cdk.lambda_layer_kubectl_v32 import KubectlV32Layer
|
|
19996
|
+
|
|
19710
19997
|
# or
|
|
19711
19998
|
# vpc: ec2.Vpc
|
|
19999
|
+
|
|
20000
|
+
|
|
19712
20001
|
eks.Cluster(self, "MyCluster",
|
|
19713
20002
|
kubectl_memory=Size.gibibytes(4),
|
|
19714
|
-
version=eks.KubernetesVersion.
|
|
20003
|
+
version=eks.KubernetesVersion.V1_32,
|
|
20004
|
+
kubectl_layer=KubectlV32Layer(self, "kubectl")
|
|
19715
20005
|
)
|
|
19716
20006
|
eks.Cluster.from_cluster_attributes(self, "MyCluster",
|
|
19717
20007
|
kubectl_memory=Size.gibibytes(4),
|
|
@@ -19731,6 +20021,7 @@ class ClusterProps(ClusterOptions):
|
|
|
19731
20021
|
check_type(argname="argument security_group", value=security_group, expected_type=type_hints["security_group"])
|
|
19732
20022
|
check_type(argname="argument vpc", value=vpc, expected_type=type_hints["vpc"])
|
|
19733
20023
|
check_type(argname="argument vpc_subnets", value=vpc_subnets, expected_type=type_hints["vpc_subnets"])
|
|
20024
|
+
check_type(argname="argument kubectl_layer", value=kubectl_layer, expected_type=type_hints["kubectl_layer"])
|
|
19734
20025
|
check_type(argname="argument alb_controller", value=alb_controller, expected_type=type_hints["alb_controller"])
|
|
19735
20026
|
check_type(argname="argument authentication_mode", value=authentication_mode, expected_type=type_hints["authentication_mode"])
|
|
19736
20027
|
check_type(argname="argument awscli_layer", value=awscli_layer, expected_type=type_hints["awscli_layer"])
|
|
@@ -19741,13 +20032,14 @@ class ClusterProps(ClusterOptions):
|
|
|
19741
20032
|
check_type(argname="argument endpoint_access", value=endpoint_access, expected_type=type_hints["endpoint_access"])
|
|
19742
20033
|
check_type(argname="argument ip_family", value=ip_family, expected_type=type_hints["ip_family"])
|
|
19743
20034
|
check_type(argname="argument kubectl_environment", value=kubectl_environment, expected_type=type_hints["kubectl_environment"])
|
|
19744
|
-
check_type(argname="argument kubectl_layer", value=kubectl_layer, expected_type=type_hints["kubectl_layer"])
|
|
19745
20035
|
check_type(argname="argument kubectl_memory", value=kubectl_memory, expected_type=type_hints["kubectl_memory"])
|
|
19746
20036
|
check_type(argname="argument masters_role", value=masters_role, expected_type=type_hints["masters_role"])
|
|
19747
20037
|
check_type(argname="argument on_event_layer", value=on_event_layer, expected_type=type_hints["on_event_layer"])
|
|
19748
20038
|
check_type(argname="argument output_masters_role_arn", value=output_masters_role_arn, expected_type=type_hints["output_masters_role_arn"])
|
|
19749
20039
|
check_type(argname="argument place_cluster_handler_in_vpc", value=place_cluster_handler_in_vpc, expected_type=type_hints["place_cluster_handler_in_vpc"])
|
|
19750
20040
|
check_type(argname="argument prune", value=prune, expected_type=type_hints["prune"])
|
|
20041
|
+
check_type(argname="argument remote_node_networks", value=remote_node_networks, expected_type=type_hints["remote_node_networks"])
|
|
20042
|
+
check_type(argname="argument remote_pod_networks", value=remote_pod_networks, expected_type=type_hints["remote_pod_networks"])
|
|
19751
20043
|
check_type(argname="argument secrets_encryption_key", value=secrets_encryption_key, expected_type=type_hints["secrets_encryption_key"])
|
|
19752
20044
|
check_type(argname="argument service_ipv4_cidr", value=service_ipv4_cidr, expected_type=type_hints["service_ipv4_cidr"])
|
|
19753
20045
|
check_type(argname="argument bootstrap_cluster_creator_admin_permissions", value=bootstrap_cluster_creator_admin_permissions, expected_type=type_hints["bootstrap_cluster_creator_admin_permissions"])
|
|
@@ -19758,6 +20050,7 @@ class ClusterProps(ClusterOptions):
|
|
|
19758
20050
|
check_type(argname="argument tags", value=tags, expected_type=type_hints["tags"])
|
|
19759
20051
|
self._values: typing.Dict[builtins.str, typing.Any] = {
|
|
19760
20052
|
"version": version,
|
|
20053
|
+
"kubectl_layer": kubectl_layer,
|
|
19761
20054
|
}
|
|
19762
20055
|
if cluster_name is not None:
|
|
19763
20056
|
self._values["cluster_name"] = cluster_name
|
|
@@ -19793,8 +20086,6 @@ class ClusterProps(ClusterOptions):
|
|
|
19793
20086
|
self._values["ip_family"] = ip_family
|
|
19794
20087
|
if kubectl_environment is not None:
|
|
19795
20088
|
self._values["kubectl_environment"] = kubectl_environment
|
|
19796
|
-
if kubectl_layer is not None:
|
|
19797
|
-
self._values["kubectl_layer"] = kubectl_layer
|
|
19798
20089
|
if kubectl_memory is not None:
|
|
19799
20090
|
self._values["kubectl_memory"] = kubectl_memory
|
|
19800
20091
|
if masters_role is not None:
|
|
@@ -19807,6 +20098,10 @@ class ClusterProps(ClusterOptions):
|
|
|
19807
20098
|
self._values["place_cluster_handler_in_vpc"] = place_cluster_handler_in_vpc
|
|
19808
20099
|
if prune is not None:
|
|
19809
20100
|
self._values["prune"] = prune
|
|
20101
|
+
if remote_node_networks is not None:
|
|
20102
|
+
self._values["remote_node_networks"] = remote_node_networks
|
|
20103
|
+
if remote_pod_networks is not None:
|
|
20104
|
+
self._values["remote_pod_networks"] = remote_pod_networks
|
|
19810
20105
|
if secrets_encryption_key is not None:
|
|
19811
20106
|
self._values["secrets_encryption_key"] = secrets_encryption_key
|
|
19812
20107
|
if service_ipv4_cidr is not None:
|
|
@@ -19901,6 +20196,24 @@ class ClusterProps(ClusterOptions):
|
|
|
19901
20196
|
result = self._values.get("vpc_subnets")
|
|
19902
20197
|
return typing.cast(typing.Optional[typing.List[_SubnetSelection_e57d76df]], result)
|
|
19903
20198
|
|
|
20199
|
+
@builtins.property
|
|
20200
|
+
def kubectl_layer(self) -> _ILayerVersion_5ac127c8:
|
|
20201
|
+
'''An AWS Lambda Layer which includes ``kubectl`` and Helm.
|
|
20202
|
+
|
|
20203
|
+
This layer is used by the kubectl handler to apply manifests and install
|
|
20204
|
+
helm charts. You must pick an appropriate releases of one of the
|
|
20205
|
+
``@aws-cdk/layer-kubectl-vXX`` packages, that works with the version of
|
|
20206
|
+
Kubernetes you have chosen.
|
|
20207
|
+
|
|
20208
|
+
The handler expects the layer to include the following executables::
|
|
20209
|
+
|
|
20210
|
+
/opt/helm/helm
|
|
20211
|
+
/opt/kubectl/kubectl
|
|
20212
|
+
'''
|
|
20213
|
+
result = self._values.get("kubectl_layer")
|
|
20214
|
+
assert result is not None, "Required property 'kubectl_layer' is missing"
|
|
20215
|
+
return typing.cast(_ILayerVersion_5ac127c8, result)
|
|
20216
|
+
|
|
19904
20217
|
@builtins.property
|
|
19905
20218
|
def alb_controller(self) -> typing.Optional[AlbControllerOptions]:
|
|
19906
20219
|
'''Install the AWS Load Balancer Controller onto the cluster.
|
|
@@ -20013,26 +20326,6 @@ class ClusterProps(ClusterOptions):
|
|
|
20013
20326
|
result = self._values.get("kubectl_environment")
|
|
20014
20327
|
return typing.cast(typing.Optional[typing.Mapping[builtins.str, builtins.str]], result)
|
|
20015
20328
|
|
|
20016
|
-
@builtins.property
|
|
20017
|
-
def kubectl_layer(self) -> typing.Optional[_ILayerVersion_5ac127c8]:
|
|
20018
|
-
'''An AWS Lambda Layer which includes ``kubectl`` and Helm.
|
|
20019
|
-
|
|
20020
|
-
This layer is used by the kubectl handler to apply manifests and install
|
|
20021
|
-
helm charts. You must pick an appropriate releases of one of the
|
|
20022
|
-
``@aws-cdk/layer-kubectl-vXX`` packages, that works with the version of
|
|
20023
|
-
Kubernetes you have chosen. If you don't supply this value ``kubectl``
|
|
20024
|
-
1.20 will be used, but that version is most likely too old.
|
|
20025
|
-
|
|
20026
|
-
The handler expects the layer to include the following executables::
|
|
20027
|
-
|
|
20028
|
-
/opt/helm/helm
|
|
20029
|
-
/opt/kubectl/kubectl
|
|
20030
|
-
|
|
20031
|
-
:default: - a default layer with Kubectl 1.20.
|
|
20032
|
-
'''
|
|
20033
|
-
result = self._values.get("kubectl_layer")
|
|
20034
|
-
return typing.cast(typing.Optional[_ILayerVersion_5ac127c8], result)
|
|
20035
|
-
|
|
20036
20329
|
@builtins.property
|
|
20037
20330
|
def kubectl_memory(self) -> typing.Optional[_Size_7b441c34]:
|
|
20038
20331
|
'''Amount of memory to allocate to the provider's lambda function.
|
|
@@ -20107,6 +20400,24 @@ class ClusterProps(ClusterOptions):
|
|
|
20107
20400
|
result = self._values.get("prune")
|
|
20108
20401
|
return typing.cast(typing.Optional[builtins.bool], result)
|
|
20109
20402
|
|
|
20403
|
+
@builtins.property
|
|
20404
|
+
def remote_node_networks(self) -> typing.Optional[typing.List[RemoteNodeNetwork]]:
|
|
20405
|
+
'''IPv4 CIDR blocks defining the expected address range of hybrid nodes that will join the cluster.
|
|
20406
|
+
|
|
20407
|
+
:default: - none
|
|
20408
|
+
'''
|
|
20409
|
+
result = self._values.get("remote_node_networks")
|
|
20410
|
+
return typing.cast(typing.Optional[typing.List[RemoteNodeNetwork]], result)
|
|
20411
|
+
|
|
20412
|
+
@builtins.property
|
|
20413
|
+
def remote_pod_networks(self) -> typing.Optional[typing.List[RemotePodNetwork]]:
|
|
20414
|
+
'''IPv4 CIDR blocks for Pods running Kubernetes webhooks on hybrid nodes.
|
|
20415
|
+
|
|
20416
|
+
:default: - none
|
|
20417
|
+
'''
|
|
20418
|
+
result = self._values.get("remote_pod_networks")
|
|
20419
|
+
return typing.cast(typing.Optional[typing.List[RemotePodNetwork]], result)
|
|
20420
|
+
|
|
20110
20421
|
@builtins.property
|
|
20111
20422
|
def secrets_encryption_key(self) -> typing.Optional[_IKey_5f11635f]:
|
|
20112
20423
|
'''KMS secret for envelope encryption for Kubernetes secrets.
|
|
@@ -20228,8 +20539,12 @@ class FargateCluster(
|
|
|
20228
20539
|
|
|
20229
20540
|
Example::
|
|
20230
20541
|
|
|
20542
|
+
from aws_cdk.lambda_layer_kubectl_v32 import KubectlV32Layer
|
|
20543
|
+
|
|
20544
|
+
|
|
20231
20545
|
cluster = eks.FargateCluster(self, "MyCluster",
|
|
20232
|
-
version=eks.KubernetesVersion.
|
|
20546
|
+
version=eks.KubernetesVersion.V1_32,
|
|
20547
|
+
kubectl_layer=KubectlV32Layer(self, "kubectl")
|
|
20233
20548
|
)
|
|
20234
20549
|
'''
|
|
20235
20550
|
|
|
@@ -20239,6 +20554,7 @@ class FargateCluster(
|
|
|
20239
20554
|
id: builtins.str,
|
|
20240
20555
|
*,
|
|
20241
20556
|
default_profile: typing.Optional[typing.Union[FargateProfileOptions, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
20557
|
+
kubectl_layer: _ILayerVersion_5ac127c8,
|
|
20242
20558
|
alb_controller: typing.Optional[typing.Union[AlbControllerOptions, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
20243
20559
|
authentication_mode: typing.Optional[AuthenticationMode] = None,
|
|
20244
20560
|
awscli_layer: typing.Optional[_ILayerVersion_5ac127c8] = None,
|
|
@@ -20249,13 +20565,14 @@ class FargateCluster(
|
|
|
20249
20565
|
endpoint_access: typing.Optional[EndpointAccess] = None,
|
|
20250
20566
|
ip_family: typing.Optional[IpFamily] = None,
|
|
20251
20567
|
kubectl_environment: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
|
|
20252
|
-
kubectl_layer: typing.Optional[_ILayerVersion_5ac127c8] = None,
|
|
20253
20568
|
kubectl_memory: typing.Optional[_Size_7b441c34] = None,
|
|
20254
20569
|
masters_role: typing.Optional[_IRole_235f5d8e] = None,
|
|
20255
20570
|
on_event_layer: typing.Optional[_ILayerVersion_5ac127c8] = None,
|
|
20256
20571
|
output_masters_role_arn: typing.Optional[builtins.bool] = None,
|
|
20257
20572
|
place_cluster_handler_in_vpc: typing.Optional[builtins.bool] = None,
|
|
20258
20573
|
prune: typing.Optional[builtins.bool] = None,
|
|
20574
|
+
remote_node_networks: typing.Optional[typing.Sequence[typing.Union[RemoteNodeNetwork, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
20575
|
+
remote_pod_networks: typing.Optional[typing.Sequence[typing.Union[RemotePodNetwork, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
20259
20576
|
secrets_encryption_key: typing.Optional[_IKey_5f11635f] = None,
|
|
20260
20577
|
service_ipv4_cidr: typing.Optional[builtins.str] = None,
|
|
20261
20578
|
version: KubernetesVersion,
|
|
@@ -20271,6 +20588,7 @@ class FargateCluster(
|
|
|
20271
20588
|
:param scope: -
|
|
20272
20589
|
:param id: -
|
|
20273
20590
|
:param default_profile: Fargate Profile to create along with the cluster. Default: - A profile called "default" with 'default' and 'kube-system' selectors will be created if this is left undefined.
|
|
20591
|
+
:param kubectl_layer: An AWS Lambda Layer which includes ``kubectl`` and Helm. This layer is used by the kubectl handler to apply manifests and install helm charts. You must pick an appropriate releases of one of the ``@aws-cdk/layer-kubectl-vXX`` packages, that works with the version of Kubernetes you have chosen. The handler expects the layer to include the following executables:: /opt/helm/helm /opt/kubectl/kubectl
|
|
20274
20592
|
:param alb_controller: Install the AWS Load Balancer Controller onto the cluster. Default: - The controller is not installed.
|
|
20275
20593
|
:param authentication_mode: The desired authentication mode for the cluster. Default: AuthenticationMode.CONFIG_MAP
|
|
20276
20594
|
:param awscli_layer: An AWS Lambda layer that contains the ``aws`` CLI. The handler expects the layer to include the following executables:: /opt/awscli/aws Default: - a default layer with the AWS CLI 1.x
|
|
@@ -20281,13 +20599,14 @@ class FargateCluster(
|
|
|
20281
20599
|
:param endpoint_access: Configure access to the Kubernetes API server endpoint.. Default: EndpointAccess.PUBLIC_AND_PRIVATE
|
|
20282
20600
|
:param ip_family: Specify which IP family is used to assign Kubernetes pod and service IP addresses. Default: - IpFamily.IP_V4
|
|
20283
20601
|
:param kubectl_environment: Environment variables for the kubectl execution. Only relevant for kubectl enabled clusters. Default: - No environment variables.
|
|
20284
|
-
:param kubectl_layer: An AWS Lambda Layer which includes ``kubectl`` and Helm. This layer is used by the kubectl handler to apply manifests and install helm charts. You must pick an appropriate releases of one of the ``@aws-cdk/layer-kubectl-vXX`` packages, that works with the version of Kubernetes you have chosen. If you don't supply this value ``kubectl`` 1.20 will be used, but that version is most likely too old. The handler expects the layer to include the following executables:: /opt/helm/helm /opt/kubectl/kubectl Default: - a default layer with Kubectl 1.20.
|
|
20285
20602
|
:param kubectl_memory: Amount of memory to allocate to the provider's lambda function. Default: Size.gibibytes(1)
|
|
20286
20603
|
:param masters_role: An IAM role that will be added to the ``system:masters`` Kubernetes RBAC group. Default: - no masters role.
|
|
20287
20604
|
:param on_event_layer: An AWS Lambda Layer which includes the NPM dependency ``proxy-agent``. This layer is used by the onEvent handler to route AWS SDK requests through a proxy. By default, the provider will use the layer included in the "aws-lambda-layer-node-proxy-agent" SAR application which is available in all commercial regions. To deploy the layer locally define it in your app as follows:: const layer = new lambda.LayerVersion(this, 'proxy-agent-layer', { code: lambda.Code.fromAsset(`${__dirname}/layer.zip`), compatibleRuntimes: [lambda.Runtime.NODEJS_LATEST], }); Default: - a layer bundled with this module.
|
|
20288
20605
|
:param output_masters_role_arn: Determines whether a CloudFormation output with the ARN of the "masters" IAM role will be synthesized (if ``mastersRole`` is specified). Default: false
|
|
20289
20606
|
:param place_cluster_handler_in_vpc: If set to true, the cluster handler functions will be placed in the private subnets of the cluster vpc, subject to the ``vpcSubnets`` selection strategy. Default: false
|
|
20290
20607
|
:param prune: Indicates whether Kubernetes resources added through ``addManifest()`` can be automatically pruned. When this is enabled (default), prune labels will be allocated and injected to each resource. These labels will then be used when issuing the ``kubectl apply`` operation with the ``--prune`` switch. Default: true
|
|
20608
|
+
:param remote_node_networks: IPv4 CIDR blocks defining the expected address range of hybrid nodes that will join the cluster. Default: - none
|
|
20609
|
+
:param remote_pod_networks: IPv4 CIDR blocks for Pods running Kubernetes webhooks on hybrid nodes. Default: - none
|
|
20291
20610
|
: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.
|
|
20292
20611
|
: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
|
|
20293
20612
|
:param version: The Kubernetes version to run in the cluster.
|
|
@@ -20305,6 +20624,7 @@ class FargateCluster(
|
|
|
20305
20624
|
check_type(argname="argument id", value=id, expected_type=type_hints["id"])
|
|
20306
20625
|
props = FargateClusterProps(
|
|
20307
20626
|
default_profile=default_profile,
|
|
20627
|
+
kubectl_layer=kubectl_layer,
|
|
20308
20628
|
alb_controller=alb_controller,
|
|
20309
20629
|
authentication_mode=authentication_mode,
|
|
20310
20630
|
awscli_layer=awscli_layer,
|
|
@@ -20315,13 +20635,14 @@ class FargateCluster(
|
|
|
20315
20635
|
endpoint_access=endpoint_access,
|
|
20316
20636
|
ip_family=ip_family,
|
|
20317
20637
|
kubectl_environment=kubectl_environment,
|
|
20318
|
-
kubectl_layer=kubectl_layer,
|
|
20319
20638
|
kubectl_memory=kubectl_memory,
|
|
20320
20639
|
masters_role=masters_role,
|
|
20321
20640
|
on_event_layer=on_event_layer,
|
|
20322
20641
|
output_masters_role_arn=output_masters_role_arn,
|
|
20323
20642
|
place_cluster_handler_in_vpc=place_cluster_handler_in_vpc,
|
|
20324
20643
|
prune=prune,
|
|
20644
|
+
remote_node_networks=remote_node_networks,
|
|
20645
|
+
remote_pod_networks=remote_pod_networks,
|
|
20325
20646
|
secrets_encryption_key=secrets_encryption_key,
|
|
20326
20647
|
service_ipv4_cidr=service_ipv4_cidr,
|
|
20327
20648
|
version=version,
|
|
@@ -20355,6 +20676,7 @@ class FargateCluster(
|
|
|
20355
20676
|
"security_group": "securityGroup",
|
|
20356
20677
|
"vpc": "vpc",
|
|
20357
20678
|
"vpc_subnets": "vpcSubnets",
|
|
20679
|
+
"kubectl_layer": "kubectlLayer",
|
|
20358
20680
|
"alb_controller": "albController",
|
|
20359
20681
|
"authentication_mode": "authenticationMode",
|
|
20360
20682
|
"awscli_layer": "awscliLayer",
|
|
@@ -20365,13 +20687,14 @@ class FargateCluster(
|
|
|
20365
20687
|
"endpoint_access": "endpointAccess",
|
|
20366
20688
|
"ip_family": "ipFamily",
|
|
20367
20689
|
"kubectl_environment": "kubectlEnvironment",
|
|
20368
|
-
"kubectl_layer": "kubectlLayer",
|
|
20369
20690
|
"kubectl_memory": "kubectlMemory",
|
|
20370
20691
|
"masters_role": "mastersRole",
|
|
20371
20692
|
"on_event_layer": "onEventLayer",
|
|
20372
20693
|
"output_masters_role_arn": "outputMastersRoleArn",
|
|
20373
20694
|
"place_cluster_handler_in_vpc": "placeClusterHandlerInVpc",
|
|
20374
20695
|
"prune": "prune",
|
|
20696
|
+
"remote_node_networks": "remoteNodeNetworks",
|
|
20697
|
+
"remote_pod_networks": "remotePodNetworks",
|
|
20375
20698
|
"secrets_encryption_key": "secretsEncryptionKey",
|
|
20376
20699
|
"service_ipv4_cidr": "serviceIpv4Cidr",
|
|
20377
20700
|
"default_profile": "defaultProfile",
|
|
@@ -20389,6 +20712,7 @@ class FargateClusterProps(ClusterOptions):
|
|
|
20389
20712
|
security_group: typing.Optional[_ISecurityGroup_acf8a799] = None,
|
|
20390
20713
|
vpc: typing.Optional[_IVpc_f30d5663] = None,
|
|
20391
20714
|
vpc_subnets: typing.Optional[typing.Sequence[typing.Union[_SubnetSelection_e57d76df, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
20715
|
+
kubectl_layer: _ILayerVersion_5ac127c8,
|
|
20392
20716
|
alb_controller: typing.Optional[typing.Union[AlbControllerOptions, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
20393
20717
|
authentication_mode: typing.Optional[AuthenticationMode] = None,
|
|
20394
20718
|
awscli_layer: typing.Optional[_ILayerVersion_5ac127c8] = None,
|
|
@@ -20399,13 +20723,14 @@ class FargateClusterProps(ClusterOptions):
|
|
|
20399
20723
|
endpoint_access: typing.Optional[EndpointAccess] = None,
|
|
20400
20724
|
ip_family: typing.Optional[IpFamily] = None,
|
|
20401
20725
|
kubectl_environment: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
|
|
20402
|
-
kubectl_layer: typing.Optional[_ILayerVersion_5ac127c8] = None,
|
|
20403
20726
|
kubectl_memory: typing.Optional[_Size_7b441c34] = None,
|
|
20404
20727
|
masters_role: typing.Optional[_IRole_235f5d8e] = None,
|
|
20405
20728
|
on_event_layer: typing.Optional[_ILayerVersion_5ac127c8] = None,
|
|
20406
20729
|
output_masters_role_arn: typing.Optional[builtins.bool] = None,
|
|
20407
20730
|
place_cluster_handler_in_vpc: typing.Optional[builtins.bool] = None,
|
|
20408
20731
|
prune: typing.Optional[builtins.bool] = None,
|
|
20732
|
+
remote_node_networks: typing.Optional[typing.Sequence[typing.Union[RemoteNodeNetwork, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
20733
|
+
remote_pod_networks: typing.Optional[typing.Sequence[typing.Union[RemotePodNetwork, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
20409
20734
|
secrets_encryption_key: typing.Optional[_IKey_5f11635f] = None,
|
|
20410
20735
|
service_ipv4_cidr: typing.Optional[builtins.str] = None,
|
|
20411
20736
|
default_profile: typing.Optional[typing.Union[FargateProfileOptions, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
@@ -20420,6 +20745,7 @@ class FargateClusterProps(ClusterOptions):
|
|
|
20420
20745
|
:param security_group: Security Group to use for Control Plane ENIs. Default: - A security group is automatically created
|
|
20421
20746
|
: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``.
|
|
20422
20747
|
:param vpc_subnets: Where to place EKS Control Plane ENIs. For example, to only select private subnets, supply the following: ``vpcSubnets: [{ subnetType: ec2.SubnetType.PRIVATE_WITH_EGRESS }]`` Default: - All public and private subnets
|
|
20748
|
+
:param kubectl_layer: An AWS Lambda Layer which includes ``kubectl`` and Helm. This layer is used by the kubectl handler to apply manifests and install helm charts. You must pick an appropriate releases of one of the ``@aws-cdk/layer-kubectl-vXX`` packages, that works with the version of Kubernetes you have chosen. The handler expects the layer to include the following executables:: /opt/helm/helm /opt/kubectl/kubectl
|
|
20423
20749
|
:param alb_controller: Install the AWS Load Balancer Controller onto the cluster. Default: - The controller is not installed.
|
|
20424
20750
|
:param authentication_mode: The desired authentication mode for the cluster. Default: AuthenticationMode.CONFIG_MAP
|
|
20425
20751
|
:param awscli_layer: An AWS Lambda layer that contains the ``aws`` CLI. The handler expects the layer to include the following executables:: /opt/awscli/aws Default: - a default layer with the AWS CLI 1.x
|
|
@@ -20430,13 +20756,14 @@ class FargateClusterProps(ClusterOptions):
|
|
|
20430
20756
|
:param endpoint_access: Configure access to the Kubernetes API server endpoint.. Default: EndpointAccess.PUBLIC_AND_PRIVATE
|
|
20431
20757
|
:param ip_family: Specify which IP family is used to assign Kubernetes pod and service IP addresses. Default: - IpFamily.IP_V4
|
|
20432
20758
|
:param kubectl_environment: Environment variables for the kubectl execution. Only relevant for kubectl enabled clusters. Default: - No environment variables.
|
|
20433
|
-
:param kubectl_layer: An AWS Lambda Layer which includes ``kubectl`` and Helm. This layer is used by the kubectl handler to apply manifests and install helm charts. You must pick an appropriate releases of one of the ``@aws-cdk/layer-kubectl-vXX`` packages, that works with the version of Kubernetes you have chosen. If you don't supply this value ``kubectl`` 1.20 will be used, but that version is most likely too old. The handler expects the layer to include the following executables:: /opt/helm/helm /opt/kubectl/kubectl Default: - a default layer with Kubectl 1.20.
|
|
20434
20759
|
:param kubectl_memory: Amount of memory to allocate to the provider's lambda function. Default: Size.gibibytes(1)
|
|
20435
20760
|
:param masters_role: An IAM role that will be added to the ``system:masters`` Kubernetes RBAC group. Default: - no masters role.
|
|
20436
20761
|
:param on_event_layer: An AWS Lambda Layer which includes the NPM dependency ``proxy-agent``. This layer is used by the onEvent handler to route AWS SDK requests through a proxy. By default, the provider will use the layer included in the "aws-lambda-layer-node-proxy-agent" SAR application which is available in all commercial regions. To deploy the layer locally define it in your app as follows:: const layer = new lambda.LayerVersion(this, 'proxy-agent-layer', { code: lambda.Code.fromAsset(`${__dirname}/layer.zip`), compatibleRuntimes: [lambda.Runtime.NODEJS_LATEST], }); Default: - a layer bundled with this module.
|
|
20437
20762
|
:param output_masters_role_arn: Determines whether a CloudFormation output with the ARN of the "masters" IAM role will be synthesized (if ``mastersRole`` is specified). Default: false
|
|
20438
20763
|
:param place_cluster_handler_in_vpc: If set to true, the cluster handler functions will be placed in the private subnets of the cluster vpc, subject to the ``vpcSubnets`` selection strategy. Default: false
|
|
20439
20764
|
:param prune: Indicates whether Kubernetes resources added through ``addManifest()`` can be automatically pruned. When this is enabled (default), prune labels will be allocated and injected to each resource. These labels will then be used when issuing the ``kubectl apply`` operation with the ``--prune`` switch. Default: true
|
|
20765
|
+
:param remote_node_networks: IPv4 CIDR blocks defining the expected address range of hybrid nodes that will join the cluster. Default: - none
|
|
20766
|
+
:param remote_pod_networks: IPv4 CIDR blocks for Pods running Kubernetes webhooks on hybrid nodes. Default: - none
|
|
20440
20767
|
: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.
|
|
20441
20768
|
: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
|
|
20442
20769
|
:param default_profile: Fargate Profile to create along with the cluster. Default: - A profile called "default" with 'default' and 'kube-system' selectors will be created if this is left undefined.
|
|
@@ -20445,8 +20772,12 @@ class FargateClusterProps(ClusterOptions):
|
|
|
20445
20772
|
|
|
20446
20773
|
Example::
|
|
20447
20774
|
|
|
20775
|
+
from aws_cdk.lambda_layer_kubectl_v32 import KubectlV32Layer
|
|
20776
|
+
|
|
20777
|
+
|
|
20448
20778
|
cluster = eks.FargateCluster(self, "MyCluster",
|
|
20449
|
-
version=eks.KubernetesVersion.
|
|
20779
|
+
version=eks.KubernetesVersion.V1_32,
|
|
20780
|
+
kubectl_layer=KubectlV32Layer(self, "kubectl")
|
|
20450
20781
|
)
|
|
20451
20782
|
'''
|
|
20452
20783
|
if isinstance(alb_controller, dict):
|
|
@@ -20463,6 +20794,7 @@ class FargateClusterProps(ClusterOptions):
|
|
|
20463
20794
|
check_type(argname="argument security_group", value=security_group, expected_type=type_hints["security_group"])
|
|
20464
20795
|
check_type(argname="argument vpc", value=vpc, expected_type=type_hints["vpc"])
|
|
20465
20796
|
check_type(argname="argument vpc_subnets", value=vpc_subnets, expected_type=type_hints["vpc_subnets"])
|
|
20797
|
+
check_type(argname="argument kubectl_layer", value=kubectl_layer, expected_type=type_hints["kubectl_layer"])
|
|
20466
20798
|
check_type(argname="argument alb_controller", value=alb_controller, expected_type=type_hints["alb_controller"])
|
|
20467
20799
|
check_type(argname="argument authentication_mode", value=authentication_mode, expected_type=type_hints["authentication_mode"])
|
|
20468
20800
|
check_type(argname="argument awscli_layer", value=awscli_layer, expected_type=type_hints["awscli_layer"])
|
|
@@ -20473,18 +20805,20 @@ class FargateClusterProps(ClusterOptions):
|
|
|
20473
20805
|
check_type(argname="argument endpoint_access", value=endpoint_access, expected_type=type_hints["endpoint_access"])
|
|
20474
20806
|
check_type(argname="argument ip_family", value=ip_family, expected_type=type_hints["ip_family"])
|
|
20475
20807
|
check_type(argname="argument kubectl_environment", value=kubectl_environment, expected_type=type_hints["kubectl_environment"])
|
|
20476
|
-
check_type(argname="argument kubectl_layer", value=kubectl_layer, expected_type=type_hints["kubectl_layer"])
|
|
20477
20808
|
check_type(argname="argument kubectl_memory", value=kubectl_memory, expected_type=type_hints["kubectl_memory"])
|
|
20478
20809
|
check_type(argname="argument masters_role", value=masters_role, expected_type=type_hints["masters_role"])
|
|
20479
20810
|
check_type(argname="argument on_event_layer", value=on_event_layer, expected_type=type_hints["on_event_layer"])
|
|
20480
20811
|
check_type(argname="argument output_masters_role_arn", value=output_masters_role_arn, expected_type=type_hints["output_masters_role_arn"])
|
|
20481
20812
|
check_type(argname="argument place_cluster_handler_in_vpc", value=place_cluster_handler_in_vpc, expected_type=type_hints["place_cluster_handler_in_vpc"])
|
|
20482
20813
|
check_type(argname="argument prune", value=prune, expected_type=type_hints["prune"])
|
|
20814
|
+
check_type(argname="argument remote_node_networks", value=remote_node_networks, expected_type=type_hints["remote_node_networks"])
|
|
20815
|
+
check_type(argname="argument remote_pod_networks", value=remote_pod_networks, expected_type=type_hints["remote_pod_networks"])
|
|
20483
20816
|
check_type(argname="argument secrets_encryption_key", value=secrets_encryption_key, expected_type=type_hints["secrets_encryption_key"])
|
|
20484
20817
|
check_type(argname="argument service_ipv4_cidr", value=service_ipv4_cidr, expected_type=type_hints["service_ipv4_cidr"])
|
|
20485
20818
|
check_type(argname="argument default_profile", value=default_profile, expected_type=type_hints["default_profile"])
|
|
20486
20819
|
self._values: typing.Dict[builtins.str, typing.Any] = {
|
|
20487
20820
|
"version": version,
|
|
20821
|
+
"kubectl_layer": kubectl_layer,
|
|
20488
20822
|
}
|
|
20489
20823
|
if cluster_name is not None:
|
|
20490
20824
|
self._values["cluster_name"] = cluster_name
|
|
@@ -20520,8 +20854,6 @@ class FargateClusterProps(ClusterOptions):
|
|
|
20520
20854
|
self._values["ip_family"] = ip_family
|
|
20521
20855
|
if kubectl_environment is not None:
|
|
20522
20856
|
self._values["kubectl_environment"] = kubectl_environment
|
|
20523
|
-
if kubectl_layer is not None:
|
|
20524
|
-
self._values["kubectl_layer"] = kubectl_layer
|
|
20525
20857
|
if kubectl_memory is not None:
|
|
20526
20858
|
self._values["kubectl_memory"] = kubectl_memory
|
|
20527
20859
|
if masters_role is not None:
|
|
@@ -20534,6 +20866,10 @@ class FargateClusterProps(ClusterOptions):
|
|
|
20534
20866
|
self._values["place_cluster_handler_in_vpc"] = place_cluster_handler_in_vpc
|
|
20535
20867
|
if prune is not None:
|
|
20536
20868
|
self._values["prune"] = prune
|
|
20869
|
+
if remote_node_networks is not None:
|
|
20870
|
+
self._values["remote_node_networks"] = remote_node_networks
|
|
20871
|
+
if remote_pod_networks is not None:
|
|
20872
|
+
self._values["remote_pod_networks"] = remote_pod_networks
|
|
20537
20873
|
if secrets_encryption_key is not None:
|
|
20538
20874
|
self._values["secrets_encryption_key"] = secrets_encryption_key
|
|
20539
20875
|
if service_ipv4_cidr is not None:
|
|
@@ -20618,6 +20954,24 @@ class FargateClusterProps(ClusterOptions):
|
|
|
20618
20954
|
result = self._values.get("vpc_subnets")
|
|
20619
20955
|
return typing.cast(typing.Optional[typing.List[_SubnetSelection_e57d76df]], result)
|
|
20620
20956
|
|
|
20957
|
+
@builtins.property
|
|
20958
|
+
def kubectl_layer(self) -> _ILayerVersion_5ac127c8:
|
|
20959
|
+
'''An AWS Lambda Layer which includes ``kubectl`` and Helm.
|
|
20960
|
+
|
|
20961
|
+
This layer is used by the kubectl handler to apply manifests and install
|
|
20962
|
+
helm charts. You must pick an appropriate releases of one of the
|
|
20963
|
+
``@aws-cdk/layer-kubectl-vXX`` packages, that works with the version of
|
|
20964
|
+
Kubernetes you have chosen.
|
|
20965
|
+
|
|
20966
|
+
The handler expects the layer to include the following executables::
|
|
20967
|
+
|
|
20968
|
+
/opt/helm/helm
|
|
20969
|
+
/opt/kubectl/kubectl
|
|
20970
|
+
'''
|
|
20971
|
+
result = self._values.get("kubectl_layer")
|
|
20972
|
+
assert result is not None, "Required property 'kubectl_layer' is missing"
|
|
20973
|
+
return typing.cast(_ILayerVersion_5ac127c8, result)
|
|
20974
|
+
|
|
20621
20975
|
@builtins.property
|
|
20622
20976
|
def alb_controller(self) -> typing.Optional[AlbControllerOptions]:
|
|
20623
20977
|
'''Install the AWS Load Balancer Controller onto the cluster.
|
|
@@ -20730,26 +21084,6 @@ class FargateClusterProps(ClusterOptions):
|
|
|
20730
21084
|
result = self._values.get("kubectl_environment")
|
|
20731
21085
|
return typing.cast(typing.Optional[typing.Mapping[builtins.str, builtins.str]], result)
|
|
20732
21086
|
|
|
20733
|
-
@builtins.property
|
|
20734
|
-
def kubectl_layer(self) -> typing.Optional[_ILayerVersion_5ac127c8]:
|
|
20735
|
-
'''An AWS Lambda Layer which includes ``kubectl`` and Helm.
|
|
20736
|
-
|
|
20737
|
-
This layer is used by the kubectl handler to apply manifests and install
|
|
20738
|
-
helm charts. You must pick an appropriate releases of one of the
|
|
20739
|
-
``@aws-cdk/layer-kubectl-vXX`` packages, that works with the version of
|
|
20740
|
-
Kubernetes you have chosen. If you don't supply this value ``kubectl``
|
|
20741
|
-
1.20 will be used, but that version is most likely too old.
|
|
20742
|
-
|
|
20743
|
-
The handler expects the layer to include the following executables::
|
|
20744
|
-
|
|
20745
|
-
/opt/helm/helm
|
|
20746
|
-
/opt/kubectl/kubectl
|
|
20747
|
-
|
|
20748
|
-
:default: - a default layer with Kubectl 1.20.
|
|
20749
|
-
'''
|
|
20750
|
-
result = self._values.get("kubectl_layer")
|
|
20751
|
-
return typing.cast(typing.Optional[_ILayerVersion_5ac127c8], result)
|
|
20752
|
-
|
|
20753
21087
|
@builtins.property
|
|
20754
21088
|
def kubectl_memory(self) -> typing.Optional[_Size_7b441c34]:
|
|
20755
21089
|
'''Amount of memory to allocate to the provider's lambda function.
|
|
@@ -20824,6 +21158,24 @@ class FargateClusterProps(ClusterOptions):
|
|
|
20824
21158
|
result = self._values.get("prune")
|
|
20825
21159
|
return typing.cast(typing.Optional[builtins.bool], result)
|
|
20826
21160
|
|
|
21161
|
+
@builtins.property
|
|
21162
|
+
def remote_node_networks(self) -> typing.Optional[typing.List[RemoteNodeNetwork]]:
|
|
21163
|
+
'''IPv4 CIDR blocks defining the expected address range of hybrid nodes that will join the cluster.
|
|
21164
|
+
|
|
21165
|
+
:default: - none
|
|
21166
|
+
'''
|
|
21167
|
+
result = self._values.get("remote_node_networks")
|
|
21168
|
+
return typing.cast(typing.Optional[typing.List[RemoteNodeNetwork]], result)
|
|
21169
|
+
|
|
21170
|
+
@builtins.property
|
|
21171
|
+
def remote_pod_networks(self) -> typing.Optional[typing.List[RemotePodNetwork]]:
|
|
21172
|
+
'''IPv4 CIDR blocks for Pods running Kubernetes webhooks on hybrid nodes.
|
|
21173
|
+
|
|
21174
|
+
:default: - none
|
|
21175
|
+
'''
|
|
21176
|
+
result = self._values.get("remote_pod_networks")
|
|
21177
|
+
return typing.cast(typing.Optional[typing.List[RemotePodNetwork]], result)
|
|
21178
|
+
|
|
20827
21179
|
@builtins.property
|
|
20828
21180
|
def secrets_encryption_key(self) -> typing.Optional[_IKey_5f11635f]:
|
|
20829
21181
|
'''KMS secret for envelope encryption for Kubernetes secrets.
|
|
@@ -21038,6 +21390,8 @@ __all__ = [
|
|
|
21038
21390
|
"OpenIdConnectProvider",
|
|
21039
21391
|
"OpenIdConnectProviderProps",
|
|
21040
21392
|
"PatchType",
|
|
21393
|
+
"RemoteNodeNetwork",
|
|
21394
|
+
"RemotePodNetwork",
|
|
21041
21395
|
"Selector",
|
|
21042
21396
|
"ServiceAccount",
|
|
21043
21397
|
"ServiceAccountOptions",
|
|
@@ -22743,6 +23097,20 @@ def _typecheckingstub__c02764139ca6306efb78e2db6695149f8ddc6b3e8adb63a11131864ce
|
|
|
22743
23097
|
"""Type checking stubs"""
|
|
22744
23098
|
pass
|
|
22745
23099
|
|
|
23100
|
+
def _typecheckingstub__600789f5d1adc105e950fc1e01201ea975b89bb797b63227b757a633425a0f09(
|
|
23101
|
+
*,
|
|
23102
|
+
cidrs: typing.Sequence[builtins.str],
|
|
23103
|
+
) -> None:
|
|
23104
|
+
"""Type checking stubs"""
|
|
23105
|
+
pass
|
|
23106
|
+
|
|
23107
|
+
def _typecheckingstub__f9878a6e6680b6c2c6cb0db908c65c1de65fe68965909386c87176ba98e30705(
|
|
23108
|
+
*,
|
|
23109
|
+
cidrs: typing.Sequence[builtins.str],
|
|
23110
|
+
) -> None:
|
|
23111
|
+
"""Type checking stubs"""
|
|
23112
|
+
pass
|
|
23113
|
+
|
|
22746
23114
|
def _typecheckingstub__594b3f5a610588bf33bb1a98e98b19b5ddfb0609f59e93022c2cec8d2a17f411(
|
|
22747
23115
|
*,
|
|
22748
23116
|
namespace: builtins.str,
|
|
@@ -22889,6 +23257,7 @@ def _typecheckingstub__786576ad54eacdb9ab8e92277c0fd07f813bc56d4243937f3b5a85c0c
|
|
|
22889
23257
|
default_capacity_type: typing.Optional[DefaultCapacityType] = None,
|
|
22890
23258
|
kubectl_lambda_role: typing.Optional[_IRole_235f5d8e] = None,
|
|
22891
23259
|
tags: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
|
|
23260
|
+
kubectl_layer: _ILayerVersion_5ac127c8,
|
|
22892
23261
|
alb_controller: typing.Optional[typing.Union[AlbControllerOptions, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
22893
23262
|
authentication_mode: typing.Optional[AuthenticationMode] = None,
|
|
22894
23263
|
awscli_layer: typing.Optional[_ILayerVersion_5ac127c8] = None,
|
|
@@ -22899,13 +23268,14 @@ def _typecheckingstub__786576ad54eacdb9ab8e92277c0fd07f813bc56d4243937f3b5a85c0c
|
|
|
22899
23268
|
endpoint_access: typing.Optional[EndpointAccess] = None,
|
|
22900
23269
|
ip_family: typing.Optional[IpFamily] = None,
|
|
22901
23270
|
kubectl_environment: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
|
|
22902
|
-
kubectl_layer: typing.Optional[_ILayerVersion_5ac127c8] = None,
|
|
22903
23271
|
kubectl_memory: typing.Optional[_Size_7b441c34] = None,
|
|
22904
23272
|
masters_role: typing.Optional[_IRole_235f5d8e] = None,
|
|
22905
23273
|
on_event_layer: typing.Optional[_ILayerVersion_5ac127c8] = None,
|
|
22906
23274
|
output_masters_role_arn: typing.Optional[builtins.bool] = None,
|
|
22907
23275
|
place_cluster_handler_in_vpc: typing.Optional[builtins.bool] = None,
|
|
22908
23276
|
prune: typing.Optional[builtins.bool] = None,
|
|
23277
|
+
remote_node_networks: typing.Optional[typing.Sequence[typing.Union[RemoteNodeNetwork, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
23278
|
+
remote_pod_networks: typing.Optional[typing.Sequence[typing.Union[RemotePodNetwork, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
22909
23279
|
secrets_encryption_key: typing.Optional[_IKey_5f11635f] = None,
|
|
22910
23280
|
service_ipv4_cidr: typing.Optional[builtins.str] = None,
|
|
22911
23281
|
version: KubernetesVersion,
|
|
@@ -23125,6 +23495,7 @@ def _typecheckingstub__0b45b97fda36b43e872f90f9fe4cde65de855b50b3acfd236c1f400ef
|
|
|
23125
23495
|
security_group: typing.Optional[_ISecurityGroup_acf8a799] = None,
|
|
23126
23496
|
vpc: typing.Optional[_IVpc_f30d5663] = None,
|
|
23127
23497
|
vpc_subnets: typing.Optional[typing.Sequence[typing.Union[_SubnetSelection_e57d76df, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
23498
|
+
kubectl_layer: _ILayerVersion_5ac127c8,
|
|
23128
23499
|
alb_controller: typing.Optional[typing.Union[AlbControllerOptions, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
23129
23500
|
authentication_mode: typing.Optional[AuthenticationMode] = None,
|
|
23130
23501
|
awscli_layer: typing.Optional[_ILayerVersion_5ac127c8] = None,
|
|
@@ -23135,13 +23506,14 @@ def _typecheckingstub__0b45b97fda36b43e872f90f9fe4cde65de855b50b3acfd236c1f400ef
|
|
|
23135
23506
|
endpoint_access: typing.Optional[EndpointAccess] = None,
|
|
23136
23507
|
ip_family: typing.Optional[IpFamily] = None,
|
|
23137
23508
|
kubectl_environment: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
|
|
23138
|
-
kubectl_layer: typing.Optional[_ILayerVersion_5ac127c8] = None,
|
|
23139
23509
|
kubectl_memory: typing.Optional[_Size_7b441c34] = None,
|
|
23140
23510
|
masters_role: typing.Optional[_IRole_235f5d8e] = None,
|
|
23141
23511
|
on_event_layer: typing.Optional[_ILayerVersion_5ac127c8] = None,
|
|
23142
23512
|
output_masters_role_arn: typing.Optional[builtins.bool] = None,
|
|
23143
23513
|
place_cluster_handler_in_vpc: typing.Optional[builtins.bool] = None,
|
|
23144
23514
|
prune: typing.Optional[builtins.bool] = None,
|
|
23515
|
+
remote_node_networks: typing.Optional[typing.Sequence[typing.Union[RemoteNodeNetwork, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
23516
|
+
remote_pod_networks: typing.Optional[typing.Sequence[typing.Union[RemotePodNetwork, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
23145
23517
|
secrets_encryption_key: typing.Optional[_IKey_5f11635f] = None,
|
|
23146
23518
|
service_ipv4_cidr: typing.Optional[builtins.str] = None,
|
|
23147
23519
|
) -> None:
|
|
@@ -23158,6 +23530,7 @@ def _typecheckingstub__ce7a73a63de29ba5e5b5cd5cabde7aca1c4bc7d119de52fc4c0f11d99
|
|
|
23158
23530
|
security_group: typing.Optional[_ISecurityGroup_acf8a799] = None,
|
|
23159
23531
|
vpc: typing.Optional[_IVpc_f30d5663] = None,
|
|
23160
23532
|
vpc_subnets: typing.Optional[typing.Sequence[typing.Union[_SubnetSelection_e57d76df, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
23533
|
+
kubectl_layer: _ILayerVersion_5ac127c8,
|
|
23161
23534
|
alb_controller: typing.Optional[typing.Union[AlbControllerOptions, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
23162
23535
|
authentication_mode: typing.Optional[AuthenticationMode] = None,
|
|
23163
23536
|
awscli_layer: typing.Optional[_ILayerVersion_5ac127c8] = None,
|
|
@@ -23168,13 +23541,14 @@ def _typecheckingstub__ce7a73a63de29ba5e5b5cd5cabde7aca1c4bc7d119de52fc4c0f11d99
|
|
|
23168
23541
|
endpoint_access: typing.Optional[EndpointAccess] = None,
|
|
23169
23542
|
ip_family: typing.Optional[IpFamily] = None,
|
|
23170
23543
|
kubectl_environment: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
|
|
23171
|
-
kubectl_layer: typing.Optional[_ILayerVersion_5ac127c8] = None,
|
|
23172
23544
|
kubectl_memory: typing.Optional[_Size_7b441c34] = None,
|
|
23173
23545
|
masters_role: typing.Optional[_IRole_235f5d8e] = None,
|
|
23174
23546
|
on_event_layer: typing.Optional[_ILayerVersion_5ac127c8] = None,
|
|
23175
23547
|
output_masters_role_arn: typing.Optional[builtins.bool] = None,
|
|
23176
23548
|
place_cluster_handler_in_vpc: typing.Optional[builtins.bool] = None,
|
|
23177
23549
|
prune: typing.Optional[builtins.bool] = None,
|
|
23550
|
+
remote_node_networks: typing.Optional[typing.Sequence[typing.Union[RemoteNodeNetwork, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
23551
|
+
remote_pod_networks: typing.Optional[typing.Sequence[typing.Union[RemotePodNetwork, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
23178
23552
|
secrets_encryption_key: typing.Optional[_IKey_5f11635f] = None,
|
|
23179
23553
|
service_ipv4_cidr: typing.Optional[builtins.str] = None,
|
|
23180
23554
|
bootstrap_cluster_creator_admin_permissions: typing.Optional[builtins.bool] = None,
|
|
@@ -23192,6 +23566,7 @@ def _typecheckingstub__ae166d791f5d5176f3386726c22bc44afedf5d336437a3513e3740387
|
|
|
23192
23566
|
id: builtins.str,
|
|
23193
23567
|
*,
|
|
23194
23568
|
default_profile: typing.Optional[typing.Union[FargateProfileOptions, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
23569
|
+
kubectl_layer: _ILayerVersion_5ac127c8,
|
|
23195
23570
|
alb_controller: typing.Optional[typing.Union[AlbControllerOptions, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
23196
23571
|
authentication_mode: typing.Optional[AuthenticationMode] = None,
|
|
23197
23572
|
awscli_layer: typing.Optional[_ILayerVersion_5ac127c8] = None,
|
|
@@ -23202,13 +23577,14 @@ def _typecheckingstub__ae166d791f5d5176f3386726c22bc44afedf5d336437a3513e3740387
|
|
|
23202
23577
|
endpoint_access: typing.Optional[EndpointAccess] = None,
|
|
23203
23578
|
ip_family: typing.Optional[IpFamily] = None,
|
|
23204
23579
|
kubectl_environment: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
|
|
23205
|
-
kubectl_layer: typing.Optional[_ILayerVersion_5ac127c8] = None,
|
|
23206
23580
|
kubectl_memory: typing.Optional[_Size_7b441c34] = None,
|
|
23207
23581
|
masters_role: typing.Optional[_IRole_235f5d8e] = None,
|
|
23208
23582
|
on_event_layer: typing.Optional[_ILayerVersion_5ac127c8] = None,
|
|
23209
23583
|
output_masters_role_arn: typing.Optional[builtins.bool] = None,
|
|
23210
23584
|
place_cluster_handler_in_vpc: typing.Optional[builtins.bool] = None,
|
|
23211
23585
|
prune: typing.Optional[builtins.bool] = None,
|
|
23586
|
+
remote_node_networks: typing.Optional[typing.Sequence[typing.Union[RemoteNodeNetwork, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
23587
|
+
remote_pod_networks: typing.Optional[typing.Sequence[typing.Union[RemotePodNetwork, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
23212
23588
|
secrets_encryption_key: typing.Optional[_IKey_5f11635f] = None,
|
|
23213
23589
|
service_ipv4_cidr: typing.Optional[builtins.str] = None,
|
|
23214
23590
|
version: KubernetesVersion,
|
|
@@ -23233,6 +23609,7 @@ def _typecheckingstub__f11c7f989209f6213cb855d2846bb0b2b79a6a2b85eb0d65939e981df
|
|
|
23233
23609
|
security_group: typing.Optional[_ISecurityGroup_acf8a799] = None,
|
|
23234
23610
|
vpc: typing.Optional[_IVpc_f30d5663] = None,
|
|
23235
23611
|
vpc_subnets: typing.Optional[typing.Sequence[typing.Union[_SubnetSelection_e57d76df, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
23612
|
+
kubectl_layer: _ILayerVersion_5ac127c8,
|
|
23236
23613
|
alb_controller: typing.Optional[typing.Union[AlbControllerOptions, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
23237
23614
|
authentication_mode: typing.Optional[AuthenticationMode] = None,
|
|
23238
23615
|
awscli_layer: typing.Optional[_ILayerVersion_5ac127c8] = None,
|
|
@@ -23243,13 +23620,14 @@ def _typecheckingstub__f11c7f989209f6213cb855d2846bb0b2b79a6a2b85eb0d65939e981df
|
|
|
23243
23620
|
endpoint_access: typing.Optional[EndpointAccess] = None,
|
|
23244
23621
|
ip_family: typing.Optional[IpFamily] = None,
|
|
23245
23622
|
kubectl_environment: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
|
|
23246
|
-
kubectl_layer: typing.Optional[_ILayerVersion_5ac127c8] = None,
|
|
23247
23623
|
kubectl_memory: typing.Optional[_Size_7b441c34] = None,
|
|
23248
23624
|
masters_role: typing.Optional[_IRole_235f5d8e] = None,
|
|
23249
23625
|
on_event_layer: typing.Optional[_ILayerVersion_5ac127c8] = None,
|
|
23250
23626
|
output_masters_role_arn: typing.Optional[builtins.bool] = None,
|
|
23251
23627
|
place_cluster_handler_in_vpc: typing.Optional[builtins.bool] = None,
|
|
23252
23628
|
prune: typing.Optional[builtins.bool] = None,
|
|
23629
|
+
remote_node_networks: typing.Optional[typing.Sequence[typing.Union[RemoteNodeNetwork, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
23630
|
+
remote_pod_networks: typing.Optional[typing.Sequence[typing.Union[RemotePodNetwork, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
23253
23631
|
secrets_encryption_key: typing.Optional[_IKey_5f11635f] = None,
|
|
23254
23632
|
service_ipv4_cidr: typing.Optional[builtins.str] = None,
|
|
23255
23633
|
default_profile: typing.Optional[typing.Union[FargateProfileOptions, typing.Dict[builtins.str, typing.Any]]] = None,
|