aws-cdk-lib 2.200.2__py3-none-any.whl → 2.224.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 +1349 -373
- aws_cdk/_jsii/__init__.py +1 -1
- aws_cdk/_jsii/{aws-cdk-lib@2.200.2.jsii.tgz → aws-cdk-lib@2.224.0.jsii.tgz} +0 -0
- aws_cdk/alexa_ask/__init__.py +12 -2
- aws_cdk/aws_accessanalyzer/__init__.py +323 -6
- aws_cdk/aws_acmpca/__init__.py +53 -10
- aws_cdk/aws_aiops/__init__.py +1019 -0
- aws_cdk/aws_amazonmq/__init__.py +357 -313
- aws_cdk/aws_amplify/__init__.py +173 -17
- aws_cdk/aws_amplifyuibuilder/__init__.py +35 -6
- aws_cdk/aws_apigateway/__init__.py +1017 -155
- aws_cdk/aws_apigatewayv2/__init__.py +2796 -379
- aws_cdk/aws_apigatewayv2_integrations/__init__.py +94 -16
- aws_cdk/aws_appconfig/__init__.py +298 -43
- aws_cdk/aws_appflow/__init__.py +151 -6
- aws_cdk/aws_appintegrations/__init__.py +546 -6
- aws_cdk/aws_applicationautoscaling/__init__.py +29 -6
- aws_cdk/aws_applicationinsights/__init__.py +13 -2
- aws_cdk/aws_applicationsignals/__init__.py +374 -6
- aws_cdk/aws_appmesh/__init__.py +94 -26
- aws_cdk/aws_apprunner/__init__.py +66 -18
- aws_cdk/aws_appstream/__init__.py +309 -55
- aws_cdk/aws_appsync/__init__.py +227 -53
- aws_cdk/aws_apptest/__init__.py +71 -2
- aws_cdk/aws_aps/__init__.py +1875 -132
- aws_cdk/aws_arcregionswitch/__init__.py +5095 -0
- aws_cdk/aws_arczonalshift/__init__.py +39 -12
- aws_cdk/aws_athena/__init__.py +365 -29
- aws_cdk/aws_auditmanager/__init__.py +71 -2
- aws_cdk/aws_autoscaling/__init__.py +135 -55
- aws_cdk/aws_autoscaling_common/__init__.py +3 -0
- aws_cdk/aws_autoscalingplans/__init__.py +13 -2
- aws_cdk/aws_b2bi/__init__.py +1819 -99
- aws_cdk/aws_backup/__init__.py +317 -28
- aws_cdk/aws_backupgateway/__init__.py +13 -2
- aws_cdk/aws_batch/__init__.py +1405 -178
- aws_cdk/aws_bcmdataexports/__init__.py +21 -2
- aws_cdk/aws_bedrock/__init__.py +6747 -627
- aws_cdk/aws_bedrockagentcore/__init__.py +10425 -0
- aws_cdk/aws_billingconductor/__init__.py +197 -11
- aws_cdk/aws_budgets/__init__.py +42 -4
- aws_cdk/aws_cassandra/__init__.py +247 -6
- aws_cdk/aws_ce/__init__.py +35 -6
- aws_cdk/aws_certificatemanager/__init__.py +237 -32
- aws_cdk/aws_chatbot/__init__.py +70 -6
- aws_cdk/aws_cleanrooms/__init__.py +709 -206
- aws_cdk/aws_cleanroomsml/__init__.py +13 -2
- aws_cdk/aws_cloud9/__init__.py +13 -2
- aws_cdk/aws_cloudformation/__init__.py +345 -166
- aws_cdk/aws_cloudfront/__init__.py +2101 -680
- aws_cdk/aws_cloudfront/experimental/__init__.py +108 -16
- aws_cdk/aws_cloudfront_origins/__init__.py +614 -73
- aws_cdk/aws_cloudtrail/__init__.py +301 -17
- aws_cdk/aws_cloudwatch/__init__.py +1414 -153
- aws_cdk/aws_codeartifact/__init__.py +35 -6
- aws_cdk/aws_codebuild/__init__.py +1103 -118
- aws_cdk/aws_codecommit/__init__.py +23 -9
- aws_cdk/aws_codeconnections/__init__.py +13 -2
- aws_cdk/aws_codedeploy/__init__.py +67 -6
- aws_cdk/aws_codeguruprofiler/__init__.py +74 -2
- aws_cdk/aws_codegurureviewer/__init__.py +13 -2
- aws_cdk/aws_codepipeline/__init__.py +127 -64
- aws_cdk/aws_codepipeline_actions/__init__.py +749 -0
- aws_cdk/aws_codestar/__init__.py +13 -2
- aws_cdk/aws_codestarconnections/__init__.py +35 -6
- aws_cdk/aws_codestarnotifications/__init__.py +16 -2
- aws_cdk/aws_cognito/__init__.py +814 -80
- aws_cdk/aws_cognito_identitypool/__init__.py +17 -12
- aws_cdk/aws_comprehend/__init__.py +24 -4
- aws_cdk/aws_config/__init__.py +191 -30
- aws_cdk/aws_connect/__init__.py +2736 -191
- aws_cdk/aws_connectcampaigns/__init__.py +13 -2
- aws_cdk/aws_connectcampaignsv2/__init__.py +268 -6
- aws_cdk/aws_controltower/__init__.py +35 -6
- aws_cdk/aws_cur/__init__.py +100 -4
- aws_cdk/aws_customerprofiles/__init__.py +617 -27
- aws_cdk/aws_databrew/__init__.py +68 -12
- aws_cdk/aws_datapipeline/__init__.py +42 -2
- aws_cdk/aws_datasync/__init__.py +723 -203
- aws_cdk/aws_datazone/__init__.py +4425 -608
- aws_cdk/aws_dax/__init__.py +83 -6
- aws_cdk/aws_deadline/__init__.py +321 -32
- aws_cdk/aws_detective/__init__.py +35 -6
- aws_cdk/aws_devicefarm/__init__.py +68 -12
- aws_cdk/aws_devopsguru/__init__.py +37 -6
- aws_cdk/aws_directoryservice/__init__.py +53 -4
- aws_cdk/aws_dlm/__init__.py +13 -2
- aws_cdk/aws_dms/__init__.py +184 -27
- aws_cdk/aws_docdb/__init__.py +323 -46
- aws_cdk/aws_docdbelastic/__init__.py +13 -2
- aws_cdk/aws_dsql/__init__.py +340 -12
- aws_cdk/aws_dynamodb/__init__.py +1463 -166
- aws_cdk/aws_ec2/__init__.py +9636 -1120
- aws_cdk/aws_ecr/__init__.py +631 -43
- aws_cdk/aws_ecr_assets/__init__.py +4 -0
- aws_cdk/aws_ecs/__init__.py +6524 -497
- aws_cdk/aws_ecs_patterns/__init__.py +2 -0
- aws_cdk/aws_efs/__init__.py +264 -24
- aws_cdk/aws_eks/__init__.py +1050 -218
- aws_cdk/aws_elasticache/__init__.py +373 -20
- aws_cdk/aws_elasticbeanstalk/__init__.py +75 -8
- aws_cdk/aws_elasticloadbalancing/__init__.py +16 -2
- aws_cdk/aws_elasticloadbalancingv2/__init__.py +1670 -106
- aws_cdk/aws_elasticsearch/__init__.py +282 -9
- aws_cdk/aws_emr/__init__.py +187 -20
- aws_cdk/aws_emrcontainers/__init__.py +71 -2
- aws_cdk/aws_emrserverless/__init__.py +188 -3
- aws_cdk/aws_entityresolution/__init__.py +585 -58
- aws_cdk/aws_events/__init__.py +969 -124
- aws_cdk/aws_events_targets/__init__.py +310 -54
- aws_cdk/aws_eventschemas/__init__.py +46 -8
- aws_cdk/aws_evidently/__init__.py +57 -10
- aws_cdk/aws_evs/__init__.py +2244 -0
- aws_cdk/aws_finspace/__init__.py +71 -2
- aws_cdk/aws_fis/__init__.py +26 -4
- aws_cdk/aws_fms/__init__.py +35 -6
- aws_cdk/aws_forecast/__init__.py +24 -4
- aws_cdk/aws_frauddetector/__init__.py +79 -14
- aws_cdk/aws_fsx/__init__.py +1236 -142
- aws_cdk/aws_gamelift/__init__.py +653 -78
- aws_cdk/aws_gameliftstreams/__init__.py +38 -16
- aws_cdk/aws_globalaccelerator/__init__.py +55 -14
- aws_cdk/aws_glue/__init__.py +1368 -320
- aws_cdk/aws_grafana/__init__.py +13 -2
- aws_cdk/aws_greengrass/__init__.py +654 -32
- aws_cdk/aws_greengrassv2/__init__.py +53 -4
- aws_cdk/aws_groundstation/__init__.py +122 -6
- aws_cdk/aws_guardduty/__init__.py +1613 -123
- aws_cdk/aws_healthimaging/__init__.py +71 -2
- aws_cdk/aws_healthlake/__init__.py +42 -2
- aws_cdk/aws_iam/__init__.py +480 -140
- aws_cdk/aws_identitystore/__init__.py +24 -4
- aws_cdk/aws_imagebuilder/__init__.py +1433 -183
- aws_cdk/aws_inspector/__init__.py +38 -6
- aws_cdk/aws_inspectorv2/__init__.py +2285 -243
- aws_cdk/aws_internetmonitor/__init__.py +71 -2
- aws_cdk/aws_invoicing/__init__.py +13 -2
- aws_cdk/aws_iot/__init__.py +1730 -86
- aws_cdk/aws_iotanalytics/__init__.py +162 -8
- aws_cdk/aws_iotcoredeviceadvisor/__init__.py +106 -40
- aws_cdk/aws_iotevents/__init__.py +122 -6
- aws_cdk/aws_iotfleethub/__init__.py +71 -2
- aws_cdk/aws_iotfleetwise/__init__.py +195 -14
- aws_cdk/aws_iotsitewise/__init__.py +1837 -89
- aws_cdk/aws_iotthingsgraph/__init__.py +13 -2
- aws_cdk/aws_iottwinmaker/__init__.py +115 -10
- aws_cdk/aws_iotwireless/__init__.py +649 -22
- aws_cdk/aws_ivs/__init__.py +561 -57
- aws_cdk/aws_ivschat/__init__.py +24 -4
- aws_cdk/aws_kafkaconnect/__init__.py +35 -6
- aws_cdk/aws_kendra/__init__.py +120 -28
- aws_cdk/aws_kendraranking/__init__.py +13 -2
- aws_cdk/aws_kinesis/__init__.py +622 -22
- aws_cdk/aws_kinesisanalytics/__init__.py +467 -94
- aws_cdk/aws_kinesisanalyticsv2/__init__.py +201 -11
- aws_cdk/aws_kinesisfirehose/__init__.py +3077 -295
- aws_cdk/aws_kinesisvideo/__init__.py +24 -4
- aws_cdk/aws_kms/__init__.py +188 -41
- aws_cdk/aws_lakeformation/__init__.py +80 -15
- aws_cdk/aws_lambda/__init__.py +2101 -252
- aws_cdk/aws_lambda_event_sources/__init__.py +638 -1
- aws_cdk/aws_lambda_nodejs/__init__.py +63 -24
- aws_cdk/aws_launchwizard/__init__.py +13 -2
- aws_cdk/aws_lex/__init__.py +871 -8
- aws_cdk/aws_licensemanager/__init__.py +24 -4
- aws_cdk/aws_lightsail/__init__.py +2159 -975
- aws_cdk/aws_location/__init__.py +618 -14
- aws_cdk/aws_logs/__init__.py +5904 -956
- aws_cdk/aws_lookoutequipment/__init__.py +13 -2
- aws_cdk/aws_lookoutmetrics/__init__.py +38 -6
- aws_cdk/aws_lookoutvision/__init__.py +71 -2
- aws_cdk/aws_m2/__init__.py +94 -19
- aws_cdk/aws_macie/__init__.py +49 -11
- aws_cdk/aws_managedblockchain/__init__.py +180 -6
- aws_cdk/aws_mediaconnect/__init__.py +101 -18
- aws_cdk/aws_mediaconvert/__init__.py +35 -6
- aws_cdk/aws_medialive/__init__.py +1239 -35
- aws_cdk/aws_mediapackage/__init__.py +59 -12
- aws_cdk/aws_mediapackagev2/__init__.py +1607 -225
- aws_cdk/aws_mediastore/__init__.py +13 -2
- aws_cdk/aws_mediatailor/__init__.py +583 -12
- aws_cdk/aws_memorydb/__init__.py +271 -12
- aws_cdk/aws_mpa/__init__.py +1495 -0
- aws_cdk/aws_msk/__init__.py +104 -18
- aws_cdk/aws_mwaa/__init__.py +121 -9
- aws_cdk/aws_neptune/__init__.py +290 -78
- aws_cdk/aws_neptunegraph/__init__.py +24 -4
- aws_cdk/aws_networkfirewall/__init__.py +1289 -273
- aws_cdk/aws_networkmanager/__init__.py +349 -33
- aws_cdk/aws_nimblestudio/__init__.py +75 -8
- aws_cdk/aws_notifications/__init__.py +317 -12
- aws_cdk/aws_notificationscontacts/__init__.py +13 -2
- aws_cdk/aws_oam/__init__.py +24 -4
- aws_cdk/aws_observabilityadmin/__init__.py +2561 -0
- aws_cdk/aws_odb/__init__.py +5872 -0
- aws_cdk/aws_omics/__init__.py +2495 -529
- aws_cdk/aws_opensearchserverless/__init__.py +312 -37
- aws_cdk/aws_opensearchservice/__init__.py +495 -19
- aws_cdk/aws_opsworks/__init__.py +235 -139
- aws_cdk/aws_opsworkscm/__init__.py +16 -52
- aws_cdk/aws_organizations/__init__.py +70 -10
- aws_cdk/aws_osis/__init__.py +167 -2
- aws_cdk/aws_panorama/__init__.py +151 -6
- aws_cdk/aws_paymentcryptography/__init__.py +24 -4
- aws_cdk/aws_pcaconnectorad/__init__.py +59 -10
- aws_cdk/aws_pcaconnectorscep/__init__.py +24 -4
- aws_cdk/aws_pcs/__init__.py +387 -68
- aws_cdk/aws_personalize/__init__.py +46 -8
- aws_cdk/aws_pinpoint/__init__.py +329 -38
- aws_cdk/aws_pinpointemail/__init__.py +48 -8
- aws_cdk/aws_pipes/__init__.py +12 -2
- aws_cdk/aws_proton/__init__.py +37 -6
- aws_cdk/aws_qbusiness/__init__.py +635 -34
- aws_cdk/aws_qldb/__init__.py +24 -4
- aws_cdk/aws_quicksight/__init__.py +7900 -1160
- aws_cdk/aws_ram/__init__.py +24 -4
- aws_cdk/aws_rbin/__init__.py +12 -2
- aws_cdk/aws_rds/__init__.py +3345 -512
- aws_cdk/aws_redshift/__init__.py +143 -20
- aws_cdk/aws_redshiftserverless/__init__.py +692 -4
- aws_cdk/aws_refactorspaces/__init__.py +64 -14
- aws_cdk/aws_rekognition/__init__.py +93 -6
- aws_cdk/aws_resiliencehub/__init__.py +24 -4
- aws_cdk/aws_resourceexplorer2/__init__.py +35 -6
- aws_cdk/aws_resourcegroups/__init__.py +82 -4
- aws_cdk/aws_robomaker/__init__.py +72 -12
- aws_cdk/aws_rolesanywhere/__init__.py +180 -6
- aws_cdk/aws_route53/__init__.py +3273 -1442
- aws_cdk/aws_route53_targets/__init__.py +3 -0
- aws_cdk/aws_route53profiles/__init__.py +37 -6
- aws_cdk/aws_route53recoverycontrol/__init__.py +46 -8
- aws_cdk/aws_route53recoveryreadiness/__init__.py +104 -8
- aws_cdk/aws_route53resolver/__init__.py +226 -36
- aws_cdk/aws_rtbfabric/__init__.py +3498 -0
- aws_cdk/aws_rum/__init__.py +13 -2
- aws_cdk/aws_s3/__init__.py +1291 -158
- aws_cdk/aws_s3_assets/__init__.py +11 -11
- aws_cdk/aws_s3_deployment/__init__.py +147 -11
- aws_cdk/aws_s3_notifications/__init__.py +7 -7
- aws_cdk/aws_s3express/__init__.py +266 -8
- aws_cdk/aws_s3objectlambda/__init__.py +68 -16
- aws_cdk/aws_s3outposts/__init__.py +46 -8
- aws_cdk/aws_s3tables/__init__.py +2000 -323
- aws_cdk/aws_s3vectors/__init__.py +1378 -0
- aws_cdk/aws_sagemaker/__init__.py +6617 -363
- aws_cdk/aws_sam/__init__.py +79 -14
- aws_cdk/aws_scheduler/__init__.py +237 -4
- aws_cdk/aws_sdb/__init__.py +12 -2
- aws_cdk/aws_secretsmanager/__init__.py +170 -14
- aws_cdk/aws_securityhub/__init__.py +3121 -176
- aws_cdk/aws_securitylake/__init__.py +46 -8
- aws_cdk/aws_servicecatalog/__init__.py +405 -246
- aws_cdk/aws_servicecatalogappregistry/__init__.py +164 -8
- aws_cdk/aws_servicediscovery/__init__.py +140 -47
- aws_cdk/aws_ses/__init__.py +1231 -140
- aws_cdk/aws_shield/__init__.py +46 -8
- aws_cdk/aws_signer/__init__.py +27 -4
- aws_cdk/aws_simspaceweaver/__init__.py +42 -2
- aws_cdk/aws_smsvoice/__init__.py +4716 -0
- aws_cdk/aws_sns/__init__.py +245 -29
- aws_cdk/aws_sns_subscriptions/__init__.py +3 -1
- aws_cdk/aws_sqs/__init__.py +211 -14
- aws_cdk/aws_ssm/__init__.py +401 -58
- aws_cdk/aws_ssmcontacts/__init__.py +46 -8
- aws_cdk/aws_ssmguiconnect/__init__.py +13 -2
- aws_cdk/aws_ssmincidents/__init__.py +24 -4
- aws_cdk/aws_ssmquicksetup/__init__.py +383 -6
- aws_cdk/aws_sso/__init__.py +70 -12
- aws_cdk/aws_stepfunctions/__init__.py +615 -70
- aws_cdk/aws_stepfunctions_tasks/__init__.py +781 -144
- aws_cdk/aws_supportapp/__init__.py +39 -6
- aws_cdk/aws_synthetics/__init__.py +861 -75
- aws_cdk/aws_systemsmanagersap/__init__.py +13 -2
- aws_cdk/aws_timestream/__init__.py +104 -8
- aws_cdk/aws_transfer/__init__.py +784 -87
- aws_cdk/aws_verifiedpermissions/__init__.py +145 -17
- aws_cdk/aws_voiceid/__init__.py +41 -2
- aws_cdk/aws_vpclattice/__init__.py +376 -30
- aws_cdk/aws_waf/__init__.py +79 -14
- aws_cdk/aws_wafregional/__init__.py +123 -22
- aws_cdk/aws_wafv2/__init__.py +1179 -60
- aws_cdk/aws_wisdom/__init__.py +1401 -90
- aws_cdk/aws_workspaces/__init__.py +93 -6
- aws_cdk/aws_workspacesinstances/__init__.py +3940 -0
- aws_cdk/aws_workspacesthinclient/__init__.py +79 -10
- aws_cdk/aws_workspacesweb/__init__.py +1057 -141
- aws_cdk/aws_xray/__init__.py +48 -8
- aws_cdk/cloud_assembly_schema/__init__.py +231 -6
- aws_cdk/custom_resources/__init__.py +40 -12
- aws_cdk/cx_api/__init__.py +85 -14
- aws_cdk/interfaces/__init__.py +739 -0
- aws_cdk/interfaces/alexa_ask/__init__.py +146 -0
- aws_cdk/interfaces/aws_accessanalyzer/__init__.py +146 -0
- aws_cdk/interfaces/aws_acmpca/__init__.py +501 -0
- aws_cdk/interfaces/aws_aiops/__init__.py +146 -0
- aws_cdk/interfaces/aws_amazonmq/__init__.py +386 -0
- aws_cdk/interfaces/aws_amplify/__init__.py +352 -0
- aws_cdk/interfaces/aws_amplifyuibuilder/__init__.py +454 -0
- aws_cdk/interfaces/aws_apigateway/__init__.py +2486 -0
- aws_cdk/interfaces/aws_apigatewayv2/__init__.py +1651 -0
- aws_cdk/interfaces/aws_appconfig/__init__.py +1020 -0
- aws_cdk/interfaces/aws_appflow/__init__.py +404 -0
- aws_cdk/interfaces/aws_appintegrations/__init__.py +396 -0
- aws_cdk/interfaces/aws_applicationautoscaling/__init__.py +307 -0
- aws_cdk/interfaces/aws_applicationinsights/__init__.py +148 -0
- aws_cdk/interfaces/aws_applicationsignals/__init__.py +358 -0
- aws_cdk/interfaces/aws_appmesh/__init__.py +888 -0
- aws_cdk/interfaces/aws_apprunner/__init__.py +564 -0
- aws_cdk/interfaces/aws_appstream/__init__.py +1482 -0
- aws_cdk/interfaces/aws_appsync/__init__.py +1326 -0
- aws_cdk/interfaces/aws_apptest/__init__.py +163 -0
- aws_cdk/interfaces/aws_aps/__init__.py +558 -0
- aws_cdk/interfaces/aws_arcregionswitch/__init__.py +146 -0
- aws_cdk/interfaces/aws_arczonalshift/__init__.py +273 -0
- aws_cdk/interfaces/aws_athena/__init__.py +575 -0
- aws_cdk/interfaces/aws_auditmanager/__init__.py +163 -0
- aws_cdk/interfaces/aws_autoscaling/__init__.py +705 -0
- aws_cdk/interfaces/aws_autoscalingplans/__init__.py +148 -0
- aws_cdk/interfaces/aws_b2bi/__init__.py +524 -0
- aws_cdk/interfaces/aws_backup/__init__.py +955 -0
- aws_cdk/interfaces/aws_backupgateway/__init__.py +146 -0
- aws_cdk/interfaces/aws_batch/__init__.py +681 -0
- aws_cdk/interfaces/aws_bcmdataexports/__init__.py +146 -0
- aws_cdk/interfaces/aws_bedrock/__init__.py +1942 -0
- aws_cdk/interfaces/aws_bedrockagentcore/__init__.py +934 -0
- aws_cdk/interfaces/aws_billing/__init__.py +146 -0
- aws_cdk/interfaces/aws_billingconductor/__init__.py +463 -0
- aws_cdk/interfaces/aws_budgets/__init__.py +261 -0
- aws_cdk/interfaces/aws_cassandra/__init__.py +381 -0
- aws_cdk/interfaces/aws_ce/__init__.py +352 -0
- aws_cdk/interfaces/aws_certificatemanager/__init__.py +251 -0
- aws_cdk/interfaces/aws_chatbot/__init__.py +366 -0
- aws_cdk/interfaces/aws_cleanrooms/__init__.py +1103 -0
- aws_cdk/interfaces/aws_cleanroomsml/__init__.py +148 -0
- aws_cdk/interfaces/aws_cloud9/__init__.py +166 -0
- aws_cdk/interfaces/aws_cloudformation/__init__.py +1919 -0
- aws_cdk/interfaces/aws_cloudfront/__init__.py +1998 -0
- aws_cdk/interfaces/aws_cloudtrail/__init__.py +570 -0
- aws_cdk/interfaces/aws_cloudwatch/__init__.py +733 -0
- aws_cdk/interfaces/aws_codeartifact/__init__.py +352 -0
- aws_cdk/interfaces/aws_codebuild/__init__.py +487 -0
- aws_cdk/interfaces/aws_codecommit/__init__.py +163 -0
- aws_cdk/interfaces/aws_codeconnections/__init__.py +146 -0
- aws_cdk/interfaces/aws_codedeploy/__init__.py +352 -0
- aws_cdk/interfaces/aws_codeguruprofiler/__init__.py +168 -0
- aws_cdk/interfaces/aws_codegurureviewer/__init__.py +148 -0
- aws_cdk/interfaces/aws_codepipeline/__init__.py +388 -0
- aws_cdk/interfaces/aws_codestar/__init__.py +146 -0
- aws_cdk/interfaces/aws_codestarconnections/__init__.py +370 -0
- aws_cdk/interfaces/aws_codestarnotifications/__init__.py +148 -0
- aws_cdk/interfaces/aws_cognito/__init__.py +1929 -0
- aws_cdk/interfaces/aws_comprehend/__init__.py +251 -0
- aws_cdk/interfaces/aws_config/__init__.py +1165 -0
- aws_cdk/interfaces/aws_connect/__init__.py +2949 -0
- aws_cdk/interfaces/aws_connectcampaigns/__init__.py +146 -0
- aws_cdk/interfaces/aws_connectcampaignsv2/__init__.py +146 -0
- aws_cdk/interfaces/aws_controltower/__init__.py +394 -0
- aws_cdk/interfaces/aws_cur/__init__.py +146 -0
- aws_cdk/interfaces/aws_customerprofiles/__init__.py +915 -0
- aws_cdk/interfaces/aws_databrew/__init__.py +661 -0
- aws_cdk/interfaces/aws_datapipeline/__init__.py +146 -0
- aws_cdk/interfaces/aws_datasync/__init__.py +1384 -0
- aws_cdk/interfaces/aws_datazone/__init__.py +2238 -0
- aws_cdk/interfaces/aws_dax/__init__.py +364 -0
- aws_cdk/interfaces/aws_deadline/__init__.py +1303 -0
- aws_cdk/interfaces/aws_detective/__init__.py +364 -0
- aws_cdk/interfaces/aws_devicefarm/__init__.py +663 -0
- aws_cdk/interfaces/aws_devopsguru/__init__.py +362 -0
- aws_cdk/interfaces/aws_directoryservice/__init__.py +251 -0
- aws_cdk/interfaces/aws_dlm/__init__.py +166 -0
- aws_cdk/interfaces/aws_dms/__init__.py +1176 -0
- aws_cdk/interfaces/aws_docdb/__init__.py +560 -0
- aws_cdk/interfaces/aws_docdbelastic/__init__.py +146 -0
- aws_cdk/interfaces/aws_dsql/__init__.py +146 -0
- aws_cdk/interfaces/aws_dynamodb/__init__.py +278 -0
- aws_cdk/interfaces/aws_ec2/__init__.py +11963 -0
- aws_cdk/interfaces/aws_ecr/__init__.py +814 -0
- aws_cdk/interfaces/aws_ecs/__init__.py +845 -0
- aws_cdk/interfaces/aws_efs/__init__.py +392 -0
- aws_cdk/interfaces/aws_eks/__init__.py +948 -0
- aws_cdk/interfaces/aws_elasticache/__init__.py +1108 -0
- aws_cdk/interfaces/aws_elasticbeanstalk/__init__.py +503 -0
- aws_cdk/interfaces/aws_elasticloadbalancing/__init__.py +148 -0
- aws_cdk/interfaces/aws_elasticloadbalancingv2/__init__.py +795 -0
- aws_cdk/interfaces/aws_elasticsearch/__init__.py +158 -0
- aws_cdk/interfaces/aws_emr/__init__.py +913 -0
- aws_cdk/interfaces/aws_emrcontainers/__init__.py +168 -0
- aws_cdk/interfaces/aws_emrserverless/__init__.py +166 -0
- aws_cdk/interfaces/aws_entityresolution/__init__.py +608 -0
- aws_cdk/interfaces/aws_events/__init__.py +872 -0
- aws_cdk/interfaces/aws_eventschemas/__init__.py +455 -0
- aws_cdk/interfaces/aws_evidently/__init__.py +558 -0
- aws_cdk/interfaces/aws_evs/__init__.py +166 -0
- aws_cdk/interfaces/aws_finspace/__init__.py +166 -0
- aws_cdk/interfaces/aws_fis/__init__.py +271 -0
- aws_cdk/interfaces/aws_fms/__init__.py +364 -0
- aws_cdk/interfaces/aws_forecast/__init__.py +249 -0
- aws_cdk/interfaces/aws_frauddetector/__init__.py +764 -0
- aws_cdk/interfaces/aws_fsx/__init__.py +663 -0
- aws_cdk/interfaces/aws_gamelift/__init__.py +1325 -0
- aws_cdk/interfaces/aws_gameliftstreams/__init__.py +249 -0
- aws_cdk/interfaces/aws_globalaccelerator/__init__.py +461 -0
- aws_cdk/interfaces/aws_glue/__init__.py +2377 -0
- aws_cdk/interfaces/aws_grafana/__init__.py +146 -0
- aws_cdk/interfaces/aws_greengrass/__init__.py +1871 -0
- aws_cdk/interfaces/aws_greengrassv2/__init__.py +251 -0
- aws_cdk/interfaces/aws_groundstation/__init__.py +396 -0
- aws_cdk/interfaces/aws_guardduty/__init__.py +1225 -0
- aws_cdk/interfaces/aws_healthimaging/__init__.py +163 -0
- aws_cdk/interfaces/aws_healthlake/__init__.py +146 -0
- aws_cdk/interfaces/aws_iam/__init__.py +1803 -0
- aws_cdk/interfaces/aws_identitystore/__init__.py +288 -0
- aws_cdk/interfaces/aws_imagebuilder/__init__.py +984 -0
- aws_cdk/interfaces/aws_inspector/__init__.py +354 -0
- aws_cdk/interfaces/aws_inspectorv2/__init__.py +467 -0
- aws_cdk/interfaces/aws_internetmonitor/__init__.py +163 -0
- aws_cdk/interfaces/aws_invoicing/__init__.py +146 -0
- aws_cdk/interfaces/aws_iot/__init__.py +3483 -0
- aws_cdk/interfaces/aws_iotanalytics/__init__.py +455 -0
- aws_cdk/interfaces/aws_iotcoredeviceadvisor/__init__.py +168 -0
- aws_cdk/interfaces/aws_iotevents/__init__.py +352 -0
- aws_cdk/interfaces/aws_iotfleethub/__init__.py +166 -0
- aws_cdk/interfaces/aws_iotfleetwise/__init__.py +892 -0
- aws_cdk/interfaces/aws_iotsitewise/__init__.py +1097 -0
- aws_cdk/interfaces/aws_iotthingsgraph/__init__.py +146 -0
- aws_cdk/interfaces/aws_iottwinmaker/__init__.py +711 -0
- aws_cdk/interfaces/aws_iotwireless/__init__.py +1401 -0
- aws_cdk/interfaces/aws_ivs/__init__.py +1075 -0
- aws_cdk/interfaces/aws_ivschat/__init__.py +251 -0
- aws_cdk/interfaces/aws_kafkaconnect/__init__.py +354 -0
- aws_cdk/interfaces/aws_kendra/__init__.py +428 -0
- aws_cdk/interfaces/aws_kendraranking/__init__.py +166 -0
- aws_cdk/interfaces/aws_kinesis/__init__.py +364 -0
- aws_cdk/interfaces/aws_kinesisanalytics/__init__.py +364 -0
- aws_cdk/interfaces/aws_kinesisanalyticsv2/__init__.py +479 -0
- aws_cdk/interfaces/aws_kinesisfirehose/__init__.py +168 -0
- aws_cdk/interfaces/aws_kinesisvideo/__init__.py +283 -0
- aws_cdk/interfaces/aws_kms/__init__.py +376 -0
- aws_cdk/interfaces/aws_lakeformation/__init__.py +860 -0
- aws_cdk/interfaces/aws_lambda/__init__.py +1141 -0
- aws_cdk/interfaces/aws_launchwizard/__init__.py +146 -0
- aws_cdk/interfaces/aws_lex/__init__.py +513 -0
- aws_cdk/interfaces/aws_licensemanager/__init__.py +249 -0
- aws_cdk/interfaces/aws_lightsail/__init__.py +1744 -0
- aws_cdk/interfaces/aws_location/__init__.py +879 -0
- aws_cdk/interfaces/aws_logs/__init__.py +1667 -0
- aws_cdk/interfaces/aws_lookoutequipment/__init__.py +168 -0
- aws_cdk/interfaces/aws_lookoutmetrics/__init__.py +251 -0
- aws_cdk/interfaces/aws_lookoutvision/__init__.py +163 -0
- aws_cdk/interfaces/aws_m2/__init__.py +352 -0
- aws_cdk/interfaces/aws_macie/__init__.py +512 -0
- aws_cdk/interfaces/aws_managedblockchain/__init__.py +381 -0
- aws_cdk/interfaces/aws_mediaconnect/__init__.py +1028 -0
- aws_cdk/interfaces/aws_mediaconvert/__init__.py +396 -0
- aws_cdk/interfaces/aws_medialive/__init__.py +1755 -0
- aws_cdk/interfaces/aws_mediapackage/__init__.py +644 -0
- aws_cdk/interfaces/aws_mediapackagev2/__init__.py +618 -0
- aws_cdk/interfaces/aws_mediastore/__init__.py +146 -0
- aws_cdk/interfaces/aws_mediatailor/__init__.py +788 -0
- aws_cdk/interfaces/aws_memorydb/__init__.py +685 -0
- aws_cdk/interfaces/aws_mpa/__init__.py +249 -0
- aws_cdk/interfaces/aws_msk/__init__.py +764 -0
- aws_cdk/interfaces/aws_mwaa/__init__.py +166 -0
- aws_cdk/interfaces/aws_neptune/__init__.py +663 -0
- aws_cdk/interfaces/aws_neptunegraph/__init__.py +265 -0
- aws_cdk/interfaces/aws_networkfirewall/__init__.py +669 -0
- aws_cdk/interfaces/aws_networkmanager/__init__.py +1832 -0
- aws_cdk/interfaces/aws_nimblestudio/__init__.py +388 -0
- aws_cdk/interfaces/aws_notifications/__init__.py +868 -0
- aws_cdk/interfaces/aws_notificationscontacts/__init__.py +148 -0
- aws_cdk/interfaces/aws_oam/__init__.py +249 -0
- aws_cdk/interfaces/aws_observabilityadmin/__init__.py +362 -0
- aws_cdk/interfaces/aws_odb/__init__.py +562 -0
- aws_cdk/interfaces/aws_omics/__init__.py +838 -0
- aws_cdk/interfaces/aws_opensearchserverless/__init__.py +859 -0
- aws_cdk/interfaces/aws_opensearchservice/__init__.py +283 -0
- aws_cdk/interfaces/aws_opsworks/__init__.py +772 -0
- aws_cdk/interfaces/aws_opsworkscm/__init__.py +146 -0
- aws_cdk/interfaces/aws_organizations/__init__.py +646 -0
- aws_cdk/interfaces/aws_osis/__init__.py +146 -0
- aws_cdk/interfaces/aws_panorama/__init__.py +420 -0
- aws_cdk/interfaces/aws_paymentcryptography/__init__.py +249 -0
- aws_cdk/interfaces/aws_pcaconnectorad/__init__.py +608 -0
- aws_cdk/interfaces/aws_pcaconnectorscep/__init__.py +249 -0
- aws_cdk/interfaces/aws_pcs/__init__.py +352 -0
- aws_cdk/interfaces/aws_personalize/__init__.py +455 -0
- aws_cdk/interfaces/aws_pinpoint/__init__.py +2125 -0
- aws_cdk/interfaces/aws_pinpointemail/__init__.py +467 -0
- aws_cdk/interfaces/aws_pipes/__init__.py +158 -0
- aws_cdk/interfaces/aws_proton/__init__.py +360 -0
- aws_cdk/interfaces/aws_qbusiness/__init__.py +1122 -0
- aws_cdk/interfaces/aws_qldb/__init__.py +283 -0
- aws_cdk/interfaces/aws_quicksight/__init__.py +1566 -0
- aws_cdk/interfaces/aws_ram/__init__.py +249 -0
- aws_cdk/interfaces/aws_rbin/__init__.py +146 -0
- aws_cdk/interfaces/aws_rds/__init__.py +1780 -0
- aws_cdk/interfaces/aws_redshift/__init__.py +1104 -0
- aws_cdk/interfaces/aws_redshiftserverless/__init__.py +356 -0
- aws_cdk/interfaces/aws_refactorspaces/__init__.py +605 -0
- aws_cdk/interfaces/aws_rekognition/__init__.py +406 -0
- aws_cdk/interfaces/aws_resiliencehub/__init__.py +251 -0
- aws_cdk/interfaces/aws_resourceexplorer2/__init__.py +354 -0
- aws_cdk/interfaces/aws_resourcegroups/__init__.py +261 -0
- aws_cdk/interfaces/aws_robomaker/__init__.py +673 -0
- aws_cdk/interfaces/aws_rolesanywhere/__init__.py +384 -0
- aws_cdk/interfaces/aws_route53/__init__.py +804 -0
- aws_cdk/interfaces/aws_route53profiles/__init__.py +368 -0
- aws_cdk/interfaces/aws_route53recoverycontrol/__init__.py +463 -0
- aws_cdk/interfaces/aws_route53recoveryreadiness/__init__.py +535 -0
- aws_cdk/interfaces/aws_route53resolver/__init__.py +1356 -0
- aws_cdk/interfaces/aws_rtbfabric/__init__.py +352 -0
- aws_cdk/interfaces/aws_rum/__init__.py +146 -0
- aws_cdk/interfaces/aws_s3/__init__.py +1171 -0
- aws_cdk/interfaces/aws_s3express/__init__.py +392 -0
- aws_cdk/interfaces/aws_s3objectlambda/__init__.py +271 -0
- aws_cdk/interfaces/aws_s3outposts/__init__.py +455 -0
- aws_cdk/interfaces/aws_s3tables/__init__.py +575 -0
- aws_cdk/interfaces/aws_s3vectors/__init__.py +354 -0
- aws_cdk/interfaces/aws_sagemaker/__init__.py +3797 -0
- aws_cdk/interfaces/aws_sam/__init__.py +603 -0
- aws_cdk/interfaces/aws_scheduler/__init__.py +286 -0
- aws_cdk/interfaces/aws_sdb/__init__.py +146 -0
- aws_cdk/interfaces/aws_secretsmanager/__init__.py +461 -0
- aws_cdk/interfaces/aws_securityhub/__init__.py +1499 -0
- aws_cdk/interfaces/aws_securitylake/__init__.py +474 -0
- aws_cdk/interfaces/aws_servicecatalog/__init__.py +1829 -0
- aws_cdk/interfaces/aws_servicecatalogappregistry/__init__.py +557 -0
- aws_cdk/interfaces/aws_servicediscovery/__init__.py +636 -0
- aws_cdk/interfaces/aws_ses/__init__.py +2018 -0
- aws_cdk/interfaces/aws_shield/__init__.py +455 -0
- aws_cdk/interfaces/aws_signer/__init__.py +266 -0
- aws_cdk/interfaces/aws_simspaceweaver/__init__.py +146 -0
- aws_cdk/interfaces/aws_smsvoice/__init__.py +892 -0
- aws_cdk/interfaces/aws_sns/__init__.py +455 -0
- aws_cdk/interfaces/aws_sqs/__init__.py +364 -0
- aws_cdk/interfaces/aws_ssm/__init__.py +982 -0
- aws_cdk/interfaces/aws_ssmcontacts/__init__.py +455 -0
- aws_cdk/interfaces/aws_ssmguiconnect/__init__.py +146 -0
- aws_cdk/interfaces/aws_ssmincidents/__init__.py +249 -0
- aws_cdk/interfaces/aws_ssmquicksetup/__init__.py +253 -0
- aws_cdk/interfaces/aws_sso/__init__.py +797 -0
- aws_cdk/interfaces/aws_stepfunctions/__init__.py +459 -0
- aws_cdk/interfaces/aws_supportapp/__init__.py +372 -0
- aws_cdk/interfaces/aws_synthetics/__init__.py +249 -0
- aws_cdk/interfaces/aws_systemsmanagersap/__init__.py +148 -0
- aws_cdk/interfaces/aws_timestream/__init__.py +526 -0
- aws_cdk/interfaces/aws_transfer/__init__.py +967 -0
- aws_cdk/interfaces/aws_verifiedpermissions/__init__.py +538 -0
- aws_cdk/interfaces/aws_voiceid/__init__.py +146 -0
- aws_cdk/interfaces/aws_vpclattice/__init__.py +1418 -0
- aws_cdk/interfaces/aws_waf/__init__.py +764 -0
- aws_cdk/interfaces/aws_wafregional/__init__.py +1182 -0
- aws_cdk/interfaces/aws_wafv2/__init__.py +870 -0
- aws_cdk/interfaces/aws_wisdom/__init__.py +1556 -0
- aws_cdk/interfaces/aws_workspaces/__init__.py +352 -0
- aws_cdk/interfaces/aws_workspacesinstances/__init__.py +390 -0
- aws_cdk/interfaces/aws_workspacesthinclient/__init__.py +168 -0
- aws_cdk/interfaces/aws_workspacesweb/__init__.py +1085 -0
- aws_cdk/interfaces/aws_xray/__init__.py +457 -0
- aws_cdk/pipelines/__init__.py +192 -42
- aws_cdk/region_info/__init__.py +3 -0
- aws_cdk/triggers/__init__.py +60 -18
- {aws_cdk_lib-2.200.2.dist-info → aws_cdk_lib-2.224.0.dist-info}/METADATA +338 -16
- aws_cdk_lib-2.224.0.dist-info/RECORD +584 -0
- aws_cdk_lib-2.200.2.dist-info/RECORD +0 -304
- {aws_cdk_lib-2.200.2.dist-info → aws_cdk_lib-2.224.0.dist-info}/LICENSE +0 -0
- {aws_cdk_lib-2.200.2.dist-info → aws_cdk_lib-2.224.0.dist-info}/NOTICE +0 -0
- {aws_cdk_lib-2.200.2.dist-info → aws_cdk_lib-2.224.0.dist-info}/WHEEL +0 -0
- {aws_cdk_lib-2.200.2.dist-info → aws_cdk_lib-2.224.0.dist-info}/top_level.txt +0 -0
aws_cdk/aws_eks/__init__.py
CHANGED
|
@@ -79,13 +79,13 @@ This example defines an Amazon EKS cluster with the following configuration:
|
|
|
79
79
|
* A Kubernetes pod with a container based on the [paulbouwer/hello-kubernetes](https://github.com/paulbouwer/hello-kubernetes) image.
|
|
80
80
|
|
|
81
81
|
```python
|
|
82
|
-
from aws_cdk.
|
|
82
|
+
from aws_cdk.lambda_layer_kubectl_v34 import KubectlV34Layer
|
|
83
83
|
|
|
84
84
|
|
|
85
85
|
# provisioning a cluster
|
|
86
86
|
cluster = eks.Cluster(self, "hello-eks",
|
|
87
|
-
version=eks.KubernetesVersion.
|
|
88
|
-
kubectl_layer=
|
|
87
|
+
version=eks.KubernetesVersion.V1_34,
|
|
88
|
+
kubectl_layer=KubectlV34Layer(self, "kubectl")
|
|
89
89
|
)
|
|
90
90
|
|
|
91
91
|
# apply a kubernetes manifest to the cluster
|
|
@@ -149,24 +149,46 @@ A more detailed breakdown of each is provided further down this README.
|
|
|
149
149
|
Creating a new cluster is done using the `Cluster` or `FargateCluster` constructs. The only required properties are the kubernetes `version` and `kubectlLayer`.
|
|
150
150
|
|
|
151
151
|
```python
|
|
152
|
-
from aws_cdk.
|
|
152
|
+
from aws_cdk.lambda_layer_kubectl_v34 import KubectlV34Layer
|
|
153
153
|
|
|
154
154
|
|
|
155
155
|
eks.Cluster(self, "HelloEKS",
|
|
156
|
-
version=eks.KubernetesVersion.
|
|
157
|
-
kubectl_layer=
|
|
156
|
+
version=eks.KubernetesVersion.V1_34,
|
|
157
|
+
kubectl_layer=KubectlV34Layer(self, "kubectl")
|
|
158
|
+
)
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
You can control what happens to the resources created by the cluster construct when they are no longer managed by CloudFormation by specifying a `removalPolicy`.
|
|
162
|
+
|
|
163
|
+
This can happen in one of three situations:
|
|
164
|
+
|
|
165
|
+
* The resource is removed from the template, so CloudFormation stops managing it;
|
|
166
|
+
* A change to the resource is made that requires it to be replaced, so CloudFormation stops managing it;
|
|
167
|
+
* The stack is deleted, so CloudFormation stops managing all resources in it.
|
|
168
|
+
|
|
169
|
+
This affects the EKS cluster itself, the custom resource that created the cluster, associated IAM roles, node groups, security groups, VPC and any other CloudFormation resources managed by this construct.
|
|
170
|
+
|
|
171
|
+
```python
|
|
172
|
+
from aws_cdk.lambda_layer_kubectl_v34 import KubectlV34Layer
|
|
173
|
+
import aws_cdk as core
|
|
174
|
+
|
|
175
|
+
|
|
176
|
+
eks.Cluster(self, "HelloEKS",
|
|
177
|
+
version=eks.KubernetesVersion.V1_34,
|
|
178
|
+
kubectl_layer=KubectlV34Layer(self, "kubectl"),
|
|
179
|
+
removal_policy=core.RemovalPolicy.RETAIN
|
|
158
180
|
)
|
|
159
181
|
```
|
|
160
182
|
|
|
161
183
|
You can also use `FargateCluster` to provision a cluster that uses only fargate workers.
|
|
162
184
|
|
|
163
185
|
```python
|
|
164
|
-
from aws_cdk.
|
|
186
|
+
from aws_cdk.lambda_layer_kubectl_v34 import KubectlV34Layer
|
|
165
187
|
|
|
166
188
|
|
|
167
189
|
eks.FargateCluster(self, "HelloEKS",
|
|
168
|
-
version=eks.KubernetesVersion.
|
|
169
|
-
kubectl_layer=
|
|
190
|
+
version=eks.KubernetesVersion.V1_34,
|
|
191
|
+
kubectl_layer=KubectlV34Layer(self, "kubectl")
|
|
170
192
|
)
|
|
171
193
|
```
|
|
172
194
|
|
|
@@ -189,14 +211,14 @@ By default, this library will allocate a managed node group with 2 *m5.large* in
|
|
|
189
211
|
At cluster instantiation time, you can customize the number of instances and their type:
|
|
190
212
|
|
|
191
213
|
```python
|
|
192
|
-
from aws_cdk.
|
|
214
|
+
from aws_cdk.lambda_layer_kubectl_v34 import KubectlV34Layer
|
|
193
215
|
|
|
194
216
|
|
|
195
217
|
eks.Cluster(self, "HelloEKS",
|
|
196
|
-
version=eks.KubernetesVersion.
|
|
218
|
+
version=eks.KubernetesVersion.V1_34,
|
|
197
219
|
default_capacity=5,
|
|
198
220
|
default_capacity_instance=ec2.InstanceType.of(ec2.InstanceClass.M5, ec2.InstanceSize.SMALL),
|
|
199
|
-
kubectl_layer=
|
|
221
|
+
kubectl_layer=KubectlV34Layer(self, "kubectl")
|
|
200
222
|
)
|
|
201
223
|
```
|
|
202
224
|
|
|
@@ -205,13 +227,13 @@ To access the node group that was created on your behalf, you can use `cluster.d
|
|
|
205
227
|
Additional customizations are available post instantiation. To apply them, set the default capacity to 0, and use the `cluster.addNodegroupCapacity` method:
|
|
206
228
|
|
|
207
229
|
```python
|
|
208
|
-
from aws_cdk.
|
|
230
|
+
from aws_cdk.lambda_layer_kubectl_v34 import KubectlV34Layer
|
|
209
231
|
|
|
210
232
|
|
|
211
233
|
cluster = eks.Cluster(self, "HelloEKS",
|
|
212
|
-
version=eks.KubernetesVersion.
|
|
234
|
+
version=eks.KubernetesVersion.V1_34,
|
|
213
235
|
default_capacity=0,
|
|
214
|
-
kubectl_layer=
|
|
236
|
+
kubectl_layer=KubectlV34Layer(self, "kubectl")
|
|
215
237
|
)
|
|
216
238
|
|
|
217
239
|
cluster.add_nodegroup_capacity("custom-node-group",
|
|
@@ -290,7 +312,7 @@ Node groups are available with IPv6 configured networks. For custom roles assig
|
|
|
290
312
|
> For more details visit [Configuring the Amazon VPC CNI plugin for Kubernetes to use IAM roles for service accounts](https://docs.aws.amazon.com/eks/latest/userguide/cni-iam-role.html#cni-iam-role-create-role)
|
|
291
313
|
|
|
292
314
|
```python
|
|
293
|
-
from aws_cdk.
|
|
315
|
+
from aws_cdk.lambda_layer_kubectl_v34 import KubectlV34Layer
|
|
294
316
|
|
|
295
317
|
|
|
296
318
|
ipv6_management = iam.PolicyDocument(
|
|
@@ -315,9 +337,9 @@ eks_cluster_node_group_role = iam.Role(self, "eksClusterNodeGroupRole",
|
|
|
315
337
|
)
|
|
316
338
|
|
|
317
339
|
cluster = eks.Cluster(self, "HelloEKS",
|
|
318
|
-
version=eks.KubernetesVersion.
|
|
340
|
+
version=eks.KubernetesVersion.V1_34,
|
|
319
341
|
default_capacity=0,
|
|
320
|
-
kubectl_layer=
|
|
342
|
+
kubectl_layer=KubectlV34Layer(self, "kubectl")
|
|
321
343
|
)
|
|
322
344
|
|
|
323
345
|
cluster.add_nodegroup_capacity("custom-node-group",
|
|
@@ -426,13 +448,13 @@ has been changed. As a workaround, you need to add a temporary policy to the clu
|
|
|
426
448
|
successful replacement. Consider this example if you are renaming the cluster from `foo` to `bar`:
|
|
427
449
|
|
|
428
450
|
```python
|
|
429
|
-
from aws_cdk.
|
|
451
|
+
from aws_cdk.lambda_layer_kubectl_v34 import KubectlV34Layer
|
|
430
452
|
|
|
431
453
|
|
|
432
454
|
cluster = eks.Cluster(self, "cluster-to-rename",
|
|
433
455
|
cluster_name="foo", # rename this to 'bar'
|
|
434
|
-
kubectl_layer=
|
|
435
|
-
version=eks.KubernetesVersion.
|
|
456
|
+
kubectl_layer=KubectlV34Layer(self, "kubectl"),
|
|
457
|
+
version=eks.KubernetesVersion.V1_34
|
|
436
458
|
)
|
|
437
459
|
|
|
438
460
|
# allow the cluster admin role to delete the cluster 'foo'
|
|
@@ -485,12 +507,12 @@ To create an EKS cluster that **only** uses Fargate capacity, you can use `Farga
|
|
|
485
507
|
The following code defines an Amazon EKS cluster with a default Fargate Profile that matches all pods from the "kube-system" and "default" namespaces. It is also configured to [run CoreDNS on Fargate](https://docs.aws.amazon.com/eks/latest/userguide/fargate-getting-started.html#fargate-gs-coredns).
|
|
486
508
|
|
|
487
509
|
```python
|
|
488
|
-
from aws_cdk.
|
|
510
|
+
from aws_cdk.lambda_layer_kubectl_v34 import KubectlV34Layer
|
|
489
511
|
|
|
490
512
|
|
|
491
513
|
cluster = eks.FargateCluster(self, "MyCluster",
|
|
492
|
-
version=eks.KubernetesVersion.
|
|
493
|
-
kubectl_layer=
|
|
514
|
+
version=eks.KubernetesVersion.V1_34,
|
|
515
|
+
kubectl_layer=KubectlV34Layer(self, "kubectl")
|
|
494
516
|
)
|
|
495
517
|
```
|
|
496
518
|
|
|
@@ -570,13 +592,13 @@ To disable bootstrapping altogether (i.e. to fully customize user-data), set `bo
|
|
|
570
592
|
You can also configure the cluster to use an auto-scaling group as the default capacity:
|
|
571
593
|
|
|
572
594
|
```python
|
|
573
|
-
from aws_cdk.
|
|
595
|
+
from aws_cdk.lambda_layer_kubectl_v34 import KubectlV34Layer
|
|
574
596
|
|
|
575
597
|
|
|
576
598
|
cluster = eks.Cluster(self, "HelloEKS",
|
|
577
|
-
version=eks.KubernetesVersion.
|
|
599
|
+
version=eks.KubernetesVersion.V1_34,
|
|
578
600
|
default_capacity_type=eks.DefaultCapacityType.EC2,
|
|
579
|
-
kubectl_layer=
|
|
601
|
+
kubectl_layer=KubectlV34Layer(self, "kubectl")
|
|
580
602
|
)
|
|
581
603
|
```
|
|
582
604
|
|
|
@@ -683,13 +705,13 @@ AWS Identity and Access Management (IAM) and native Kubernetes [Role Based Acces
|
|
|
683
705
|
You can configure the [cluster endpoint access](https://docs.aws.amazon.com/eks/latest/userguide/cluster-endpoint.html) by using the `endpointAccess` property:
|
|
684
706
|
|
|
685
707
|
```python
|
|
686
|
-
from aws_cdk.
|
|
708
|
+
from aws_cdk.lambda_layer_kubectl_v34 import KubectlV34Layer
|
|
687
709
|
|
|
688
710
|
|
|
689
711
|
cluster = eks.Cluster(self, "hello-eks",
|
|
690
|
-
version=eks.KubernetesVersion.
|
|
712
|
+
version=eks.KubernetesVersion.V1_34,
|
|
691
713
|
endpoint_access=eks.EndpointAccess.PRIVATE, # No access outside of your VPC.
|
|
692
|
-
kubectl_layer=
|
|
714
|
+
kubectl_layer=KubectlV34Layer(self, "kubectl")
|
|
693
715
|
)
|
|
694
716
|
```
|
|
695
717
|
|
|
@@ -709,33 +731,33 @@ From the docs:
|
|
|
709
731
|
To deploy the controller on your EKS cluster, configure the `albController` property:
|
|
710
732
|
|
|
711
733
|
```python
|
|
712
|
-
from aws_cdk.
|
|
734
|
+
from aws_cdk.lambda_layer_kubectl_v34 import KubectlV34Layer
|
|
713
735
|
|
|
714
736
|
|
|
715
737
|
eks.Cluster(self, "HelloEKS",
|
|
716
|
-
version=eks.KubernetesVersion.
|
|
738
|
+
version=eks.KubernetesVersion.V1_34,
|
|
717
739
|
alb_controller=eks.AlbControllerOptions(
|
|
718
740
|
version=eks.AlbControllerVersion.V2_8_2
|
|
719
741
|
),
|
|
720
|
-
kubectl_layer=
|
|
742
|
+
kubectl_layer=KubectlV34Layer(self, "kubectl")
|
|
721
743
|
)
|
|
722
744
|
```
|
|
723
745
|
|
|
724
746
|
To provide additional Helm chart values supported by `albController` in CDK, use the `additionalHelmChartValues` property. For example, the following code snippet shows how to set the `enableWafV2` flag:
|
|
725
747
|
|
|
726
748
|
```python
|
|
727
|
-
from aws_cdk.
|
|
749
|
+
from aws_cdk.lambda_layer_kubectl_v34 import KubectlV34Layer
|
|
728
750
|
|
|
729
751
|
|
|
730
752
|
eks.Cluster(self, "HelloEKS",
|
|
731
|
-
version=eks.KubernetesVersion.
|
|
753
|
+
version=eks.KubernetesVersion.V1_34,
|
|
732
754
|
alb_controller=eks.AlbControllerOptions(
|
|
733
755
|
version=eks.AlbControllerVersion.V2_8_2,
|
|
734
756
|
additional_helm_chart_values=eks.AlbControllerHelmChartOptions(
|
|
735
757
|
enable_wafv2=False
|
|
736
758
|
)
|
|
737
759
|
),
|
|
738
|
-
kubectl_layer=
|
|
760
|
+
kubectl_layer=KubectlV34Layer(self, "kubectl")
|
|
739
761
|
)
|
|
740
762
|
```
|
|
741
763
|
|
|
@@ -772,16 +794,16 @@ if cluster.alb_controller:
|
|
|
772
794
|
You can specify the VPC of the cluster using the `vpc` and `vpcSubnets` properties:
|
|
773
795
|
|
|
774
796
|
```python
|
|
775
|
-
from aws_cdk.
|
|
797
|
+
from aws_cdk.lambda_layer_kubectl_v34 import KubectlV34Layer
|
|
776
798
|
|
|
777
799
|
# vpc: ec2.Vpc
|
|
778
800
|
|
|
779
801
|
|
|
780
802
|
eks.Cluster(self, "HelloEKS",
|
|
781
|
-
version=eks.KubernetesVersion.
|
|
803
|
+
version=eks.KubernetesVersion.V1_34,
|
|
782
804
|
vpc=vpc,
|
|
783
805
|
vpc_subnets=[ec2.SubnetSelection(subnet_type=ec2.SubnetType.PRIVATE_WITH_EGRESS)],
|
|
784
|
-
kubectl_layer=
|
|
806
|
+
kubectl_layer=KubectlV34Layer(self, "kubectl")
|
|
785
807
|
)
|
|
786
808
|
```
|
|
787
809
|
|
|
@@ -825,12 +847,12 @@ The `ClusterHandler` is a set of Lambda functions (`onEventHandler`, `isComplete
|
|
|
825
847
|
You can configure the environment of the Cluster Handler functions by specifying it at cluster instantiation. For example, this can be useful in order to configure an http proxy:
|
|
826
848
|
|
|
827
849
|
```python
|
|
828
|
-
from aws_cdk.
|
|
850
|
+
from aws_cdk.lambda_layer_kubectl_v34 import KubectlV34Layer
|
|
829
851
|
|
|
830
852
|
# proxy_instance_security_group: ec2.SecurityGroup
|
|
831
853
|
|
|
832
854
|
cluster = eks.Cluster(self, "hello-eks",
|
|
833
|
-
version=eks.KubernetesVersion.
|
|
855
|
+
version=eks.KubernetesVersion.V1_34,
|
|
834
856
|
cluster_handler_environment={
|
|
835
857
|
"https_proxy": "http://proxy.myproxy.com"
|
|
836
858
|
},
|
|
@@ -839,7 +861,7 @@ cluster = eks.Cluster(self, "hello-eks",
|
|
|
839
861
|
# Cluster Handler Lambdas so that it can reach the proxy.
|
|
840
862
|
#
|
|
841
863
|
cluster_handler_security_group=proxy_instance_security_group,
|
|
842
|
-
kubectl_layer=
|
|
864
|
+
kubectl_layer=KubectlV34Layer(self, "kubectl")
|
|
843
865
|
)
|
|
844
866
|
```
|
|
845
867
|
|
|
@@ -848,7 +870,7 @@ cluster = eks.Cluster(self, "hello-eks",
|
|
|
848
870
|
You can optionally choose to configure your cluster to use IPv6 using the [`ipFamily`](https://docs.aws.amazon.com/eks/latest/APIReference/API_KubernetesNetworkConfigRequest.html#AmazonEKS-Type-KubernetesNetworkConfigRequest-ipFamily) definition for your cluster. Note that this will require the underlying subnets to have an associated IPv6 CIDR.
|
|
849
871
|
|
|
850
872
|
```python
|
|
851
|
-
from aws_cdk.
|
|
873
|
+
from aws_cdk.lambda_layer_kubectl_v34 import KubectlV34Layer
|
|
852
874
|
# vpc: ec2.Vpc
|
|
853
875
|
|
|
854
876
|
|
|
@@ -873,11 +895,11 @@ for subnet in subnets:
|
|
|
873
895
|
subnetcount = subnetcount + 1
|
|
874
896
|
|
|
875
897
|
cluster = eks.Cluster(self, "hello-eks",
|
|
876
|
-
version=eks.KubernetesVersion.
|
|
898
|
+
version=eks.KubernetesVersion.V1_34,
|
|
877
899
|
vpc=vpc,
|
|
878
900
|
ip_family=eks.IpFamily.IP_V6,
|
|
879
901
|
vpc_subnets=[ec2.SubnetSelection(subnets=vpc.public_subnets)],
|
|
880
|
-
kubectl_layer=
|
|
902
|
+
kubectl_layer=KubectlV34Layer(self, "kubectl")
|
|
881
903
|
)
|
|
882
904
|
```
|
|
883
905
|
|
|
@@ -908,15 +930,15 @@ cluster = eks.Cluster.from_cluster_attributes(self, "Cluster",
|
|
|
908
930
|
You can configure the environment of this function by specifying it at cluster instantiation. For example, this can be useful in order to configure an http proxy:
|
|
909
931
|
|
|
910
932
|
```python
|
|
911
|
-
from aws_cdk.
|
|
933
|
+
from aws_cdk.lambda_layer_kubectl_v34 import KubectlV34Layer
|
|
912
934
|
|
|
913
935
|
|
|
914
936
|
cluster = eks.Cluster(self, "hello-eks",
|
|
915
|
-
version=eks.KubernetesVersion.
|
|
937
|
+
version=eks.KubernetesVersion.V1_34,
|
|
916
938
|
kubectl_environment={
|
|
917
939
|
"http_proxy": "http://proxy.myproxy.com"
|
|
918
940
|
},
|
|
919
|
-
kubectl_layer=
|
|
941
|
+
kubectl_layer=KubectlV34Layer(self, "kubectl")
|
|
920
942
|
)
|
|
921
943
|
```
|
|
922
944
|
|
|
@@ -933,12 +955,12 @@ Depending on which version of kubernetes you're targeting, you will need to use
|
|
|
933
955
|
the `@aws-cdk/lambda-layer-kubectl-vXY` packages.
|
|
934
956
|
|
|
935
957
|
```python
|
|
936
|
-
from aws_cdk.
|
|
958
|
+
from aws_cdk.lambda_layer_kubectl_v34 import KubectlV34Layer
|
|
937
959
|
|
|
938
960
|
|
|
939
961
|
cluster = eks.Cluster(self, "hello-eks",
|
|
940
|
-
version=eks.KubernetesVersion.
|
|
941
|
-
kubectl_layer=
|
|
962
|
+
version=eks.KubernetesVersion.V1_34,
|
|
963
|
+
kubectl_layer=KubectlV34Layer(self, "kubectl")
|
|
942
964
|
)
|
|
943
965
|
```
|
|
944
966
|
|
|
@@ -974,7 +996,7 @@ cluster1 = eks.Cluster(self, "MyCluster",
|
|
|
974
996
|
kubectl_layer=layer,
|
|
975
997
|
vpc=vpc,
|
|
976
998
|
cluster_name="cluster-name",
|
|
977
|
-
version=eks.KubernetesVersion.
|
|
999
|
+
version=eks.KubernetesVersion.V1_34
|
|
978
1000
|
)
|
|
979
1001
|
|
|
980
1002
|
# or
|
|
@@ -990,7 +1012,7 @@ cluster2 = eks.Cluster.from_cluster_attributes(self, "MyCluster",
|
|
|
990
1012
|
By default, the kubectl provider is configured with 1024MiB of memory. You can use the `kubectlMemory` option to specify the memory size for the AWS Lambda function:
|
|
991
1013
|
|
|
992
1014
|
```python
|
|
993
|
-
from aws_cdk.
|
|
1015
|
+
from aws_cdk.lambda_layer_kubectl_v34 import KubectlV34Layer
|
|
994
1016
|
|
|
995
1017
|
# or
|
|
996
1018
|
# vpc: ec2.Vpc
|
|
@@ -998,8 +1020,8 @@ from aws_cdk.lambda_layer_kubectl_v32 import KubectlV32Layer
|
|
|
998
1020
|
|
|
999
1021
|
eks.Cluster(self, "MyCluster",
|
|
1000
1022
|
kubectl_memory=Size.gibibytes(4),
|
|
1001
|
-
version=eks.KubernetesVersion.
|
|
1002
|
-
kubectl_layer=
|
|
1023
|
+
version=eks.KubernetesVersion.V1_34,
|
|
1024
|
+
kubectl_layer=KubectlV34Layer(self, "kubectl")
|
|
1003
1025
|
)
|
|
1004
1026
|
eks.Cluster.from_cluster_attributes(self, "MyCluster",
|
|
1005
1027
|
kubectl_memory=Size.gibibytes(4),
|
|
@@ -1034,14 +1056,14 @@ cluster.add_auto_scaling_group_capacity("self-ng-arm",
|
|
|
1034
1056
|
When you create a cluster, you can specify a `mastersRole`. The `Cluster` construct will associate this role with the `system:masters` [RBAC](https://kubernetes.io/docs/reference/access-authn-authz/rbac/) group, giving it super-user access to the cluster.
|
|
1035
1057
|
|
|
1036
1058
|
```python
|
|
1037
|
-
from aws_cdk.
|
|
1059
|
+
from aws_cdk.lambda_layer_kubectl_v34 import KubectlV34Layer
|
|
1038
1060
|
|
|
1039
1061
|
# role: iam.Role
|
|
1040
1062
|
|
|
1041
1063
|
eks.Cluster(self, "HelloEKS",
|
|
1042
|
-
version=eks.KubernetesVersion.
|
|
1064
|
+
version=eks.KubernetesVersion.V1_34,
|
|
1043
1065
|
masters_role=role,
|
|
1044
|
-
kubectl_layer=
|
|
1066
|
+
kubectl_layer=KubectlV34Layer(self, "kubectl")
|
|
1045
1067
|
)
|
|
1046
1068
|
```
|
|
1047
1069
|
|
|
@@ -1087,28 +1109,28 @@ You can use the `secretsEncryptionKey` to configure which key the cluster will u
|
|
|
1087
1109
|
> This setting can only be specified when the cluster is created and cannot be updated.
|
|
1088
1110
|
|
|
1089
1111
|
```python
|
|
1090
|
-
from aws_cdk.
|
|
1112
|
+
from aws_cdk.lambda_layer_kubectl_v34 import KubectlV34Layer
|
|
1091
1113
|
|
|
1092
1114
|
|
|
1093
1115
|
secrets_key = kms.Key(self, "SecretsKey")
|
|
1094
1116
|
cluster = eks.Cluster(self, "MyCluster",
|
|
1095
1117
|
secrets_encryption_key=secrets_key,
|
|
1096
|
-
version=eks.KubernetesVersion.
|
|
1097
|
-
kubectl_layer=
|
|
1118
|
+
version=eks.KubernetesVersion.V1_34,
|
|
1119
|
+
kubectl_layer=KubectlV34Layer(self, "kubectl")
|
|
1098
1120
|
)
|
|
1099
1121
|
```
|
|
1100
1122
|
|
|
1101
1123
|
You can also use a similar configuration for running a cluster built using the FargateCluster construct.
|
|
1102
1124
|
|
|
1103
1125
|
```python
|
|
1104
|
-
from aws_cdk.
|
|
1126
|
+
from aws_cdk.lambda_layer_kubectl_v34 import KubectlV34Layer
|
|
1105
1127
|
|
|
1106
1128
|
|
|
1107
1129
|
secrets_key = kms.Key(self, "SecretsKey")
|
|
1108
1130
|
cluster = eks.FargateCluster(self, "MyFargateCluster",
|
|
1109
1131
|
secrets_encryption_key=secrets_key,
|
|
1110
|
-
version=eks.KubernetesVersion.
|
|
1111
|
-
kubectl_layer=
|
|
1132
|
+
version=eks.KubernetesVersion.V1_34,
|
|
1133
|
+
kubectl_layer=KubectlV34Layer(self, "kubectl")
|
|
1112
1134
|
)
|
|
1113
1135
|
```
|
|
1114
1136
|
|
|
@@ -1127,12 +1149,12 @@ When you create an Amazon EKS cluster, you can configure it to leverage the [EKS
|
|
|
1127
1149
|
Once you have identified the on-premises node and pod (optional) CIDRs you will use for your hybrid nodes and the workloads running on them, you can specify them during cluster creation using the `remoteNodeNetworks` and `remotePodNetworks` (optional) properties:
|
|
1128
1150
|
|
|
1129
1151
|
```python
|
|
1130
|
-
from aws_cdk.
|
|
1152
|
+
from aws_cdk.lambda_layer_kubectl_v34 import KubectlV34Layer
|
|
1131
1153
|
|
|
1132
1154
|
|
|
1133
1155
|
eks.Cluster(self, "Cluster",
|
|
1134
|
-
version=eks.KubernetesVersion.
|
|
1135
|
-
kubectl_layer=
|
|
1156
|
+
version=eks.KubernetesVersion.V1_34,
|
|
1157
|
+
kubectl_layer=KubectlV34Layer(self, "KubectlLayer"),
|
|
1136
1158
|
remote_node_networks=[eks.RemoteNodeNetwork(
|
|
1137
1159
|
cidrs=["10.0.0.0/16"]
|
|
1138
1160
|
)
|
|
@@ -1144,6 +1166,12 @@ eks.Cluster(self, "Cluster",
|
|
|
1144
1166
|
)
|
|
1145
1167
|
```
|
|
1146
1168
|
|
|
1169
|
+
### Self-Managed Add-ons
|
|
1170
|
+
|
|
1171
|
+
Amazon EKS automatically installs self-managed add-ons such as the Amazon VPC CNI plugin for Kubernetes, kube-proxy, and CoreDNS for every cluster. You can change the default configuration of the add-ons and update them when desired. If you wish to create a cluster without the default add-ons, set `bootstrapSelfManagedAddons` as `false`. When this is set to false, make sure to install the necessary alternatives which provide functionality that enables pod and service operations for your EKS cluster.
|
|
1172
|
+
|
|
1173
|
+
> Changing the value of `bootstrapSelfManagedAddons` after the EKS cluster creation will result in a replacement of the cluster.
|
|
1174
|
+
|
|
1147
1175
|
## Permissions and Security
|
|
1148
1176
|
|
|
1149
1177
|
Amazon EKS provides several mechanism of securing the cluster and granting permissions to specific IAM users and roles.
|
|
@@ -1179,7 +1207,7 @@ To access the Kubernetes resources from the console, make sure your viewing prin
|
|
|
1179
1207
|
in the `aws-auth` ConfigMap. Some options to consider:
|
|
1180
1208
|
|
|
1181
1209
|
```python
|
|
1182
|
-
from aws_cdk.
|
|
1210
|
+
from aws_cdk.lambda_layer_kubectl_v34 import KubectlV34Layer
|
|
1183
1211
|
# cluster: eks.Cluster
|
|
1184
1212
|
# your_current_role: iam.Role
|
|
1185
1213
|
# vpc: ec2.Vpc
|
|
@@ -1197,7 +1225,7 @@ your_current_role.add_to_policy(iam.PolicyStatement(
|
|
|
1197
1225
|
|
|
1198
1226
|
```python
|
|
1199
1227
|
# Option 2: create your custom mastersRole with scoped assumeBy arn as the Cluster prop. Switch to this role from the AWS console.
|
|
1200
|
-
from aws_cdk.
|
|
1228
|
+
from aws_cdk.lambda_layer_kubectl_v34 import KubectlV34Layer
|
|
1201
1229
|
# vpc: ec2.Vpc
|
|
1202
1230
|
|
|
1203
1231
|
|
|
@@ -1207,8 +1235,8 @@ masters_role = iam.Role(self, "MastersRole",
|
|
|
1207
1235
|
|
|
1208
1236
|
cluster = eks.Cluster(self, "EksCluster",
|
|
1209
1237
|
vpc=vpc,
|
|
1210
|
-
version=eks.KubernetesVersion.
|
|
1211
|
-
kubectl_layer=
|
|
1238
|
+
version=eks.KubernetesVersion.V1_34,
|
|
1239
|
+
kubectl_layer=KubectlV34Layer(self, "KubectlLayer"),
|
|
1212
1240
|
masters_role=masters_role
|
|
1213
1241
|
)
|
|
1214
1242
|
|
|
@@ -1247,14 +1275,14 @@ AWS IAM principals from both Amazon EKS access entry APIs and the aws-auth confi
|
|
|
1247
1275
|
To specify the `authenticationMode`:
|
|
1248
1276
|
|
|
1249
1277
|
```python
|
|
1250
|
-
from aws_cdk.
|
|
1278
|
+
from aws_cdk.lambda_layer_kubectl_v34 import KubectlV34Layer
|
|
1251
1279
|
# vpc: ec2.Vpc
|
|
1252
1280
|
|
|
1253
1281
|
|
|
1254
1282
|
eks.Cluster(self, "Cluster",
|
|
1255
1283
|
vpc=vpc,
|
|
1256
|
-
version=eks.KubernetesVersion.
|
|
1257
|
-
kubectl_layer=
|
|
1284
|
+
version=eks.KubernetesVersion.V1_34,
|
|
1285
|
+
kubectl_layer=KubectlV34Layer(self, "KubectlLayer"),
|
|
1258
1286
|
authentication_mode=eks.AuthenticationMode.API_AND_CONFIG_MAP
|
|
1259
1287
|
)
|
|
1260
1288
|
```
|
|
@@ -1299,7 +1327,7 @@ eks.AccessPolicy.from_access_policy_name("AmazonEKSAdminPolicy",
|
|
|
1299
1327
|
Use `grantAccess()` to grant the AccessPolicy to an IAM principal:
|
|
1300
1328
|
|
|
1301
1329
|
```python
|
|
1302
|
-
from aws_cdk.
|
|
1330
|
+
from aws_cdk.lambda_layer_kubectl_v34 import KubectlV34Layer
|
|
1303
1331
|
# vpc: ec2.Vpc
|
|
1304
1332
|
|
|
1305
1333
|
|
|
@@ -1318,8 +1346,8 @@ eks_admin_view_role = iam.Role(self, "EKSAdminViewRole",
|
|
|
1318
1346
|
cluster = eks.Cluster(self, "Cluster",
|
|
1319
1347
|
vpc=vpc,
|
|
1320
1348
|
masters_role=cluster_admin_role,
|
|
1321
|
-
version=eks.KubernetesVersion.
|
|
1322
|
-
kubectl_layer=
|
|
1349
|
+
version=eks.KubernetesVersion.V1_34,
|
|
1350
|
+
kubectl_layer=KubectlV34Layer(self, "KubectlLayer"),
|
|
1323
1351
|
authentication_mode=eks.AuthenticationMode.API_AND_CONFIG_MAP
|
|
1324
1352
|
)
|
|
1325
1353
|
|
|
@@ -1650,13 +1678,13 @@ Pruning is enabled by default but can be disabled through the `prune` option
|
|
|
1650
1678
|
when a cluster is defined:
|
|
1651
1679
|
|
|
1652
1680
|
```python
|
|
1653
|
-
from aws_cdk.
|
|
1681
|
+
from aws_cdk.lambda_layer_kubectl_v34 import KubectlV34Layer
|
|
1654
1682
|
|
|
1655
1683
|
|
|
1656
1684
|
eks.Cluster(self, "MyCluster",
|
|
1657
|
-
version=eks.KubernetesVersion.
|
|
1685
|
+
version=eks.KubernetesVersion.V1_34,
|
|
1658
1686
|
prune=False,
|
|
1659
|
-
kubectl_layer=
|
|
1687
|
+
kubectl_layer=KubectlV34Layer(self, "kubectl")
|
|
1660
1688
|
)
|
|
1661
1689
|
```
|
|
1662
1690
|
|
|
@@ -2055,15 +2083,15 @@ You can enable logging for each one separately using the `clusterLogging`
|
|
|
2055
2083
|
property. For example:
|
|
2056
2084
|
|
|
2057
2085
|
```python
|
|
2058
|
-
from aws_cdk.
|
|
2086
|
+
from aws_cdk.lambda_layer_kubectl_v34 import KubectlV34Layer
|
|
2059
2087
|
|
|
2060
2088
|
|
|
2061
2089
|
cluster = eks.Cluster(self, "Cluster",
|
|
2062
2090
|
# ...
|
|
2063
|
-
version=eks.KubernetesVersion.
|
|
2091
|
+
version=eks.KubernetesVersion.V1_34,
|
|
2064
2092
|
cluster_logging=[eks.ClusterLoggingTypes.API, eks.ClusterLoggingTypes.AUTHENTICATOR, eks.ClusterLoggingTypes.SCHEDULER
|
|
2065
2093
|
],
|
|
2066
|
-
kubectl_layer=
|
|
2094
|
+
kubectl_layer=KubectlV34Layer(self, "kubectl")
|
|
2067
2095
|
)
|
|
2068
2096
|
```
|
|
2069
2097
|
|
|
@@ -2130,6 +2158,7 @@ from .. import (
|
|
|
2130
2158
|
ITaggable as _ITaggable_36806126,
|
|
2131
2159
|
ITaggableV2 as _ITaggableV2_4e6798f8,
|
|
2132
2160
|
NestedStack as _NestedStack_dd393a45,
|
|
2161
|
+
RemovalPolicy as _RemovalPolicy_9f93c814,
|
|
2133
2162
|
Resource as _Resource_45bc6135,
|
|
2134
2163
|
Size as _Size_7b441c34,
|
|
2135
2164
|
TagManager as _TagManager_0a598cb3,
|
|
@@ -2172,9 +2201,25 @@ from ..aws_iam import (
|
|
|
2172
2201
|
PrincipalPolicyFragment as _PrincipalPolicyFragment_6a855d11,
|
|
2173
2202
|
Role as _Role_e8c6e11f,
|
|
2174
2203
|
)
|
|
2175
|
-
from ..aws_kms import IKey as _IKey_5f11635f
|
|
2176
2204
|
from ..aws_lambda import ILayerVersion as _ILayerVersion_5ac127c8
|
|
2177
2205
|
from ..aws_s3_assets import Asset as _Asset_ac2a7e61
|
|
2206
|
+
from ..interfaces.aws_eks import (
|
|
2207
|
+
AccessEntryReference as _AccessEntryReference_447195cd,
|
|
2208
|
+
AddonReference as _AddonReference_afb1bd13,
|
|
2209
|
+
ClusterReference as _ClusterReference_d6e6b9ff,
|
|
2210
|
+
FargateProfileReference as _FargateProfileReference_5fd534f8,
|
|
2211
|
+
IAccessEntryRef as _IAccessEntryRef_14bb9c0a,
|
|
2212
|
+
IAddonRef as _IAddonRef_fb5de88c,
|
|
2213
|
+
IClusterRef as _IClusterRef_5527f448,
|
|
2214
|
+
IFargateProfileRef as _IFargateProfileRef_ebba9623,
|
|
2215
|
+
IIdentityProviderConfigRef as _IIdentityProviderConfigRef_0106e882,
|
|
2216
|
+
INodegroupRef as _INodegroupRef_cac0d8aa,
|
|
2217
|
+
IPodIdentityAssociationRef as _IPodIdentityAssociationRef_21f8b2b1,
|
|
2218
|
+
IdentityProviderConfigReference as _IdentityProviderConfigReference_7c0f381e,
|
|
2219
|
+
NodegroupReference as _NodegroupReference_eab944f6,
|
|
2220
|
+
PodIdentityAssociationReference as _PodIdentityAssociationReference_14e19bbb,
|
|
2221
|
+
)
|
|
2222
|
+
from ..interfaces.aws_kms import IKeyRef as _IKeyRef_d4fc6ef3
|
|
2178
2223
|
|
|
2179
2224
|
|
|
2180
2225
|
@jsii.data_type(
|
|
@@ -3059,18 +3104,18 @@ class AlbControllerHelmChartOptions:
|
|
|
3059
3104
|
|
|
3060
3105
|
Example::
|
|
3061
3106
|
|
|
3062
|
-
from aws_cdk.
|
|
3107
|
+
from aws_cdk.lambda_layer_kubectl_v34 import KubectlV34Layer
|
|
3063
3108
|
|
|
3064
3109
|
|
|
3065
3110
|
eks.Cluster(self, "HelloEKS",
|
|
3066
|
-
version=eks.KubernetesVersion.
|
|
3111
|
+
version=eks.KubernetesVersion.V1_34,
|
|
3067
3112
|
alb_controller=eks.AlbControllerOptions(
|
|
3068
3113
|
version=eks.AlbControllerVersion.V2_8_2,
|
|
3069
3114
|
additional_helm_chart_values=eks.AlbControllerHelmChartOptions(
|
|
3070
3115
|
enable_wafv2=False
|
|
3071
3116
|
)
|
|
3072
3117
|
),
|
|
3073
|
-
kubectl_layer=
|
|
3118
|
+
kubectl_layer=KubectlV34Layer(self, "kubectl")
|
|
3074
3119
|
)
|
|
3075
3120
|
'''
|
|
3076
3121
|
if __debug__:
|
|
@@ -3143,15 +3188,15 @@ class AlbControllerOptions:
|
|
|
3143
3188
|
|
|
3144
3189
|
Example::
|
|
3145
3190
|
|
|
3146
|
-
from aws_cdk.
|
|
3191
|
+
from aws_cdk.lambda_layer_kubectl_v34 import KubectlV34Layer
|
|
3147
3192
|
|
|
3148
3193
|
|
|
3149
3194
|
eks.Cluster(self, "HelloEKS",
|
|
3150
|
-
version=eks.KubernetesVersion.
|
|
3195
|
+
version=eks.KubernetesVersion.V1_34,
|
|
3151
3196
|
alb_controller=eks.AlbControllerOptions(
|
|
3152
3197
|
version=eks.AlbControllerVersion.V2_8_2
|
|
3153
3198
|
),
|
|
3154
|
-
kubectl_layer=
|
|
3199
|
+
kubectl_layer=KubectlV34Layer(self, "kubectl")
|
|
3155
3200
|
)
|
|
3156
3201
|
'''
|
|
3157
3202
|
if isinstance(additional_helm_chart_values, dict):
|
|
@@ -3379,15 +3424,15 @@ class AlbControllerVersion(
|
|
|
3379
3424
|
|
|
3380
3425
|
Example::
|
|
3381
3426
|
|
|
3382
|
-
from aws_cdk.
|
|
3427
|
+
from aws_cdk.lambda_layer_kubectl_v34 import KubectlV34Layer
|
|
3383
3428
|
|
|
3384
3429
|
|
|
3385
3430
|
eks.Cluster(self, "HelloEKS",
|
|
3386
|
-
version=eks.KubernetesVersion.
|
|
3431
|
+
version=eks.KubernetesVersion.V1_34,
|
|
3387
3432
|
alb_controller=eks.AlbControllerOptions(
|
|
3388
3433
|
version=eks.AlbControllerVersion.V2_8_2
|
|
3389
3434
|
),
|
|
3390
|
-
kubectl_layer=
|
|
3435
|
+
kubectl_layer=KubectlV34Layer(self, "kubectl")
|
|
3391
3436
|
)
|
|
3392
3437
|
'''
|
|
3393
3438
|
|
|
@@ -3663,14 +3708,14 @@ class AuthenticationMode(enum.Enum):
|
|
|
3663
3708
|
|
|
3664
3709
|
Example::
|
|
3665
3710
|
|
|
3666
|
-
from aws_cdk.
|
|
3711
|
+
from aws_cdk.lambda_layer_kubectl_v34 import KubectlV34Layer
|
|
3667
3712
|
# vpc: ec2.Vpc
|
|
3668
3713
|
|
|
3669
3714
|
|
|
3670
3715
|
eks.Cluster(self, "Cluster",
|
|
3671
3716
|
vpc=vpc,
|
|
3672
|
-
version=eks.KubernetesVersion.
|
|
3673
|
-
kubectl_layer=
|
|
3717
|
+
version=eks.KubernetesVersion.V1_34,
|
|
3718
|
+
kubectl_layer=KubectlV34Layer(self, "KubectlLayer"),
|
|
3674
3719
|
authentication_mode=eks.AuthenticationMode.API_AND_CONFIG_MAP
|
|
3675
3720
|
)
|
|
3676
3721
|
'''
|
|
@@ -3781,7 +3826,7 @@ class AutoScalingGroupCapacityOptions(_CommonAutoScalingGroupProps_808bbf2d):
|
|
|
3781
3826
|
:param key_name: (deprecated) Name of SSH keypair to grant access to instances. ``launchTemplate`` and ``mixedInstancesPolicy`` must not be specified when this property is specified You can either specify ``keyPair`` or ``keyName``, not both. Default: - No SSH access will be possible.
|
|
3782
3827
|
:param key_pair: The SSH keypair to grant access to the instance. Feature flag ``AUTOSCALING_GENERATE_LAUNCH_TEMPLATE`` must be enabled to use this property. ``launchTemplate`` and ``mixedInstancesPolicy`` must not be specified when this property is specified. You can either specify ``keyPair`` or ``keyName``, not both. Default: - No SSH access will be possible.
|
|
3783
3828
|
:param max_capacity: Maximum number of instances in the fleet. Default: desiredCapacity
|
|
3784
|
-
:param max_instance_lifetime: The maximum amount of time that an instance can be in service. The maximum duration applies to all current and future instances in the group. As an instance approaches its maximum duration, it is terminated and replaced, and cannot be used again. You must specify a value of at least
|
|
3829
|
+
:param max_instance_lifetime: The maximum amount of time that an instance can be in service. The maximum duration applies to all current and future instances in the group. As an instance approaches its maximum duration, it is terminated and replaced, and cannot be used again. You must specify a value of at least 86,400 seconds (one day). To clear a previously set value, leave this property undefined. Default: none
|
|
3785
3830
|
:param min_capacity: Minimum number of instances in the fleet. Default: 1
|
|
3786
3831
|
:param new_instances_protected_from_scale_in: Whether newly-launched instances are protected from termination by Amazon EC2 Auto Scaling when scaling in. By default, Auto Scaling can terminate an instance at any time after launch when scaling in an Auto Scaling Group, subject to the group's termination policy. However, you may wish to protect newly-launched instances from being scaled in if they are going to run critical applications that should not be prematurely terminated. This flag must be enabled if the Auto Scaling Group will be associated with an ECS Capacity Provider with managed termination protection. Default: false
|
|
3787
3832
|
:param notifications: Configure autoscaling group to send notifications about fleet changes to an SNS topic(s). Default: - No fleet change notifications will be sent.
|
|
@@ -4157,7 +4202,7 @@ class AutoScalingGroupCapacityOptions(_CommonAutoScalingGroupProps_808bbf2d):
|
|
|
4157
4202
|
to all current and future instances in the group. As an instance approaches its maximum duration,
|
|
4158
4203
|
it is terminated and replaced, and cannot be used again.
|
|
4159
4204
|
|
|
4160
|
-
You must specify a value of at least
|
|
4205
|
+
You must specify a value of at least 86,400 seconds (one day). To clear a previously set value,
|
|
4161
4206
|
leave this property undefined.
|
|
4162
4207
|
|
|
4163
4208
|
:default: none
|
|
@@ -4935,7 +4980,7 @@ class CapacityType(enum.Enum):
|
|
|
4935
4980
|
'''capacity block instances.'''
|
|
4936
4981
|
|
|
4937
4982
|
|
|
4938
|
-
@jsii.implements(_IInspectable_c2943556, _ITaggableV2_4e6798f8)
|
|
4983
|
+
@jsii.implements(_IInspectable_c2943556, _IAccessEntryRef_14bb9c0a, _ITaggableV2_4e6798f8)
|
|
4939
4984
|
class CfnAccessEntry(
|
|
4940
4985
|
_CfnResource_9df397a6,
|
|
4941
4986
|
metaclass=jsii.JSIIMeta,
|
|
@@ -4994,7 +5039,8 @@ class CfnAccessEntry(
|
|
|
4994
5039
|
type: typing.Optional[builtins.str] = None,
|
|
4995
5040
|
username: typing.Optional[builtins.str] = None,
|
|
4996
5041
|
) -> None:
|
|
4997
|
-
'''
|
|
5042
|
+
'''Create a new ``AWS::EKS::AccessEntry``.
|
|
5043
|
+
|
|
4998
5044
|
:param scope: Scope in which this resource is defined.
|
|
4999
5045
|
:param id: Construct identifier for this resource (unique in its scope).
|
|
5000
5046
|
:param cluster_name: The name of your cluster.
|
|
@@ -5051,6 +5097,12 @@ class CfnAccessEntry(
|
|
|
5051
5097
|
'''The CloudFormation resource type name for this resource class.'''
|
|
5052
5098
|
return typing.cast(builtins.str, jsii.sget(cls, "CFN_RESOURCE_TYPE_NAME"))
|
|
5053
5099
|
|
|
5100
|
+
@builtins.property
|
|
5101
|
+
@jsii.member(jsii_name="accessEntryRef")
|
|
5102
|
+
def access_entry_ref(self) -> _AccessEntryReference_447195cd:
|
|
5103
|
+
'''A reference to a AccessEntry resource.'''
|
|
5104
|
+
return typing.cast(_AccessEntryReference_447195cd, jsii.get(self, "accessEntryRef"))
|
|
5105
|
+
|
|
5054
5106
|
@builtins.property
|
|
5055
5107
|
@jsii.member(jsii_name="attrAccessEntryArn")
|
|
5056
5108
|
def attr_access_entry_arn(self) -> builtins.str:
|
|
@@ -5518,7 +5570,7 @@ class CfnAccessEntryProps:
|
|
|
5518
5570
|
)
|
|
5519
5571
|
|
|
5520
5572
|
|
|
5521
|
-
@jsii.implements(_IInspectable_c2943556, _ITaggable_36806126)
|
|
5573
|
+
@jsii.implements(_IInspectable_c2943556, _IAddonRef_fb5de88c, _ITaggable_36806126)
|
|
5522
5574
|
class CfnAddon(
|
|
5523
5575
|
_CfnResource_9df397a6,
|
|
5524
5576
|
metaclass=jsii.JSIIMeta,
|
|
@@ -5545,6 +5597,9 @@ class CfnAddon(
|
|
|
5545
5597
|
# the properties below are optional
|
|
5546
5598
|
addon_version="addonVersion",
|
|
5547
5599
|
configuration_values="configurationValues",
|
|
5600
|
+
namespace_config=eks.CfnAddon.NamespaceConfigProperty(
|
|
5601
|
+
namespace="namespace"
|
|
5602
|
+
),
|
|
5548
5603
|
pod_identity_associations=[eks.CfnAddon.PodIdentityAssociationProperty(
|
|
5549
5604
|
role_arn="roleArn",
|
|
5550
5605
|
service_account="serviceAccount"
|
|
@@ -5568,20 +5623,23 @@ class CfnAddon(
|
|
|
5568
5623
|
cluster_name: builtins.str,
|
|
5569
5624
|
addon_version: typing.Optional[builtins.str] = None,
|
|
5570
5625
|
configuration_values: typing.Optional[builtins.str] = None,
|
|
5626
|
+
namespace_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnAddon.NamespaceConfigProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
5571
5627
|
pod_identity_associations: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnAddon.PodIdentityAssociationProperty", typing.Dict[builtins.str, typing.Any]]]]]] = None,
|
|
5572
5628
|
preserve_on_delete: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
|
|
5573
5629
|
resolve_conflicts: typing.Optional[builtins.str] = None,
|
|
5574
5630
|
service_account_role_arn: typing.Optional[builtins.str] = None,
|
|
5575
5631
|
tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
5576
5632
|
) -> None:
|
|
5577
|
-
'''
|
|
5633
|
+
'''Create a new ``AWS::EKS::Addon``.
|
|
5634
|
+
|
|
5578
5635
|
:param scope: Scope in which this resource is defined.
|
|
5579
5636
|
:param id: Construct identifier for this resource (unique in its scope).
|
|
5580
5637
|
:param addon_name: The name of the add-on.
|
|
5581
5638
|
:param cluster_name: The name of your cluster.
|
|
5582
5639
|
:param addon_version: The version of the add-on.
|
|
5583
5640
|
:param configuration_values: The configuration values that you provided.
|
|
5584
|
-
:param
|
|
5641
|
+
:param namespace_config: The namespace configuration for the addon. This specifies the Kubernetes namespace where the addon is installed.
|
|
5642
|
+
:param pod_identity_associations: An array of EKS Pod Identity associations owned by the add-on. Each association maps a role to a service account in a namespace in the cluster. For more information, see `Attach an IAM Role to an Amazon EKS add-on using EKS Pod Identity <https://docs.aws.amazon.com/eks/latest/userguide/add-ons-iam.html>`_ in the *Amazon EKS User Guide* .
|
|
5585
5643
|
:param preserve_on_delete: Specifying this option preserves the add-on software on your cluster but Amazon EKS stops managing any settings for the add-on. If an IAM account is associated with the add-on, it isn't removed.
|
|
5586
5644
|
:param resolve_conflicts: How to resolve field value conflicts for an Amazon EKS add-on. Conflicts are handled based on the value you choose: - *None* – If the self-managed version of the add-on is installed on your cluster, Amazon EKS doesn't change the value. Creation of the add-on might fail. - *Overwrite* – If the self-managed version of the add-on is installed on your cluster and the Amazon EKS default value is different than the existing value, Amazon EKS changes the value to the Amazon EKS default value. - *Preserve* – This is similar to the NONE option. If the self-managed version of the add-on is installed on your cluster Amazon EKS doesn't change the add-on resource properties. Creation of the add-on might fail if conflicts are detected. This option works differently during the update operation. For more information, see ```UpdateAddon`` <https://docs.aws.amazon.com/eks/latest/APIReference/API_UpdateAddon.html>`_ . If you don't currently have the self-managed version of the add-on installed on your cluster, the Amazon EKS add-on is installed. Amazon EKS sets all values to default values, regardless of the option that you specify.
|
|
5587
5645
|
:param service_account_role_arn: The Amazon Resource Name (ARN) of an existing IAM role to bind to the add-on's service account. The role must be assigned the IAM permissions required by the add-on. If you don't specify an existing IAM role, then the add-on uses the permissions assigned to the node IAM role. For more information, see `Amazon EKS node IAM role <https://docs.aws.amazon.com/eks/latest/userguide/create-node-role.html>`_ in the *Amazon EKS User Guide* . .. epigraph:: To specify an existing IAM role, you must have an IAM OpenID Connect (OIDC) provider created for your cluster. For more information, see `Enabling IAM roles for service accounts on your cluster <https://docs.aws.amazon.com/eks/latest/userguide/enable-iam-roles-for-service-accounts.html>`_ in the *Amazon EKS User Guide* .
|
|
@@ -5596,6 +5654,7 @@ class CfnAddon(
|
|
|
5596
5654
|
cluster_name=cluster_name,
|
|
5597
5655
|
addon_version=addon_version,
|
|
5598
5656
|
configuration_values=configuration_values,
|
|
5657
|
+
namespace_config=namespace_config,
|
|
5599
5658
|
pod_identity_associations=pod_identity_associations,
|
|
5600
5659
|
preserve_on_delete=preserve_on_delete,
|
|
5601
5660
|
resolve_conflicts=resolve_conflicts,
|
|
@@ -5635,6 +5694,12 @@ class CfnAddon(
|
|
|
5635
5694
|
'''The CloudFormation resource type name for this resource class.'''
|
|
5636
5695
|
return typing.cast(builtins.str, jsii.sget(cls, "CFN_RESOURCE_TYPE_NAME"))
|
|
5637
5696
|
|
|
5697
|
+
@builtins.property
|
|
5698
|
+
@jsii.member(jsii_name="addonRef")
|
|
5699
|
+
def addon_ref(self) -> _AddonReference_afb1bd13:
|
|
5700
|
+
'''A reference to a Addon resource.'''
|
|
5701
|
+
return typing.cast(_AddonReference_afb1bd13, jsii.get(self, "addonRef"))
|
|
5702
|
+
|
|
5638
5703
|
@builtins.property
|
|
5639
5704
|
@jsii.member(jsii_name="attrArn")
|
|
5640
5705
|
def attr_arn(self) -> builtins.str:
|
|
@@ -5707,12 +5772,30 @@ class CfnAddon(
|
|
|
5707
5772
|
check_type(argname="argument value", value=value, expected_type=type_hints["value"])
|
|
5708
5773
|
jsii.set(self, "configurationValues", value) # pyright: ignore[reportArgumentType]
|
|
5709
5774
|
|
|
5775
|
+
@builtins.property
|
|
5776
|
+
@jsii.member(jsii_name="namespaceConfig")
|
|
5777
|
+
def namespace_config(
|
|
5778
|
+
self,
|
|
5779
|
+
) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnAddon.NamespaceConfigProperty"]]:
|
|
5780
|
+
'''The namespace configuration for the addon.'''
|
|
5781
|
+
return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnAddon.NamespaceConfigProperty"]], jsii.get(self, "namespaceConfig"))
|
|
5782
|
+
|
|
5783
|
+
@namespace_config.setter
|
|
5784
|
+
def namespace_config(
|
|
5785
|
+
self,
|
|
5786
|
+
value: typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnAddon.NamespaceConfigProperty"]],
|
|
5787
|
+
) -> None:
|
|
5788
|
+
if __debug__:
|
|
5789
|
+
type_hints = typing.get_type_hints(_typecheckingstub__039b518895f39f54dce3ea31a35bed66445fb7b5e7f4c52a89adafc86911f331)
|
|
5790
|
+
check_type(argname="argument value", value=value, expected_type=type_hints["value"])
|
|
5791
|
+
jsii.set(self, "namespaceConfig", value) # pyright: ignore[reportArgumentType]
|
|
5792
|
+
|
|
5710
5793
|
@builtins.property
|
|
5711
5794
|
@jsii.member(jsii_name="podIdentityAssociations")
|
|
5712
5795
|
def pod_identity_associations(
|
|
5713
5796
|
self,
|
|
5714
5797
|
) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnAddon.PodIdentityAssociationProperty"]]]]:
|
|
5715
|
-
'''An array of Pod Identity
|
|
5798
|
+
'''An array of EKS Pod Identity associations owned by the add-on.'''
|
|
5716
5799
|
return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnAddon.PodIdentityAssociationProperty"]]]], jsii.get(self, "podIdentityAssociations"))
|
|
5717
5800
|
|
|
5718
5801
|
@pod_identity_associations.setter
|
|
@@ -5782,6 +5865,58 @@ class CfnAddon(
|
|
|
5782
5865
|
check_type(argname="argument value", value=value, expected_type=type_hints["value"])
|
|
5783
5866
|
jsii.set(self, "tagsRaw", value) # pyright: ignore[reportArgumentType]
|
|
5784
5867
|
|
|
5868
|
+
@jsii.data_type(
|
|
5869
|
+
jsii_type="aws-cdk-lib.aws_eks.CfnAddon.NamespaceConfigProperty",
|
|
5870
|
+
jsii_struct_bases=[],
|
|
5871
|
+
name_mapping={"namespace": "namespace"},
|
|
5872
|
+
)
|
|
5873
|
+
class NamespaceConfigProperty:
|
|
5874
|
+
def __init__(self, *, namespace: builtins.str) -> None:
|
|
5875
|
+
'''The custom namespace configuration to use with the add-on.
|
|
5876
|
+
|
|
5877
|
+
:param namespace: The custom namespace for creating the add-on.
|
|
5878
|
+
|
|
5879
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-addon-namespaceconfig.html
|
|
5880
|
+
:exampleMetadata: fixture=_generated
|
|
5881
|
+
|
|
5882
|
+
Example::
|
|
5883
|
+
|
|
5884
|
+
# The code below shows an example of how to instantiate this type.
|
|
5885
|
+
# The values are placeholders you should change.
|
|
5886
|
+
from aws_cdk import aws_eks as eks
|
|
5887
|
+
|
|
5888
|
+
namespace_config_property = eks.CfnAddon.NamespaceConfigProperty(
|
|
5889
|
+
namespace="namespace"
|
|
5890
|
+
)
|
|
5891
|
+
'''
|
|
5892
|
+
if __debug__:
|
|
5893
|
+
type_hints = typing.get_type_hints(_typecheckingstub__c336eaf5f7476c60c3b0b8dc688fc9ea53319525b39f820a30e2510a38e67cbc)
|
|
5894
|
+
check_type(argname="argument namespace", value=namespace, expected_type=type_hints["namespace"])
|
|
5895
|
+
self._values: typing.Dict[builtins.str, typing.Any] = {
|
|
5896
|
+
"namespace": namespace,
|
|
5897
|
+
}
|
|
5898
|
+
|
|
5899
|
+
@builtins.property
|
|
5900
|
+
def namespace(self) -> builtins.str:
|
|
5901
|
+
'''The custom namespace for creating the add-on.
|
|
5902
|
+
|
|
5903
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-addon-namespaceconfig.html#cfn-eks-addon-namespaceconfig-namespace
|
|
5904
|
+
'''
|
|
5905
|
+
result = self._values.get("namespace")
|
|
5906
|
+
assert result is not None, "Required property 'namespace' is missing"
|
|
5907
|
+
return typing.cast(builtins.str, result)
|
|
5908
|
+
|
|
5909
|
+
def __eq__(self, rhs: typing.Any) -> builtins.bool:
|
|
5910
|
+
return isinstance(rhs, self.__class__) and rhs._values == self._values
|
|
5911
|
+
|
|
5912
|
+
def __ne__(self, rhs: typing.Any) -> builtins.bool:
|
|
5913
|
+
return not (rhs == self)
|
|
5914
|
+
|
|
5915
|
+
def __repr__(self) -> str:
|
|
5916
|
+
return "NamespaceConfigProperty(%s)" % ", ".join(
|
|
5917
|
+
k + "=" + repr(v) for k, v in self._values.items()
|
|
5918
|
+
)
|
|
5919
|
+
|
|
5785
5920
|
@jsii.data_type(
|
|
5786
5921
|
jsii_type="aws-cdk-lib.aws_eks.CfnAddon.PodIdentityAssociationProperty",
|
|
5787
5922
|
jsii_struct_bases=[],
|
|
@@ -5796,7 +5931,7 @@ class CfnAddon(
|
|
|
5796
5931
|
) -> None:
|
|
5797
5932
|
'''Amazon EKS Pod Identity associations provide the ability to manage credentials for your applications, similar to the way that Amazon EC2 instance profiles provide credentials to Amazon EC2 instances.
|
|
5798
5933
|
|
|
5799
|
-
:param role_arn: The Amazon Resource Name (ARN) of the IAM role to associate with the service account. The EKS Pod Identity agent manages credentials to assume this role for applications in the containers in the
|
|
5934
|
+
:param role_arn: The Amazon Resource Name (ARN) of the IAM role to associate with the service account. The EKS Pod Identity agent manages credentials to assume this role for applications in the containers in the Pods that use this service account.
|
|
5800
5935
|
:param service_account: The name of the Kubernetes service account inside the cluster to associate the IAM credentials with.
|
|
5801
5936
|
|
|
5802
5937
|
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-addon-podidentityassociation.html
|
|
@@ -5826,7 +5961,7 @@ class CfnAddon(
|
|
|
5826
5961
|
def role_arn(self) -> builtins.str:
|
|
5827
5962
|
'''The Amazon Resource Name (ARN) of the IAM role to associate with the service account.
|
|
5828
5963
|
|
|
5829
|
-
The EKS Pod Identity agent manages credentials to assume this role for applications in the containers in the
|
|
5964
|
+
The EKS Pod Identity agent manages credentials to assume this role for applications in the containers in the Pods that use this service account.
|
|
5830
5965
|
|
|
5831
5966
|
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-addon-podidentityassociation.html#cfn-eks-addon-podidentityassociation-rolearn
|
|
5832
5967
|
'''
|
|
@@ -5864,6 +5999,7 @@ class CfnAddon(
|
|
|
5864
5999
|
"cluster_name": "clusterName",
|
|
5865
6000
|
"addon_version": "addonVersion",
|
|
5866
6001
|
"configuration_values": "configurationValues",
|
|
6002
|
+
"namespace_config": "namespaceConfig",
|
|
5867
6003
|
"pod_identity_associations": "podIdentityAssociations",
|
|
5868
6004
|
"preserve_on_delete": "preserveOnDelete",
|
|
5869
6005
|
"resolve_conflicts": "resolveConflicts",
|
|
@@ -5879,6 +6015,7 @@ class CfnAddonProps:
|
|
|
5879
6015
|
cluster_name: builtins.str,
|
|
5880
6016
|
addon_version: typing.Optional[builtins.str] = None,
|
|
5881
6017
|
configuration_values: typing.Optional[builtins.str] = None,
|
|
6018
|
+
namespace_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnAddon.NamespaceConfigProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
5882
6019
|
pod_identity_associations: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnAddon.PodIdentityAssociationProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
|
|
5883
6020
|
preserve_on_delete: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
|
|
5884
6021
|
resolve_conflicts: typing.Optional[builtins.str] = None,
|
|
@@ -5891,7 +6028,8 @@ class CfnAddonProps:
|
|
|
5891
6028
|
:param cluster_name: The name of your cluster.
|
|
5892
6029
|
:param addon_version: The version of the add-on.
|
|
5893
6030
|
:param configuration_values: The configuration values that you provided.
|
|
5894
|
-
:param
|
|
6031
|
+
:param namespace_config: The namespace configuration for the addon. This specifies the Kubernetes namespace where the addon is installed.
|
|
6032
|
+
:param pod_identity_associations: An array of EKS Pod Identity associations owned by the add-on. Each association maps a role to a service account in a namespace in the cluster. For more information, see `Attach an IAM Role to an Amazon EKS add-on using EKS Pod Identity <https://docs.aws.amazon.com/eks/latest/userguide/add-ons-iam.html>`_ in the *Amazon EKS User Guide* .
|
|
5895
6033
|
:param preserve_on_delete: Specifying this option preserves the add-on software on your cluster but Amazon EKS stops managing any settings for the add-on. If an IAM account is associated with the add-on, it isn't removed.
|
|
5896
6034
|
:param resolve_conflicts: How to resolve field value conflicts for an Amazon EKS add-on. Conflicts are handled based on the value you choose: - *None* – If the self-managed version of the add-on is installed on your cluster, Amazon EKS doesn't change the value. Creation of the add-on might fail. - *Overwrite* – If the self-managed version of the add-on is installed on your cluster and the Amazon EKS default value is different than the existing value, Amazon EKS changes the value to the Amazon EKS default value. - *Preserve* – This is similar to the NONE option. If the self-managed version of the add-on is installed on your cluster Amazon EKS doesn't change the add-on resource properties. Creation of the add-on might fail if conflicts are detected. This option works differently during the update operation. For more information, see ```UpdateAddon`` <https://docs.aws.amazon.com/eks/latest/APIReference/API_UpdateAddon.html>`_ . If you don't currently have the self-managed version of the add-on installed on your cluster, the Amazon EKS add-on is installed. Amazon EKS sets all values to default values, regardless of the option that you specify.
|
|
5897
6035
|
:param service_account_role_arn: The Amazon Resource Name (ARN) of an existing IAM role to bind to the add-on's service account. The role must be assigned the IAM permissions required by the add-on. If you don't specify an existing IAM role, then the add-on uses the permissions assigned to the node IAM role. For more information, see `Amazon EKS node IAM role <https://docs.aws.amazon.com/eks/latest/userguide/create-node-role.html>`_ in the *Amazon EKS User Guide* . .. epigraph:: To specify an existing IAM role, you must have an IAM OpenID Connect (OIDC) provider created for your cluster. For more information, see `Enabling IAM roles for service accounts on your cluster <https://docs.aws.amazon.com/eks/latest/userguide/enable-iam-roles-for-service-accounts.html>`_ in the *Amazon EKS User Guide* .
|
|
@@ -5913,6 +6051,9 @@ class CfnAddonProps:
|
|
|
5913
6051
|
# the properties below are optional
|
|
5914
6052
|
addon_version="addonVersion",
|
|
5915
6053
|
configuration_values="configurationValues",
|
|
6054
|
+
namespace_config=eks.CfnAddon.NamespaceConfigProperty(
|
|
6055
|
+
namespace="namespace"
|
|
6056
|
+
),
|
|
5916
6057
|
pod_identity_associations=[eks.CfnAddon.PodIdentityAssociationProperty(
|
|
5917
6058
|
role_arn="roleArn",
|
|
5918
6059
|
service_account="serviceAccount"
|
|
@@ -5932,6 +6073,7 @@ class CfnAddonProps:
|
|
|
5932
6073
|
check_type(argname="argument cluster_name", value=cluster_name, expected_type=type_hints["cluster_name"])
|
|
5933
6074
|
check_type(argname="argument addon_version", value=addon_version, expected_type=type_hints["addon_version"])
|
|
5934
6075
|
check_type(argname="argument configuration_values", value=configuration_values, expected_type=type_hints["configuration_values"])
|
|
6076
|
+
check_type(argname="argument namespace_config", value=namespace_config, expected_type=type_hints["namespace_config"])
|
|
5935
6077
|
check_type(argname="argument pod_identity_associations", value=pod_identity_associations, expected_type=type_hints["pod_identity_associations"])
|
|
5936
6078
|
check_type(argname="argument preserve_on_delete", value=preserve_on_delete, expected_type=type_hints["preserve_on_delete"])
|
|
5937
6079
|
check_type(argname="argument resolve_conflicts", value=resolve_conflicts, expected_type=type_hints["resolve_conflicts"])
|
|
@@ -5945,6 +6087,8 @@ class CfnAddonProps:
|
|
|
5945
6087
|
self._values["addon_version"] = addon_version
|
|
5946
6088
|
if configuration_values is not None:
|
|
5947
6089
|
self._values["configuration_values"] = configuration_values
|
|
6090
|
+
if namespace_config is not None:
|
|
6091
|
+
self._values["namespace_config"] = namespace_config
|
|
5948
6092
|
if pod_identity_associations is not None:
|
|
5949
6093
|
self._values["pod_identity_associations"] = pod_identity_associations
|
|
5950
6094
|
if preserve_on_delete is not None:
|
|
@@ -5994,15 +6138,28 @@ class CfnAddonProps:
|
|
|
5994
6138
|
result = self._values.get("configuration_values")
|
|
5995
6139
|
return typing.cast(typing.Optional[builtins.str], result)
|
|
5996
6140
|
|
|
6141
|
+
@builtins.property
|
|
6142
|
+
def namespace_config(
|
|
6143
|
+
self,
|
|
6144
|
+
) -> typing.Optional[typing.Union[_IResolvable_da3f097b, CfnAddon.NamespaceConfigProperty]]:
|
|
6145
|
+
'''The namespace configuration for the addon.
|
|
6146
|
+
|
|
6147
|
+
This specifies the Kubernetes namespace where the addon is installed.
|
|
6148
|
+
|
|
6149
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-addon.html#cfn-eks-addon-namespaceconfig
|
|
6150
|
+
'''
|
|
6151
|
+
result = self._values.get("namespace_config")
|
|
6152
|
+
return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, CfnAddon.NamespaceConfigProperty]], result)
|
|
6153
|
+
|
|
5997
6154
|
@builtins.property
|
|
5998
6155
|
def pod_identity_associations(
|
|
5999
6156
|
self,
|
|
6000
6157
|
) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, CfnAddon.PodIdentityAssociationProperty]]]]:
|
|
6001
|
-
'''An array of Pod Identity
|
|
6158
|
+
'''An array of EKS Pod Identity associations owned by the add-on.
|
|
6002
6159
|
|
|
6003
|
-
Each
|
|
6160
|
+
Each association maps a role to a service account in a namespace in the cluster.
|
|
6004
6161
|
|
|
6005
|
-
For more information, see `Attach an IAM Role to an Amazon EKS add-on using Pod Identity <https://docs.aws.amazon.com/eks/latest/userguide/add-ons-iam.html>`_ in the *Amazon EKS User Guide* .
|
|
6162
|
+
For more information, see `Attach an IAM Role to an Amazon EKS add-on using EKS Pod Identity <https://docs.aws.amazon.com/eks/latest/userguide/add-ons-iam.html>`_ in the *Amazon EKS User Guide* .
|
|
6006
6163
|
|
|
6007
6164
|
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-addon.html#cfn-eks-addon-podidentityassociations
|
|
6008
6165
|
'''
|
|
@@ -6076,7 +6233,7 @@ class CfnAddonProps:
|
|
|
6076
6233
|
)
|
|
6077
6234
|
|
|
6078
6235
|
|
|
6079
|
-
@jsii.implements(_IInspectable_c2943556, _ITaggable_36806126)
|
|
6236
|
+
@jsii.implements(_IInspectable_c2943556, _IClusterRef_5527f448, _ITaggable_36806126)
|
|
6080
6237
|
class CfnCluster(
|
|
6081
6238
|
_CfnResource_9df397a6,
|
|
6082
6239
|
metaclass=jsii.JSIIMeta,
|
|
@@ -6090,7 +6247,7 @@ class CfnCluster(
|
|
|
6090
6247
|
|
|
6091
6248
|
Amazon EKS nodes run in your AWS account and connect to your cluster's control plane over the Kubernetes API server endpoint and a certificate file that is created for your cluster.
|
|
6092
6249
|
|
|
6093
|
-
You can use the ``endpointPublicAccess`` and ``endpointPrivateAccess`` parameters to enable or disable public and private access to your cluster's Kubernetes API server endpoint. By default, public access is enabled, and private access is disabled. For more information, see `Amazon EKS Cluster Endpoint Access Control <https://docs.aws.amazon.com/eks/latest/userguide/cluster-endpoint.html>`_ in the **Amazon EKS User Guide** .
|
|
6250
|
+
You can use the ``endpointPublicAccess`` and ``endpointPrivateAccess`` parameters to enable or disable public and private access to your cluster's Kubernetes API server endpoint. By default, public access is enabled, and private access is disabled. The endpoint domain name and IP address family depends on the value of the ``ipFamily`` for the cluster. For more information, see `Amazon EKS Cluster Endpoint Access Control <https://docs.aws.amazon.com/eks/latest/userguide/cluster-endpoint.html>`_ in the **Amazon EKS User Guide** .
|
|
6094
6251
|
|
|
6095
6252
|
You can use the ``logging`` parameter to enable or disable exporting the Kubernetes control plane logs for your cluster to CloudWatch Logs. By default, cluster control plane logs aren't exported to CloudWatch Logs. For more information, see `Amazon EKS Cluster Control Plane Logs <https://docs.aws.amazon.com/eks/latest/userguide/control-plane-logs.html>`_ in the **Amazon EKS User Guide** .
|
|
6096
6253
|
.. epigraph::
|
|
@@ -6132,6 +6289,7 @@ class CfnCluster(
|
|
|
6132
6289
|
node_pools=["nodePools"],
|
|
6133
6290
|
node_role_arn="nodeRoleArn"
|
|
6134
6291
|
),
|
|
6292
|
+
deletion_protection=False,
|
|
6135
6293
|
encryption_config=[eks.CfnCluster.EncryptionConfigProperty(
|
|
6136
6294
|
provider=eks.CfnCluster.ProviderProperty(
|
|
6137
6295
|
key_arn="keyArn"
|
|
@@ -6203,6 +6361,7 @@ class CfnCluster(
|
|
|
6203
6361
|
access_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnCluster.AccessConfigProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
6204
6362
|
bootstrap_self_managed_addons: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
|
|
6205
6363
|
compute_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnCluster.ComputeConfigProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
6364
|
+
deletion_protection: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
|
|
6206
6365
|
encryption_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnCluster.EncryptionConfigProperty", typing.Dict[builtins.str, typing.Any]]]]]] = None,
|
|
6207
6366
|
force: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
|
|
6208
6367
|
kubernetes_network_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnCluster.KubernetesNetworkConfigProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
@@ -6216,14 +6375,16 @@ class CfnCluster(
|
|
|
6216
6375
|
version: typing.Optional[builtins.str] = None,
|
|
6217
6376
|
zonal_shift_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnCluster.ZonalShiftConfigProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
6218
6377
|
) -> None:
|
|
6219
|
-
'''
|
|
6378
|
+
'''Create a new ``AWS::EKS::Cluster``.
|
|
6379
|
+
|
|
6220
6380
|
:param scope: Scope in which this resource is defined.
|
|
6221
6381
|
:param id: Construct identifier for this resource (unique in its scope).
|
|
6222
6382
|
:param resources_vpc_config: The VPC configuration that's used by the cluster control plane. Amazon EKS VPC resources have specific requirements to work properly with Kubernetes. For more information, see `Cluster VPC Considerations <https://docs.aws.amazon.com/eks/latest/userguide/network_reqs.html>`_ and `Cluster Security Group Considerations <https://docs.aws.amazon.com/eks/latest/userguide/sec-group-reqs.html>`_ in the *Amazon EKS User Guide* . You must specify at least two subnets. You can specify up to five security groups, but we recommend that you use a dedicated security group for your cluster control plane.
|
|
6223
6383
|
:param role_arn: The Amazon Resource Name (ARN) of the IAM role that provides permissions for the Kubernetes control plane to make calls to AWS API operations on your behalf. For more information, see `Amazon EKS Service IAM Role <https://docs.aws.amazon.com/eks/latest/userguide/service_IAM_role.html>`_ in the **Amazon EKS User Guide** .
|
|
6224
6384
|
:param access_config: The access configuration for the cluster.
|
|
6225
|
-
:param bootstrap_self_managed_addons: If you set this value to ``False`` when creating a cluster, the default networking add-ons will not be installed. The default networking
|
|
6385
|
+
:param bootstrap_self_managed_addons: If you set this value to ``False`` when creating a cluster, the default networking add-ons will not be installed. The default networking add-ons include ``vpc-cni`` , ``coredns`` , and ``kube-proxy`` . Use this option when you plan to install third-party alternative add-ons or self-manage the default networking add-ons.
|
|
6226
6386
|
:param compute_config: Indicates the current configuration of the compute capability on your EKS Auto Mode cluster. For example, if the capability is enabled or disabled. If the compute capability is enabled, EKS Auto Mode will create and delete EC2 Managed Instances in your AWS account. For more information, see EKS Auto Mode compute capability in the *Amazon EKS User Guide* .
|
|
6387
|
+
:param deletion_protection: The current deletion protection setting for the cluster. When ``true`` , deletion protection is enabled and the cluster cannot be deleted until protection is disabled. When ``false`` , the cluster can be deleted normally. This setting only applies to clusters in an active state.
|
|
6227
6388
|
:param encryption_config: The encryption configuration for the cluster.
|
|
6228
6389
|
:param force: Set this value to ``true`` to override upgrade-blocking readiness checks when updating a cluster. Default: - false
|
|
6229
6390
|
:param kubernetes_network_config: The Kubernetes network configuration for the cluster.
|
|
@@ -6247,6 +6408,7 @@ class CfnCluster(
|
|
|
6247
6408
|
access_config=access_config,
|
|
6248
6409
|
bootstrap_self_managed_addons=bootstrap_self_managed_addons,
|
|
6249
6410
|
compute_config=compute_config,
|
|
6411
|
+
deletion_protection=deletion_protection,
|
|
6250
6412
|
encryption_config=encryption_config,
|
|
6251
6413
|
force=force,
|
|
6252
6414
|
kubernetes_network_config=kubernetes_network_config,
|
|
@@ -6263,6 +6425,48 @@ class CfnCluster(
|
|
|
6263
6425
|
|
|
6264
6426
|
jsii.create(self.__class__, self, [scope, id, props])
|
|
6265
6427
|
|
|
6428
|
+
@jsii.member(jsii_name="fromClusterArn")
|
|
6429
|
+
@builtins.classmethod
|
|
6430
|
+
def from_cluster_arn(
|
|
6431
|
+
cls,
|
|
6432
|
+
scope: _constructs_77d1e7e8.Construct,
|
|
6433
|
+
id: builtins.str,
|
|
6434
|
+
arn: builtins.str,
|
|
6435
|
+
) -> _IClusterRef_5527f448:
|
|
6436
|
+
'''Creates a new IClusterRef from an ARN.
|
|
6437
|
+
|
|
6438
|
+
:param scope: -
|
|
6439
|
+
:param id: -
|
|
6440
|
+
:param arn: -
|
|
6441
|
+
'''
|
|
6442
|
+
if __debug__:
|
|
6443
|
+
type_hints = typing.get_type_hints(_typecheckingstub__b7520097767a23a7f7b750879adb8df71436766d2ad7c356ce08243330524e31)
|
|
6444
|
+
check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
|
|
6445
|
+
check_type(argname="argument id", value=id, expected_type=type_hints["id"])
|
|
6446
|
+
check_type(argname="argument arn", value=arn, expected_type=type_hints["arn"])
|
|
6447
|
+
return typing.cast(_IClusterRef_5527f448, jsii.sinvoke(cls, "fromClusterArn", [scope, id, arn]))
|
|
6448
|
+
|
|
6449
|
+
@jsii.member(jsii_name="fromClusterName")
|
|
6450
|
+
@builtins.classmethod
|
|
6451
|
+
def from_cluster_name(
|
|
6452
|
+
cls,
|
|
6453
|
+
scope: _constructs_77d1e7e8.Construct,
|
|
6454
|
+
id: builtins.str,
|
|
6455
|
+
cluster_name: builtins.str,
|
|
6456
|
+
) -> _IClusterRef_5527f448:
|
|
6457
|
+
'''Creates a new IClusterRef from a clusterName.
|
|
6458
|
+
|
|
6459
|
+
:param scope: -
|
|
6460
|
+
:param id: -
|
|
6461
|
+
:param cluster_name: -
|
|
6462
|
+
'''
|
|
6463
|
+
if __debug__:
|
|
6464
|
+
type_hints = typing.get_type_hints(_typecheckingstub__06b7df746bf67240facb00749c1c399634c9167d5acb1747f034220efaf30f49)
|
|
6465
|
+
check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
|
|
6466
|
+
check_type(argname="argument id", value=id, expected_type=type_hints["id"])
|
|
6467
|
+
check_type(argname="argument cluster_name", value=cluster_name, expected_type=type_hints["cluster_name"])
|
|
6468
|
+
return typing.cast(_IClusterRef_5527f448, jsii.sinvoke(cls, "fromClusterName", [scope, id, cluster_name]))
|
|
6469
|
+
|
|
6266
6470
|
@jsii.member(jsii_name="inspect")
|
|
6267
6471
|
def inspect(self, inspector: _TreeInspector_488e0dd5) -> None:
|
|
6268
6472
|
'''Examines the CloudFormation resource and discloses attributes.
|
|
@@ -6378,6 +6582,12 @@ class CfnCluster(
|
|
|
6378
6582
|
def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
|
|
6379
6583
|
return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.get(self, "cfnProperties"))
|
|
6380
6584
|
|
|
6585
|
+
@builtins.property
|
|
6586
|
+
@jsii.member(jsii_name="clusterRef")
|
|
6587
|
+
def cluster_ref(self) -> _ClusterReference_d6e6b9ff:
|
|
6588
|
+
'''A reference to a Cluster resource.'''
|
|
6589
|
+
return typing.cast(_ClusterReference_d6e6b9ff, jsii.get(self, "clusterRef"))
|
|
6590
|
+
|
|
6381
6591
|
@builtins.property
|
|
6382
6592
|
@jsii.member(jsii_name="tags")
|
|
6383
6593
|
def tags(self) -> _TagManager_0a598cb3:
|
|
@@ -6469,6 +6679,24 @@ class CfnCluster(
|
|
|
6469
6679
|
check_type(argname="argument value", value=value, expected_type=type_hints["value"])
|
|
6470
6680
|
jsii.set(self, "computeConfig", value) # pyright: ignore[reportArgumentType]
|
|
6471
6681
|
|
|
6682
|
+
@builtins.property
|
|
6683
|
+
@jsii.member(jsii_name="deletionProtection")
|
|
6684
|
+
def deletion_protection(
|
|
6685
|
+
self,
|
|
6686
|
+
) -> typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]]:
|
|
6687
|
+
'''The current deletion protection setting for the cluster.'''
|
|
6688
|
+
return typing.cast(typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]], jsii.get(self, "deletionProtection"))
|
|
6689
|
+
|
|
6690
|
+
@deletion_protection.setter
|
|
6691
|
+
def deletion_protection(
|
|
6692
|
+
self,
|
|
6693
|
+
value: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]],
|
|
6694
|
+
) -> None:
|
|
6695
|
+
if __debug__:
|
|
6696
|
+
type_hints = typing.get_type_hints(_typecheckingstub__19e2a4eccf6e2e232dc5d0a9572dba914015320e88042ef8f90020cd0d14b037)
|
|
6697
|
+
check_type(argname="argument value", value=value, expected_type=type_hints["value"])
|
|
6698
|
+
jsii.set(self, "deletionProtection", value) # pyright: ignore[reportArgumentType]
|
|
6699
|
+
|
|
6472
6700
|
@builtins.property
|
|
6473
6701
|
@jsii.member(jsii_name="encryptionConfig")
|
|
6474
6702
|
def encryption_config(
|
|
@@ -7590,8 +7818,8 @@ class CfnCluster(
|
|
|
7590
7818
|
|
|
7591
7819
|
You can add, change, or remove this configuration after the cluster is created.
|
|
7592
7820
|
|
|
7593
|
-
:param remote_node_networks: The list of network CIDRs that can contain hybrid nodes. These CIDR blocks define the expected IP address range of the hybrid nodes that join the cluster. These blocks are typically determined by your network administrator. Enter one or more IPv4 CIDR blocks in decimal dotted-quad notation (for example, ``10.2.0.0/16`` ). It must satisfy the following requirements: - Each block must be within an ``IPv4`` RFC-1918 network range. Minimum allowed size is /
|
|
7594
|
-
:param remote_pod_networks: The list of network CIDRs that can contain pods that run Kubernetes webhooks on hybrid nodes. These CIDR blocks are determined by configuring your Container Network Interface (CNI) plugin. We recommend the Calico CNI or Cilium CNI. Note that the Amazon VPC CNI plugin for Kubernetes isn't available for on-premises and edge locations. Enter one or more IPv4 CIDR blocks in decimal dotted-quad notation (for example, ``10.2.0.0/16`` ). It must satisfy the following requirements: - Each block must be within an ``IPv4`` RFC-1918 network range. Minimum allowed size is /
|
|
7821
|
+
:param remote_node_networks: The list of network CIDRs that can contain hybrid nodes. These CIDR blocks define the expected IP address range of the hybrid nodes that join the cluster. These blocks are typically determined by your network administrator. Enter one or more IPv4 CIDR blocks in decimal dotted-quad notation (for example, ``10.2.0.0/16`` ). It must satisfy the following requirements: - Each block must be within an ``IPv4`` RFC-1918 network range. Minimum allowed size is /32, maximum allowed size is /8. Publicly-routable addresses aren't supported. - Each block cannot overlap with the range of the VPC CIDR blocks for your EKS resources, or the block of the Kubernetes service IP range. - Each block must have a route to the VPC that uses the VPC CIDR blocks, not public IPs or Elastic IPs. There are many options including AWS Transit Gateway , AWS Site-to-Site VPN , or AWS Direct Connect . - Each host must allow outbound connection to the EKS cluster control plane on TCP ports ``443`` and ``10250`` . - Each host must allow inbound connection from the EKS cluster control plane on TCP port 10250 for logs, exec and port-forward operations. - Each host must allow TCP and UDP network connectivity to and from other hosts that are running ``CoreDNS`` on UDP port ``53`` for service and pod DNS names.
|
|
7822
|
+
:param remote_pod_networks: The list of network CIDRs that can contain pods that run Kubernetes webhooks on hybrid nodes. These CIDR blocks are determined by configuring your Container Network Interface (CNI) plugin. We recommend the Calico CNI or Cilium CNI. Note that the Amazon VPC CNI plugin for Kubernetes isn't available for on-premises and edge locations. Enter one or more IPv4 CIDR blocks in decimal dotted-quad notation (for example, ``10.2.0.0/16`` ). It must satisfy the following requirements: - Each block must be within an ``IPv4`` RFC-1918 network range. Minimum allowed size is /32, maximum allowed size is /8. Publicly-routable addresses aren't supported. - Each block cannot overlap with the range of the VPC CIDR blocks for your EKS resources, or the block of the Kubernetes service IP range.
|
|
7595
7823
|
|
|
7596
7824
|
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-remotenetworkconfig.html
|
|
7597
7825
|
:exampleMetadata: fixture=_generated
|
|
@@ -7635,7 +7863,7 @@ class CfnCluster(
|
|
|
7635
7863
|
|
|
7636
7864
|
It must satisfy the following requirements:
|
|
7637
7865
|
|
|
7638
|
-
- Each block must be within an ``IPv4`` RFC-1918 network range. Minimum allowed size is /
|
|
7866
|
+
- Each block must be within an ``IPv4`` RFC-1918 network range. Minimum allowed size is /32, maximum allowed size is /8. Publicly-routable addresses aren't supported.
|
|
7639
7867
|
- Each block cannot overlap with the range of the VPC CIDR blocks for your EKS resources, or the block of the Kubernetes service IP range.
|
|
7640
7868
|
- Each block must have a route to the VPC that uses the VPC CIDR blocks, not public IPs or Elastic IPs. There are many options including AWS Transit Gateway , AWS Site-to-Site VPN , or AWS Direct Connect .
|
|
7641
7869
|
- Each host must allow outbound connection to the EKS cluster control plane on TCP ports ``443`` and ``10250`` .
|
|
@@ -7660,7 +7888,7 @@ class CfnCluster(
|
|
|
7660
7888
|
|
|
7661
7889
|
It must satisfy the following requirements:
|
|
7662
7890
|
|
|
7663
|
-
- Each block must be within an ``IPv4`` RFC-1918 network range. Minimum allowed size is /
|
|
7891
|
+
- Each block must be within an ``IPv4`` RFC-1918 network range. Minimum allowed size is /32, maximum allowed size is /8. Publicly-routable addresses aren't supported.
|
|
7664
7892
|
- Each block cannot overlap with the range of the VPC CIDR blocks for your EKS resources, or the block of the Kubernetes service IP range.
|
|
7665
7893
|
|
|
7666
7894
|
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-remotenetworkconfig.html#cfn-eks-cluster-remotenetworkconfig-remotepodnetworks
|
|
@@ -7694,14 +7922,14 @@ class CfnCluster(
|
|
|
7694
7922
|
|
|
7695
7923
|
It must satisfy the following requirements:
|
|
7696
7924
|
|
|
7697
|
-
- Each block must be within an ``IPv4`` RFC-1918 network range. Minimum allowed size is /
|
|
7925
|
+
- Each block must be within an ``IPv4`` RFC-1918 network range. Minimum allowed size is /32, maximum allowed size is /8. Publicly-routable addresses aren't supported.
|
|
7698
7926
|
- Each block cannot overlap with the range of the VPC CIDR blocks for your EKS resources, or the block of the Kubernetes service IP range.
|
|
7699
7927
|
- Each block must have a route to the VPC that uses the VPC CIDR blocks, not public IPs or Elastic IPs. There are many options including AWS Transit Gateway , AWS Site-to-Site VPN , or AWS Direct Connect .
|
|
7700
7928
|
- Each host must allow outbound connection to the EKS cluster control plane on TCP ports ``443`` and ``10250`` .
|
|
7701
7929
|
- Each host must allow inbound connection from the EKS cluster control plane on TCP port 10250 for logs, exec and port-forward operations.
|
|
7702
7930
|
- Each host must allow TCP and UDP network connectivity to and from other hosts that are running ``CoreDNS`` on UDP port ``53`` for service and pod DNS names.
|
|
7703
7931
|
|
|
7704
|
-
:param cidrs: A network CIDR that can contain hybrid nodes. These CIDR blocks define the expected IP address range of the hybrid nodes that join the cluster. These blocks are typically determined by your network administrator. Enter one or more IPv4 CIDR blocks in decimal dotted-quad notation (for example, ``10.2.0.0/16`` ). It must satisfy the following requirements: - Each block must be within an ``IPv4`` RFC-1918 network range. Minimum allowed size is /
|
|
7932
|
+
:param cidrs: A network CIDR that can contain hybrid nodes. These CIDR blocks define the expected IP address range of the hybrid nodes that join the cluster. These blocks are typically determined by your network administrator. Enter one or more IPv4 CIDR blocks in decimal dotted-quad notation (for example, ``10.2.0.0/16`` ). It must satisfy the following requirements: - Each block must be within an ``IPv4`` RFC-1918 network range. Minimum allowed size is /32, maximum allowed size is /8. Publicly-routable addresses aren't supported. - Each block cannot overlap with the range of the VPC CIDR blocks for your EKS resources, or the block of the Kubernetes service IP range. - Each block must have a route to the VPC that uses the VPC CIDR blocks, not public IPs or Elastic IPs. There are many options including AWS Transit Gateway , AWS Site-to-Site VPN , or AWS Direct Connect . - Each host must allow outbound connection to the EKS cluster control plane on TCP ports ``443`` and ``10250`` . - Each host must allow inbound connection from the EKS cluster control plane on TCP port 10250 for logs, exec and port-forward operations. - Each host must allow TCP and UDP network connectivity to and from other hosts that are running ``CoreDNS`` on UDP port ``53`` for service and pod DNS names.
|
|
7705
7933
|
|
|
7706
7934
|
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-remotenodenetwork.html
|
|
7707
7935
|
:exampleMetadata: fixture=_generated
|
|
@@ -7733,7 +7961,7 @@ class CfnCluster(
|
|
|
7733
7961
|
|
|
7734
7962
|
It must satisfy the following requirements:
|
|
7735
7963
|
|
|
7736
|
-
- Each block must be within an ``IPv4`` RFC-1918 network range. Minimum allowed size is /
|
|
7964
|
+
- Each block must be within an ``IPv4`` RFC-1918 network range. Minimum allowed size is /32, maximum allowed size is /8. Publicly-routable addresses aren't supported.
|
|
7737
7965
|
- Each block cannot overlap with the range of the VPC CIDR blocks for your EKS resources, or the block of the Kubernetes service IP range.
|
|
7738
7966
|
- Each block must have a route to the VPC that uses the VPC CIDR blocks, not public IPs or Elastic IPs. There are many options including AWS Transit Gateway , AWS Site-to-Site VPN , or AWS Direct Connect .
|
|
7739
7967
|
- Each host must allow outbound connection to the EKS cluster control plane on TCP ports ``443`` and ``10250`` .
|
|
@@ -7772,10 +8000,10 @@ class CfnCluster(
|
|
|
7772
8000
|
|
|
7773
8001
|
It must satisfy the following requirements:
|
|
7774
8002
|
|
|
7775
|
-
- Each block must be within an ``IPv4`` RFC-1918 network range. Minimum allowed size is /
|
|
8003
|
+
- Each block must be within an ``IPv4`` RFC-1918 network range. Minimum allowed size is /32, maximum allowed size is /8. Publicly-routable addresses aren't supported.
|
|
7776
8004
|
- Each block cannot overlap with the range of the VPC CIDR blocks for your EKS resources, or the block of the Kubernetes service IP range.
|
|
7777
8005
|
|
|
7778
|
-
:param cidrs: A network CIDR that can contain pods that run Kubernetes webhooks on hybrid nodes. These CIDR blocks are determined by configuring your Container Network Interface (CNI) plugin. We recommend the Calico CNI or Cilium CNI. Note that the Amazon VPC CNI plugin for Kubernetes isn't available for on-premises and edge locations. Enter one or more IPv4 CIDR blocks in decimal dotted-quad notation (for example, ``10.2.0.0/16`` ). It must satisfy the following requirements: - Each block must be within an ``IPv4`` RFC-1918 network range. Minimum allowed size is /
|
|
8006
|
+
:param cidrs: A network CIDR that can contain pods that run Kubernetes webhooks on hybrid nodes. These CIDR blocks are determined by configuring your Container Network Interface (CNI) plugin. We recommend the Calico CNI or Cilium CNI. Note that the Amazon VPC CNI plugin for Kubernetes isn't available for on-premises and edge locations. Enter one or more IPv4 CIDR blocks in decimal dotted-quad notation (for example, ``10.2.0.0/16`` ). It must satisfy the following requirements: - Each block must be within an ``IPv4`` RFC-1918 network range. Minimum allowed size is /32, maximum allowed size is /8. Publicly-routable addresses aren't supported. - Each block cannot overlap with the range of the VPC CIDR blocks for your EKS resources, or the block of the Kubernetes service IP range.
|
|
7779
8007
|
|
|
7780
8008
|
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-remotepodnetwork.html
|
|
7781
8009
|
:exampleMetadata: fixture=_generated
|
|
@@ -7807,7 +8035,7 @@ class CfnCluster(
|
|
|
7807
8035
|
|
|
7808
8036
|
It must satisfy the following requirements:
|
|
7809
8037
|
|
|
7810
|
-
- Each block must be within an ``IPv4`` RFC-1918 network range. Minimum allowed size is /
|
|
8038
|
+
- Each block must be within an ``IPv4`` RFC-1918 network range. Minimum allowed size is /32, maximum allowed size is /8. Publicly-routable addresses aren't supported.
|
|
7811
8039
|
- Each block cannot overlap with the range of the VPC CIDR blocks for your EKS resources, or the block of the Kubernetes service IP range.
|
|
7812
8040
|
|
|
7813
8041
|
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-remotepodnetwork.html#cfn-eks-cluster-remotepodnetwork-cidrs
|
|
@@ -7859,9 +8087,9 @@ class CfnCluster(
|
|
|
7859
8087
|
- ``PublicAccessCidrs``
|
|
7860
8088
|
|
|
7861
8089
|
:param subnet_ids: Specify subnets for your Amazon EKS nodes. Amazon EKS creates cross-account elastic network interfaces in these subnets to allow communication between your nodes and the Kubernetes control plane.
|
|
7862
|
-
:param endpoint_private_access: Set this value to ``true`` to enable private access for your cluster's Kubernetes API server endpoint. If you enable private access, Kubernetes API requests from within your cluster's VPC use the private VPC endpoint. The default value for this parameter is ``false`` , which disables private access for your Kubernetes API server. If you disable private access and you have nodes or AWS Fargate pods in the cluster, then ensure that ``publicAccessCidrs`` includes the necessary CIDR blocks for communication with the nodes or Fargate pods. For more information, see `
|
|
7863
|
-
:param endpoint_public_access: Set this value to ``false`` to disable public access to your cluster's Kubernetes API server endpoint. If you disable public access, your cluster's Kubernetes API server can only receive requests from within the cluster VPC. The default value for this parameter is ``true`` , which enables public access for your Kubernetes API server. For more information, see `
|
|
7864
|
-
:param public_access_cidrs: The CIDR blocks that are allowed access to your cluster's public Kubernetes API server endpoint. Communication to the endpoint from addresses outside of the CIDR blocks that you specify is denied. The default value is ``0.0.0.0/0`` . If you've disabled private endpoint access, make sure that you specify the necessary CIDR blocks for every node and AWS Fargate ``Pod`` in the cluster. For more information, see `
|
|
8090
|
+
:param endpoint_private_access: Set this value to ``true`` to enable private access for your cluster's Kubernetes API server endpoint. If you enable private access, Kubernetes API requests from within your cluster's VPC use the private VPC endpoint. The default value for this parameter is ``false`` , which disables private access for your Kubernetes API server. If you disable private access and you have nodes or AWS Fargate pods in the cluster, then ensure that ``publicAccessCidrs`` includes the necessary CIDR blocks for communication with the nodes or Fargate pods. For more information, see `Cluster API server endpoint <https://docs.aws.amazon.com/eks/latest/userguide/cluster-endpoint.html>`_ in the **Amazon EKS User Guide** .
|
|
8091
|
+
:param endpoint_public_access: Set this value to ``false`` to disable public access to your cluster's Kubernetes API server endpoint. If you disable public access, your cluster's Kubernetes API server can only receive requests from within the cluster VPC. The default value for this parameter is ``true`` , which enables public access for your Kubernetes API server. The endpoint domain name and IP address family depends on the value of the ``ipFamily`` for the cluster. For more information, see `Cluster API server endpoint <https://docs.aws.amazon.com/eks/latest/userguide/cluster-endpoint.html>`_ in the **Amazon EKS User Guide** .
|
|
8092
|
+
:param public_access_cidrs: The CIDR blocks that are allowed access to your cluster's public Kubernetes API server endpoint. Communication to the endpoint from addresses outside of the CIDR blocks that you specify is denied. The default value is ``0.0.0.0/0`` and additionally ``::/0`` for dual-stack ``IPv6`` clusters. If you've disabled private endpoint access, make sure that you specify the necessary CIDR blocks for every node and AWS Fargate ``Pod`` in the cluster. For more information, see `Cluster API server endpoint <https://docs.aws.amazon.com/eks/latest/userguide/cluster-endpoint.html>`_ in the **Amazon EKS User Guide** . Note that the public endpoints are dual-stack for only ``IPv6`` clusters that are made after October 2024. You can't add ``IPv6`` CIDR blocks to ``IPv4`` clusters or ``IPv6`` clusters that were made before October 2024.
|
|
7865
8093
|
:param security_group_ids: Specify one or more security groups for the cross-account elastic network interfaces that Amazon EKS creates to use that allow communication between your nodes and the Kubernetes control plane. If you don't specify any security groups, then familiarize yourself with the difference between Amazon EKS defaults for clusters deployed with Kubernetes. For more information, see `Amazon EKS security group considerations <https://docs.aws.amazon.com/eks/latest/userguide/sec-group-reqs.html>`_ in the **Amazon EKS User Guide** .
|
|
7866
8094
|
|
|
7867
8095
|
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-resourcesvpcconfig.html
|
|
@@ -7920,7 +8148,7 @@ class CfnCluster(
|
|
|
7920
8148
|
) -> typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]]:
|
|
7921
8149
|
'''Set this value to ``true`` to enable private access for your cluster's Kubernetes API server endpoint.
|
|
7922
8150
|
|
|
7923
|
-
If you enable private access, Kubernetes API requests from within your cluster's VPC use the private VPC endpoint. The default value for this parameter is ``false`` , which disables private access for your Kubernetes API server. If you disable private access and you have nodes or AWS Fargate pods in the cluster, then ensure that ``publicAccessCidrs`` includes the necessary CIDR blocks for communication with the nodes or Fargate pods. For more information, see `
|
|
8151
|
+
If you enable private access, Kubernetes API requests from within your cluster's VPC use the private VPC endpoint. The default value for this parameter is ``false`` , which disables private access for your Kubernetes API server. If you disable private access and you have nodes or AWS Fargate pods in the cluster, then ensure that ``publicAccessCidrs`` includes the necessary CIDR blocks for communication with the nodes or Fargate pods. For more information, see `Cluster API server endpoint <https://docs.aws.amazon.com/eks/latest/userguide/cluster-endpoint.html>`_ in the **Amazon EKS User Guide** .
|
|
7924
8152
|
|
|
7925
8153
|
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-resourcesvpcconfig.html#cfn-eks-cluster-resourcesvpcconfig-endpointprivateaccess
|
|
7926
8154
|
'''
|
|
@@ -7933,7 +8161,7 @@ class CfnCluster(
|
|
|
7933
8161
|
) -> typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]]:
|
|
7934
8162
|
'''Set this value to ``false`` to disable public access to your cluster's Kubernetes API server endpoint.
|
|
7935
8163
|
|
|
7936
|
-
If you disable public access, your cluster's Kubernetes API server can only receive requests from within the cluster VPC. The default value for this parameter is ``true`` , which enables public access for your Kubernetes API server. For more information, see `
|
|
8164
|
+
If you disable public access, your cluster's Kubernetes API server can only receive requests from within the cluster VPC. The default value for this parameter is ``true`` , which enables public access for your Kubernetes API server. The endpoint domain name and IP address family depends on the value of the ``ipFamily`` for the cluster. For more information, see `Cluster API server endpoint <https://docs.aws.amazon.com/eks/latest/userguide/cluster-endpoint.html>`_ in the **Amazon EKS User Guide** .
|
|
7937
8165
|
|
|
7938
8166
|
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-resourcesvpcconfig.html#cfn-eks-cluster-resourcesvpcconfig-endpointpublicaccess
|
|
7939
8167
|
'''
|
|
@@ -7944,7 +8172,9 @@ class CfnCluster(
|
|
|
7944
8172
|
def public_access_cidrs(self) -> typing.Optional[typing.List[builtins.str]]:
|
|
7945
8173
|
'''The CIDR blocks that are allowed access to your cluster's public Kubernetes API server endpoint.
|
|
7946
8174
|
|
|
7947
|
-
Communication to the endpoint from addresses outside of the CIDR blocks that you specify is denied. The default value is ``0.0.0.0/0`` . If you've disabled private endpoint access, make sure that you specify the necessary CIDR blocks for every node and AWS Fargate ``Pod`` in the cluster. For more information, see `
|
|
8175
|
+
Communication to the endpoint from addresses outside of the CIDR blocks that you specify is denied. The default value is ``0.0.0.0/0`` and additionally ``::/0`` for dual-stack ``IPv6`` clusters. If you've disabled private endpoint access, make sure that you specify the necessary CIDR blocks for every node and AWS Fargate ``Pod`` in the cluster. For more information, see `Cluster API server endpoint <https://docs.aws.amazon.com/eks/latest/userguide/cluster-endpoint.html>`_ in the **Amazon EKS User Guide** .
|
|
8176
|
+
|
|
8177
|
+
Note that the public endpoints are dual-stack for only ``IPv6`` clusters that are made after October 2024. You can't add ``IPv6`` CIDR blocks to ``IPv4`` clusters or ``IPv6`` clusters that were made before October 2024.
|
|
7948
8178
|
|
|
7949
8179
|
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-resourcesvpcconfig.html#cfn-eks-cluster-resourcesvpcconfig-publicaccesscidrs
|
|
7950
8180
|
'''
|
|
@@ -8164,6 +8394,7 @@ class CfnCluster(
|
|
|
8164
8394
|
"access_config": "accessConfig",
|
|
8165
8395
|
"bootstrap_self_managed_addons": "bootstrapSelfManagedAddons",
|
|
8166
8396
|
"compute_config": "computeConfig",
|
|
8397
|
+
"deletion_protection": "deletionProtection",
|
|
8167
8398
|
"encryption_config": "encryptionConfig",
|
|
8168
8399
|
"force": "force",
|
|
8169
8400
|
"kubernetes_network_config": "kubernetesNetworkConfig",
|
|
@@ -8187,6 +8418,7 @@ class CfnClusterProps:
|
|
|
8187
8418
|
access_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnCluster.AccessConfigProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
8188
8419
|
bootstrap_self_managed_addons: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
|
|
8189
8420
|
compute_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnCluster.ComputeConfigProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
8421
|
+
deletion_protection: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
|
|
8190
8422
|
encryption_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnCluster.EncryptionConfigProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
|
|
8191
8423
|
force: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
|
|
8192
8424
|
kubernetes_network_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnCluster.KubernetesNetworkConfigProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
@@ -8205,8 +8437,9 @@ class CfnClusterProps:
|
|
|
8205
8437
|
:param resources_vpc_config: The VPC configuration that's used by the cluster control plane. Amazon EKS VPC resources have specific requirements to work properly with Kubernetes. For more information, see `Cluster VPC Considerations <https://docs.aws.amazon.com/eks/latest/userguide/network_reqs.html>`_ and `Cluster Security Group Considerations <https://docs.aws.amazon.com/eks/latest/userguide/sec-group-reqs.html>`_ in the *Amazon EKS User Guide* . You must specify at least two subnets. You can specify up to five security groups, but we recommend that you use a dedicated security group for your cluster control plane.
|
|
8206
8438
|
:param role_arn: The Amazon Resource Name (ARN) of the IAM role that provides permissions for the Kubernetes control plane to make calls to AWS API operations on your behalf. For more information, see `Amazon EKS Service IAM Role <https://docs.aws.amazon.com/eks/latest/userguide/service_IAM_role.html>`_ in the **Amazon EKS User Guide** .
|
|
8207
8439
|
:param access_config: The access configuration for the cluster.
|
|
8208
|
-
:param bootstrap_self_managed_addons: If you set this value to ``False`` when creating a cluster, the default networking add-ons will not be installed. The default networking
|
|
8440
|
+
:param bootstrap_self_managed_addons: If you set this value to ``False`` when creating a cluster, the default networking add-ons will not be installed. The default networking add-ons include ``vpc-cni`` , ``coredns`` , and ``kube-proxy`` . Use this option when you plan to install third-party alternative add-ons or self-manage the default networking add-ons.
|
|
8209
8441
|
:param compute_config: Indicates the current configuration of the compute capability on your EKS Auto Mode cluster. For example, if the capability is enabled or disabled. If the compute capability is enabled, EKS Auto Mode will create and delete EC2 Managed Instances in your AWS account. For more information, see EKS Auto Mode compute capability in the *Amazon EKS User Guide* .
|
|
8442
|
+
:param deletion_protection: The current deletion protection setting for the cluster. When ``true`` , deletion protection is enabled and the cluster cannot be deleted until protection is disabled. When ``false`` , the cluster can be deleted normally. This setting only applies to clusters in an active state.
|
|
8210
8443
|
:param encryption_config: The encryption configuration for the cluster.
|
|
8211
8444
|
:param force: Set this value to ``true`` to override upgrade-blocking readiness checks when updating a cluster. Default: - false
|
|
8212
8445
|
:param kubernetes_network_config: The Kubernetes network configuration for the cluster.
|
|
@@ -8252,6 +8485,7 @@ class CfnClusterProps:
|
|
|
8252
8485
|
node_pools=["nodePools"],
|
|
8253
8486
|
node_role_arn="nodeRoleArn"
|
|
8254
8487
|
),
|
|
8488
|
+
deletion_protection=False,
|
|
8255
8489
|
encryption_config=[eks.CfnCluster.EncryptionConfigProperty(
|
|
8256
8490
|
provider=eks.CfnCluster.ProviderProperty(
|
|
8257
8491
|
key_arn="keyArn"
|
|
@@ -8319,6 +8553,7 @@ class CfnClusterProps:
|
|
|
8319
8553
|
check_type(argname="argument access_config", value=access_config, expected_type=type_hints["access_config"])
|
|
8320
8554
|
check_type(argname="argument bootstrap_self_managed_addons", value=bootstrap_self_managed_addons, expected_type=type_hints["bootstrap_self_managed_addons"])
|
|
8321
8555
|
check_type(argname="argument compute_config", value=compute_config, expected_type=type_hints["compute_config"])
|
|
8556
|
+
check_type(argname="argument deletion_protection", value=deletion_protection, expected_type=type_hints["deletion_protection"])
|
|
8322
8557
|
check_type(argname="argument encryption_config", value=encryption_config, expected_type=type_hints["encryption_config"])
|
|
8323
8558
|
check_type(argname="argument force", value=force, expected_type=type_hints["force"])
|
|
8324
8559
|
check_type(argname="argument kubernetes_network_config", value=kubernetes_network_config, expected_type=type_hints["kubernetes_network_config"])
|
|
@@ -8341,6 +8576,8 @@ class CfnClusterProps:
|
|
|
8341
8576
|
self._values["bootstrap_self_managed_addons"] = bootstrap_self_managed_addons
|
|
8342
8577
|
if compute_config is not None:
|
|
8343
8578
|
self._values["compute_config"] = compute_config
|
|
8579
|
+
if deletion_protection is not None:
|
|
8580
|
+
self._values["deletion_protection"] = deletion_protection
|
|
8344
8581
|
if encryption_config is not None:
|
|
8345
8582
|
self._values["encryption_config"] = encryption_config
|
|
8346
8583
|
if force is not None:
|
|
@@ -8409,7 +8646,7 @@ class CfnClusterProps:
|
|
|
8409
8646
|
) -> typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]]:
|
|
8410
8647
|
'''If you set this value to ``False`` when creating a cluster, the default networking add-ons will not be installed.
|
|
8411
8648
|
|
|
8412
|
-
The default networking
|
|
8649
|
+
The default networking add-ons include ``vpc-cni`` , ``coredns`` , and ``kube-proxy`` .
|
|
8413
8650
|
|
|
8414
8651
|
Use this option when you plan to install third-party alternative add-ons or self-manage the default networking add-ons.
|
|
8415
8652
|
|
|
@@ -8431,6 +8668,19 @@ class CfnClusterProps:
|
|
|
8431
8668
|
result = self._values.get("compute_config")
|
|
8432
8669
|
return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, CfnCluster.ComputeConfigProperty]], result)
|
|
8433
8670
|
|
|
8671
|
+
@builtins.property
|
|
8672
|
+
def deletion_protection(
|
|
8673
|
+
self,
|
|
8674
|
+
) -> typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]]:
|
|
8675
|
+
'''The current deletion protection setting for the cluster.
|
|
8676
|
+
|
|
8677
|
+
When ``true`` , deletion protection is enabled and the cluster cannot be deleted until protection is disabled. When ``false`` , the cluster can be deleted normally. This setting only applies to clusters in an active state.
|
|
8678
|
+
|
|
8679
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-cluster.html#cfn-eks-cluster-deletionprotection
|
|
8680
|
+
'''
|
|
8681
|
+
result = self._values.get("deletion_protection")
|
|
8682
|
+
return typing.cast(typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]], result)
|
|
8683
|
+
|
|
8434
8684
|
@builtins.property
|
|
8435
8685
|
def encryption_config(
|
|
8436
8686
|
self,
|
|
@@ -8591,7 +8841,7 @@ class CfnClusterProps:
|
|
|
8591
8841
|
)
|
|
8592
8842
|
|
|
8593
8843
|
|
|
8594
|
-
@jsii.implements(_IInspectable_c2943556, _ITaggable_36806126)
|
|
8844
|
+
@jsii.implements(_IInspectable_c2943556, _IFargateProfileRef_ebba9623, _ITaggable_36806126)
|
|
8595
8845
|
class CfnFargateProfile(
|
|
8596
8846
|
_CfnResource_9df397a6,
|
|
8597
8847
|
metaclass=jsii.JSIIMeta,
|
|
@@ -8656,7 +8906,8 @@ class CfnFargateProfile(
|
|
|
8656
8906
|
subnets: typing.Optional[typing.Sequence[builtins.str]] = None,
|
|
8657
8907
|
tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
8658
8908
|
) -> None:
|
|
8659
|
-
'''
|
|
8909
|
+
'''Create a new ``AWS::EKS::FargateProfile``.
|
|
8910
|
+
|
|
8660
8911
|
:param scope: Scope in which this resource is defined.
|
|
8661
8912
|
:param id: Construct identifier for this resource (unique in its scope).
|
|
8662
8913
|
:param cluster_name: The name of your cluster.
|
|
@@ -8725,6 +8976,12 @@ class CfnFargateProfile(
|
|
|
8725
8976
|
def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
|
|
8726
8977
|
return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.get(self, "cfnProperties"))
|
|
8727
8978
|
|
|
8979
|
+
@builtins.property
|
|
8980
|
+
@jsii.member(jsii_name="fargateProfileRef")
|
|
8981
|
+
def fargate_profile_ref(self) -> _FargateProfileReference_5fd534f8:
|
|
8982
|
+
'''A reference to a FargateProfile resource.'''
|
|
8983
|
+
return typing.cast(_FargateProfileReference_5fd534f8, jsii.get(self, "fargateProfileRef"))
|
|
8984
|
+
|
|
8728
8985
|
@builtins.property
|
|
8729
8986
|
@jsii.member(jsii_name="tags")
|
|
8730
8987
|
def tags(self) -> _TagManager_0a598cb3:
|
|
@@ -9123,7 +9380,7 @@ class CfnFargateProfileProps:
|
|
|
9123
9380
|
)
|
|
9124
9381
|
|
|
9125
9382
|
|
|
9126
|
-
@jsii.implements(_IInspectable_c2943556, _ITaggable_36806126)
|
|
9383
|
+
@jsii.implements(_IInspectable_c2943556, _IIdentityProviderConfigRef_0106e882, _ITaggable_36806126)
|
|
9127
9384
|
class CfnIdentityProviderConfig(
|
|
9128
9385
|
_CfnResource_9df397a6,
|
|
9129
9386
|
metaclass=jsii.JSIIMeta,
|
|
@@ -9181,7 +9438,8 @@ class CfnIdentityProviderConfig(
|
|
|
9181
9438
|
oidc: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnIdentityProviderConfig.OidcIdentityProviderConfigProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
9182
9439
|
tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
9183
9440
|
) -> None:
|
|
9184
|
-
'''
|
|
9441
|
+
'''Create a new ``AWS::EKS::IdentityProviderConfig``.
|
|
9442
|
+
|
|
9185
9443
|
:param scope: Scope in which this resource is defined.
|
|
9186
9444
|
:param id: Construct identifier for this resource (unique in its scope).
|
|
9187
9445
|
:param cluster_name: The name of your cluster.
|
|
@@ -9248,6 +9506,12 @@ class CfnIdentityProviderConfig(
|
|
|
9248
9506
|
def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
|
|
9249
9507
|
return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.get(self, "cfnProperties"))
|
|
9250
9508
|
|
|
9509
|
+
@builtins.property
|
|
9510
|
+
@jsii.member(jsii_name="identityProviderConfigRef")
|
|
9511
|
+
def identity_provider_config_ref(self) -> _IdentityProviderConfigReference_7c0f381e:
|
|
9512
|
+
'''A reference to a IdentityProviderConfig resource.'''
|
|
9513
|
+
return typing.cast(_IdentityProviderConfigReference_7c0f381e, jsii.get(self, "identityProviderConfigRef"))
|
|
9514
|
+
|
|
9251
9515
|
@builtins.property
|
|
9252
9516
|
@jsii.member(jsii_name="tags")
|
|
9253
9517
|
def tags(self) -> _TagManager_0a598cb3:
|
|
@@ -9712,7 +9976,7 @@ class CfnIdentityProviderConfigProps:
|
|
|
9712
9976
|
)
|
|
9713
9977
|
|
|
9714
9978
|
|
|
9715
|
-
@jsii.implements(_IInspectable_c2943556, _ITaggable_36806126)
|
|
9979
|
+
@jsii.implements(_IInspectable_c2943556, _INodegroupRef_cac0d8aa, _ITaggable_36806126)
|
|
9716
9980
|
class CfnNodegroup(
|
|
9717
9981
|
_CfnResource_9df397a6,
|
|
9718
9982
|
metaclass=jsii.JSIIMeta,
|
|
@@ -9760,7 +10024,17 @@ class CfnNodegroup(
|
|
|
9760
10024
|
),
|
|
9761
10025
|
nodegroup_name="nodegroupName",
|
|
9762
10026
|
node_repair_config=eks.CfnNodegroup.NodeRepairConfigProperty(
|
|
9763
|
-
enabled=False
|
|
10027
|
+
enabled=False,
|
|
10028
|
+
max_parallel_nodes_repaired_count=123,
|
|
10029
|
+
max_parallel_nodes_repaired_percentage=123,
|
|
10030
|
+
max_unhealthy_node_threshold_count=123,
|
|
10031
|
+
max_unhealthy_node_threshold_percentage=123,
|
|
10032
|
+
node_repair_config_overrides=[eks.CfnNodegroup.NodeRepairConfigOverridesProperty(
|
|
10033
|
+
min_repair_wait_time_mins=123,
|
|
10034
|
+
node_monitoring_condition="nodeMonitoringCondition",
|
|
10035
|
+
node_unhealthy_reason="nodeUnhealthyReason",
|
|
10036
|
+
repair_action="repairAction"
|
|
10037
|
+
)]
|
|
9764
10038
|
),
|
|
9765
10039
|
release_version="releaseVersion",
|
|
9766
10040
|
remote_access=eks.CfnNodegroup.RemoteAccessProperty(
|
|
@@ -9816,7 +10090,8 @@ class CfnNodegroup(
|
|
|
9816
10090
|
update_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnNodegroup.UpdateConfigProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
9817
10091
|
version: typing.Optional[builtins.str] = None,
|
|
9818
10092
|
) -> None:
|
|
9819
|
-
'''
|
|
10093
|
+
'''Create a new ``AWS::EKS::Nodegroup``.
|
|
10094
|
+
|
|
9820
10095
|
:param scope: Scope in which this resource is defined.
|
|
9821
10096
|
:param id: Construct identifier for this resource (unique in its scope).
|
|
9822
10097
|
:param cluster_name: The name of your cluster.
|
|
@@ -9937,6 +10212,12 @@ class CfnNodegroup(
|
|
|
9937
10212
|
def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
|
|
9938
10213
|
return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.get(self, "cfnProperties"))
|
|
9939
10214
|
|
|
10215
|
+
@builtins.property
|
|
10216
|
+
@jsii.member(jsii_name="nodegroupRef")
|
|
10217
|
+
def nodegroup_ref(self) -> _NodegroupReference_eab944f6:
|
|
10218
|
+
'''A reference to a Nodegroup resource.'''
|
|
10219
|
+
return typing.cast(_NodegroupReference_eab944f6, jsii.get(self, "nodegroupRef"))
|
|
10220
|
+
|
|
9940
10221
|
@builtins.property
|
|
9941
10222
|
@jsii.member(jsii_name="tags")
|
|
9942
10223
|
def tags(self) -> _TagManager_0a598cb3:
|
|
@@ -10328,20 +10609,144 @@ class CfnNodegroup(
|
|
|
10328
10609
|
k + "=" + repr(v) for k, v in self._values.items()
|
|
10329
10610
|
)
|
|
10330
10611
|
|
|
10612
|
+
@jsii.data_type(
|
|
10613
|
+
jsii_type="aws-cdk-lib.aws_eks.CfnNodegroup.NodeRepairConfigOverridesProperty",
|
|
10614
|
+
jsii_struct_bases=[],
|
|
10615
|
+
name_mapping={
|
|
10616
|
+
"min_repair_wait_time_mins": "minRepairWaitTimeMins",
|
|
10617
|
+
"node_monitoring_condition": "nodeMonitoringCondition",
|
|
10618
|
+
"node_unhealthy_reason": "nodeUnhealthyReason",
|
|
10619
|
+
"repair_action": "repairAction",
|
|
10620
|
+
},
|
|
10621
|
+
)
|
|
10622
|
+
class NodeRepairConfigOverridesProperty:
|
|
10623
|
+
def __init__(
|
|
10624
|
+
self,
|
|
10625
|
+
*,
|
|
10626
|
+
min_repair_wait_time_mins: typing.Optional[jsii.Number] = None,
|
|
10627
|
+
node_monitoring_condition: typing.Optional[builtins.str] = None,
|
|
10628
|
+
node_unhealthy_reason: typing.Optional[builtins.str] = None,
|
|
10629
|
+
repair_action: typing.Optional[builtins.str] = None,
|
|
10630
|
+
) -> None:
|
|
10631
|
+
'''Specify granular overrides for specific repair actions.
|
|
10632
|
+
|
|
10633
|
+
These overrides control the repair action and the repair delay time before a node is considered eligible for repair. If you use this, you must specify all the values.
|
|
10634
|
+
|
|
10635
|
+
:param min_repair_wait_time_mins: Specify the minimum time in minutes to wait before attempting to repair a node with this specific NodeMonitoringCondition and NodeUnhealthyReason.
|
|
10636
|
+
:param node_monitoring_condition: Specify an unhealthy condition reported by the node monitoring agent that this override would apply to.
|
|
10637
|
+
:param node_unhealthy_reason: Specify a reason reported by the node monitoring agent that this override would apply to.
|
|
10638
|
+
:param repair_action: Specify the repair action to take for nodes when all of the specified conditions are met.
|
|
10639
|
+
|
|
10640
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-nodegroup-noderepairconfigoverrides.html
|
|
10641
|
+
:exampleMetadata: fixture=_generated
|
|
10642
|
+
|
|
10643
|
+
Example::
|
|
10644
|
+
|
|
10645
|
+
# The code below shows an example of how to instantiate this type.
|
|
10646
|
+
# The values are placeholders you should change.
|
|
10647
|
+
from aws_cdk import aws_eks as eks
|
|
10648
|
+
|
|
10649
|
+
node_repair_config_overrides_property = eks.CfnNodegroup.NodeRepairConfigOverridesProperty(
|
|
10650
|
+
min_repair_wait_time_mins=123,
|
|
10651
|
+
node_monitoring_condition="nodeMonitoringCondition",
|
|
10652
|
+
node_unhealthy_reason="nodeUnhealthyReason",
|
|
10653
|
+
repair_action="repairAction"
|
|
10654
|
+
)
|
|
10655
|
+
'''
|
|
10656
|
+
if __debug__:
|
|
10657
|
+
type_hints = typing.get_type_hints(_typecheckingstub__1c8182284f4e249d40ce1280381d42d4de802714ccdb98dd8928f394e7a79a18)
|
|
10658
|
+
check_type(argname="argument min_repair_wait_time_mins", value=min_repair_wait_time_mins, expected_type=type_hints["min_repair_wait_time_mins"])
|
|
10659
|
+
check_type(argname="argument node_monitoring_condition", value=node_monitoring_condition, expected_type=type_hints["node_monitoring_condition"])
|
|
10660
|
+
check_type(argname="argument node_unhealthy_reason", value=node_unhealthy_reason, expected_type=type_hints["node_unhealthy_reason"])
|
|
10661
|
+
check_type(argname="argument repair_action", value=repair_action, expected_type=type_hints["repair_action"])
|
|
10662
|
+
self._values: typing.Dict[builtins.str, typing.Any] = {}
|
|
10663
|
+
if min_repair_wait_time_mins is not None:
|
|
10664
|
+
self._values["min_repair_wait_time_mins"] = min_repair_wait_time_mins
|
|
10665
|
+
if node_monitoring_condition is not None:
|
|
10666
|
+
self._values["node_monitoring_condition"] = node_monitoring_condition
|
|
10667
|
+
if node_unhealthy_reason is not None:
|
|
10668
|
+
self._values["node_unhealthy_reason"] = node_unhealthy_reason
|
|
10669
|
+
if repair_action is not None:
|
|
10670
|
+
self._values["repair_action"] = repair_action
|
|
10671
|
+
|
|
10672
|
+
@builtins.property
|
|
10673
|
+
def min_repair_wait_time_mins(self) -> typing.Optional[jsii.Number]:
|
|
10674
|
+
'''Specify the minimum time in minutes to wait before attempting to repair a node with this specific NodeMonitoringCondition and NodeUnhealthyReason.
|
|
10675
|
+
|
|
10676
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-nodegroup-noderepairconfigoverrides.html#cfn-eks-nodegroup-noderepairconfigoverrides-minrepairwaittimemins
|
|
10677
|
+
'''
|
|
10678
|
+
result = self._values.get("min_repair_wait_time_mins")
|
|
10679
|
+
return typing.cast(typing.Optional[jsii.Number], result)
|
|
10680
|
+
|
|
10681
|
+
@builtins.property
|
|
10682
|
+
def node_monitoring_condition(self) -> typing.Optional[builtins.str]:
|
|
10683
|
+
'''Specify an unhealthy condition reported by the node monitoring agent that this override would apply to.
|
|
10684
|
+
|
|
10685
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-nodegroup-noderepairconfigoverrides.html#cfn-eks-nodegroup-noderepairconfigoverrides-nodemonitoringcondition
|
|
10686
|
+
'''
|
|
10687
|
+
result = self._values.get("node_monitoring_condition")
|
|
10688
|
+
return typing.cast(typing.Optional[builtins.str], result)
|
|
10689
|
+
|
|
10690
|
+
@builtins.property
|
|
10691
|
+
def node_unhealthy_reason(self) -> typing.Optional[builtins.str]:
|
|
10692
|
+
'''Specify a reason reported by the node monitoring agent that this override would apply to.
|
|
10693
|
+
|
|
10694
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-nodegroup-noderepairconfigoverrides.html#cfn-eks-nodegroup-noderepairconfigoverrides-nodeunhealthyreason
|
|
10695
|
+
'''
|
|
10696
|
+
result = self._values.get("node_unhealthy_reason")
|
|
10697
|
+
return typing.cast(typing.Optional[builtins.str], result)
|
|
10698
|
+
|
|
10699
|
+
@builtins.property
|
|
10700
|
+
def repair_action(self) -> typing.Optional[builtins.str]:
|
|
10701
|
+
'''Specify the repair action to take for nodes when all of the specified conditions are met.
|
|
10702
|
+
|
|
10703
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-nodegroup-noderepairconfigoverrides.html#cfn-eks-nodegroup-noderepairconfigoverrides-repairaction
|
|
10704
|
+
'''
|
|
10705
|
+
result = self._values.get("repair_action")
|
|
10706
|
+
return typing.cast(typing.Optional[builtins.str], result)
|
|
10707
|
+
|
|
10708
|
+
def __eq__(self, rhs: typing.Any) -> builtins.bool:
|
|
10709
|
+
return isinstance(rhs, self.__class__) and rhs._values == self._values
|
|
10710
|
+
|
|
10711
|
+
def __ne__(self, rhs: typing.Any) -> builtins.bool:
|
|
10712
|
+
return not (rhs == self)
|
|
10713
|
+
|
|
10714
|
+
def __repr__(self) -> str:
|
|
10715
|
+
return "NodeRepairConfigOverridesProperty(%s)" % ", ".join(
|
|
10716
|
+
k + "=" + repr(v) for k, v in self._values.items()
|
|
10717
|
+
)
|
|
10718
|
+
|
|
10331
10719
|
@jsii.data_type(
|
|
10332
10720
|
jsii_type="aws-cdk-lib.aws_eks.CfnNodegroup.NodeRepairConfigProperty",
|
|
10333
10721
|
jsii_struct_bases=[],
|
|
10334
|
-
name_mapping={
|
|
10722
|
+
name_mapping={
|
|
10723
|
+
"enabled": "enabled",
|
|
10724
|
+
"max_parallel_nodes_repaired_count": "maxParallelNodesRepairedCount",
|
|
10725
|
+
"max_parallel_nodes_repaired_percentage": "maxParallelNodesRepairedPercentage",
|
|
10726
|
+
"max_unhealthy_node_threshold_count": "maxUnhealthyNodeThresholdCount",
|
|
10727
|
+
"max_unhealthy_node_threshold_percentage": "maxUnhealthyNodeThresholdPercentage",
|
|
10728
|
+
"node_repair_config_overrides": "nodeRepairConfigOverrides",
|
|
10729
|
+
},
|
|
10335
10730
|
)
|
|
10336
10731
|
class NodeRepairConfigProperty:
|
|
10337
10732
|
def __init__(
|
|
10338
10733
|
self,
|
|
10339
10734
|
*,
|
|
10340
10735
|
enabled: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
|
|
10736
|
+
max_parallel_nodes_repaired_count: typing.Optional[jsii.Number] = None,
|
|
10737
|
+
max_parallel_nodes_repaired_percentage: typing.Optional[jsii.Number] = None,
|
|
10738
|
+
max_unhealthy_node_threshold_count: typing.Optional[jsii.Number] = None,
|
|
10739
|
+
max_unhealthy_node_threshold_percentage: typing.Optional[jsii.Number] = None,
|
|
10740
|
+
node_repair_config_overrides: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnNodegroup.NodeRepairConfigOverridesProperty", typing.Dict[builtins.str, typing.Any]]]]]] = None,
|
|
10341
10741
|
) -> None:
|
|
10342
10742
|
'''The node auto repair configuration for the node group.
|
|
10343
10743
|
|
|
10344
10744
|
:param enabled: Specifies whether to enable node auto repair for the node group. Node auto repair is disabled by default.
|
|
10745
|
+
:param max_parallel_nodes_repaired_count: Specify the maximum number of nodes that can be repaired concurrently or in parallel, expressed as a count of unhealthy nodes. This gives you finer-grained control over the pace of node replacements. When using this, you cannot also set MaxParallelNodesRepairedPercentage at the same time.
|
|
10746
|
+
:param max_parallel_nodes_repaired_percentage: Specify the maximum number of nodes that can be repaired concurrently or in parallel, expressed as a percentage of unhealthy nodes. This gives you finer-grained control over the pace of node replacements. When using this, you cannot also set MaxParallelNodesRepairedCount at the same time.
|
|
10747
|
+
:param max_unhealthy_node_threshold_count: Specify a count threshold of unhealthy nodes, above which node auto repair actions will stop. When using this, you cannot also set MaxUnhealthyNodeThresholdPercentage at the same time.
|
|
10748
|
+
:param max_unhealthy_node_threshold_percentage: Specify a percentage threshold of unhealthy nodes, above which node auto repair actions will stop. When using this, you cannot also set MaxUnhealthyNodeThresholdCount at the same time.
|
|
10749
|
+
:param node_repair_config_overrides: Specify granular overrides for specific repair actions. These overrides control the repair action and the repair delay time before a node is considered eligible for repair. If you use this, you must specify all the values.
|
|
10345
10750
|
|
|
10346
10751
|
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-nodegroup-noderepairconfig.html
|
|
10347
10752
|
:exampleMetadata: fixture=_generated
|
|
@@ -10353,15 +10758,40 @@ class CfnNodegroup(
|
|
|
10353
10758
|
from aws_cdk import aws_eks as eks
|
|
10354
10759
|
|
|
10355
10760
|
node_repair_config_property = eks.CfnNodegroup.NodeRepairConfigProperty(
|
|
10356
|
-
enabled=False
|
|
10761
|
+
enabled=False,
|
|
10762
|
+
max_parallel_nodes_repaired_count=123,
|
|
10763
|
+
max_parallel_nodes_repaired_percentage=123,
|
|
10764
|
+
max_unhealthy_node_threshold_count=123,
|
|
10765
|
+
max_unhealthy_node_threshold_percentage=123,
|
|
10766
|
+
node_repair_config_overrides=[eks.CfnNodegroup.NodeRepairConfigOverridesProperty(
|
|
10767
|
+
min_repair_wait_time_mins=123,
|
|
10768
|
+
node_monitoring_condition="nodeMonitoringCondition",
|
|
10769
|
+
node_unhealthy_reason="nodeUnhealthyReason",
|
|
10770
|
+
repair_action="repairAction"
|
|
10771
|
+
)]
|
|
10357
10772
|
)
|
|
10358
10773
|
'''
|
|
10359
10774
|
if __debug__:
|
|
10360
10775
|
type_hints = typing.get_type_hints(_typecheckingstub__29dbda55ee07f00e62bcfcbc392973b5c2850e347abc3e6692b5d82704d445f0)
|
|
10361
10776
|
check_type(argname="argument enabled", value=enabled, expected_type=type_hints["enabled"])
|
|
10777
|
+
check_type(argname="argument max_parallel_nodes_repaired_count", value=max_parallel_nodes_repaired_count, expected_type=type_hints["max_parallel_nodes_repaired_count"])
|
|
10778
|
+
check_type(argname="argument max_parallel_nodes_repaired_percentage", value=max_parallel_nodes_repaired_percentage, expected_type=type_hints["max_parallel_nodes_repaired_percentage"])
|
|
10779
|
+
check_type(argname="argument max_unhealthy_node_threshold_count", value=max_unhealthy_node_threshold_count, expected_type=type_hints["max_unhealthy_node_threshold_count"])
|
|
10780
|
+
check_type(argname="argument max_unhealthy_node_threshold_percentage", value=max_unhealthy_node_threshold_percentage, expected_type=type_hints["max_unhealthy_node_threshold_percentage"])
|
|
10781
|
+
check_type(argname="argument node_repair_config_overrides", value=node_repair_config_overrides, expected_type=type_hints["node_repair_config_overrides"])
|
|
10362
10782
|
self._values: typing.Dict[builtins.str, typing.Any] = {}
|
|
10363
10783
|
if enabled is not None:
|
|
10364
10784
|
self._values["enabled"] = enabled
|
|
10785
|
+
if max_parallel_nodes_repaired_count is not None:
|
|
10786
|
+
self._values["max_parallel_nodes_repaired_count"] = max_parallel_nodes_repaired_count
|
|
10787
|
+
if max_parallel_nodes_repaired_percentage is not None:
|
|
10788
|
+
self._values["max_parallel_nodes_repaired_percentage"] = max_parallel_nodes_repaired_percentage
|
|
10789
|
+
if max_unhealthy_node_threshold_count is not None:
|
|
10790
|
+
self._values["max_unhealthy_node_threshold_count"] = max_unhealthy_node_threshold_count
|
|
10791
|
+
if max_unhealthy_node_threshold_percentage is not None:
|
|
10792
|
+
self._values["max_unhealthy_node_threshold_percentage"] = max_unhealthy_node_threshold_percentage
|
|
10793
|
+
if node_repair_config_overrides is not None:
|
|
10794
|
+
self._values["node_repair_config_overrides"] = node_repair_config_overrides
|
|
10365
10795
|
|
|
10366
10796
|
@builtins.property
|
|
10367
10797
|
def enabled(
|
|
@@ -10376,6 +10806,67 @@ class CfnNodegroup(
|
|
|
10376
10806
|
result = self._values.get("enabled")
|
|
10377
10807
|
return typing.cast(typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]], result)
|
|
10378
10808
|
|
|
10809
|
+
@builtins.property
|
|
10810
|
+
def max_parallel_nodes_repaired_count(self) -> typing.Optional[jsii.Number]:
|
|
10811
|
+
'''Specify the maximum number of nodes that can be repaired concurrently or in parallel, expressed as a count of unhealthy nodes.
|
|
10812
|
+
|
|
10813
|
+
This gives you finer-grained control over the pace of node replacements. When using this, you cannot also set MaxParallelNodesRepairedPercentage at the same time.
|
|
10814
|
+
|
|
10815
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-nodegroup-noderepairconfig.html#cfn-eks-nodegroup-noderepairconfig-maxparallelnodesrepairedcount
|
|
10816
|
+
'''
|
|
10817
|
+
result = self._values.get("max_parallel_nodes_repaired_count")
|
|
10818
|
+
return typing.cast(typing.Optional[jsii.Number], result)
|
|
10819
|
+
|
|
10820
|
+
@builtins.property
|
|
10821
|
+
def max_parallel_nodes_repaired_percentage(
|
|
10822
|
+
self,
|
|
10823
|
+
) -> typing.Optional[jsii.Number]:
|
|
10824
|
+
'''Specify the maximum number of nodes that can be repaired concurrently or in parallel, expressed as a percentage of unhealthy nodes.
|
|
10825
|
+
|
|
10826
|
+
This gives you finer-grained control over the pace of node replacements. When using this, you cannot also set MaxParallelNodesRepairedCount at the same time.
|
|
10827
|
+
|
|
10828
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-nodegroup-noderepairconfig.html#cfn-eks-nodegroup-noderepairconfig-maxparallelnodesrepairedpercentage
|
|
10829
|
+
'''
|
|
10830
|
+
result = self._values.get("max_parallel_nodes_repaired_percentage")
|
|
10831
|
+
return typing.cast(typing.Optional[jsii.Number], result)
|
|
10832
|
+
|
|
10833
|
+
@builtins.property
|
|
10834
|
+
def max_unhealthy_node_threshold_count(self) -> typing.Optional[jsii.Number]:
|
|
10835
|
+
'''Specify a count threshold of unhealthy nodes, above which node auto repair actions will stop.
|
|
10836
|
+
|
|
10837
|
+
When using this, you cannot also set MaxUnhealthyNodeThresholdPercentage at the same time.
|
|
10838
|
+
|
|
10839
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-nodegroup-noderepairconfig.html#cfn-eks-nodegroup-noderepairconfig-maxunhealthynodethresholdcount
|
|
10840
|
+
'''
|
|
10841
|
+
result = self._values.get("max_unhealthy_node_threshold_count")
|
|
10842
|
+
return typing.cast(typing.Optional[jsii.Number], result)
|
|
10843
|
+
|
|
10844
|
+
@builtins.property
|
|
10845
|
+
def max_unhealthy_node_threshold_percentage(
|
|
10846
|
+
self,
|
|
10847
|
+
) -> typing.Optional[jsii.Number]:
|
|
10848
|
+
'''Specify a percentage threshold of unhealthy nodes, above which node auto repair actions will stop.
|
|
10849
|
+
|
|
10850
|
+
When using this, you cannot also set MaxUnhealthyNodeThresholdCount at the same time.
|
|
10851
|
+
|
|
10852
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-nodegroup-noderepairconfig.html#cfn-eks-nodegroup-noderepairconfig-maxunhealthynodethresholdpercentage
|
|
10853
|
+
'''
|
|
10854
|
+
result = self._values.get("max_unhealthy_node_threshold_percentage")
|
|
10855
|
+
return typing.cast(typing.Optional[jsii.Number], result)
|
|
10856
|
+
|
|
10857
|
+
@builtins.property
|
|
10858
|
+
def node_repair_config_overrides(
|
|
10859
|
+
self,
|
|
10860
|
+
) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnNodegroup.NodeRepairConfigOverridesProperty"]]]]:
|
|
10861
|
+
'''Specify granular overrides for specific repair actions.
|
|
10862
|
+
|
|
10863
|
+
These overrides control the repair action and the repair delay time before a node is considered eligible for repair. If you use this, you must specify all the values.
|
|
10864
|
+
|
|
10865
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-nodegroup-noderepairconfig.html#cfn-eks-nodegroup-noderepairconfig-noderepairconfigoverrides
|
|
10866
|
+
'''
|
|
10867
|
+
result = self._values.get("node_repair_config_overrides")
|
|
10868
|
+
return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnNodegroup.NodeRepairConfigOverridesProperty"]]]], result)
|
|
10869
|
+
|
|
10379
10870
|
def __eq__(self, rhs: typing.Any) -> builtins.bool:
|
|
10380
10871
|
return isinstance(rhs, self.__class__) and rhs._values == self._values
|
|
10381
10872
|
|
|
@@ -10854,7 +11345,17 @@ class CfnNodegroupProps:
|
|
|
10854
11345
|
),
|
|
10855
11346
|
nodegroup_name="nodegroupName",
|
|
10856
11347
|
node_repair_config=eks.CfnNodegroup.NodeRepairConfigProperty(
|
|
10857
|
-
enabled=False
|
|
11348
|
+
enabled=False,
|
|
11349
|
+
max_parallel_nodes_repaired_count=123,
|
|
11350
|
+
max_parallel_nodes_repaired_percentage=123,
|
|
11351
|
+
max_unhealthy_node_threshold_count=123,
|
|
11352
|
+
max_unhealthy_node_threshold_percentage=123,
|
|
11353
|
+
node_repair_config_overrides=[eks.CfnNodegroup.NodeRepairConfigOverridesProperty(
|
|
11354
|
+
min_repair_wait_time_mins=123,
|
|
11355
|
+
node_monitoring_condition="nodeMonitoringCondition",
|
|
11356
|
+
node_unhealthy_reason="nodeUnhealthyReason",
|
|
11357
|
+
repair_action="repairAction"
|
|
11358
|
+
)]
|
|
10858
11359
|
),
|
|
10859
11360
|
release_version="releaseVersion",
|
|
10860
11361
|
remote_access=eks.CfnNodegroup.RemoteAccessProperty(
|
|
@@ -11182,7 +11683,7 @@ class CfnNodegroupProps:
|
|
|
11182
11683
|
)
|
|
11183
11684
|
|
|
11184
11685
|
|
|
11185
|
-
@jsii.implements(_IInspectable_c2943556, _ITaggableV2_4e6798f8)
|
|
11686
|
+
@jsii.implements(_IInspectable_c2943556, _IPodIdentityAssociationRef_21f8b2b1, _ITaggableV2_4e6798f8)
|
|
11186
11687
|
class CfnPodIdentityAssociation(
|
|
11187
11688
|
_CfnResource_9df397a6,
|
|
11188
11689
|
metaclass=jsii.JSIIMeta,
|
|
@@ -11207,10 +11708,12 @@ class CfnPodIdentityAssociation(
|
|
|
11207
11708
|
service_account="serviceAccount",
|
|
11208
11709
|
|
|
11209
11710
|
# the properties below are optional
|
|
11711
|
+
disable_session_tags=False,
|
|
11210
11712
|
tags=[CfnTag(
|
|
11211
11713
|
key="key",
|
|
11212
11714
|
value="value"
|
|
11213
|
-
)]
|
|
11715
|
+
)],
|
|
11716
|
+
target_role_arn="targetRoleArn"
|
|
11214
11717
|
)
|
|
11215
11718
|
'''
|
|
11216
11719
|
|
|
@@ -11223,16 +11726,21 @@ class CfnPodIdentityAssociation(
|
|
|
11223
11726
|
namespace: builtins.str,
|
|
11224
11727
|
role_arn: builtins.str,
|
|
11225
11728
|
service_account: builtins.str,
|
|
11729
|
+
disable_session_tags: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
|
|
11226
11730
|
tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
11731
|
+
target_role_arn: typing.Optional[builtins.str] = None,
|
|
11227
11732
|
) -> None:
|
|
11228
|
-
'''
|
|
11733
|
+
'''Create a new ``AWS::EKS::PodIdentityAssociation``.
|
|
11734
|
+
|
|
11229
11735
|
:param scope: Scope in which this resource is defined.
|
|
11230
11736
|
:param id: Construct identifier for this resource (unique in its scope).
|
|
11231
11737
|
:param cluster_name: The name of the cluster that the association is in.
|
|
11232
|
-
:param namespace: The name of the Kubernetes namespace inside the cluster to create the association in. The service account and the
|
|
11233
|
-
:param role_arn: The Amazon Resource Name (ARN) of the IAM role to associate with the service account. The EKS Pod Identity agent manages credentials to assume this role for applications in the containers in the
|
|
11738
|
+
:param namespace: The name of the Kubernetes namespace inside the cluster to create the association in. The service account and the Pods that use the service account must be in this namespace.
|
|
11739
|
+
:param role_arn: The Amazon Resource Name (ARN) of the IAM role to associate with the service account. The EKS Pod Identity agent manages credentials to assume this role for applications in the containers in the Pods that use this service account.
|
|
11234
11740
|
:param service_account: The name of the Kubernetes service account inside the cluster to associate the IAM credentials with.
|
|
11741
|
+
:param disable_session_tags: The state of the automatic sessions tags. The value of *true* disables these tags. EKS Pod Identity adds a pre-defined set of session tags when it assumes the role. You can use these tags to author a single role that can work across resources by allowing access to AWS resources based on matching tags. By default, EKS Pod Identity attaches six tags, including tags for cluster name, namespace, and service account name. For the list of tags added by EKS Pod Identity, see `List of session tags added by EKS Pod Identity <https://docs.aws.amazon.com/eks/latest/userguide/pod-id-abac.html#pod-id-abac-tags>`_ in the *Amazon EKS User Guide* .
|
|
11235
11742
|
:param tags: Metadata that assists with categorization and organization. Each tag consists of a key and an optional value. You define both. Tags don't propagate to any other cluster or AWS resources. The following basic restrictions apply to tags: - Maximum number of tags per resource – 50 - For each resource, each tag key must be unique, and each tag key can have only one value. - Maximum key length – 128 Unicode characters in UTF-8 - Maximum value length – 256 Unicode characters in UTF-8 - If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : /
|
|
11743
|
+
:param target_role_arn: The Amazon Resource Name (ARN) of the target IAM role to associate with the service account. This role is assumed by using the EKS Pod Identity association role, then the credentials for this role are injected into the Pod.
|
|
11236
11744
|
'''
|
|
11237
11745
|
if __debug__:
|
|
11238
11746
|
type_hints = typing.get_type_hints(_typecheckingstub__be8311b6089cea26f85c63a586f0c5b063230a1b4a96ffcd4c6c983a331d8652)
|
|
@@ -11243,7 +11751,9 @@ class CfnPodIdentityAssociation(
|
|
|
11243
11751
|
namespace=namespace,
|
|
11244
11752
|
role_arn=role_arn,
|
|
11245
11753
|
service_account=service_account,
|
|
11754
|
+
disable_session_tags=disable_session_tags,
|
|
11246
11755
|
tags=tags,
|
|
11756
|
+
target_role_arn=target_role_arn,
|
|
11247
11757
|
)
|
|
11248
11758
|
|
|
11249
11759
|
jsii.create(self.__class__, self, [scope, id, props])
|
|
@@ -11296,6 +11806,19 @@ class CfnPodIdentityAssociation(
|
|
|
11296
11806
|
'''
|
|
11297
11807
|
return typing.cast(builtins.str, jsii.get(self, "attrAssociationId"))
|
|
11298
11808
|
|
|
11809
|
+
@builtins.property
|
|
11810
|
+
@jsii.member(jsii_name="attrExternalId")
|
|
11811
|
+
def attr_external_id(self) -> builtins.str:
|
|
11812
|
+
'''The unique identifier for this EKS Pod Identity association for a target IAM role.
|
|
11813
|
+
|
|
11814
|
+
You put this value in the trust policy of the target role, in a ``Condition`` to match the ``sts.ExternalId`` . This ensures that the target role can only be assumed by this association. This prevents the *confused deputy problem* . For more information about the confused deputy problem, see `The confused deputy problem <https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html>`_ in the *IAM User Guide* .
|
|
11815
|
+
|
|
11816
|
+
If you want to use the same target role with multiple associations or other roles, use independent statements in the trust policy to allow ``sts:AssumeRole`` access from each role.
|
|
11817
|
+
|
|
11818
|
+
:cloudformationAttribute: ExternalId
|
|
11819
|
+
'''
|
|
11820
|
+
return typing.cast(builtins.str, jsii.get(self, "attrExternalId"))
|
|
11821
|
+
|
|
11299
11822
|
@builtins.property
|
|
11300
11823
|
@jsii.member(jsii_name="cdkTagManager")
|
|
11301
11824
|
def cdk_tag_manager(self) -> _TagManager_0a598cb3:
|
|
@@ -11307,6 +11830,12 @@ class CfnPodIdentityAssociation(
|
|
|
11307
11830
|
def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
|
|
11308
11831
|
return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.get(self, "cfnProperties"))
|
|
11309
11832
|
|
|
11833
|
+
@builtins.property
|
|
11834
|
+
@jsii.member(jsii_name="podIdentityAssociationRef")
|
|
11835
|
+
def pod_identity_association_ref(self) -> _PodIdentityAssociationReference_14e19bbb:
|
|
11836
|
+
'''A reference to a PodIdentityAssociation resource.'''
|
|
11837
|
+
return typing.cast(_PodIdentityAssociationReference_14e19bbb, jsii.get(self, "podIdentityAssociationRef"))
|
|
11838
|
+
|
|
11310
11839
|
@builtins.property
|
|
11311
11840
|
@jsii.member(jsii_name="clusterName")
|
|
11312
11841
|
def cluster_name(self) -> builtins.str:
|
|
@@ -11359,6 +11888,27 @@ class CfnPodIdentityAssociation(
|
|
|
11359
11888
|
check_type(argname="argument value", value=value, expected_type=type_hints["value"])
|
|
11360
11889
|
jsii.set(self, "serviceAccount", value) # pyright: ignore[reportArgumentType]
|
|
11361
11890
|
|
|
11891
|
+
@builtins.property
|
|
11892
|
+
@jsii.member(jsii_name="disableSessionTags")
|
|
11893
|
+
def disable_session_tags(
|
|
11894
|
+
self,
|
|
11895
|
+
) -> typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]]:
|
|
11896
|
+
'''The state of the automatic sessions tags.
|
|
11897
|
+
|
|
11898
|
+
The value of *true* disables these tags.
|
|
11899
|
+
'''
|
|
11900
|
+
return typing.cast(typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]], jsii.get(self, "disableSessionTags"))
|
|
11901
|
+
|
|
11902
|
+
@disable_session_tags.setter
|
|
11903
|
+
def disable_session_tags(
|
|
11904
|
+
self,
|
|
11905
|
+
value: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]],
|
|
11906
|
+
) -> None:
|
|
11907
|
+
if __debug__:
|
|
11908
|
+
type_hints = typing.get_type_hints(_typecheckingstub__cb3dbe4cc3b44e9265bbfe13e41235db909b0c1dc0e052b3bdda07fd4b228e8b)
|
|
11909
|
+
check_type(argname="argument value", value=value, expected_type=type_hints["value"])
|
|
11910
|
+
jsii.set(self, "disableSessionTags", value) # pyright: ignore[reportArgumentType]
|
|
11911
|
+
|
|
11362
11912
|
@builtins.property
|
|
11363
11913
|
@jsii.member(jsii_name="tags")
|
|
11364
11914
|
def tags(self) -> typing.Optional[typing.List[_CfnTag_f6864754]]:
|
|
@@ -11372,6 +11922,19 @@ class CfnPodIdentityAssociation(
|
|
|
11372
11922
|
check_type(argname="argument value", value=value, expected_type=type_hints["value"])
|
|
11373
11923
|
jsii.set(self, "tags", value) # pyright: ignore[reportArgumentType]
|
|
11374
11924
|
|
|
11925
|
+
@builtins.property
|
|
11926
|
+
@jsii.member(jsii_name="targetRoleArn")
|
|
11927
|
+
def target_role_arn(self) -> typing.Optional[builtins.str]:
|
|
11928
|
+
'''The Amazon Resource Name (ARN) of the target IAM role to associate with the service account.'''
|
|
11929
|
+
return typing.cast(typing.Optional[builtins.str], jsii.get(self, "targetRoleArn"))
|
|
11930
|
+
|
|
11931
|
+
@target_role_arn.setter
|
|
11932
|
+
def target_role_arn(self, value: typing.Optional[builtins.str]) -> None:
|
|
11933
|
+
if __debug__:
|
|
11934
|
+
type_hints = typing.get_type_hints(_typecheckingstub__cb6220c6db8cf93a8a307b1ba0630d6bc64b4a09325e7cfe5854228aa75ff833)
|
|
11935
|
+
check_type(argname="argument value", value=value, expected_type=type_hints["value"])
|
|
11936
|
+
jsii.set(self, "targetRoleArn", value) # pyright: ignore[reportArgumentType]
|
|
11937
|
+
|
|
11375
11938
|
|
|
11376
11939
|
@jsii.data_type(
|
|
11377
11940
|
jsii_type="aws-cdk-lib.aws_eks.CfnPodIdentityAssociationProps",
|
|
@@ -11381,7 +11944,9 @@ class CfnPodIdentityAssociation(
|
|
|
11381
11944
|
"namespace": "namespace",
|
|
11382
11945
|
"role_arn": "roleArn",
|
|
11383
11946
|
"service_account": "serviceAccount",
|
|
11947
|
+
"disable_session_tags": "disableSessionTags",
|
|
11384
11948
|
"tags": "tags",
|
|
11949
|
+
"target_role_arn": "targetRoleArn",
|
|
11385
11950
|
},
|
|
11386
11951
|
)
|
|
11387
11952
|
class CfnPodIdentityAssociationProps:
|
|
@@ -11392,15 +11957,19 @@ class CfnPodIdentityAssociationProps:
|
|
|
11392
11957
|
namespace: builtins.str,
|
|
11393
11958
|
role_arn: builtins.str,
|
|
11394
11959
|
service_account: builtins.str,
|
|
11960
|
+
disable_session_tags: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
|
|
11395
11961
|
tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
11962
|
+
target_role_arn: typing.Optional[builtins.str] = None,
|
|
11396
11963
|
) -> None:
|
|
11397
11964
|
'''Properties for defining a ``CfnPodIdentityAssociation``.
|
|
11398
11965
|
|
|
11399
11966
|
:param cluster_name: The name of the cluster that the association is in.
|
|
11400
|
-
:param namespace: The name of the Kubernetes namespace inside the cluster to create the association in. The service account and the
|
|
11401
|
-
:param role_arn: The Amazon Resource Name (ARN) of the IAM role to associate with the service account. The EKS Pod Identity agent manages credentials to assume this role for applications in the containers in the
|
|
11967
|
+
:param namespace: The name of the Kubernetes namespace inside the cluster to create the association in. The service account and the Pods that use the service account must be in this namespace.
|
|
11968
|
+
:param role_arn: The Amazon Resource Name (ARN) of the IAM role to associate with the service account. The EKS Pod Identity agent manages credentials to assume this role for applications in the containers in the Pods that use this service account.
|
|
11402
11969
|
:param service_account: The name of the Kubernetes service account inside the cluster to associate the IAM credentials with.
|
|
11970
|
+
:param disable_session_tags: The state of the automatic sessions tags. The value of *true* disables these tags. EKS Pod Identity adds a pre-defined set of session tags when it assumes the role. You can use these tags to author a single role that can work across resources by allowing access to AWS resources based on matching tags. By default, EKS Pod Identity attaches six tags, including tags for cluster name, namespace, and service account name. For the list of tags added by EKS Pod Identity, see `List of session tags added by EKS Pod Identity <https://docs.aws.amazon.com/eks/latest/userguide/pod-id-abac.html#pod-id-abac-tags>`_ in the *Amazon EKS User Guide* .
|
|
11403
11971
|
:param tags: Metadata that assists with categorization and organization. Each tag consists of a key and an optional value. You define both. Tags don't propagate to any other cluster or AWS resources. The following basic restrictions apply to tags: - Maximum number of tags per resource – 50 - For each resource, each tag key must be unique, and each tag key can have only one value. - Maximum key length – 128 Unicode characters in UTF-8 - Maximum value length – 256 Unicode characters in UTF-8 - If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : /
|
|
11972
|
+
:param target_role_arn: The Amazon Resource Name (ARN) of the target IAM role to associate with the service account. This role is assumed by using the EKS Pod Identity association role, then the credentials for this role are injected into the Pod.
|
|
11404
11973
|
|
|
11405
11974
|
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-podidentityassociation.html
|
|
11406
11975
|
:exampleMetadata: fixture=_generated
|
|
@@ -11418,10 +11987,12 @@ class CfnPodIdentityAssociationProps:
|
|
|
11418
11987
|
service_account="serviceAccount",
|
|
11419
11988
|
|
|
11420
11989
|
# the properties below are optional
|
|
11990
|
+
disable_session_tags=False,
|
|
11421
11991
|
tags=[CfnTag(
|
|
11422
11992
|
key="key",
|
|
11423
11993
|
value="value"
|
|
11424
|
-
)]
|
|
11994
|
+
)],
|
|
11995
|
+
target_role_arn="targetRoleArn"
|
|
11425
11996
|
)
|
|
11426
11997
|
'''
|
|
11427
11998
|
if __debug__:
|
|
@@ -11430,15 +12001,21 @@ class CfnPodIdentityAssociationProps:
|
|
|
11430
12001
|
check_type(argname="argument namespace", value=namespace, expected_type=type_hints["namespace"])
|
|
11431
12002
|
check_type(argname="argument role_arn", value=role_arn, expected_type=type_hints["role_arn"])
|
|
11432
12003
|
check_type(argname="argument service_account", value=service_account, expected_type=type_hints["service_account"])
|
|
12004
|
+
check_type(argname="argument disable_session_tags", value=disable_session_tags, expected_type=type_hints["disable_session_tags"])
|
|
11433
12005
|
check_type(argname="argument tags", value=tags, expected_type=type_hints["tags"])
|
|
12006
|
+
check_type(argname="argument target_role_arn", value=target_role_arn, expected_type=type_hints["target_role_arn"])
|
|
11434
12007
|
self._values: typing.Dict[builtins.str, typing.Any] = {
|
|
11435
12008
|
"cluster_name": cluster_name,
|
|
11436
12009
|
"namespace": namespace,
|
|
11437
12010
|
"role_arn": role_arn,
|
|
11438
12011
|
"service_account": service_account,
|
|
11439
12012
|
}
|
|
12013
|
+
if disable_session_tags is not None:
|
|
12014
|
+
self._values["disable_session_tags"] = disable_session_tags
|
|
11440
12015
|
if tags is not None:
|
|
11441
12016
|
self._values["tags"] = tags
|
|
12017
|
+
if target_role_arn is not None:
|
|
12018
|
+
self._values["target_role_arn"] = target_role_arn
|
|
11442
12019
|
|
|
11443
12020
|
@builtins.property
|
|
11444
12021
|
def cluster_name(self) -> builtins.str:
|
|
@@ -11454,7 +12031,7 @@ class CfnPodIdentityAssociationProps:
|
|
|
11454
12031
|
def namespace(self) -> builtins.str:
|
|
11455
12032
|
'''The name of the Kubernetes namespace inside the cluster to create the association in.
|
|
11456
12033
|
|
|
11457
|
-
The service account and the
|
|
12034
|
+
The service account and the Pods that use the service account must be in this namespace.
|
|
11458
12035
|
|
|
11459
12036
|
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-podidentityassociation.html#cfn-eks-podidentityassociation-namespace
|
|
11460
12037
|
'''
|
|
@@ -11466,7 +12043,7 @@ class CfnPodIdentityAssociationProps:
|
|
|
11466
12043
|
def role_arn(self) -> builtins.str:
|
|
11467
12044
|
'''The Amazon Resource Name (ARN) of the IAM role to associate with the service account.
|
|
11468
12045
|
|
|
11469
|
-
The EKS Pod Identity agent manages credentials to assume this role for applications in the containers in the
|
|
12046
|
+
The EKS Pod Identity agent manages credentials to assume this role for applications in the containers in the Pods that use this service account.
|
|
11470
12047
|
|
|
11471
12048
|
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-podidentityassociation.html#cfn-eks-podidentityassociation-rolearn
|
|
11472
12049
|
'''
|
|
@@ -11484,6 +12061,19 @@ class CfnPodIdentityAssociationProps:
|
|
|
11484
12061
|
assert result is not None, "Required property 'service_account' is missing"
|
|
11485
12062
|
return typing.cast(builtins.str, result)
|
|
11486
12063
|
|
|
12064
|
+
@builtins.property
|
|
12065
|
+
def disable_session_tags(
|
|
12066
|
+
self,
|
|
12067
|
+
) -> typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]]:
|
|
12068
|
+
'''The state of the automatic sessions tags. The value of *true* disables these tags.
|
|
12069
|
+
|
|
12070
|
+
EKS Pod Identity adds a pre-defined set of session tags when it assumes the role. You can use these tags to author a single role that can work across resources by allowing access to AWS resources based on matching tags. By default, EKS Pod Identity attaches six tags, including tags for cluster name, namespace, and service account name. For the list of tags added by EKS Pod Identity, see `List of session tags added by EKS Pod Identity <https://docs.aws.amazon.com/eks/latest/userguide/pod-id-abac.html#pod-id-abac-tags>`_ in the *Amazon EKS User Guide* .
|
|
12071
|
+
|
|
12072
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-podidentityassociation.html#cfn-eks-podidentityassociation-disablesessiontags
|
|
12073
|
+
'''
|
|
12074
|
+
result = self._values.get("disable_session_tags")
|
|
12075
|
+
return typing.cast(typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]], result)
|
|
12076
|
+
|
|
11487
12077
|
@builtins.property
|
|
11488
12078
|
def tags(self) -> typing.Optional[typing.List[_CfnTag_f6864754]]:
|
|
11489
12079
|
'''Metadata that assists with categorization and organization.
|
|
@@ -11509,6 +12099,17 @@ class CfnPodIdentityAssociationProps:
|
|
|
11509
12099
|
result = self._values.get("tags")
|
|
11510
12100
|
return typing.cast(typing.Optional[typing.List[_CfnTag_f6864754]], result)
|
|
11511
12101
|
|
|
12102
|
+
@builtins.property
|
|
12103
|
+
def target_role_arn(self) -> typing.Optional[builtins.str]:
|
|
12104
|
+
'''The Amazon Resource Name (ARN) of the target IAM role to associate with the service account.
|
|
12105
|
+
|
|
12106
|
+
This role is assumed by using the EKS Pod Identity association role, then the credentials for this role are injected into the Pod.
|
|
12107
|
+
|
|
12108
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-podidentityassociation.html#cfn-eks-podidentityassociation-targetrolearn
|
|
12109
|
+
'''
|
|
12110
|
+
result = self._values.get("target_role_arn")
|
|
12111
|
+
return typing.cast(typing.Optional[builtins.str], result)
|
|
12112
|
+
|
|
11512
12113
|
def __eq__(self, rhs: typing.Any) -> builtins.bool:
|
|
11513
12114
|
return isinstance(rhs, self.__class__) and rhs._values == self._values
|
|
11514
12115
|
|
|
@@ -11951,15 +12552,15 @@ class ClusterLoggingTypes(enum.Enum):
|
|
|
11951
12552
|
|
|
11952
12553
|
Example::
|
|
11953
12554
|
|
|
11954
|
-
from aws_cdk.
|
|
12555
|
+
from aws_cdk.lambda_layer_kubectl_v34 import KubectlV34Layer
|
|
11955
12556
|
|
|
11956
12557
|
|
|
11957
12558
|
cluster = eks.Cluster(self, "Cluster",
|
|
11958
12559
|
# ...
|
|
11959
|
-
version=eks.KubernetesVersion.
|
|
12560
|
+
version=eks.KubernetesVersion.V1_34,
|
|
11960
12561
|
cluster_logging=[eks.ClusterLoggingTypes.API, eks.ClusterLoggingTypes.AUTHENTICATOR, eks.ClusterLoggingTypes.SCHEDULER
|
|
11961
12562
|
],
|
|
11962
|
-
kubectl_layer=
|
|
12563
|
+
kubectl_layer=KubectlV34Layer(self, "kubectl")
|
|
11963
12564
|
)
|
|
11964
12565
|
'''
|
|
11965
12566
|
|
|
@@ -12007,7 +12608,7 @@ class CommonClusterOptions:
|
|
|
12007
12608
|
:param version: The Kubernetes version to run in the cluster.
|
|
12008
12609
|
:param cluster_name: Name for the cluster. Default: - Automatically generated name
|
|
12009
12610
|
:param output_cluster_name: Determines whether a CloudFormation output with the name of the cluster will be synthesized. Default: false
|
|
12010
|
-
:param output_config_command: Determines whether a CloudFormation output with the ``aws eks update-kubeconfig`` command will be synthesized. This command will include the cluster name and
|
|
12611
|
+
:param output_config_command: Determines whether a CloudFormation output with the ``aws eks update-kubeconfig`` command will be synthesized. This command will include the cluster name and the ARN of the masters IAM role. Note: If mastersRole is not specified, this property will be ignored and no config command will be emitted. Default: true
|
|
12011
12612
|
:param role: Role that provides permissions for the Kubernetes control plane to make calls to AWS API operations on your behalf. Default: - A role is automatically created for you
|
|
12012
12613
|
:param security_group: Security Group to use for Control Plane ENIs. Default: - A security group is automatically created
|
|
12013
12614
|
:param vpc: The VPC in which to create the Cluster. Default: - a VPC with default configuration will be created and can be accessed through ``cluster.vpc``.
|
|
@@ -12108,9 +12709,13 @@ class CommonClusterOptions:
|
|
|
12108
12709
|
'''Determines whether a CloudFormation output with the ``aws eks update-kubeconfig`` command will be synthesized.
|
|
12109
12710
|
|
|
12110
12711
|
This command will include
|
|
12111
|
-
the cluster name and
|
|
12712
|
+
the cluster name and the ARN of the masters IAM role.
|
|
12713
|
+
|
|
12714
|
+
Note: If mastersRole is not specified, this property will be ignored and no config command will be emitted.
|
|
12112
12715
|
|
|
12113
12716
|
:default: true
|
|
12717
|
+
|
|
12718
|
+
:see: https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_eks-readme.html#masters-role
|
|
12114
12719
|
'''
|
|
12115
12720
|
result = self._values.get("output_config_command")
|
|
12116
12721
|
return typing.cast(typing.Optional[builtins.bool], result)
|
|
@@ -12195,13 +12800,13 @@ class DefaultCapacityType(enum.Enum):
|
|
|
12195
12800
|
|
|
12196
12801
|
Example::
|
|
12197
12802
|
|
|
12198
|
-
from aws_cdk.
|
|
12803
|
+
from aws_cdk.lambda_layer_kubectl_v34 import KubectlV34Layer
|
|
12199
12804
|
|
|
12200
12805
|
|
|
12201
12806
|
cluster = eks.Cluster(self, "HelloEKS",
|
|
12202
|
-
version=eks.KubernetesVersion.
|
|
12807
|
+
version=eks.KubernetesVersion.V1_34,
|
|
12203
12808
|
default_capacity_type=eks.DefaultCapacityType.EC2,
|
|
12204
|
-
kubectl_layer=
|
|
12809
|
+
kubectl_layer=KubectlV34Layer(self, "kubectl")
|
|
12205
12810
|
)
|
|
12206
12811
|
'''
|
|
12207
12812
|
|
|
@@ -12368,13 +12973,13 @@ class EndpointAccess(
|
|
|
12368
12973
|
|
|
12369
12974
|
Example::
|
|
12370
12975
|
|
|
12371
|
-
from aws_cdk.
|
|
12976
|
+
from aws_cdk.lambda_layer_kubectl_v34 import KubectlV34Layer
|
|
12372
12977
|
|
|
12373
12978
|
|
|
12374
12979
|
cluster = eks.Cluster(self, "hello-eks",
|
|
12375
|
-
version=eks.KubernetesVersion.
|
|
12980
|
+
version=eks.KubernetesVersion.V1_34,
|
|
12376
12981
|
endpoint_access=eks.EndpointAccess.PRIVATE, # No access outside of your VPC.
|
|
12377
|
-
kubectl_layer=
|
|
12982
|
+
kubectl_layer=KubectlV34Layer(self, "kubectl")
|
|
12378
12983
|
)
|
|
12379
12984
|
'''
|
|
12380
12985
|
|
|
@@ -14548,7 +15153,7 @@ class IpFamily(enum.Enum):
|
|
|
14548
15153
|
|
|
14549
15154
|
Example::
|
|
14550
15155
|
|
|
14551
|
-
from aws_cdk.
|
|
15156
|
+
from aws_cdk.lambda_layer_kubectl_v34 import KubectlV34Layer
|
|
14552
15157
|
# vpc: ec2.Vpc
|
|
14553
15158
|
|
|
14554
15159
|
|
|
@@ -14573,11 +15178,11 @@ class IpFamily(enum.Enum):
|
|
|
14573
15178
|
subnetcount = subnetcount + 1
|
|
14574
15179
|
|
|
14575
15180
|
cluster = eks.Cluster(self, "hello-eks",
|
|
14576
|
-
version=eks.KubernetesVersion.
|
|
15181
|
+
version=eks.KubernetesVersion.V1_34,
|
|
14577
15182
|
vpc=vpc,
|
|
14578
15183
|
ip_family=eks.IpFamily.IP_V6,
|
|
14579
15184
|
vpc_subnets=[ec2.SubnetSelection(subnets=vpc.public_subnets)],
|
|
14580
|
-
kubectl_layer=
|
|
15185
|
+
kubectl_layer=KubectlV34Layer(self, "kubectl")
|
|
14581
15186
|
)
|
|
14582
15187
|
'''
|
|
14583
15188
|
|
|
@@ -15704,21 +16309,19 @@ class KubernetesVersion(
|
|
|
15704
16309
|
|
|
15705
16310
|
Example::
|
|
15706
16311
|
|
|
15707
|
-
from aws_cdk.
|
|
16312
|
+
from aws_cdk.lambda_layer_kubectl_v34 import KubectlV34Layer
|
|
15708
16313
|
|
|
15709
|
-
# or
|
|
15710
|
-
# vpc: ec2.Vpc
|
|
15711
16314
|
|
|
15712
|
-
|
|
15713
|
-
|
|
15714
|
-
|
|
15715
|
-
|
|
15716
|
-
kubectl_layer=KubectlV32Layer(self, "kubectl")
|
|
16315
|
+
cluster = eks.Cluster(self, "HelloEKS",
|
|
16316
|
+
version=eks.KubernetesVersion.V1_34,
|
|
16317
|
+
default_capacity=0,
|
|
16318
|
+
kubectl_layer=KubectlV34Layer(self, "kubectl")
|
|
15717
16319
|
)
|
|
15718
|
-
|
|
15719
|
-
|
|
15720
|
-
|
|
15721
|
-
|
|
16320
|
+
|
|
16321
|
+
cluster.add_nodegroup_capacity("custom-node-group",
|
|
16322
|
+
instance_types=[ec2.InstanceType("m5.large")],
|
|
16323
|
+
min_size=4,
|
|
16324
|
+
disk_size=100
|
|
15722
16325
|
)
|
|
15723
16326
|
'''
|
|
15724
16327
|
|
|
@@ -15943,6 +16546,28 @@ class KubernetesVersion(
|
|
|
15943
16546
|
'''
|
|
15944
16547
|
return typing.cast("KubernetesVersion", jsii.sget(cls, "V1_32"))
|
|
15945
16548
|
|
|
16549
|
+
@jsii.python.classproperty
|
|
16550
|
+
@jsii.member(jsii_name="V1_33")
|
|
16551
|
+
def V1_33(cls) -> "KubernetesVersion":
|
|
16552
|
+
'''Kubernetes version 1.33.
|
|
16553
|
+
|
|
16554
|
+
When creating a ``Cluster`` with this version, you need to also specify the
|
|
16555
|
+
``kubectlLayer`` property with a ``KubectlV33Layer`` from
|
|
16556
|
+
``@aws-cdk/lambda-layer-kubectl-v33``.
|
|
16557
|
+
'''
|
|
16558
|
+
return typing.cast("KubernetesVersion", jsii.sget(cls, "V1_33"))
|
|
16559
|
+
|
|
16560
|
+
@jsii.python.classproperty
|
|
16561
|
+
@jsii.member(jsii_name="V1_34")
|
|
16562
|
+
def V1_34(cls) -> "KubernetesVersion":
|
|
16563
|
+
'''Kubernetes version 1.34.
|
|
16564
|
+
|
|
16565
|
+
When creating a ``Cluster`` with this version, you need to also specify the
|
|
16566
|
+
``kubectlLayer`` property with a ``KubectlV34Layer`` from
|
|
16567
|
+
``@aws-cdk/lambda-layer-kubectl-v34``.
|
|
16568
|
+
'''
|
|
16569
|
+
return typing.cast("KubernetesVersion", jsii.sget(cls, "V1_34"))
|
|
16570
|
+
|
|
15946
16571
|
@builtins.property
|
|
15947
16572
|
@jsii.member(jsii_name="version")
|
|
15948
16573
|
def version(self) -> builtins.str:
|
|
@@ -16348,6 +16973,8 @@ class NodegroupAmiType(enum.Enum):
|
|
|
16348
16973
|
'''Amazon Linux 2023 with AWS Neuron drivers (x86-64).'''
|
|
16349
16974
|
AL2023_X86_64_NVIDIA = "AL2023_X86_64_NVIDIA"
|
|
16350
16975
|
'''Amazon Linux 2023 with NVIDIA drivers (x86-64).'''
|
|
16976
|
+
AL2023_ARM_64_NVIDIA = "AL2023_ARM_64_NVIDIA"
|
|
16977
|
+
'''Amazon Linux 2023 with NVIDIA drivers (ARM-64).'''
|
|
16351
16978
|
AL2023_ARM_64_STANDARD = "AL2023_ARM_64_STANDARD"
|
|
16352
16979
|
'''Amazon Linux 2023 (ARM-64).'''
|
|
16353
16980
|
|
|
@@ -18107,6 +18734,17 @@ class ServiceLoadBalancerAddressOptions:
|
|
|
18107
18734
|
class TaintEffect(enum.Enum):
|
|
18108
18735
|
'''Effect types of kubernetes node taint.
|
|
18109
18736
|
|
|
18737
|
+
Note: These values are specifically for AWS EKS NodeGroups and use the AWS API format.
|
|
18738
|
+
When using AWS CLI or API, taint effects must be NO_SCHEDULE, PREFER_NO_SCHEDULE, or NO_EXECUTE.
|
|
18739
|
+
When using Kubernetes directly or kubectl, taint effects must be NoSchedule, PreferNoSchedule, or NoExecute.
|
|
18740
|
+
|
|
18741
|
+
For Kubernetes manifests (like Karpenter NodePools), use string literals with PascalCase format:
|
|
18742
|
+
|
|
18743
|
+
- 'NoSchedule' instead of TaintEffect.NO_SCHEDULE
|
|
18744
|
+
- 'PreferNoSchedule' instead of TaintEffect.PREFER_NO_SCHEDULE
|
|
18745
|
+
- 'NoExecute' instead of TaintEffect.NO_EXECUTE
|
|
18746
|
+
|
|
18747
|
+
:see: https://docs.aws.amazon.com/eks/latest/userguide/node-taints-managed-node-groups.html
|
|
18110
18748
|
:exampleMetadata: infused
|
|
18111
18749
|
|
|
18112
18750
|
Example::
|
|
@@ -18567,7 +19205,7 @@ class Cluster(
|
|
|
18567
19205
|
|
|
18568
19206
|
Example::
|
|
18569
19207
|
|
|
18570
|
-
from aws_cdk.
|
|
19208
|
+
from aws_cdk.lambda_layer_kubectl_v34 import KubectlV34Layer
|
|
18571
19209
|
|
|
18572
19210
|
# or
|
|
18573
19211
|
# vpc: ec2.Vpc
|
|
@@ -18575,8 +19213,8 @@ class Cluster(
|
|
|
18575
19213
|
|
|
18576
19214
|
eks.Cluster(self, "MyCluster",
|
|
18577
19215
|
kubectl_memory=Size.gibibytes(4),
|
|
18578
|
-
version=eks.KubernetesVersion.
|
|
18579
|
-
kubectl_layer=
|
|
19216
|
+
version=eks.KubernetesVersion.V1_34,
|
|
19217
|
+
kubectl_layer=KubectlV34Layer(self, "kubectl")
|
|
18580
19218
|
)
|
|
18581
19219
|
eks.Cluster.from_cluster_attributes(self, "MyCluster",
|
|
18582
19220
|
kubectl_memory=Size.gibibytes(4),
|
|
@@ -18591,6 +19229,7 @@ class Cluster(
|
|
|
18591
19229
|
id: builtins.str,
|
|
18592
19230
|
*,
|
|
18593
19231
|
bootstrap_cluster_creator_admin_permissions: typing.Optional[builtins.bool] = None,
|
|
19232
|
+
bootstrap_self_managed_addons: typing.Optional[builtins.bool] = None,
|
|
18594
19233
|
default_capacity: typing.Optional[jsii.Number] = None,
|
|
18595
19234
|
default_capacity_instance: typing.Optional[_InstanceType_f64915b9] = None,
|
|
18596
19235
|
default_capacity_type: typing.Optional[DefaultCapacityType] = None,
|
|
@@ -18615,7 +19254,8 @@ class Cluster(
|
|
|
18615
19254
|
prune: typing.Optional[builtins.bool] = None,
|
|
18616
19255
|
remote_node_networks: typing.Optional[typing.Sequence[typing.Union[RemoteNodeNetwork, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
18617
19256
|
remote_pod_networks: typing.Optional[typing.Sequence[typing.Union[RemotePodNetwork, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
18618
|
-
|
|
19257
|
+
removal_policy: typing.Optional[_RemovalPolicy_9f93c814] = None,
|
|
19258
|
+
secrets_encryption_key: typing.Optional[_IKeyRef_d4fc6ef3] = None,
|
|
18619
19259
|
service_ipv4_cidr: typing.Optional[builtins.str] = None,
|
|
18620
19260
|
version: KubernetesVersion,
|
|
18621
19261
|
cluster_name: typing.Optional[builtins.str] = None,
|
|
@@ -18631,6 +19271,7 @@ class Cluster(
|
|
|
18631
19271
|
:param scope: a Construct, most likely a cdk.Stack created.
|
|
18632
19272
|
:param id: the id of the Construct to create.
|
|
18633
19273
|
: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
|
|
19274
|
+
:param bootstrap_self_managed_addons: If you set this value to False when creating a cluster, the default networking add-ons will not be installed. The default networking addons include vpc-cni, coredns, and kube-proxy. Use this option when you plan to install third-party alternative add-ons or self-manage the default networking add-ons. Changing this value after the cluster has been created will result in the cluster being replaced. Default: true
|
|
18634
19275
|
:param default_capacity: Number of instances to allocate as an initial capacity for this cluster. Instance type can be configured through ``defaultCapacityInstanceType``, which defaults to ``m5.large``. Use ``cluster.addAutoScalingGroupCapacity`` to add additional customized capacity. Set this to ``0`` is you wish to avoid the initial capacity allocation. Default: 2
|
|
18635
19276
|
:param default_capacity_instance: The instance type to use for the default capacity. This will only be taken into account if ``defaultCapacity`` is > 0. Default: m5.large
|
|
18636
19277
|
:param default_capacity_type: The default capacity type for the cluster. Default: NODEGROUP
|
|
@@ -18655,12 +19296,13 @@ class Cluster(
|
|
|
18655
19296
|
: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
|
|
18656
19297
|
:param remote_node_networks: IPv4 CIDR blocks defining the expected address range of hybrid nodes that will join the cluster. Default: - none
|
|
18657
19298
|
:param remote_pod_networks: IPv4 CIDR blocks for Pods running Kubernetes webhooks on hybrid nodes. Default: - none
|
|
19299
|
+
:param removal_policy: The removal policy applied to all CloudFormation resources created by this construct when they are no longer managed by CloudFormation. This can happen in one of three situations: - The resource is removed from the template, so CloudFormation stops managing it; - A change to the resource is made that requires it to be replaced, so CloudFormation stops managing it; - The stack is deleted, so CloudFormation stops managing all resources in it. This affects the EKS cluster itself, associated IAM roles, node groups, security groups, VPC and any other CloudFormation resources managed by this construct. Default: - Resources will be deleted.
|
|
18658
19300
|
: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.
|
|
18659
19301
|
: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
|
|
18660
19302
|
:param version: The Kubernetes version to run in the cluster.
|
|
18661
19303
|
:param cluster_name: Name for the cluster. Default: - Automatically generated name
|
|
18662
19304
|
:param output_cluster_name: Determines whether a CloudFormation output with the name of the cluster will be synthesized. Default: false
|
|
18663
|
-
:param output_config_command: Determines whether a CloudFormation output with the ``aws eks update-kubeconfig`` command will be synthesized. This command will include the cluster name and
|
|
19305
|
+
:param output_config_command: Determines whether a CloudFormation output with the ``aws eks update-kubeconfig`` command will be synthesized. This command will include the cluster name and the ARN of the masters IAM role. Note: If mastersRole is not specified, this property will be ignored and no config command will be emitted. Default: true
|
|
18664
19306
|
:param role: Role that provides permissions for the Kubernetes control plane to make calls to AWS API operations on your behalf. Default: - A role is automatically created for you
|
|
18665
19307
|
:param security_group: Security Group to use for Control Plane ENIs. Default: - A security group is automatically created
|
|
18666
19308
|
:param vpc: The VPC in which to create the Cluster. Default: - a VPC with default configuration will be created and can be accessed through ``cluster.vpc``.
|
|
@@ -18672,6 +19314,7 @@ class Cluster(
|
|
|
18672
19314
|
check_type(argname="argument id", value=id, expected_type=type_hints["id"])
|
|
18673
19315
|
props = ClusterProps(
|
|
18674
19316
|
bootstrap_cluster_creator_admin_permissions=bootstrap_cluster_creator_admin_permissions,
|
|
19317
|
+
bootstrap_self_managed_addons=bootstrap_self_managed_addons,
|
|
18675
19318
|
default_capacity=default_capacity,
|
|
18676
19319
|
default_capacity_instance=default_capacity_instance,
|
|
18677
19320
|
default_capacity_type=default_capacity_type,
|
|
@@ -18696,6 +19339,7 @@ class Cluster(
|
|
|
18696
19339
|
prune=prune,
|
|
18697
19340
|
remote_node_networks=remote_node_networks,
|
|
18698
19341
|
remote_pod_networks=remote_pod_networks,
|
|
19342
|
+
removal_policy=removal_policy,
|
|
18699
19343
|
secrets_encryption_key=secrets_encryption_key,
|
|
18700
19344
|
service_ipv4_cidr=service_ipv4_cidr,
|
|
18701
19345
|
version=version,
|
|
@@ -18873,7 +19517,7 @@ class Cluster(
|
|
|
18873
19517
|
:param key_name: (deprecated) Name of SSH keypair to grant access to instances. ``launchTemplate`` and ``mixedInstancesPolicy`` must not be specified when this property is specified You can either specify ``keyPair`` or ``keyName``, not both. Default: - No SSH access will be possible.
|
|
18874
19518
|
:param key_pair: The SSH keypair to grant access to the instance. Feature flag ``AUTOSCALING_GENERATE_LAUNCH_TEMPLATE`` must be enabled to use this property. ``launchTemplate`` and ``mixedInstancesPolicy`` must not be specified when this property is specified. You can either specify ``keyPair`` or ``keyName``, not both. Default: - No SSH access will be possible.
|
|
18875
19519
|
:param max_capacity: Maximum number of instances in the fleet. Default: desiredCapacity
|
|
18876
|
-
:param max_instance_lifetime: The maximum amount of time that an instance can be in service. The maximum duration applies to all current and future instances in the group. As an instance approaches its maximum duration, it is terminated and replaced, and cannot be used again. You must specify a value of at least
|
|
19520
|
+
:param max_instance_lifetime: The maximum amount of time that an instance can be in service. The maximum duration applies to all current and future instances in the group. As an instance approaches its maximum duration, it is terminated and replaced, and cannot be used again. You must specify a value of at least 86,400 seconds (one day). To clear a previously set value, leave this property undefined. Default: none
|
|
18877
19521
|
:param min_capacity: Minimum number of instances in the fleet. Default: 1
|
|
18878
19522
|
:param new_instances_protected_from_scale_in: Whether newly-launched instances are protected from termination by Amazon EC2 Auto Scaling when scaling in. By default, Auto Scaling can terminate an instance at any time after launch when scaling in an Auto Scaling Group, subject to the group's termination policy. However, you may wish to protect newly-launched instances from being scaled in if they are going to run critical applications that should not be prematurely terminated. This flag must be enabled if the Auto Scaling Group will be associated with an ECS Capacity Provider with managed termination protection. Default: false
|
|
18879
19523
|
:param notifications: Configure autoscaling group to send notifications about fleet changes to an SNS topic(s). Default: - No fleet change notifications will be sent.
|
|
@@ -19643,6 +20287,7 @@ class Cluster(
|
|
|
19643
20287
|
"prune": "prune",
|
|
19644
20288
|
"remote_node_networks": "remoteNodeNetworks",
|
|
19645
20289
|
"remote_pod_networks": "remotePodNetworks",
|
|
20290
|
+
"removal_policy": "removalPolicy",
|
|
19646
20291
|
"secrets_encryption_key": "secretsEncryptionKey",
|
|
19647
20292
|
"service_ipv4_cidr": "serviceIpv4Cidr",
|
|
19648
20293
|
},
|
|
@@ -19678,7 +20323,8 @@ class ClusterOptions(CommonClusterOptions):
|
|
|
19678
20323
|
prune: typing.Optional[builtins.bool] = None,
|
|
19679
20324
|
remote_node_networks: typing.Optional[typing.Sequence[typing.Union[RemoteNodeNetwork, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
19680
20325
|
remote_pod_networks: typing.Optional[typing.Sequence[typing.Union[RemotePodNetwork, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
19681
|
-
|
|
20326
|
+
removal_policy: typing.Optional[_RemovalPolicy_9f93c814] = None,
|
|
20327
|
+
secrets_encryption_key: typing.Optional[_IKeyRef_d4fc6ef3] = None,
|
|
19682
20328
|
service_ipv4_cidr: typing.Optional[builtins.str] = None,
|
|
19683
20329
|
) -> None:
|
|
19684
20330
|
'''Options for EKS clusters.
|
|
@@ -19686,7 +20332,7 @@ class ClusterOptions(CommonClusterOptions):
|
|
|
19686
20332
|
:param version: The Kubernetes version to run in the cluster.
|
|
19687
20333
|
:param cluster_name: Name for the cluster. Default: - Automatically generated name
|
|
19688
20334
|
:param output_cluster_name: Determines whether a CloudFormation output with the name of the cluster will be synthesized. Default: false
|
|
19689
|
-
:param output_config_command: Determines whether a CloudFormation output with the ``aws eks update-kubeconfig`` command will be synthesized. This command will include the cluster name and
|
|
20335
|
+
:param output_config_command: Determines whether a CloudFormation output with the ``aws eks update-kubeconfig`` command will be synthesized. This command will include the cluster name and the ARN of the masters IAM role. Note: If mastersRole is not specified, this property will be ignored and no config command will be emitted. Default: true
|
|
19690
20336
|
:param role: Role that provides permissions for the Kubernetes control plane to make calls to AWS API operations on your behalf. Default: - A role is automatically created for you
|
|
19691
20337
|
:param security_group: Security Group to use for Control Plane ENIs. Default: - A security group is automatically created
|
|
19692
20338
|
: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``.
|
|
@@ -19710,6 +20356,7 @@ class ClusterOptions(CommonClusterOptions):
|
|
|
19710
20356
|
: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
|
|
19711
20357
|
:param remote_node_networks: IPv4 CIDR blocks defining the expected address range of hybrid nodes that will join the cluster. Default: - none
|
|
19712
20358
|
:param remote_pod_networks: IPv4 CIDR blocks for Pods running Kubernetes webhooks on hybrid nodes. Default: - none
|
|
20359
|
+
:param removal_policy: The removal policy applied to all CloudFormation resources created by this construct when they are no longer managed by CloudFormation. This can happen in one of three situations: - The resource is removed from the template, so CloudFormation stops managing it; - A change to the resource is made that requires it to be replaced, so CloudFormation stops managing it; - The stack is deleted, so CloudFormation stops managing all resources in it. This affects the EKS cluster itself, associated IAM roles, node groups, security groups, VPC and any other CloudFormation resources managed by this construct. Default: - Resources will be deleted.
|
|
19713
20360
|
: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.
|
|
19714
20361
|
: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
|
|
19715
20362
|
|
|
@@ -19723,12 +20370,12 @@ class ClusterOptions(CommonClusterOptions):
|
|
|
19723
20370
|
from aws_cdk import aws_ec2 as ec2
|
|
19724
20371
|
from aws_cdk import aws_eks as eks
|
|
19725
20372
|
from aws_cdk import aws_iam as iam
|
|
19726
|
-
from aws_cdk import aws_kms as kms
|
|
19727
20373
|
from aws_cdk import aws_lambda as lambda_
|
|
20374
|
+
from aws_cdk.interfaces import aws_kms as interfaces_aws_kms
|
|
19728
20375
|
|
|
19729
20376
|
# alb_controller_version: eks.AlbControllerVersion
|
|
19730
20377
|
# endpoint_access: eks.EndpointAccess
|
|
19731
|
-
#
|
|
20378
|
+
# key_ref: interfaces_aws_kms.IKeyRef
|
|
19732
20379
|
# kubernetes_version: eks.KubernetesVersion
|
|
19733
20380
|
# layer_version: lambda.LayerVersion
|
|
19734
20381
|
# policy: Any
|
|
@@ -19783,8 +20430,9 @@ class ClusterOptions(CommonClusterOptions):
|
|
|
19783
20430
|
remote_pod_networks=[eks.RemotePodNetwork(
|
|
19784
20431
|
cidrs=["cidrs"]
|
|
19785
20432
|
)],
|
|
20433
|
+
removal_policy=cdk.RemovalPolicy.DESTROY,
|
|
19786
20434
|
role=role,
|
|
19787
|
-
secrets_encryption_key=
|
|
20435
|
+
secrets_encryption_key=key_ref,
|
|
19788
20436
|
security_group=security_group,
|
|
19789
20437
|
service_ipv4_cidr="serviceIpv4Cidr",
|
|
19790
20438
|
vpc=vpc,
|
|
@@ -19829,6 +20477,7 @@ class ClusterOptions(CommonClusterOptions):
|
|
|
19829
20477
|
check_type(argname="argument prune", value=prune, expected_type=type_hints["prune"])
|
|
19830
20478
|
check_type(argname="argument remote_node_networks", value=remote_node_networks, expected_type=type_hints["remote_node_networks"])
|
|
19831
20479
|
check_type(argname="argument remote_pod_networks", value=remote_pod_networks, expected_type=type_hints["remote_pod_networks"])
|
|
20480
|
+
check_type(argname="argument removal_policy", value=removal_policy, expected_type=type_hints["removal_policy"])
|
|
19832
20481
|
check_type(argname="argument secrets_encryption_key", value=secrets_encryption_key, expected_type=type_hints["secrets_encryption_key"])
|
|
19833
20482
|
check_type(argname="argument service_ipv4_cidr", value=service_ipv4_cidr, expected_type=type_hints["service_ipv4_cidr"])
|
|
19834
20483
|
self._values: typing.Dict[builtins.str, typing.Any] = {
|
|
@@ -19885,6 +20534,8 @@ class ClusterOptions(CommonClusterOptions):
|
|
|
19885
20534
|
self._values["remote_node_networks"] = remote_node_networks
|
|
19886
20535
|
if remote_pod_networks is not None:
|
|
19887
20536
|
self._values["remote_pod_networks"] = remote_pod_networks
|
|
20537
|
+
if removal_policy is not None:
|
|
20538
|
+
self._values["removal_policy"] = removal_policy
|
|
19888
20539
|
if secrets_encryption_key is not None:
|
|
19889
20540
|
self._values["secrets_encryption_key"] = secrets_encryption_key
|
|
19890
20541
|
if service_ipv4_cidr is not None:
|
|
@@ -19920,9 +20571,13 @@ class ClusterOptions(CommonClusterOptions):
|
|
|
19920
20571
|
'''Determines whether a CloudFormation output with the ``aws eks update-kubeconfig`` command will be synthesized.
|
|
19921
20572
|
|
|
19922
20573
|
This command will include
|
|
19923
|
-
the cluster name and
|
|
20574
|
+
the cluster name and the ARN of the masters IAM role.
|
|
20575
|
+
|
|
20576
|
+
Note: If mastersRole is not specified, this property will be ignored and no config command will be emitted.
|
|
19924
20577
|
|
|
19925
20578
|
:default: true
|
|
20579
|
+
|
|
20580
|
+
:see: https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_eks-readme.html#masters-role
|
|
19926
20581
|
'''
|
|
19927
20582
|
result = self._values.get("output_config_command")
|
|
19928
20583
|
return typing.cast(typing.Optional[builtins.bool], result)
|
|
@@ -20190,7 +20845,25 @@ class ClusterOptions(CommonClusterOptions):
|
|
|
20190
20845
|
return typing.cast(typing.Optional[typing.List[RemotePodNetwork]], result)
|
|
20191
20846
|
|
|
20192
20847
|
@builtins.property
|
|
20193
|
-
def
|
|
20848
|
+
def removal_policy(self) -> typing.Optional[_RemovalPolicy_9f93c814]:
|
|
20849
|
+
'''The removal policy applied to all CloudFormation resources created by this construct when they are no longer managed by CloudFormation.
|
|
20850
|
+
|
|
20851
|
+
This can happen in one of three situations:
|
|
20852
|
+
|
|
20853
|
+
- The resource is removed from the template, so CloudFormation stops managing it;
|
|
20854
|
+
- A change to the resource is made that requires it to be replaced, so CloudFormation stops managing it;
|
|
20855
|
+
- The stack is deleted, so CloudFormation stops managing all resources in it.
|
|
20856
|
+
|
|
20857
|
+
This affects the EKS cluster itself, associated IAM roles, node groups, security groups, VPC
|
|
20858
|
+
and any other CloudFormation resources managed by this construct.
|
|
20859
|
+
|
|
20860
|
+
:default: - Resources will be deleted.
|
|
20861
|
+
'''
|
|
20862
|
+
result = self._values.get("removal_policy")
|
|
20863
|
+
return typing.cast(typing.Optional[_RemovalPolicy_9f93c814], result)
|
|
20864
|
+
|
|
20865
|
+
@builtins.property
|
|
20866
|
+
def secrets_encryption_key(self) -> typing.Optional[_IKeyRef_d4fc6ef3]:
|
|
20194
20867
|
'''KMS secret for envelope encryption for Kubernetes secrets.
|
|
20195
20868
|
|
|
20196
20869
|
:default:
|
|
@@ -20200,7 +20873,7 @@ class ClusterOptions(CommonClusterOptions):
|
|
|
20200
20873
|
using AWS-Managed encryption keys.
|
|
20201
20874
|
'''
|
|
20202
20875
|
result = self._values.get("secrets_encryption_key")
|
|
20203
|
-
return typing.cast(typing.Optional[
|
|
20876
|
+
return typing.cast(typing.Optional[_IKeyRef_d4fc6ef3], result)
|
|
20204
20877
|
|
|
20205
20878
|
@builtins.property
|
|
20206
20879
|
def service_ipv4_cidr(self) -> typing.Optional[builtins.str]:
|
|
@@ -20259,9 +20932,11 @@ class ClusterOptions(CommonClusterOptions):
|
|
|
20259
20932
|
"prune": "prune",
|
|
20260
20933
|
"remote_node_networks": "remoteNodeNetworks",
|
|
20261
20934
|
"remote_pod_networks": "remotePodNetworks",
|
|
20935
|
+
"removal_policy": "removalPolicy",
|
|
20262
20936
|
"secrets_encryption_key": "secretsEncryptionKey",
|
|
20263
20937
|
"service_ipv4_cidr": "serviceIpv4Cidr",
|
|
20264
20938
|
"bootstrap_cluster_creator_admin_permissions": "bootstrapClusterCreatorAdminPermissions",
|
|
20939
|
+
"bootstrap_self_managed_addons": "bootstrapSelfManagedAddons",
|
|
20265
20940
|
"default_capacity": "defaultCapacity",
|
|
20266
20941
|
"default_capacity_instance": "defaultCapacityInstance",
|
|
20267
20942
|
"default_capacity_type": "defaultCapacityType",
|
|
@@ -20300,9 +20975,11 @@ class ClusterProps(ClusterOptions):
|
|
|
20300
20975
|
prune: typing.Optional[builtins.bool] = None,
|
|
20301
20976
|
remote_node_networks: typing.Optional[typing.Sequence[typing.Union[RemoteNodeNetwork, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
20302
20977
|
remote_pod_networks: typing.Optional[typing.Sequence[typing.Union[RemotePodNetwork, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
20303
|
-
|
|
20978
|
+
removal_policy: typing.Optional[_RemovalPolicy_9f93c814] = None,
|
|
20979
|
+
secrets_encryption_key: typing.Optional[_IKeyRef_d4fc6ef3] = None,
|
|
20304
20980
|
service_ipv4_cidr: typing.Optional[builtins.str] = None,
|
|
20305
20981
|
bootstrap_cluster_creator_admin_permissions: typing.Optional[builtins.bool] = None,
|
|
20982
|
+
bootstrap_self_managed_addons: typing.Optional[builtins.bool] = None,
|
|
20306
20983
|
default_capacity: typing.Optional[jsii.Number] = None,
|
|
20307
20984
|
default_capacity_instance: typing.Optional[_InstanceType_f64915b9] = None,
|
|
20308
20985
|
default_capacity_type: typing.Optional[DefaultCapacityType] = None,
|
|
@@ -20314,7 +20991,7 @@ class ClusterProps(ClusterOptions):
|
|
|
20314
20991
|
:param version: The Kubernetes version to run in the cluster.
|
|
20315
20992
|
:param cluster_name: Name for the cluster. Default: - Automatically generated name
|
|
20316
20993
|
:param output_cluster_name: Determines whether a CloudFormation output with the name of the cluster will be synthesized. Default: false
|
|
20317
|
-
:param output_config_command: Determines whether a CloudFormation output with the ``aws eks update-kubeconfig`` command will be synthesized. This command will include the cluster name and
|
|
20994
|
+
:param output_config_command: Determines whether a CloudFormation output with the ``aws eks update-kubeconfig`` command will be synthesized. This command will include the cluster name and the ARN of the masters IAM role. Note: If mastersRole is not specified, this property will be ignored and no config command will be emitted. Default: true
|
|
20318
20995
|
:param role: Role that provides permissions for the Kubernetes control plane to make calls to AWS API operations on your behalf. Default: - A role is automatically created for you
|
|
20319
20996
|
:param security_group: Security Group to use for Control Plane ENIs. Default: - A security group is automatically created
|
|
20320
20997
|
: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``.
|
|
@@ -20338,9 +21015,11 @@ class ClusterProps(ClusterOptions):
|
|
|
20338
21015
|
: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
|
|
20339
21016
|
:param remote_node_networks: IPv4 CIDR blocks defining the expected address range of hybrid nodes that will join the cluster. Default: - none
|
|
20340
21017
|
:param remote_pod_networks: IPv4 CIDR blocks for Pods running Kubernetes webhooks on hybrid nodes. Default: - none
|
|
21018
|
+
:param removal_policy: The removal policy applied to all CloudFormation resources created by this construct when they are no longer managed by CloudFormation. This can happen in one of three situations: - The resource is removed from the template, so CloudFormation stops managing it; - A change to the resource is made that requires it to be replaced, so CloudFormation stops managing it; - The stack is deleted, so CloudFormation stops managing all resources in it. This affects the EKS cluster itself, associated IAM roles, node groups, security groups, VPC and any other CloudFormation resources managed by this construct. Default: - Resources will be deleted.
|
|
20341
21019
|
:param secrets_encryption_key: KMS secret for envelope encryption for Kubernetes secrets. Default: - By default, Kubernetes stores all secret object data within etcd and all etcd volumes used by Amazon EKS are encrypted at the disk-level using AWS-Managed encryption keys.
|
|
20342
21020
|
:param service_ipv4_cidr: The CIDR block to assign Kubernetes service IP addresses from. Default: - Kubernetes assigns addresses from either the 10.100.0.0/16 or 172.20.0.0/16 CIDR blocks
|
|
20343
21021
|
: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
|
|
21022
|
+
:param bootstrap_self_managed_addons: If you set this value to False when creating a cluster, the default networking add-ons will not be installed. The default networking addons include vpc-cni, coredns, and kube-proxy. Use this option when you plan to install third-party alternative add-ons or self-manage the default networking add-ons. Changing this value after the cluster has been created will result in the cluster being replaced. Default: true
|
|
20344
21023
|
:param default_capacity: Number of instances to allocate as an initial capacity for this cluster. Instance type can be configured through ``defaultCapacityInstanceType``, which defaults to ``m5.large``. Use ``cluster.addAutoScalingGroupCapacity`` to add additional customized capacity. Set this to ``0`` is you wish to avoid the initial capacity allocation. Default: 2
|
|
20345
21024
|
:param default_capacity_instance: The instance type to use for the default capacity. This will only be taken into account if ``defaultCapacity`` is > 0. Default: m5.large
|
|
20346
21025
|
:param default_capacity_type: The default capacity type for the cluster. Default: NODEGROUP
|
|
@@ -20351,7 +21030,7 @@ class ClusterProps(ClusterOptions):
|
|
|
20351
21030
|
|
|
20352
21031
|
Example::
|
|
20353
21032
|
|
|
20354
|
-
from aws_cdk.
|
|
21033
|
+
from aws_cdk.lambda_layer_kubectl_v34 import KubectlV34Layer
|
|
20355
21034
|
|
|
20356
21035
|
# or
|
|
20357
21036
|
# vpc: ec2.Vpc
|
|
@@ -20359,8 +21038,8 @@ class ClusterProps(ClusterOptions):
|
|
|
20359
21038
|
|
|
20360
21039
|
eks.Cluster(self, "MyCluster",
|
|
20361
21040
|
kubectl_memory=Size.gibibytes(4),
|
|
20362
|
-
version=eks.KubernetesVersion.
|
|
20363
|
-
kubectl_layer=
|
|
21041
|
+
version=eks.KubernetesVersion.V1_34,
|
|
21042
|
+
kubectl_layer=KubectlV34Layer(self, "kubectl")
|
|
20364
21043
|
)
|
|
20365
21044
|
eks.Cluster.from_cluster_attributes(self, "MyCluster",
|
|
20366
21045
|
kubectl_memory=Size.gibibytes(4),
|
|
@@ -20399,9 +21078,11 @@ class ClusterProps(ClusterOptions):
|
|
|
20399
21078
|
check_type(argname="argument prune", value=prune, expected_type=type_hints["prune"])
|
|
20400
21079
|
check_type(argname="argument remote_node_networks", value=remote_node_networks, expected_type=type_hints["remote_node_networks"])
|
|
20401
21080
|
check_type(argname="argument remote_pod_networks", value=remote_pod_networks, expected_type=type_hints["remote_pod_networks"])
|
|
21081
|
+
check_type(argname="argument removal_policy", value=removal_policy, expected_type=type_hints["removal_policy"])
|
|
20402
21082
|
check_type(argname="argument secrets_encryption_key", value=secrets_encryption_key, expected_type=type_hints["secrets_encryption_key"])
|
|
20403
21083
|
check_type(argname="argument service_ipv4_cidr", value=service_ipv4_cidr, expected_type=type_hints["service_ipv4_cidr"])
|
|
20404
21084
|
check_type(argname="argument bootstrap_cluster_creator_admin_permissions", value=bootstrap_cluster_creator_admin_permissions, expected_type=type_hints["bootstrap_cluster_creator_admin_permissions"])
|
|
21085
|
+
check_type(argname="argument bootstrap_self_managed_addons", value=bootstrap_self_managed_addons, expected_type=type_hints["bootstrap_self_managed_addons"])
|
|
20405
21086
|
check_type(argname="argument default_capacity", value=default_capacity, expected_type=type_hints["default_capacity"])
|
|
20406
21087
|
check_type(argname="argument default_capacity_instance", value=default_capacity_instance, expected_type=type_hints["default_capacity_instance"])
|
|
20407
21088
|
check_type(argname="argument default_capacity_type", value=default_capacity_type, expected_type=type_hints["default_capacity_type"])
|
|
@@ -20461,12 +21142,16 @@ class ClusterProps(ClusterOptions):
|
|
|
20461
21142
|
self._values["remote_node_networks"] = remote_node_networks
|
|
20462
21143
|
if remote_pod_networks is not None:
|
|
20463
21144
|
self._values["remote_pod_networks"] = remote_pod_networks
|
|
21145
|
+
if removal_policy is not None:
|
|
21146
|
+
self._values["removal_policy"] = removal_policy
|
|
20464
21147
|
if secrets_encryption_key is not None:
|
|
20465
21148
|
self._values["secrets_encryption_key"] = secrets_encryption_key
|
|
20466
21149
|
if service_ipv4_cidr is not None:
|
|
20467
21150
|
self._values["service_ipv4_cidr"] = service_ipv4_cidr
|
|
20468
21151
|
if bootstrap_cluster_creator_admin_permissions is not None:
|
|
20469
21152
|
self._values["bootstrap_cluster_creator_admin_permissions"] = bootstrap_cluster_creator_admin_permissions
|
|
21153
|
+
if bootstrap_self_managed_addons is not None:
|
|
21154
|
+
self._values["bootstrap_self_managed_addons"] = bootstrap_self_managed_addons
|
|
20470
21155
|
if default_capacity is not None:
|
|
20471
21156
|
self._values["default_capacity"] = default_capacity
|
|
20472
21157
|
if default_capacity_instance is not None:
|
|
@@ -20508,9 +21193,13 @@ class ClusterProps(ClusterOptions):
|
|
|
20508
21193
|
'''Determines whether a CloudFormation output with the ``aws eks update-kubeconfig`` command will be synthesized.
|
|
20509
21194
|
|
|
20510
21195
|
This command will include
|
|
20511
|
-
the cluster name and
|
|
21196
|
+
the cluster name and the ARN of the masters IAM role.
|
|
21197
|
+
|
|
21198
|
+
Note: If mastersRole is not specified, this property will be ignored and no config command will be emitted.
|
|
20512
21199
|
|
|
20513
21200
|
:default: true
|
|
21201
|
+
|
|
21202
|
+
:see: https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_eks-readme.html#masters-role
|
|
20514
21203
|
'''
|
|
20515
21204
|
result = self._values.get("output_config_command")
|
|
20516
21205
|
return typing.cast(typing.Optional[builtins.bool], result)
|
|
@@ -20778,7 +21467,25 @@ class ClusterProps(ClusterOptions):
|
|
|
20778
21467
|
return typing.cast(typing.Optional[typing.List[RemotePodNetwork]], result)
|
|
20779
21468
|
|
|
20780
21469
|
@builtins.property
|
|
20781
|
-
def
|
|
21470
|
+
def removal_policy(self) -> typing.Optional[_RemovalPolicy_9f93c814]:
|
|
21471
|
+
'''The removal policy applied to all CloudFormation resources created by this construct when they are no longer managed by CloudFormation.
|
|
21472
|
+
|
|
21473
|
+
This can happen in one of three situations:
|
|
21474
|
+
|
|
21475
|
+
- The resource is removed from the template, so CloudFormation stops managing it;
|
|
21476
|
+
- A change to the resource is made that requires it to be replaced, so CloudFormation stops managing it;
|
|
21477
|
+
- The stack is deleted, so CloudFormation stops managing all resources in it.
|
|
21478
|
+
|
|
21479
|
+
This affects the EKS cluster itself, associated IAM roles, node groups, security groups, VPC
|
|
21480
|
+
and any other CloudFormation resources managed by this construct.
|
|
21481
|
+
|
|
21482
|
+
:default: - Resources will be deleted.
|
|
21483
|
+
'''
|
|
21484
|
+
result = self._values.get("removal_policy")
|
|
21485
|
+
return typing.cast(typing.Optional[_RemovalPolicy_9f93c814], result)
|
|
21486
|
+
|
|
21487
|
+
@builtins.property
|
|
21488
|
+
def secrets_encryption_key(self) -> typing.Optional[_IKeyRef_d4fc6ef3]:
|
|
20782
21489
|
'''KMS secret for envelope encryption for Kubernetes secrets.
|
|
20783
21490
|
|
|
20784
21491
|
:default:
|
|
@@ -20788,7 +21495,7 @@ class ClusterProps(ClusterOptions):
|
|
|
20788
21495
|
using AWS-Managed encryption keys.
|
|
20789
21496
|
'''
|
|
20790
21497
|
result = self._values.get("secrets_encryption_key")
|
|
20791
|
-
return typing.cast(typing.Optional[
|
|
21498
|
+
return typing.cast(typing.Optional[_IKeyRef_d4fc6ef3], result)
|
|
20792
21499
|
|
|
20793
21500
|
@builtins.property
|
|
20794
21501
|
def service_ipv4_cidr(self) -> typing.Optional[builtins.str]:
|
|
@@ -20817,6 +21524,20 @@ class ClusterProps(ClusterOptions):
|
|
|
20817
21524
|
result = self._values.get("bootstrap_cluster_creator_admin_permissions")
|
|
20818
21525
|
return typing.cast(typing.Optional[builtins.bool], result)
|
|
20819
21526
|
|
|
21527
|
+
@builtins.property
|
|
21528
|
+
def bootstrap_self_managed_addons(self) -> typing.Optional[builtins.bool]:
|
|
21529
|
+
'''If you set this value to False when creating a cluster, the default networking add-ons will not be installed.
|
|
21530
|
+
|
|
21531
|
+
The default networking addons include vpc-cni, coredns, and kube-proxy.
|
|
21532
|
+
Use this option when you plan to install third-party alternative add-ons or self-manage the default networking add-ons.
|
|
21533
|
+
|
|
21534
|
+
Changing this value after the cluster has been created will result in the cluster being replaced.
|
|
21535
|
+
|
|
21536
|
+
:default: true
|
|
21537
|
+
'''
|
|
21538
|
+
result = self._values.get("bootstrap_self_managed_addons")
|
|
21539
|
+
return typing.cast(typing.Optional[builtins.bool], result)
|
|
21540
|
+
|
|
20820
21541
|
@builtins.property
|
|
20821
21542
|
def default_capacity(self) -> typing.Optional[jsii.Number]:
|
|
20822
21543
|
'''Number of instances to allocate as an initial capacity for this cluster.
|
|
@@ -20898,12 +21619,12 @@ class FargateCluster(
|
|
|
20898
21619
|
|
|
20899
21620
|
Example::
|
|
20900
21621
|
|
|
20901
|
-
from aws_cdk.
|
|
21622
|
+
from aws_cdk.lambda_layer_kubectl_v34 import KubectlV34Layer
|
|
20902
21623
|
|
|
20903
21624
|
|
|
20904
21625
|
cluster = eks.FargateCluster(self, "MyCluster",
|
|
20905
|
-
version=eks.KubernetesVersion.
|
|
20906
|
-
kubectl_layer=
|
|
21626
|
+
version=eks.KubernetesVersion.V1_34,
|
|
21627
|
+
kubectl_layer=KubectlV34Layer(self, "kubectl")
|
|
20907
21628
|
)
|
|
20908
21629
|
'''
|
|
20909
21630
|
|
|
@@ -20932,7 +21653,8 @@ class FargateCluster(
|
|
|
20932
21653
|
prune: typing.Optional[builtins.bool] = None,
|
|
20933
21654
|
remote_node_networks: typing.Optional[typing.Sequence[typing.Union[RemoteNodeNetwork, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
20934
21655
|
remote_pod_networks: typing.Optional[typing.Sequence[typing.Union[RemotePodNetwork, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
20935
|
-
|
|
21656
|
+
removal_policy: typing.Optional[_RemovalPolicy_9f93c814] = None,
|
|
21657
|
+
secrets_encryption_key: typing.Optional[_IKeyRef_d4fc6ef3] = None,
|
|
20936
21658
|
service_ipv4_cidr: typing.Optional[builtins.str] = None,
|
|
20937
21659
|
version: KubernetesVersion,
|
|
20938
21660
|
cluster_name: typing.Optional[builtins.str] = None,
|
|
@@ -20966,12 +21688,13 @@ class FargateCluster(
|
|
|
20966
21688
|
: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
|
|
20967
21689
|
:param remote_node_networks: IPv4 CIDR blocks defining the expected address range of hybrid nodes that will join the cluster. Default: - none
|
|
20968
21690
|
:param remote_pod_networks: IPv4 CIDR blocks for Pods running Kubernetes webhooks on hybrid nodes. Default: - none
|
|
21691
|
+
:param removal_policy: The removal policy applied to all CloudFormation resources created by this construct when they are no longer managed by CloudFormation. This can happen in one of three situations: - The resource is removed from the template, so CloudFormation stops managing it; - A change to the resource is made that requires it to be replaced, so CloudFormation stops managing it; - The stack is deleted, so CloudFormation stops managing all resources in it. This affects the EKS cluster itself, associated IAM roles, node groups, security groups, VPC and any other CloudFormation resources managed by this construct. Default: - Resources will be deleted.
|
|
20969
21692
|
: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.
|
|
20970
21693
|
: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
|
|
20971
21694
|
:param version: The Kubernetes version to run in the cluster.
|
|
20972
21695
|
:param cluster_name: Name for the cluster. Default: - Automatically generated name
|
|
20973
21696
|
:param output_cluster_name: Determines whether a CloudFormation output with the name of the cluster will be synthesized. Default: false
|
|
20974
|
-
:param output_config_command: Determines whether a CloudFormation output with the ``aws eks update-kubeconfig`` command will be synthesized. This command will include the cluster name and
|
|
21697
|
+
:param output_config_command: Determines whether a CloudFormation output with the ``aws eks update-kubeconfig`` command will be synthesized. This command will include the cluster name and the ARN of the masters IAM role. Note: If mastersRole is not specified, this property will be ignored and no config command will be emitted. Default: true
|
|
20975
21698
|
:param role: Role that provides permissions for the Kubernetes control plane to make calls to AWS API operations on your behalf. Default: - A role is automatically created for you
|
|
20976
21699
|
:param security_group: Security Group to use for Control Plane ENIs. Default: - A security group is automatically created
|
|
20977
21700
|
: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``.
|
|
@@ -21002,6 +21725,7 @@ class FargateCluster(
|
|
|
21002
21725
|
prune=prune,
|
|
21003
21726
|
remote_node_networks=remote_node_networks,
|
|
21004
21727
|
remote_pod_networks=remote_pod_networks,
|
|
21728
|
+
removal_policy=removal_policy,
|
|
21005
21729
|
secrets_encryption_key=secrets_encryption_key,
|
|
21006
21730
|
service_ipv4_cidr=service_ipv4_cidr,
|
|
21007
21731
|
version=version,
|
|
@@ -21060,6 +21784,7 @@ class FargateCluster(
|
|
|
21060
21784
|
"prune": "prune",
|
|
21061
21785
|
"remote_node_networks": "remoteNodeNetworks",
|
|
21062
21786
|
"remote_pod_networks": "remotePodNetworks",
|
|
21787
|
+
"removal_policy": "removalPolicy",
|
|
21063
21788
|
"secrets_encryption_key": "secretsEncryptionKey",
|
|
21064
21789
|
"service_ipv4_cidr": "serviceIpv4Cidr",
|
|
21065
21790
|
"default_profile": "defaultProfile",
|
|
@@ -21096,7 +21821,8 @@ class FargateClusterProps(ClusterOptions):
|
|
|
21096
21821
|
prune: typing.Optional[builtins.bool] = None,
|
|
21097
21822
|
remote_node_networks: typing.Optional[typing.Sequence[typing.Union[RemoteNodeNetwork, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
21098
21823
|
remote_pod_networks: typing.Optional[typing.Sequence[typing.Union[RemotePodNetwork, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
21099
|
-
|
|
21824
|
+
removal_policy: typing.Optional[_RemovalPolicy_9f93c814] = None,
|
|
21825
|
+
secrets_encryption_key: typing.Optional[_IKeyRef_d4fc6ef3] = None,
|
|
21100
21826
|
service_ipv4_cidr: typing.Optional[builtins.str] = None,
|
|
21101
21827
|
default_profile: typing.Optional[typing.Union[FargateProfileOptions, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
21102
21828
|
) -> None:
|
|
@@ -21105,7 +21831,7 @@ class FargateClusterProps(ClusterOptions):
|
|
|
21105
21831
|
:param version: The Kubernetes version to run in the cluster.
|
|
21106
21832
|
:param cluster_name: Name for the cluster. Default: - Automatically generated name
|
|
21107
21833
|
:param output_cluster_name: Determines whether a CloudFormation output with the name of the cluster will be synthesized. Default: false
|
|
21108
|
-
:param output_config_command: Determines whether a CloudFormation output with the ``aws eks update-kubeconfig`` command will be synthesized. This command will include the cluster name and
|
|
21834
|
+
:param output_config_command: Determines whether a CloudFormation output with the ``aws eks update-kubeconfig`` command will be synthesized. This command will include the cluster name and the ARN of the masters IAM role. Note: If mastersRole is not specified, this property will be ignored and no config command will be emitted. Default: true
|
|
21109
21835
|
:param role: Role that provides permissions for the Kubernetes control plane to make calls to AWS API operations on your behalf. Default: - A role is automatically created for you
|
|
21110
21836
|
:param security_group: Security Group to use for Control Plane ENIs. Default: - A security group is automatically created
|
|
21111
21837
|
: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``.
|
|
@@ -21129,6 +21855,7 @@ class FargateClusterProps(ClusterOptions):
|
|
|
21129
21855
|
: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
|
|
21130
21856
|
:param remote_node_networks: IPv4 CIDR blocks defining the expected address range of hybrid nodes that will join the cluster. Default: - none
|
|
21131
21857
|
:param remote_pod_networks: IPv4 CIDR blocks for Pods running Kubernetes webhooks on hybrid nodes. Default: - none
|
|
21858
|
+
:param removal_policy: The removal policy applied to all CloudFormation resources created by this construct when they are no longer managed by CloudFormation. This can happen in one of three situations: - The resource is removed from the template, so CloudFormation stops managing it; - A change to the resource is made that requires it to be replaced, so CloudFormation stops managing it; - The stack is deleted, so CloudFormation stops managing all resources in it. This affects the EKS cluster itself, associated IAM roles, node groups, security groups, VPC and any other CloudFormation resources managed by this construct. Default: - Resources will be deleted.
|
|
21132
21859
|
: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.
|
|
21133
21860
|
: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
|
|
21134
21861
|
: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.
|
|
@@ -21137,12 +21864,12 @@ class FargateClusterProps(ClusterOptions):
|
|
|
21137
21864
|
|
|
21138
21865
|
Example::
|
|
21139
21866
|
|
|
21140
|
-
from aws_cdk.
|
|
21867
|
+
from aws_cdk.lambda_layer_kubectl_v34 import KubectlV34Layer
|
|
21141
21868
|
|
|
21142
21869
|
|
|
21143
21870
|
cluster = eks.FargateCluster(self, "MyCluster",
|
|
21144
|
-
version=eks.KubernetesVersion.
|
|
21145
|
-
kubectl_layer=
|
|
21871
|
+
version=eks.KubernetesVersion.V1_34,
|
|
21872
|
+
kubectl_layer=KubectlV34Layer(self, "kubectl")
|
|
21146
21873
|
)
|
|
21147
21874
|
'''
|
|
21148
21875
|
if isinstance(alb_controller, dict):
|
|
@@ -21178,6 +21905,7 @@ class FargateClusterProps(ClusterOptions):
|
|
|
21178
21905
|
check_type(argname="argument prune", value=prune, expected_type=type_hints["prune"])
|
|
21179
21906
|
check_type(argname="argument remote_node_networks", value=remote_node_networks, expected_type=type_hints["remote_node_networks"])
|
|
21180
21907
|
check_type(argname="argument remote_pod_networks", value=remote_pod_networks, expected_type=type_hints["remote_pod_networks"])
|
|
21908
|
+
check_type(argname="argument removal_policy", value=removal_policy, expected_type=type_hints["removal_policy"])
|
|
21181
21909
|
check_type(argname="argument secrets_encryption_key", value=secrets_encryption_key, expected_type=type_hints["secrets_encryption_key"])
|
|
21182
21910
|
check_type(argname="argument service_ipv4_cidr", value=service_ipv4_cidr, expected_type=type_hints["service_ipv4_cidr"])
|
|
21183
21911
|
check_type(argname="argument default_profile", value=default_profile, expected_type=type_hints["default_profile"])
|
|
@@ -21235,6 +21963,8 @@ class FargateClusterProps(ClusterOptions):
|
|
|
21235
21963
|
self._values["remote_node_networks"] = remote_node_networks
|
|
21236
21964
|
if remote_pod_networks is not None:
|
|
21237
21965
|
self._values["remote_pod_networks"] = remote_pod_networks
|
|
21966
|
+
if removal_policy is not None:
|
|
21967
|
+
self._values["removal_policy"] = removal_policy
|
|
21238
21968
|
if secrets_encryption_key is not None:
|
|
21239
21969
|
self._values["secrets_encryption_key"] = secrets_encryption_key
|
|
21240
21970
|
if service_ipv4_cidr is not None:
|
|
@@ -21272,9 +22002,13 @@ class FargateClusterProps(ClusterOptions):
|
|
|
21272
22002
|
'''Determines whether a CloudFormation output with the ``aws eks update-kubeconfig`` command will be synthesized.
|
|
21273
22003
|
|
|
21274
22004
|
This command will include
|
|
21275
|
-
the cluster name and
|
|
22005
|
+
the cluster name and the ARN of the masters IAM role.
|
|
22006
|
+
|
|
22007
|
+
Note: If mastersRole is not specified, this property will be ignored and no config command will be emitted.
|
|
21276
22008
|
|
|
21277
22009
|
:default: true
|
|
22010
|
+
|
|
22011
|
+
:see: https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_eks-readme.html#masters-role
|
|
21278
22012
|
'''
|
|
21279
22013
|
result = self._values.get("output_config_command")
|
|
21280
22014
|
return typing.cast(typing.Optional[builtins.bool], result)
|
|
@@ -21542,7 +22276,25 @@ class FargateClusterProps(ClusterOptions):
|
|
|
21542
22276
|
return typing.cast(typing.Optional[typing.List[RemotePodNetwork]], result)
|
|
21543
22277
|
|
|
21544
22278
|
@builtins.property
|
|
21545
|
-
def
|
|
22279
|
+
def removal_policy(self) -> typing.Optional[_RemovalPolicy_9f93c814]:
|
|
22280
|
+
'''The removal policy applied to all CloudFormation resources created by this construct when they are no longer managed by CloudFormation.
|
|
22281
|
+
|
|
22282
|
+
This can happen in one of three situations:
|
|
22283
|
+
|
|
22284
|
+
- The resource is removed from the template, so CloudFormation stops managing it;
|
|
22285
|
+
- A change to the resource is made that requires it to be replaced, so CloudFormation stops managing it;
|
|
22286
|
+
- The stack is deleted, so CloudFormation stops managing all resources in it.
|
|
22287
|
+
|
|
22288
|
+
This affects the EKS cluster itself, associated IAM roles, node groups, security groups, VPC
|
|
22289
|
+
and any other CloudFormation resources managed by this construct.
|
|
22290
|
+
|
|
22291
|
+
:default: - Resources will be deleted.
|
|
22292
|
+
'''
|
|
22293
|
+
result = self._values.get("removal_policy")
|
|
22294
|
+
return typing.cast(typing.Optional[_RemovalPolicy_9f93c814], result)
|
|
22295
|
+
|
|
22296
|
+
@builtins.property
|
|
22297
|
+
def secrets_encryption_key(self) -> typing.Optional[_IKeyRef_d4fc6ef3]:
|
|
21546
22298
|
'''KMS secret for envelope encryption for Kubernetes secrets.
|
|
21547
22299
|
|
|
21548
22300
|
:default:
|
|
@@ -21552,7 +22304,7 @@ class FargateClusterProps(ClusterOptions):
|
|
|
21552
22304
|
using AWS-Managed encryption keys.
|
|
21553
22305
|
'''
|
|
21554
22306
|
result = self._values.get("secrets_encryption_key")
|
|
21555
|
-
return typing.cast(typing.Optional[
|
|
22307
|
+
return typing.cast(typing.Optional[_IKeyRef_d4fc6ef3], result)
|
|
21556
22308
|
|
|
21557
22309
|
@builtins.property
|
|
21558
22310
|
def service_ipv4_cidr(self) -> typing.Optional[builtins.str]:
|
|
@@ -22129,6 +22881,7 @@ def _typecheckingstub__45ff0728c7d6fc5f47c97aa791c327f70a32e19bdf463d94d9351053f
|
|
|
22129
22881
|
cluster_name: builtins.str,
|
|
22130
22882
|
addon_version: typing.Optional[builtins.str] = None,
|
|
22131
22883
|
configuration_values: typing.Optional[builtins.str] = None,
|
|
22884
|
+
namespace_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnAddon.NamespaceConfigProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
22132
22885
|
pod_identity_associations: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnAddon.PodIdentityAssociationProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
|
|
22133
22886
|
preserve_on_delete: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
|
|
22134
22887
|
resolve_conflicts: typing.Optional[builtins.str] = None,
|
|
@@ -22174,6 +22927,12 @@ def _typecheckingstub__f2b158aed78a78d2962c2650df64f6c3880ccb508ebd6b281bda6c1a1
|
|
|
22174
22927
|
"""Type checking stubs"""
|
|
22175
22928
|
pass
|
|
22176
22929
|
|
|
22930
|
+
def _typecheckingstub__039b518895f39f54dce3ea31a35bed66445fb7b5e7f4c52a89adafc86911f331(
|
|
22931
|
+
value: typing.Optional[typing.Union[_IResolvable_da3f097b, CfnAddon.NamespaceConfigProperty]],
|
|
22932
|
+
) -> None:
|
|
22933
|
+
"""Type checking stubs"""
|
|
22934
|
+
pass
|
|
22935
|
+
|
|
22177
22936
|
def _typecheckingstub__04a430658e28600fba10a8c3e5edab2978904829dda6f2c70e9cca8560f7e400(
|
|
22178
22937
|
value: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, CfnAddon.PodIdentityAssociationProperty]]]],
|
|
22179
22938
|
) -> None:
|
|
@@ -22204,6 +22963,13 @@ def _typecheckingstub__61cfcc2cd9aba81e02df7f2a5c976044dc5e5cbf6c05b880c4944cb35
|
|
|
22204
22963
|
"""Type checking stubs"""
|
|
22205
22964
|
pass
|
|
22206
22965
|
|
|
22966
|
+
def _typecheckingstub__c336eaf5f7476c60c3b0b8dc688fc9ea53319525b39f820a30e2510a38e67cbc(
|
|
22967
|
+
*,
|
|
22968
|
+
namespace: builtins.str,
|
|
22969
|
+
) -> None:
|
|
22970
|
+
"""Type checking stubs"""
|
|
22971
|
+
pass
|
|
22972
|
+
|
|
22207
22973
|
def _typecheckingstub__3925c850dd0d0ad3b9faeea87aafbe69220a7bf33d95af5527715674625c9891(
|
|
22208
22974
|
*,
|
|
22209
22975
|
role_arn: builtins.str,
|
|
@@ -22218,6 +22984,7 @@ def _typecheckingstub__484b2779e40e4780cb0940ac7bc9daaf91fa04347613d732138d3be3d
|
|
|
22218
22984
|
cluster_name: builtins.str,
|
|
22219
22985
|
addon_version: typing.Optional[builtins.str] = None,
|
|
22220
22986
|
configuration_values: typing.Optional[builtins.str] = None,
|
|
22987
|
+
namespace_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnAddon.NamespaceConfigProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
22221
22988
|
pod_identity_associations: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnAddon.PodIdentityAssociationProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
|
|
22222
22989
|
preserve_on_delete: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
|
|
22223
22990
|
resolve_conflicts: typing.Optional[builtins.str] = None,
|
|
@@ -22236,6 +23003,7 @@ def _typecheckingstub__d3e62a858014f3867f3039d1328d57223fb0d16e3fb6d1e2d79279938
|
|
|
22236
23003
|
access_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnCluster.AccessConfigProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
22237
23004
|
bootstrap_self_managed_addons: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
|
|
22238
23005
|
compute_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnCluster.ComputeConfigProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
23006
|
+
deletion_protection: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
|
|
22239
23007
|
encryption_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnCluster.EncryptionConfigProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
|
|
22240
23008
|
force: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
|
|
22241
23009
|
kubernetes_network_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnCluster.KubernetesNetworkConfigProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
@@ -22252,6 +23020,22 @@ def _typecheckingstub__d3e62a858014f3867f3039d1328d57223fb0d16e3fb6d1e2d79279938
|
|
|
22252
23020
|
"""Type checking stubs"""
|
|
22253
23021
|
pass
|
|
22254
23022
|
|
|
23023
|
+
def _typecheckingstub__b7520097767a23a7f7b750879adb8df71436766d2ad7c356ce08243330524e31(
|
|
23024
|
+
scope: _constructs_77d1e7e8.Construct,
|
|
23025
|
+
id: builtins.str,
|
|
23026
|
+
arn: builtins.str,
|
|
23027
|
+
) -> None:
|
|
23028
|
+
"""Type checking stubs"""
|
|
23029
|
+
pass
|
|
23030
|
+
|
|
23031
|
+
def _typecheckingstub__06b7df746bf67240facb00749c1c399634c9167d5acb1747f034220efaf30f49(
|
|
23032
|
+
scope: _constructs_77d1e7e8.Construct,
|
|
23033
|
+
id: builtins.str,
|
|
23034
|
+
cluster_name: builtins.str,
|
|
23035
|
+
) -> None:
|
|
23036
|
+
"""Type checking stubs"""
|
|
23037
|
+
pass
|
|
23038
|
+
|
|
22255
23039
|
def _typecheckingstub__4ce8181eaff5e47deffee284e9005fc3985d7f0cc2ae10f69530ae44c00c9022(
|
|
22256
23040
|
inspector: _TreeInspector_488e0dd5,
|
|
22257
23041
|
) -> None:
|
|
@@ -22294,6 +23078,12 @@ def _typecheckingstub__5d35f88b28db161e1414d604c41ffc1d10fcf76351a0503d110f81158
|
|
|
22294
23078
|
"""Type checking stubs"""
|
|
22295
23079
|
pass
|
|
22296
23080
|
|
|
23081
|
+
def _typecheckingstub__19e2a4eccf6e2e232dc5d0a9572dba914015320e88042ef8f90020cd0d14b037(
|
|
23082
|
+
value: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]],
|
|
23083
|
+
) -> None:
|
|
23084
|
+
"""Type checking stubs"""
|
|
23085
|
+
pass
|
|
23086
|
+
|
|
22297
23087
|
def _typecheckingstub__b161fda542258d1cd8a20fecd3943cacecb658f19ab16b918baf49908459644c(
|
|
22298
23088
|
value: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, CfnCluster.EncryptionConfigProperty]]]],
|
|
22299
23089
|
) -> None:
|
|
@@ -22520,6 +23310,7 @@ def _typecheckingstub__270f142a59c249328ab174c5b0484cfdae6e3110ab52578dbe783d6f8
|
|
|
22520
23310
|
access_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnCluster.AccessConfigProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
22521
23311
|
bootstrap_self_managed_addons: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
|
|
22522
23312
|
compute_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnCluster.ComputeConfigProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
23313
|
+
deletion_protection: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
|
|
22523
23314
|
encryption_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnCluster.EncryptionConfigProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
|
|
22524
23315
|
force: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
|
|
22525
23316
|
kubernetes_network_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnCluster.KubernetesNetworkConfigProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
@@ -22875,9 +23666,24 @@ def _typecheckingstub__e659212680af90c8732b5ec096030b6902f35121f1ca1a82a513ebaa5
|
|
|
22875
23666
|
"""Type checking stubs"""
|
|
22876
23667
|
pass
|
|
22877
23668
|
|
|
23669
|
+
def _typecheckingstub__1c8182284f4e249d40ce1280381d42d4de802714ccdb98dd8928f394e7a79a18(
|
|
23670
|
+
*,
|
|
23671
|
+
min_repair_wait_time_mins: typing.Optional[jsii.Number] = None,
|
|
23672
|
+
node_monitoring_condition: typing.Optional[builtins.str] = None,
|
|
23673
|
+
node_unhealthy_reason: typing.Optional[builtins.str] = None,
|
|
23674
|
+
repair_action: typing.Optional[builtins.str] = None,
|
|
23675
|
+
) -> None:
|
|
23676
|
+
"""Type checking stubs"""
|
|
23677
|
+
pass
|
|
23678
|
+
|
|
22878
23679
|
def _typecheckingstub__29dbda55ee07f00e62bcfcbc392973b5c2850e347abc3e6692b5d82704d445f0(
|
|
22879
23680
|
*,
|
|
22880
23681
|
enabled: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
|
|
23682
|
+
max_parallel_nodes_repaired_count: typing.Optional[jsii.Number] = None,
|
|
23683
|
+
max_parallel_nodes_repaired_percentage: typing.Optional[jsii.Number] = None,
|
|
23684
|
+
max_unhealthy_node_threshold_count: typing.Optional[jsii.Number] = None,
|
|
23685
|
+
max_unhealthy_node_threshold_percentage: typing.Optional[jsii.Number] = None,
|
|
23686
|
+
node_repair_config_overrides: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnNodegroup.NodeRepairConfigOverridesProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
|
|
22881
23687
|
) -> None:
|
|
22882
23688
|
"""Type checking stubs"""
|
|
22883
23689
|
pass
|
|
@@ -22950,7 +23756,9 @@ def _typecheckingstub__be8311b6089cea26f85c63a586f0c5b063230a1b4a96ffcd4c6c983a3
|
|
|
22950
23756
|
namespace: builtins.str,
|
|
22951
23757
|
role_arn: builtins.str,
|
|
22952
23758
|
service_account: builtins.str,
|
|
23759
|
+
disable_session_tags: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
|
|
22953
23760
|
tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
23761
|
+
target_role_arn: typing.Optional[builtins.str] = None,
|
|
22954
23762
|
) -> None:
|
|
22955
23763
|
"""Type checking stubs"""
|
|
22956
23764
|
pass
|
|
@@ -22991,19 +23799,33 @@ def _typecheckingstub__ea3bb34348aff57e29a5352e7460510bda8dd51720dbf7d275297137f
|
|
|
22991
23799
|
"""Type checking stubs"""
|
|
22992
23800
|
pass
|
|
22993
23801
|
|
|
23802
|
+
def _typecheckingstub__cb3dbe4cc3b44e9265bbfe13e41235db909b0c1dc0e052b3bdda07fd4b228e8b(
|
|
23803
|
+
value: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]],
|
|
23804
|
+
) -> None:
|
|
23805
|
+
"""Type checking stubs"""
|
|
23806
|
+
pass
|
|
23807
|
+
|
|
22994
23808
|
def _typecheckingstub__b0e0a0551adefc10761733af04b8c51e7dad6b483be9252882ecff10539c7dcc(
|
|
22995
23809
|
value: typing.Optional[typing.List[_CfnTag_f6864754]],
|
|
22996
23810
|
) -> None:
|
|
22997
23811
|
"""Type checking stubs"""
|
|
22998
23812
|
pass
|
|
22999
23813
|
|
|
23814
|
+
def _typecheckingstub__cb6220c6db8cf93a8a307b1ba0630d6bc64b4a09325e7cfe5854228aa75ff833(
|
|
23815
|
+
value: typing.Optional[builtins.str],
|
|
23816
|
+
) -> None:
|
|
23817
|
+
"""Type checking stubs"""
|
|
23818
|
+
pass
|
|
23819
|
+
|
|
23000
23820
|
def _typecheckingstub__40e8da56b529234cdbb596fa46af952a935adf744e907347861dfc232b89038b(
|
|
23001
23821
|
*,
|
|
23002
23822
|
cluster_name: builtins.str,
|
|
23003
23823
|
namespace: builtins.str,
|
|
23004
23824
|
role_arn: builtins.str,
|
|
23005
23825
|
service_account: builtins.str,
|
|
23826
|
+
disable_session_tags: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
|
|
23006
23827
|
tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
23828
|
+
target_role_arn: typing.Optional[builtins.str] = None,
|
|
23007
23829
|
) -> None:
|
|
23008
23830
|
"""Type checking stubs"""
|
|
23009
23831
|
pass
|
|
@@ -23644,6 +24466,7 @@ def _typecheckingstub__786576ad54eacdb9ab8e92277c0fd07f813bc56d4243937f3b5a85c0c
|
|
|
23644
24466
|
id: builtins.str,
|
|
23645
24467
|
*,
|
|
23646
24468
|
bootstrap_cluster_creator_admin_permissions: typing.Optional[builtins.bool] = None,
|
|
24469
|
+
bootstrap_self_managed_addons: typing.Optional[builtins.bool] = None,
|
|
23647
24470
|
default_capacity: typing.Optional[jsii.Number] = None,
|
|
23648
24471
|
default_capacity_instance: typing.Optional[_InstanceType_f64915b9] = None,
|
|
23649
24472
|
default_capacity_type: typing.Optional[DefaultCapacityType] = None,
|
|
@@ -23668,7 +24491,8 @@ def _typecheckingstub__786576ad54eacdb9ab8e92277c0fd07f813bc56d4243937f3b5a85c0c
|
|
|
23668
24491
|
prune: typing.Optional[builtins.bool] = None,
|
|
23669
24492
|
remote_node_networks: typing.Optional[typing.Sequence[typing.Union[RemoteNodeNetwork, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
23670
24493
|
remote_pod_networks: typing.Optional[typing.Sequence[typing.Union[RemotePodNetwork, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
23671
|
-
|
|
24494
|
+
removal_policy: typing.Optional[_RemovalPolicy_9f93c814] = None,
|
|
24495
|
+
secrets_encryption_key: typing.Optional[_IKeyRef_d4fc6ef3] = None,
|
|
23672
24496
|
service_ipv4_cidr: typing.Optional[builtins.str] = None,
|
|
23673
24497
|
version: KubernetesVersion,
|
|
23674
24498
|
cluster_name: typing.Optional[builtins.str] = None,
|
|
@@ -23908,7 +24732,8 @@ def _typecheckingstub__0b45b97fda36b43e872f90f9fe4cde65de855b50b3acfd236c1f400ef
|
|
|
23908
24732
|
prune: typing.Optional[builtins.bool] = None,
|
|
23909
24733
|
remote_node_networks: typing.Optional[typing.Sequence[typing.Union[RemoteNodeNetwork, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
23910
24734
|
remote_pod_networks: typing.Optional[typing.Sequence[typing.Union[RemotePodNetwork, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
23911
|
-
|
|
24735
|
+
removal_policy: typing.Optional[_RemovalPolicy_9f93c814] = None,
|
|
24736
|
+
secrets_encryption_key: typing.Optional[_IKeyRef_d4fc6ef3] = None,
|
|
23912
24737
|
service_ipv4_cidr: typing.Optional[builtins.str] = None,
|
|
23913
24738
|
) -> None:
|
|
23914
24739
|
"""Type checking stubs"""
|
|
@@ -23943,9 +24768,11 @@ def _typecheckingstub__ce7a73a63de29ba5e5b5cd5cabde7aca1c4bc7d119de52fc4c0f11d99
|
|
|
23943
24768
|
prune: typing.Optional[builtins.bool] = None,
|
|
23944
24769
|
remote_node_networks: typing.Optional[typing.Sequence[typing.Union[RemoteNodeNetwork, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
23945
24770
|
remote_pod_networks: typing.Optional[typing.Sequence[typing.Union[RemotePodNetwork, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
23946
|
-
|
|
24771
|
+
removal_policy: typing.Optional[_RemovalPolicy_9f93c814] = None,
|
|
24772
|
+
secrets_encryption_key: typing.Optional[_IKeyRef_d4fc6ef3] = None,
|
|
23947
24773
|
service_ipv4_cidr: typing.Optional[builtins.str] = None,
|
|
23948
24774
|
bootstrap_cluster_creator_admin_permissions: typing.Optional[builtins.bool] = None,
|
|
24775
|
+
bootstrap_self_managed_addons: typing.Optional[builtins.bool] = None,
|
|
23949
24776
|
default_capacity: typing.Optional[jsii.Number] = None,
|
|
23950
24777
|
default_capacity_instance: typing.Optional[_InstanceType_f64915b9] = None,
|
|
23951
24778
|
default_capacity_type: typing.Optional[DefaultCapacityType] = None,
|
|
@@ -23979,7 +24806,8 @@ def _typecheckingstub__ae166d791f5d5176f3386726c22bc44afedf5d336437a3513e3740387
|
|
|
23979
24806
|
prune: typing.Optional[builtins.bool] = None,
|
|
23980
24807
|
remote_node_networks: typing.Optional[typing.Sequence[typing.Union[RemoteNodeNetwork, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
23981
24808
|
remote_pod_networks: typing.Optional[typing.Sequence[typing.Union[RemotePodNetwork, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
23982
|
-
|
|
24809
|
+
removal_policy: typing.Optional[_RemovalPolicy_9f93c814] = None,
|
|
24810
|
+
secrets_encryption_key: typing.Optional[_IKeyRef_d4fc6ef3] = None,
|
|
23983
24811
|
service_ipv4_cidr: typing.Optional[builtins.str] = None,
|
|
23984
24812
|
version: KubernetesVersion,
|
|
23985
24813
|
cluster_name: typing.Optional[builtins.str] = None,
|
|
@@ -24022,7 +24850,8 @@ def _typecheckingstub__f11c7f989209f6213cb855d2846bb0b2b79a6a2b85eb0d65939e981df
|
|
|
24022
24850
|
prune: typing.Optional[builtins.bool] = None,
|
|
24023
24851
|
remote_node_networks: typing.Optional[typing.Sequence[typing.Union[RemoteNodeNetwork, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
24024
24852
|
remote_pod_networks: typing.Optional[typing.Sequence[typing.Union[RemotePodNetwork, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
24025
|
-
|
|
24853
|
+
removal_policy: typing.Optional[_RemovalPolicy_9f93c814] = None,
|
|
24854
|
+
secrets_encryption_key: typing.Optional[_IKeyRef_d4fc6ef3] = None,
|
|
24026
24855
|
service_ipv4_cidr: typing.Optional[builtins.str] = None,
|
|
24027
24856
|
default_profile: typing.Optional[typing.Union[FargateProfileOptions, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
24028
24857
|
) -> None:
|
|
@@ -24036,3 +24865,6 @@ def _typecheckingstub__b393c3f294ed9f8582743840eca786b8cd915c5b4df9d362597e69dbe
|
|
|
24036
24865
|
) -> None:
|
|
24037
24866
|
"""Type checking stubs"""
|
|
24038
24867
|
pass
|
|
24868
|
+
|
|
24869
|
+
for cls in [IAccessEntry, IAccessPolicy, IAddon, ICluster, IKubectlProvider, INodegroup]:
|
|
24870
|
+
typing.cast(typing.Any, cls).__protocol_attrs__ = typing.cast(typing.Any, cls).__protocol_attrs__ - set(['__jsii_proxy_class__', '__jsii_type__'])
|