aws-cdk-lib 2.195.0__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 +1806 -417
- aws_cdk/_jsii/__init__.py +1 -1
- aws_cdk/_jsii/{aws-cdk-lib@2.195.0.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 +1245 -215
- aws_cdk/aws_apigatewayv2/__init__.py +3890 -476
- aws_cdk/aws_apigatewayv2_integrations/__init__.py +94 -16
- aws_cdk/aws_appconfig/__init__.py +618 -91
- aws_cdk/aws_appflow/__init__.py +151 -6
- aws_cdk/aws_appintegrations/__init__.py +546 -6
- aws_cdk/aws_applicationautoscaling/__init__.py +75 -10
- aws_cdk/aws_applicationinsights/__init__.py +13 -2
- aws_cdk/aws_applicationsignals/__init__.py +374 -6
- aws_cdk/aws_appmesh/__init__.py +136 -26
- aws_cdk/aws_apprunner/__init__.py +66 -18
- aws_cdk/aws_appstream/__init__.py +309 -55
- aws_cdk/aws_appsync/__init__.py +350 -94
- aws_cdk/aws_apptest/__init__.py +71 -2
- aws_cdk/aws_aps/__init__.py +2188 -94
- 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 +165 -60
- 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 +370 -42
- aws_cdk/aws_backupgateway/__init__.py +13 -2
- aws_cdk/aws_batch/__init__.py +1462 -163
- aws_cdk/aws_bcmdataexports/__init__.py +21 -2
- aws_cdk/aws_bedrock/__init__.py +7867 -727
- aws_cdk/aws_bedrockagentcore/__init__.py +10425 -0
- aws_cdk/aws_billingconductor/__init__.py +197 -11
- aws_cdk/aws_budgets/__init__.py +611 -4
- aws_cdk/aws_cassandra/__init__.py +247 -6
- aws_cdk/aws_ce/__init__.py +35 -6
- aws_cdk/aws_certificatemanager/__init__.py +258 -32
- aws_cdk/aws_chatbot/__init__.py +76 -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 +362 -189
- aws_cdk/aws_cloudfront/__init__.py +2188 -674
- aws_cdk/aws_cloudfront/experimental/__init__.py +114 -16
- aws_cdk/aws_cloudfront_origins/__init__.py +615 -74
- aws_cdk/aws_cloudtrail/__init__.py +311 -21
- aws_cdk/aws_cloudwatch/__init__.py +3093 -1038
- aws_cdk/aws_cloudwatch_actions/__init__.py +75 -1
- aws_cdk/aws_codeartifact/__init__.py +35 -6
- aws_cdk/aws_codebuild/__init__.py +1303 -135
- aws_cdk/aws_codecommit/__init__.py +29 -9
- aws_cdk/aws_codeconnections/__init__.py +13 -2
- aws_cdk/aws_codedeploy/__init__.py +130 -6
- aws_cdk/aws_codeguruprofiler/__init__.py +80 -2
- aws_cdk/aws_codegurureviewer/__init__.py +13 -2
- aws_cdk/aws_codepipeline/__init__.py +177 -71
- aws_cdk/aws_codepipeline_actions/__init__.py +753 -4
- aws_cdk/aws_codestar/__init__.py +13 -2
- aws_cdk/aws_codestarconnections/__init__.py +35 -6
- aws_cdk/aws_codestarnotifications/__init__.py +22 -2
- aws_cdk/aws_cognito/__init__.py +905 -92
- aws_cdk/aws_cognito_identitypool/__init__.py +23 -12
- aws_cdk/aws_comprehend/__init__.py +24 -4
- aws_cdk/aws_config/__init__.py +227 -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 +1514 -977
- aws_cdk/aws_datazone/__init__.py +7426 -1763
- aws_cdk/aws_dax/__init__.py +83 -6
- aws_cdk/aws_deadline/__init__.py +511 -36
- 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 +350 -49
- aws_cdk/aws_docdbelastic/__init__.py +13 -2
- aws_cdk/aws_dsql/__init__.py +386 -16
- aws_cdk/aws_dynamodb/__init__.py +1479 -170
- aws_cdk/aws_ec2/__init__.py +10465 -1335
- aws_cdk/aws_ecr/__init__.py +637 -43
- aws_cdk/aws_ecr_assets/__init__.py +10 -0
- aws_cdk/aws_ecs/__init__.py +6629 -490
- aws_cdk/aws_ecs_patterns/__init__.py +124 -12
- aws_cdk/aws_efs/__init__.py +276 -24
- aws_cdk/aws_eks/__init__.py +1132 -227
- aws_cdk/aws_elasticache/__init__.py +378 -25
- aws_cdk/aws_elasticbeanstalk/__init__.py +75 -8
- aws_cdk/aws_elasticloadbalancing/__init__.py +22 -2
- aws_cdk/aws_elasticloadbalancingv2/__init__.py +1796 -123
- aws_cdk/aws_elasticsearch/__init__.py +291 -9
- aws_cdk/aws_emr/__init__.py +219 -18
- 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 +1007 -126
- aws_cdk/aws_events_targets/__init__.py +398 -65
- 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 +1349 -127
- aws_cdk/aws_gamelift/__init__.py +755 -94
- aws_cdk/aws_gameliftstreams/__init__.py +44 -22
- aws_cdk/aws_globalaccelerator/__init__.py +73 -14
- aws_cdk/aws_glue/__init__.py +1455 -378
- 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 +921 -141
- aws_cdk/aws_identitystore/__init__.py +24 -4
- aws_cdk/aws_imagebuilder/__init__.py +1454 -199
- aws_cdk/aws_inspector/__init__.py +44 -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 +1760 -64
- 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 +641 -23
- aws_cdk/aws_kinesisanalytics/__init__.py +467 -96
- aws_cdk/aws_kinesisanalyticsv2/__init__.py +207 -19
- aws_cdk/aws_kinesisfirehose/__init__.py +3087 -295
- aws_cdk/aws_kinesisvideo/__init__.py +24 -4
- aws_cdk/aws_kms/__init__.py +204 -45
- aws_cdk/aws_lakeformation/__init__.py +80 -15
- aws_cdk/aws_lambda/__init__.py +2236 -297
- 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 +2162 -212
- aws_cdk/aws_licensemanager/__init__.py +24 -4
- aws_cdk/aws_lightsail/__init__.py +2958 -1322
- aws_cdk/aws_location/__init__.py +618 -14
- aws_cdk/aws_logs/__init__.py +6014 -923
- 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 +1938 -532
- aws_cdk/aws_mediapackage/__init__.py +59 -12
- aws_cdk/aws_mediapackagev2/__init__.py +1616 -233
- 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 +108 -22
- 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 +1184 -164
- aws_cdk/aws_networkmanager/__init__.py +349 -33
- aws_cdk/aws_nimblestudio/__init__.py +283 -408
- 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 +2967 -162
- aws_cdk/aws_opensearchserverless/__init__.py +312 -37
- aws_cdk/aws_opensearchservice/__init__.py +501 -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 +181 -9
- 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 +516 -64
- 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 +3721 -573
- aws_cdk/aws_redshift/__init__.py +143 -20
- aws_cdk/aws_redshiftserverless/__init__.py +699 -11
- 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 +194 -19
- aws_cdk/aws_route53/__init__.py +3965 -1436
- 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 +189 -40
- aws_cdk/aws_rtbfabric/__init__.py +3498 -0
- aws_cdk/aws_rum/__init__.py +13 -2
- aws_cdk/aws_s3/__init__.py +1742 -221
- aws_cdk/aws_s3_assets/__init__.py +11 -11
- aws_cdk/aws_s3_deployment/__init__.py +153 -11
- aws_cdk/aws_s3_notifications/__init__.py +7 -7
- aws_cdk/aws_s3express/__init__.py +1053 -6
- 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 +6848 -373
- aws_cdk/aws_sam/__init__.py +79 -14
- aws_cdk/aws_scheduler/__init__.py +249 -4
- aws_cdk/aws_sdb/__init__.py +12 -2
- aws_cdk/aws_secretsmanager/__init__.py +194 -14
- aws_cdk/aws_securityhub/__init__.py +3121 -176
- aws_cdk/aws_securitylake/__init__.py +46 -8
- aws_cdk/aws_servicecatalog/__init__.py +429 -246
- aws_cdk/aws_servicecatalogappregistry/__init__.py +164 -8
- aws_cdk/aws_servicediscovery/__init__.py +188 -47
- aws_cdk/aws_ses/__init__.py +2265 -369
- aws_cdk/aws_shield/__init__.py +46 -8
- aws_cdk/aws_signer/__init__.py +33 -4
- aws_cdk/aws_simspaceweaver/__init__.py +42 -2
- aws_cdk/aws_smsvoice/__init__.py +4716 -0
- aws_cdk/aws_sns/__init__.py +263 -29
- aws_cdk/aws_sns_subscriptions/__init__.py +265 -2
- aws_cdk/aws_sqs/__init__.py +223 -14
- aws_cdk/aws_ssm/__init__.py +413 -58
- aws_cdk/aws_ssmcontacts/__init__.py +98 -9
- aws_cdk/aws_ssmguiconnect/__init__.py +20 -9
- aws_cdk/aws_ssmincidents/__init__.py +24 -4
- aws_cdk/aws_ssmquicksetup/__init__.py +393 -8
- aws_cdk/aws_sso/__init__.py +70 -12
- aws_cdk/aws_stepfunctions/__init__.py +823 -94
- aws_cdk/aws_stepfunctions_tasks/__init__.py +2323 -150
- aws_cdk/aws_supportapp/__init__.py +39 -6
- aws_cdk/aws_synthetics/__init__.py +1088 -126
- 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 +306 -13
- aws_cdk/aws_voiceid/__init__.py +54 -5
- aws_cdk/aws_vpclattice/__init__.py +589 -231
- aws_cdk/aws_waf/__init__.py +79 -14
- aws_cdk/aws_wafregional/__init__.py +123 -22
- aws_cdk/aws_wafv2/__init__.py +1183 -64
- aws_cdk/aws_wisdom/__init__.py +1403 -90
- aws_cdk/aws_workspaces/__init__.py +134 -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 +368 -48
- aws_cdk/custom_resources/__init__.py +58 -12
- aws_cdk/cx_api/__init__.py +125 -21
- 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/lambda_layer_awscli/__init__.py +6 -0
- aws_cdk/lambda_layer_node_proxy_agent/__init__.py +6 -0
- aws_cdk/pipelines/__init__.py +202 -52
- aws_cdk/region_info/__init__.py +3 -0
- aws_cdk/triggers/__init__.py +66 -18
- {aws_cdk_lib-2.195.0.dist-info → aws_cdk_lib-2.224.0.dist-info}/METADATA +418 -18
- aws_cdk_lib-2.224.0.dist-info/RECORD +584 -0
- aws_cdk_lib-2.195.0.dist-info/RECORD +0 -304
- {aws_cdk_lib-2.195.0.dist-info → aws_cdk_lib-2.224.0.dist-info}/LICENSE +0 -0
- {aws_cdk_lib-2.195.0.dist-info → aws_cdk_lib-2.224.0.dist-info}/NOTICE +0 -0
- {aws_cdk_lib-2.195.0.dist-info → aws_cdk_lib-2.224.0.dist-info}/WHEEL +0 -0
- {aws_cdk_lib-2.195.0.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
|
|
|
@@ -1976,10 +2004,13 @@ load_balancer_address = cluster.get_service_load_balancer_address("my-service")
|
|
|
1976
2004
|
|
|
1977
2005
|
eks.Addon(self, "Addon",
|
|
1978
2006
|
cluster=cluster,
|
|
1979
|
-
addon_name="
|
|
1980
|
-
addon_version="v1.
|
|
2007
|
+
addon_name="coredns",
|
|
2008
|
+
addon_version="v1.11.4-eksbuild.2",
|
|
1981
2009
|
# whether to preserve the add-on software on your cluster but Amazon EKS stops managing any settings for the add-on.
|
|
1982
|
-
preserve_on_delete=False
|
|
2010
|
+
preserve_on_delete=False,
|
|
2011
|
+
configuration_values={
|
|
2012
|
+
"replica_count": 2
|
|
2013
|
+
}
|
|
1983
2014
|
)
|
|
1984
2015
|
```
|
|
1985
2016
|
|
|
@@ -2052,15 +2083,15 @@ You can enable logging for each one separately using the `clusterLogging`
|
|
|
2052
2083
|
property. For example:
|
|
2053
2084
|
|
|
2054
2085
|
```python
|
|
2055
|
-
from aws_cdk.
|
|
2086
|
+
from aws_cdk.lambda_layer_kubectl_v34 import KubectlV34Layer
|
|
2056
2087
|
|
|
2057
2088
|
|
|
2058
2089
|
cluster = eks.Cluster(self, "Cluster",
|
|
2059
2090
|
# ...
|
|
2060
|
-
version=eks.KubernetesVersion.
|
|
2091
|
+
version=eks.KubernetesVersion.V1_34,
|
|
2061
2092
|
cluster_logging=[eks.ClusterLoggingTypes.API, eks.ClusterLoggingTypes.AUTHENTICATOR, eks.ClusterLoggingTypes.SCHEDULER
|
|
2062
2093
|
],
|
|
2063
|
-
kubectl_layer=
|
|
2094
|
+
kubectl_layer=KubectlV34Layer(self, "kubectl")
|
|
2064
2095
|
)
|
|
2065
2096
|
```
|
|
2066
2097
|
|
|
@@ -2127,6 +2158,7 @@ from .. import (
|
|
|
2127
2158
|
ITaggable as _ITaggable_36806126,
|
|
2128
2159
|
ITaggableV2 as _ITaggableV2_4e6798f8,
|
|
2129
2160
|
NestedStack as _NestedStack_dd393a45,
|
|
2161
|
+
RemovalPolicy as _RemovalPolicy_9f93c814,
|
|
2130
2162
|
Resource as _Resource_45bc6135,
|
|
2131
2163
|
Size as _Size_7b441c34,
|
|
2132
2164
|
TagManager as _TagManager_0a598cb3,
|
|
@@ -2169,9 +2201,25 @@ from ..aws_iam import (
|
|
|
2169
2201
|
PrincipalPolicyFragment as _PrincipalPolicyFragment_6a855d11,
|
|
2170
2202
|
Role as _Role_e8c6e11f,
|
|
2171
2203
|
)
|
|
2172
|
-
from ..aws_kms import IKey as _IKey_5f11635f
|
|
2173
2204
|
from ..aws_lambda import ILayerVersion as _ILayerVersion_5ac127c8
|
|
2174
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
|
|
2175
2223
|
|
|
2176
2224
|
|
|
2177
2225
|
@jsii.data_type(
|
|
@@ -2808,6 +2856,7 @@ class AddonAttributes:
|
|
|
2808
2856
|
"addon_name": "addonName",
|
|
2809
2857
|
"cluster": "cluster",
|
|
2810
2858
|
"addon_version": "addonVersion",
|
|
2859
|
+
"configuration_values": "configurationValues",
|
|
2811
2860
|
"preserve_on_delete": "preserveOnDelete",
|
|
2812
2861
|
},
|
|
2813
2862
|
)
|
|
@@ -2818,6 +2867,7 @@ class AddonProps:
|
|
|
2818
2867
|
addon_name: builtins.str,
|
|
2819
2868
|
cluster: "ICluster",
|
|
2820
2869
|
addon_version: typing.Optional[builtins.str] = None,
|
|
2870
|
+
configuration_values: typing.Optional[typing.Mapping[builtins.str, typing.Any]] = None,
|
|
2821
2871
|
preserve_on_delete: typing.Optional[builtins.bool] = None,
|
|
2822
2872
|
) -> None:
|
|
2823
2873
|
'''Properties for creating an Amazon EKS Add-On.
|
|
@@ -2825,6 +2875,7 @@ class AddonProps:
|
|
|
2825
2875
|
:param addon_name: Name of the Add-On.
|
|
2826
2876
|
:param cluster: The EKS cluster the Add-On is associated with.
|
|
2827
2877
|
:param addon_version: Version of the Add-On. You can check all available versions with describe-addon-versions. For example, this lists all available versions for the ``eks-pod-identity-agent`` addon: $ aws eks describe-addon-versions --addon-name eks-pod-identity-agent --query 'addons[*].addonVersions[*].addonVersion' Default: the latest version.
|
|
2878
|
+
:param configuration_values: The configuration values for the Add-on. Default: - Use default configuration.
|
|
2828
2879
|
: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. Default: true
|
|
2829
2880
|
|
|
2830
2881
|
:exampleMetadata: infused
|
|
@@ -2836,10 +2887,13 @@ class AddonProps:
|
|
|
2836
2887
|
|
|
2837
2888
|
eks.Addon(self, "Addon",
|
|
2838
2889
|
cluster=cluster,
|
|
2839
|
-
addon_name="
|
|
2840
|
-
addon_version="v1.
|
|
2890
|
+
addon_name="coredns",
|
|
2891
|
+
addon_version="v1.11.4-eksbuild.2",
|
|
2841
2892
|
# whether to preserve the add-on software on your cluster but Amazon EKS stops managing any settings for the add-on.
|
|
2842
|
-
preserve_on_delete=False
|
|
2893
|
+
preserve_on_delete=False,
|
|
2894
|
+
configuration_values={
|
|
2895
|
+
"replica_count": 2
|
|
2896
|
+
}
|
|
2843
2897
|
)
|
|
2844
2898
|
'''
|
|
2845
2899
|
if __debug__:
|
|
@@ -2847,6 +2901,7 @@ class AddonProps:
|
|
|
2847
2901
|
check_type(argname="argument addon_name", value=addon_name, expected_type=type_hints["addon_name"])
|
|
2848
2902
|
check_type(argname="argument cluster", value=cluster, expected_type=type_hints["cluster"])
|
|
2849
2903
|
check_type(argname="argument addon_version", value=addon_version, expected_type=type_hints["addon_version"])
|
|
2904
|
+
check_type(argname="argument configuration_values", value=configuration_values, expected_type=type_hints["configuration_values"])
|
|
2850
2905
|
check_type(argname="argument preserve_on_delete", value=preserve_on_delete, expected_type=type_hints["preserve_on_delete"])
|
|
2851
2906
|
self._values: typing.Dict[builtins.str, typing.Any] = {
|
|
2852
2907
|
"addon_name": addon_name,
|
|
@@ -2854,6 +2909,8 @@ class AddonProps:
|
|
|
2854
2909
|
}
|
|
2855
2910
|
if addon_version is not None:
|
|
2856
2911
|
self._values["addon_version"] = addon_version
|
|
2912
|
+
if configuration_values is not None:
|
|
2913
|
+
self._values["configuration_values"] = configuration_values
|
|
2857
2914
|
if preserve_on_delete is not None:
|
|
2858
2915
|
self._values["preserve_on_delete"] = preserve_on_delete
|
|
2859
2916
|
|
|
@@ -2885,6 +2942,17 @@ class AddonProps:
|
|
|
2885
2942
|
result = self._values.get("addon_version")
|
|
2886
2943
|
return typing.cast(typing.Optional[builtins.str], result)
|
|
2887
2944
|
|
|
2945
|
+
@builtins.property
|
|
2946
|
+
def configuration_values(
|
|
2947
|
+
self,
|
|
2948
|
+
) -> typing.Optional[typing.Mapping[builtins.str, typing.Any]]:
|
|
2949
|
+
'''The configuration values for the Add-on.
|
|
2950
|
+
|
|
2951
|
+
:default: - Use default configuration.
|
|
2952
|
+
'''
|
|
2953
|
+
result = self._values.get("configuration_values")
|
|
2954
|
+
return typing.cast(typing.Optional[typing.Mapping[builtins.str, typing.Any]], result)
|
|
2955
|
+
|
|
2888
2956
|
@builtins.property
|
|
2889
2957
|
def preserve_on_delete(self) -> typing.Optional[builtins.bool]:
|
|
2890
2958
|
'''Specifying this option preserves the add-on software on your cluster but Amazon EKS stops managing any settings for the add-on.
|
|
@@ -3036,18 +3104,18 @@ class AlbControllerHelmChartOptions:
|
|
|
3036
3104
|
|
|
3037
3105
|
Example::
|
|
3038
3106
|
|
|
3039
|
-
from aws_cdk.
|
|
3107
|
+
from aws_cdk.lambda_layer_kubectl_v34 import KubectlV34Layer
|
|
3040
3108
|
|
|
3041
3109
|
|
|
3042
3110
|
eks.Cluster(self, "HelloEKS",
|
|
3043
|
-
version=eks.KubernetesVersion.
|
|
3111
|
+
version=eks.KubernetesVersion.V1_34,
|
|
3044
3112
|
alb_controller=eks.AlbControllerOptions(
|
|
3045
3113
|
version=eks.AlbControllerVersion.V2_8_2,
|
|
3046
3114
|
additional_helm_chart_values=eks.AlbControllerHelmChartOptions(
|
|
3047
3115
|
enable_wafv2=False
|
|
3048
3116
|
)
|
|
3049
3117
|
),
|
|
3050
|
-
kubectl_layer=
|
|
3118
|
+
kubectl_layer=KubectlV34Layer(self, "kubectl")
|
|
3051
3119
|
)
|
|
3052
3120
|
'''
|
|
3053
3121
|
if __debug__:
|
|
@@ -3120,15 +3188,15 @@ class AlbControllerOptions:
|
|
|
3120
3188
|
|
|
3121
3189
|
Example::
|
|
3122
3190
|
|
|
3123
|
-
from aws_cdk.
|
|
3191
|
+
from aws_cdk.lambda_layer_kubectl_v34 import KubectlV34Layer
|
|
3124
3192
|
|
|
3125
3193
|
|
|
3126
3194
|
eks.Cluster(self, "HelloEKS",
|
|
3127
|
-
version=eks.KubernetesVersion.
|
|
3195
|
+
version=eks.KubernetesVersion.V1_34,
|
|
3128
3196
|
alb_controller=eks.AlbControllerOptions(
|
|
3129
3197
|
version=eks.AlbControllerVersion.V2_8_2
|
|
3130
3198
|
),
|
|
3131
|
-
kubectl_layer=
|
|
3199
|
+
kubectl_layer=KubectlV34Layer(self, "kubectl")
|
|
3132
3200
|
)
|
|
3133
3201
|
'''
|
|
3134
3202
|
if isinstance(additional_helm_chart_values, dict):
|
|
@@ -3356,15 +3424,15 @@ class AlbControllerVersion(
|
|
|
3356
3424
|
|
|
3357
3425
|
Example::
|
|
3358
3426
|
|
|
3359
|
-
from aws_cdk.
|
|
3427
|
+
from aws_cdk.lambda_layer_kubectl_v34 import KubectlV34Layer
|
|
3360
3428
|
|
|
3361
3429
|
|
|
3362
3430
|
eks.Cluster(self, "HelloEKS",
|
|
3363
|
-
version=eks.KubernetesVersion.
|
|
3431
|
+
version=eks.KubernetesVersion.V1_34,
|
|
3364
3432
|
alb_controller=eks.AlbControllerOptions(
|
|
3365
3433
|
version=eks.AlbControllerVersion.V2_8_2
|
|
3366
3434
|
),
|
|
3367
|
-
kubectl_layer=
|
|
3435
|
+
kubectl_layer=KubectlV34Layer(self, "kubectl")
|
|
3368
3436
|
)
|
|
3369
3437
|
'''
|
|
3370
3438
|
|
|
@@ -3640,14 +3708,14 @@ class AuthenticationMode(enum.Enum):
|
|
|
3640
3708
|
|
|
3641
3709
|
Example::
|
|
3642
3710
|
|
|
3643
|
-
from aws_cdk.
|
|
3711
|
+
from aws_cdk.lambda_layer_kubectl_v34 import KubectlV34Layer
|
|
3644
3712
|
# vpc: ec2.Vpc
|
|
3645
3713
|
|
|
3646
3714
|
|
|
3647
3715
|
eks.Cluster(self, "Cluster",
|
|
3648
3716
|
vpc=vpc,
|
|
3649
|
-
version=eks.KubernetesVersion.
|
|
3650
|
-
kubectl_layer=
|
|
3717
|
+
version=eks.KubernetesVersion.V1_34,
|
|
3718
|
+
kubectl_layer=KubectlV34Layer(self, "KubectlLayer"),
|
|
3651
3719
|
authentication_mode=eks.AuthenticationMode.API_AND_CONFIG_MAP
|
|
3652
3720
|
)
|
|
3653
3721
|
'''
|
|
@@ -3758,7 +3826,7 @@ class AutoScalingGroupCapacityOptions(_CommonAutoScalingGroupProps_808bbf2d):
|
|
|
3758
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.
|
|
3759
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.
|
|
3760
3828
|
:param max_capacity: Maximum number of instances in the fleet. Default: desiredCapacity
|
|
3761
|
-
: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
|
|
3762
3830
|
:param min_capacity: Minimum number of instances in the fleet. Default: 1
|
|
3763
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
|
|
3764
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.
|
|
@@ -4134,7 +4202,7 @@ class AutoScalingGroupCapacityOptions(_CommonAutoScalingGroupProps_808bbf2d):
|
|
|
4134
4202
|
to all current and future instances in the group. As an instance approaches its maximum duration,
|
|
4135
4203
|
it is terminated and replaced, and cannot be used again.
|
|
4136
4204
|
|
|
4137
|
-
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,
|
|
4138
4206
|
leave this property undefined.
|
|
4139
4207
|
|
|
4140
4208
|
:default: none
|
|
@@ -4912,7 +4980,7 @@ class CapacityType(enum.Enum):
|
|
|
4912
4980
|
'''capacity block instances.'''
|
|
4913
4981
|
|
|
4914
4982
|
|
|
4915
|
-
@jsii.implements(_IInspectable_c2943556, _ITaggableV2_4e6798f8)
|
|
4983
|
+
@jsii.implements(_IInspectable_c2943556, _IAccessEntryRef_14bb9c0a, _ITaggableV2_4e6798f8)
|
|
4916
4984
|
class CfnAccessEntry(
|
|
4917
4985
|
_CfnResource_9df397a6,
|
|
4918
4986
|
metaclass=jsii.JSIIMeta,
|
|
@@ -4971,7 +5039,8 @@ class CfnAccessEntry(
|
|
|
4971
5039
|
type: typing.Optional[builtins.str] = None,
|
|
4972
5040
|
username: typing.Optional[builtins.str] = None,
|
|
4973
5041
|
) -> None:
|
|
4974
|
-
'''
|
|
5042
|
+
'''Create a new ``AWS::EKS::AccessEntry``.
|
|
5043
|
+
|
|
4975
5044
|
:param scope: Scope in which this resource is defined.
|
|
4976
5045
|
:param id: Construct identifier for this resource (unique in its scope).
|
|
4977
5046
|
:param cluster_name: The name of your cluster.
|
|
@@ -5028,6 +5097,12 @@ class CfnAccessEntry(
|
|
|
5028
5097
|
'''The CloudFormation resource type name for this resource class.'''
|
|
5029
5098
|
return typing.cast(builtins.str, jsii.sget(cls, "CFN_RESOURCE_TYPE_NAME"))
|
|
5030
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
|
+
|
|
5031
5106
|
@builtins.property
|
|
5032
5107
|
@jsii.member(jsii_name="attrAccessEntryArn")
|
|
5033
5108
|
def attr_access_entry_arn(self) -> builtins.str:
|
|
@@ -5495,7 +5570,7 @@ class CfnAccessEntryProps:
|
|
|
5495
5570
|
)
|
|
5496
5571
|
|
|
5497
5572
|
|
|
5498
|
-
@jsii.implements(_IInspectable_c2943556, _ITaggable_36806126)
|
|
5573
|
+
@jsii.implements(_IInspectable_c2943556, _IAddonRef_fb5de88c, _ITaggable_36806126)
|
|
5499
5574
|
class CfnAddon(
|
|
5500
5575
|
_CfnResource_9df397a6,
|
|
5501
5576
|
metaclass=jsii.JSIIMeta,
|
|
@@ -5522,6 +5597,9 @@ class CfnAddon(
|
|
|
5522
5597
|
# the properties below are optional
|
|
5523
5598
|
addon_version="addonVersion",
|
|
5524
5599
|
configuration_values="configurationValues",
|
|
5600
|
+
namespace_config=eks.CfnAddon.NamespaceConfigProperty(
|
|
5601
|
+
namespace="namespace"
|
|
5602
|
+
),
|
|
5525
5603
|
pod_identity_associations=[eks.CfnAddon.PodIdentityAssociationProperty(
|
|
5526
5604
|
role_arn="roleArn",
|
|
5527
5605
|
service_account="serviceAccount"
|
|
@@ -5545,20 +5623,23 @@ class CfnAddon(
|
|
|
5545
5623
|
cluster_name: builtins.str,
|
|
5546
5624
|
addon_version: typing.Optional[builtins.str] = None,
|
|
5547
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,
|
|
5548
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,
|
|
5549
5628
|
preserve_on_delete: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
|
|
5550
5629
|
resolve_conflicts: typing.Optional[builtins.str] = None,
|
|
5551
5630
|
service_account_role_arn: typing.Optional[builtins.str] = None,
|
|
5552
5631
|
tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
5553
5632
|
) -> None:
|
|
5554
|
-
'''
|
|
5633
|
+
'''Create a new ``AWS::EKS::Addon``.
|
|
5634
|
+
|
|
5555
5635
|
:param scope: Scope in which this resource is defined.
|
|
5556
5636
|
:param id: Construct identifier for this resource (unique in its scope).
|
|
5557
5637
|
:param addon_name: The name of the add-on.
|
|
5558
5638
|
:param cluster_name: The name of your cluster.
|
|
5559
5639
|
:param addon_version: The version of the add-on.
|
|
5560
5640
|
:param configuration_values: The configuration values that you provided.
|
|
5561
|
-
: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* .
|
|
5562
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.
|
|
5563
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.
|
|
5564
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* .
|
|
@@ -5573,6 +5654,7 @@ class CfnAddon(
|
|
|
5573
5654
|
cluster_name=cluster_name,
|
|
5574
5655
|
addon_version=addon_version,
|
|
5575
5656
|
configuration_values=configuration_values,
|
|
5657
|
+
namespace_config=namespace_config,
|
|
5576
5658
|
pod_identity_associations=pod_identity_associations,
|
|
5577
5659
|
preserve_on_delete=preserve_on_delete,
|
|
5578
5660
|
resolve_conflicts=resolve_conflicts,
|
|
@@ -5612,6 +5694,12 @@ class CfnAddon(
|
|
|
5612
5694
|
'''The CloudFormation resource type name for this resource class.'''
|
|
5613
5695
|
return typing.cast(builtins.str, jsii.sget(cls, "CFN_RESOURCE_TYPE_NAME"))
|
|
5614
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
|
+
|
|
5615
5703
|
@builtins.property
|
|
5616
5704
|
@jsii.member(jsii_name="attrArn")
|
|
5617
5705
|
def attr_arn(self) -> builtins.str:
|
|
@@ -5684,12 +5772,30 @@ class CfnAddon(
|
|
|
5684
5772
|
check_type(argname="argument value", value=value, expected_type=type_hints["value"])
|
|
5685
5773
|
jsii.set(self, "configurationValues", value) # pyright: ignore[reportArgumentType]
|
|
5686
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
|
+
|
|
5687
5793
|
@builtins.property
|
|
5688
5794
|
@jsii.member(jsii_name="podIdentityAssociations")
|
|
5689
5795
|
def pod_identity_associations(
|
|
5690
5796
|
self,
|
|
5691
5797
|
) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnAddon.PodIdentityAssociationProperty"]]]]:
|
|
5692
|
-
'''An array of Pod Identity
|
|
5798
|
+
'''An array of EKS Pod Identity associations owned by the add-on.'''
|
|
5693
5799
|
return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnAddon.PodIdentityAssociationProperty"]]]], jsii.get(self, "podIdentityAssociations"))
|
|
5694
5800
|
|
|
5695
5801
|
@pod_identity_associations.setter
|
|
@@ -5759,6 +5865,58 @@ class CfnAddon(
|
|
|
5759
5865
|
check_type(argname="argument value", value=value, expected_type=type_hints["value"])
|
|
5760
5866
|
jsii.set(self, "tagsRaw", value) # pyright: ignore[reportArgumentType]
|
|
5761
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
|
+
|
|
5762
5920
|
@jsii.data_type(
|
|
5763
5921
|
jsii_type="aws-cdk-lib.aws_eks.CfnAddon.PodIdentityAssociationProperty",
|
|
5764
5922
|
jsii_struct_bases=[],
|
|
@@ -5773,7 +5931,7 @@ class CfnAddon(
|
|
|
5773
5931
|
) -> None:
|
|
5774
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.
|
|
5775
5933
|
|
|
5776
|
-
: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.
|
|
5777
5935
|
:param service_account: The name of the Kubernetes service account inside the cluster to associate the IAM credentials with.
|
|
5778
5936
|
|
|
5779
5937
|
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-addon-podidentityassociation.html
|
|
@@ -5803,7 +5961,7 @@ class CfnAddon(
|
|
|
5803
5961
|
def role_arn(self) -> builtins.str:
|
|
5804
5962
|
'''The Amazon Resource Name (ARN) of the IAM role to associate with the service account.
|
|
5805
5963
|
|
|
5806
|
-
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.
|
|
5807
5965
|
|
|
5808
5966
|
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-addon-podidentityassociation.html#cfn-eks-addon-podidentityassociation-rolearn
|
|
5809
5967
|
'''
|
|
@@ -5841,6 +5999,7 @@ class CfnAddon(
|
|
|
5841
5999
|
"cluster_name": "clusterName",
|
|
5842
6000
|
"addon_version": "addonVersion",
|
|
5843
6001
|
"configuration_values": "configurationValues",
|
|
6002
|
+
"namespace_config": "namespaceConfig",
|
|
5844
6003
|
"pod_identity_associations": "podIdentityAssociations",
|
|
5845
6004
|
"preserve_on_delete": "preserveOnDelete",
|
|
5846
6005
|
"resolve_conflicts": "resolveConflicts",
|
|
@@ -5856,6 +6015,7 @@ class CfnAddonProps:
|
|
|
5856
6015
|
cluster_name: builtins.str,
|
|
5857
6016
|
addon_version: typing.Optional[builtins.str] = None,
|
|
5858
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,
|
|
5859
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,
|
|
5860
6020
|
preserve_on_delete: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
|
|
5861
6021
|
resolve_conflicts: typing.Optional[builtins.str] = None,
|
|
@@ -5868,7 +6028,8 @@ class CfnAddonProps:
|
|
|
5868
6028
|
:param cluster_name: The name of your cluster.
|
|
5869
6029
|
:param addon_version: The version of the add-on.
|
|
5870
6030
|
:param configuration_values: The configuration values that you provided.
|
|
5871
|
-
: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* .
|
|
5872
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.
|
|
5873
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.
|
|
5874
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* .
|
|
@@ -5890,6 +6051,9 @@ class CfnAddonProps:
|
|
|
5890
6051
|
# the properties below are optional
|
|
5891
6052
|
addon_version="addonVersion",
|
|
5892
6053
|
configuration_values="configurationValues",
|
|
6054
|
+
namespace_config=eks.CfnAddon.NamespaceConfigProperty(
|
|
6055
|
+
namespace="namespace"
|
|
6056
|
+
),
|
|
5893
6057
|
pod_identity_associations=[eks.CfnAddon.PodIdentityAssociationProperty(
|
|
5894
6058
|
role_arn="roleArn",
|
|
5895
6059
|
service_account="serviceAccount"
|
|
@@ -5909,6 +6073,7 @@ class CfnAddonProps:
|
|
|
5909
6073
|
check_type(argname="argument cluster_name", value=cluster_name, expected_type=type_hints["cluster_name"])
|
|
5910
6074
|
check_type(argname="argument addon_version", value=addon_version, expected_type=type_hints["addon_version"])
|
|
5911
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"])
|
|
5912
6077
|
check_type(argname="argument pod_identity_associations", value=pod_identity_associations, expected_type=type_hints["pod_identity_associations"])
|
|
5913
6078
|
check_type(argname="argument preserve_on_delete", value=preserve_on_delete, expected_type=type_hints["preserve_on_delete"])
|
|
5914
6079
|
check_type(argname="argument resolve_conflicts", value=resolve_conflicts, expected_type=type_hints["resolve_conflicts"])
|
|
@@ -5922,6 +6087,8 @@ class CfnAddonProps:
|
|
|
5922
6087
|
self._values["addon_version"] = addon_version
|
|
5923
6088
|
if configuration_values is not None:
|
|
5924
6089
|
self._values["configuration_values"] = configuration_values
|
|
6090
|
+
if namespace_config is not None:
|
|
6091
|
+
self._values["namespace_config"] = namespace_config
|
|
5925
6092
|
if pod_identity_associations is not None:
|
|
5926
6093
|
self._values["pod_identity_associations"] = pod_identity_associations
|
|
5927
6094
|
if preserve_on_delete is not None:
|
|
@@ -5971,15 +6138,28 @@ class CfnAddonProps:
|
|
|
5971
6138
|
result = self._values.get("configuration_values")
|
|
5972
6139
|
return typing.cast(typing.Optional[builtins.str], result)
|
|
5973
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
|
+
|
|
5974
6154
|
@builtins.property
|
|
5975
6155
|
def pod_identity_associations(
|
|
5976
6156
|
self,
|
|
5977
6157
|
) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, CfnAddon.PodIdentityAssociationProperty]]]]:
|
|
5978
|
-
'''An array of Pod Identity
|
|
6158
|
+
'''An array of EKS Pod Identity associations owned by the add-on.
|
|
5979
6159
|
|
|
5980
|
-
Each
|
|
6160
|
+
Each association maps a role to a service account in a namespace in the cluster.
|
|
5981
6161
|
|
|
5982
|
-
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* .
|
|
5983
6163
|
|
|
5984
6164
|
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-addon.html#cfn-eks-addon-podidentityassociations
|
|
5985
6165
|
'''
|
|
@@ -6053,7 +6233,7 @@ class CfnAddonProps:
|
|
|
6053
6233
|
)
|
|
6054
6234
|
|
|
6055
6235
|
|
|
6056
|
-
@jsii.implements(_IInspectable_c2943556, _ITaggable_36806126)
|
|
6236
|
+
@jsii.implements(_IInspectable_c2943556, _IClusterRef_5527f448, _ITaggable_36806126)
|
|
6057
6237
|
class CfnCluster(
|
|
6058
6238
|
_CfnResource_9df397a6,
|
|
6059
6239
|
metaclass=jsii.JSIIMeta,
|
|
@@ -6067,7 +6247,7 @@ class CfnCluster(
|
|
|
6067
6247
|
|
|
6068
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.
|
|
6069
6249
|
|
|
6070
|
-
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** .
|
|
6071
6251
|
|
|
6072
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** .
|
|
6073
6253
|
.. epigraph::
|
|
@@ -6109,6 +6289,7 @@ class CfnCluster(
|
|
|
6109
6289
|
node_pools=["nodePools"],
|
|
6110
6290
|
node_role_arn="nodeRoleArn"
|
|
6111
6291
|
),
|
|
6292
|
+
deletion_protection=False,
|
|
6112
6293
|
encryption_config=[eks.CfnCluster.EncryptionConfigProperty(
|
|
6113
6294
|
provider=eks.CfnCluster.ProviderProperty(
|
|
6114
6295
|
key_arn="keyArn"
|
|
@@ -6180,6 +6361,7 @@ class CfnCluster(
|
|
|
6180
6361
|
access_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnCluster.AccessConfigProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
6181
6362
|
bootstrap_self_managed_addons: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
|
|
6182
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,
|
|
6183
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,
|
|
6184
6366
|
force: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
|
|
6185
6367
|
kubernetes_network_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnCluster.KubernetesNetworkConfigProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
@@ -6193,14 +6375,16 @@ class CfnCluster(
|
|
|
6193
6375
|
version: typing.Optional[builtins.str] = None,
|
|
6194
6376
|
zonal_shift_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnCluster.ZonalShiftConfigProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
6195
6377
|
) -> None:
|
|
6196
|
-
'''
|
|
6378
|
+
'''Create a new ``AWS::EKS::Cluster``.
|
|
6379
|
+
|
|
6197
6380
|
:param scope: Scope in which this resource is defined.
|
|
6198
6381
|
:param id: Construct identifier for this resource (unique in its scope).
|
|
6199
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.
|
|
6200
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** .
|
|
6201
6384
|
:param access_config: The access configuration for the cluster.
|
|
6202
|
-
: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.
|
|
6203
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.
|
|
6204
6388
|
:param encryption_config: The encryption configuration for the cluster.
|
|
6205
6389
|
:param force: Set this value to ``true`` to override upgrade-blocking readiness checks when updating a cluster. Default: - false
|
|
6206
6390
|
:param kubernetes_network_config: The Kubernetes network configuration for the cluster.
|
|
@@ -6224,6 +6408,7 @@ class CfnCluster(
|
|
|
6224
6408
|
access_config=access_config,
|
|
6225
6409
|
bootstrap_self_managed_addons=bootstrap_self_managed_addons,
|
|
6226
6410
|
compute_config=compute_config,
|
|
6411
|
+
deletion_protection=deletion_protection,
|
|
6227
6412
|
encryption_config=encryption_config,
|
|
6228
6413
|
force=force,
|
|
6229
6414
|
kubernetes_network_config=kubernetes_network_config,
|
|
@@ -6240,6 +6425,48 @@ class CfnCluster(
|
|
|
6240
6425
|
|
|
6241
6426
|
jsii.create(self.__class__, self, [scope, id, props])
|
|
6242
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
|
+
|
|
6243
6470
|
@jsii.member(jsii_name="inspect")
|
|
6244
6471
|
def inspect(self, inspector: _TreeInspector_488e0dd5) -> None:
|
|
6245
6472
|
'''Examines the CloudFormation resource and discloses attributes.
|
|
@@ -6355,6 +6582,12 @@ class CfnCluster(
|
|
|
6355
6582
|
def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
|
|
6356
6583
|
return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.get(self, "cfnProperties"))
|
|
6357
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
|
+
|
|
6358
6591
|
@builtins.property
|
|
6359
6592
|
@jsii.member(jsii_name="tags")
|
|
6360
6593
|
def tags(self) -> _TagManager_0a598cb3:
|
|
@@ -6446,6 +6679,24 @@ class CfnCluster(
|
|
|
6446
6679
|
check_type(argname="argument value", value=value, expected_type=type_hints["value"])
|
|
6447
6680
|
jsii.set(self, "computeConfig", value) # pyright: ignore[reportArgumentType]
|
|
6448
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
|
+
|
|
6449
6700
|
@builtins.property
|
|
6450
6701
|
@jsii.member(jsii_name="encryptionConfig")
|
|
6451
6702
|
def encryption_config(
|
|
@@ -7567,8 +7818,8 @@ class CfnCluster(
|
|
|
7567
7818
|
|
|
7568
7819
|
You can add, change, or remove this configuration after the cluster is created.
|
|
7569
7820
|
|
|
7570
|
-
: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 /
|
|
7571
|
-
: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.
|
|
7572
7823
|
|
|
7573
7824
|
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-remotenetworkconfig.html
|
|
7574
7825
|
:exampleMetadata: fixture=_generated
|
|
@@ -7612,7 +7863,7 @@ class CfnCluster(
|
|
|
7612
7863
|
|
|
7613
7864
|
It must satisfy the following requirements:
|
|
7614
7865
|
|
|
7615
|
-
- 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.
|
|
7616
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.
|
|
7617
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 .
|
|
7618
7869
|
- Each host must allow outbound connection to the EKS cluster control plane on TCP ports ``443`` and ``10250`` .
|
|
@@ -7637,7 +7888,7 @@ class CfnCluster(
|
|
|
7637
7888
|
|
|
7638
7889
|
It must satisfy the following requirements:
|
|
7639
7890
|
|
|
7640
|
-
- 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.
|
|
7641
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.
|
|
7642
7893
|
|
|
7643
7894
|
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-remotenetworkconfig.html#cfn-eks-cluster-remotenetworkconfig-remotepodnetworks
|
|
@@ -7671,14 +7922,14 @@ class CfnCluster(
|
|
|
7671
7922
|
|
|
7672
7923
|
It must satisfy the following requirements:
|
|
7673
7924
|
|
|
7674
|
-
- 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.
|
|
7675
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.
|
|
7676
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 .
|
|
7677
7928
|
- Each host must allow outbound connection to the EKS cluster control plane on TCP ports ``443`` and ``10250`` .
|
|
7678
7929
|
- Each host must allow inbound connection from the EKS cluster control plane on TCP port 10250 for logs, exec and port-forward operations.
|
|
7679
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.
|
|
7680
7931
|
|
|
7681
|
-
: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.
|
|
7682
7933
|
|
|
7683
7934
|
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-remotenodenetwork.html
|
|
7684
7935
|
:exampleMetadata: fixture=_generated
|
|
@@ -7710,7 +7961,7 @@ class CfnCluster(
|
|
|
7710
7961
|
|
|
7711
7962
|
It must satisfy the following requirements:
|
|
7712
7963
|
|
|
7713
|
-
- 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.
|
|
7714
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.
|
|
7715
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 .
|
|
7716
7967
|
- Each host must allow outbound connection to the EKS cluster control plane on TCP ports ``443`` and ``10250`` .
|
|
@@ -7749,10 +8000,10 @@ class CfnCluster(
|
|
|
7749
8000
|
|
|
7750
8001
|
It must satisfy the following requirements:
|
|
7751
8002
|
|
|
7752
|
-
- 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.
|
|
7753
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.
|
|
7754
8005
|
|
|
7755
|
-
: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.
|
|
7756
8007
|
|
|
7757
8008
|
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-remotepodnetwork.html
|
|
7758
8009
|
:exampleMetadata: fixture=_generated
|
|
@@ -7784,7 +8035,7 @@ class CfnCluster(
|
|
|
7784
8035
|
|
|
7785
8036
|
It must satisfy the following requirements:
|
|
7786
8037
|
|
|
7787
|
-
- 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.
|
|
7788
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.
|
|
7789
8040
|
|
|
7790
8041
|
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-remotepodnetwork.html#cfn-eks-cluster-remotepodnetwork-cidrs
|
|
@@ -7836,9 +8087,9 @@ class CfnCluster(
|
|
|
7836
8087
|
- ``PublicAccessCidrs``
|
|
7837
8088
|
|
|
7838
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.
|
|
7839
|
-
: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 `
|
|
7840
|
-
: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 `
|
|
7841
|
-
: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.
|
|
7842
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** .
|
|
7843
8094
|
|
|
7844
8095
|
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-resourcesvpcconfig.html
|
|
@@ -7897,7 +8148,7 @@ class CfnCluster(
|
|
|
7897
8148
|
) -> typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]]:
|
|
7898
8149
|
'''Set this value to ``true`` to enable private access for your cluster's Kubernetes API server endpoint.
|
|
7899
8150
|
|
|
7900
|
-
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** .
|
|
7901
8152
|
|
|
7902
8153
|
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-resourcesvpcconfig.html#cfn-eks-cluster-resourcesvpcconfig-endpointprivateaccess
|
|
7903
8154
|
'''
|
|
@@ -7910,7 +8161,7 @@ class CfnCluster(
|
|
|
7910
8161
|
) -> typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]]:
|
|
7911
8162
|
'''Set this value to ``false`` to disable public access to your cluster's Kubernetes API server endpoint.
|
|
7912
8163
|
|
|
7913
|
-
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** .
|
|
7914
8165
|
|
|
7915
8166
|
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-resourcesvpcconfig.html#cfn-eks-cluster-resourcesvpcconfig-endpointpublicaccess
|
|
7916
8167
|
'''
|
|
@@ -7921,7 +8172,9 @@ class CfnCluster(
|
|
|
7921
8172
|
def public_access_cidrs(self) -> typing.Optional[typing.List[builtins.str]]:
|
|
7922
8173
|
'''The CIDR blocks that are allowed access to your cluster's public Kubernetes API server endpoint.
|
|
7923
8174
|
|
|
7924
|
-
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.
|
|
7925
8178
|
|
|
7926
8179
|
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-resourcesvpcconfig.html#cfn-eks-cluster-resourcesvpcconfig-publicaccesscidrs
|
|
7927
8180
|
'''
|
|
@@ -8141,6 +8394,7 @@ class CfnCluster(
|
|
|
8141
8394
|
"access_config": "accessConfig",
|
|
8142
8395
|
"bootstrap_self_managed_addons": "bootstrapSelfManagedAddons",
|
|
8143
8396
|
"compute_config": "computeConfig",
|
|
8397
|
+
"deletion_protection": "deletionProtection",
|
|
8144
8398
|
"encryption_config": "encryptionConfig",
|
|
8145
8399
|
"force": "force",
|
|
8146
8400
|
"kubernetes_network_config": "kubernetesNetworkConfig",
|
|
@@ -8164,6 +8418,7 @@ class CfnClusterProps:
|
|
|
8164
8418
|
access_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnCluster.AccessConfigProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
8165
8419
|
bootstrap_self_managed_addons: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
|
|
8166
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,
|
|
8167
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,
|
|
8168
8423
|
force: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
|
|
8169
8424
|
kubernetes_network_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnCluster.KubernetesNetworkConfigProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
@@ -8182,8 +8437,9 @@ class CfnClusterProps:
|
|
|
8182
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.
|
|
8183
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** .
|
|
8184
8439
|
:param access_config: The access configuration for the cluster.
|
|
8185
|
-
: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.
|
|
8186
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.
|
|
8187
8443
|
:param encryption_config: The encryption configuration for the cluster.
|
|
8188
8444
|
:param force: Set this value to ``true`` to override upgrade-blocking readiness checks when updating a cluster. Default: - false
|
|
8189
8445
|
:param kubernetes_network_config: The Kubernetes network configuration for the cluster.
|
|
@@ -8229,6 +8485,7 @@ class CfnClusterProps:
|
|
|
8229
8485
|
node_pools=["nodePools"],
|
|
8230
8486
|
node_role_arn="nodeRoleArn"
|
|
8231
8487
|
),
|
|
8488
|
+
deletion_protection=False,
|
|
8232
8489
|
encryption_config=[eks.CfnCluster.EncryptionConfigProperty(
|
|
8233
8490
|
provider=eks.CfnCluster.ProviderProperty(
|
|
8234
8491
|
key_arn="keyArn"
|
|
@@ -8296,6 +8553,7 @@ class CfnClusterProps:
|
|
|
8296
8553
|
check_type(argname="argument access_config", value=access_config, expected_type=type_hints["access_config"])
|
|
8297
8554
|
check_type(argname="argument bootstrap_self_managed_addons", value=bootstrap_self_managed_addons, expected_type=type_hints["bootstrap_self_managed_addons"])
|
|
8298
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"])
|
|
8299
8557
|
check_type(argname="argument encryption_config", value=encryption_config, expected_type=type_hints["encryption_config"])
|
|
8300
8558
|
check_type(argname="argument force", value=force, expected_type=type_hints["force"])
|
|
8301
8559
|
check_type(argname="argument kubernetes_network_config", value=kubernetes_network_config, expected_type=type_hints["kubernetes_network_config"])
|
|
@@ -8318,6 +8576,8 @@ class CfnClusterProps:
|
|
|
8318
8576
|
self._values["bootstrap_self_managed_addons"] = bootstrap_self_managed_addons
|
|
8319
8577
|
if compute_config is not None:
|
|
8320
8578
|
self._values["compute_config"] = compute_config
|
|
8579
|
+
if deletion_protection is not None:
|
|
8580
|
+
self._values["deletion_protection"] = deletion_protection
|
|
8321
8581
|
if encryption_config is not None:
|
|
8322
8582
|
self._values["encryption_config"] = encryption_config
|
|
8323
8583
|
if force is not None:
|
|
@@ -8386,7 +8646,7 @@ class CfnClusterProps:
|
|
|
8386
8646
|
) -> typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]]:
|
|
8387
8647
|
'''If you set this value to ``False`` when creating a cluster, the default networking add-ons will not be installed.
|
|
8388
8648
|
|
|
8389
|
-
The default networking
|
|
8649
|
+
The default networking add-ons include ``vpc-cni`` , ``coredns`` , and ``kube-proxy`` .
|
|
8390
8650
|
|
|
8391
8651
|
Use this option when you plan to install third-party alternative add-ons or self-manage the default networking add-ons.
|
|
8392
8652
|
|
|
@@ -8408,6 +8668,19 @@ class CfnClusterProps:
|
|
|
8408
8668
|
result = self._values.get("compute_config")
|
|
8409
8669
|
return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, CfnCluster.ComputeConfigProperty]], result)
|
|
8410
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
|
+
|
|
8411
8684
|
@builtins.property
|
|
8412
8685
|
def encryption_config(
|
|
8413
8686
|
self,
|
|
@@ -8568,7 +8841,7 @@ class CfnClusterProps:
|
|
|
8568
8841
|
)
|
|
8569
8842
|
|
|
8570
8843
|
|
|
8571
|
-
@jsii.implements(_IInspectable_c2943556, _ITaggable_36806126)
|
|
8844
|
+
@jsii.implements(_IInspectable_c2943556, _IFargateProfileRef_ebba9623, _ITaggable_36806126)
|
|
8572
8845
|
class CfnFargateProfile(
|
|
8573
8846
|
_CfnResource_9df397a6,
|
|
8574
8847
|
metaclass=jsii.JSIIMeta,
|
|
@@ -8633,7 +8906,8 @@ class CfnFargateProfile(
|
|
|
8633
8906
|
subnets: typing.Optional[typing.Sequence[builtins.str]] = None,
|
|
8634
8907
|
tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
8635
8908
|
) -> None:
|
|
8636
|
-
'''
|
|
8909
|
+
'''Create a new ``AWS::EKS::FargateProfile``.
|
|
8910
|
+
|
|
8637
8911
|
:param scope: Scope in which this resource is defined.
|
|
8638
8912
|
:param id: Construct identifier for this resource (unique in its scope).
|
|
8639
8913
|
:param cluster_name: The name of your cluster.
|
|
@@ -8702,6 +8976,12 @@ class CfnFargateProfile(
|
|
|
8702
8976
|
def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
|
|
8703
8977
|
return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.get(self, "cfnProperties"))
|
|
8704
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
|
+
|
|
8705
8985
|
@builtins.property
|
|
8706
8986
|
@jsii.member(jsii_name="tags")
|
|
8707
8987
|
def tags(self) -> _TagManager_0a598cb3:
|
|
@@ -9100,7 +9380,7 @@ class CfnFargateProfileProps:
|
|
|
9100
9380
|
)
|
|
9101
9381
|
|
|
9102
9382
|
|
|
9103
|
-
@jsii.implements(_IInspectable_c2943556, _ITaggable_36806126)
|
|
9383
|
+
@jsii.implements(_IInspectable_c2943556, _IIdentityProviderConfigRef_0106e882, _ITaggable_36806126)
|
|
9104
9384
|
class CfnIdentityProviderConfig(
|
|
9105
9385
|
_CfnResource_9df397a6,
|
|
9106
9386
|
metaclass=jsii.JSIIMeta,
|
|
@@ -9158,7 +9438,8 @@ class CfnIdentityProviderConfig(
|
|
|
9158
9438
|
oidc: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnIdentityProviderConfig.OidcIdentityProviderConfigProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
9159
9439
|
tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
9160
9440
|
) -> None:
|
|
9161
|
-
'''
|
|
9441
|
+
'''Create a new ``AWS::EKS::IdentityProviderConfig``.
|
|
9442
|
+
|
|
9162
9443
|
:param scope: Scope in which this resource is defined.
|
|
9163
9444
|
:param id: Construct identifier for this resource (unique in its scope).
|
|
9164
9445
|
:param cluster_name: The name of your cluster.
|
|
@@ -9225,6 +9506,12 @@ class CfnIdentityProviderConfig(
|
|
|
9225
9506
|
def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
|
|
9226
9507
|
return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.get(self, "cfnProperties"))
|
|
9227
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
|
+
|
|
9228
9515
|
@builtins.property
|
|
9229
9516
|
@jsii.member(jsii_name="tags")
|
|
9230
9517
|
def tags(self) -> _TagManager_0a598cb3:
|
|
@@ -9689,7 +9976,7 @@ class CfnIdentityProviderConfigProps:
|
|
|
9689
9976
|
)
|
|
9690
9977
|
|
|
9691
9978
|
|
|
9692
|
-
@jsii.implements(_IInspectable_c2943556, _ITaggable_36806126)
|
|
9979
|
+
@jsii.implements(_IInspectable_c2943556, _INodegroupRef_cac0d8aa, _ITaggable_36806126)
|
|
9693
9980
|
class CfnNodegroup(
|
|
9694
9981
|
_CfnResource_9df397a6,
|
|
9695
9982
|
metaclass=jsii.JSIIMeta,
|
|
@@ -9737,7 +10024,17 @@ class CfnNodegroup(
|
|
|
9737
10024
|
),
|
|
9738
10025
|
nodegroup_name="nodegroupName",
|
|
9739
10026
|
node_repair_config=eks.CfnNodegroup.NodeRepairConfigProperty(
|
|
9740
|
-
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
|
+
)]
|
|
9741
10038
|
),
|
|
9742
10039
|
release_version="releaseVersion",
|
|
9743
10040
|
remote_access=eks.CfnNodegroup.RemoteAccessProperty(
|
|
@@ -9793,7 +10090,8 @@ class CfnNodegroup(
|
|
|
9793
10090
|
update_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnNodegroup.UpdateConfigProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
9794
10091
|
version: typing.Optional[builtins.str] = None,
|
|
9795
10092
|
) -> None:
|
|
9796
|
-
'''
|
|
10093
|
+
'''Create a new ``AWS::EKS::Nodegroup``.
|
|
10094
|
+
|
|
9797
10095
|
:param scope: Scope in which this resource is defined.
|
|
9798
10096
|
:param id: Construct identifier for this resource (unique in its scope).
|
|
9799
10097
|
:param cluster_name: The name of your cluster.
|
|
@@ -9914,6 +10212,12 @@ class CfnNodegroup(
|
|
|
9914
10212
|
def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
|
|
9915
10213
|
return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.get(self, "cfnProperties"))
|
|
9916
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
|
+
|
|
9917
10221
|
@builtins.property
|
|
9918
10222
|
@jsii.member(jsii_name="tags")
|
|
9919
10223
|
def tags(self) -> _TagManager_0a598cb3:
|
|
@@ -10305,20 +10609,144 @@ class CfnNodegroup(
|
|
|
10305
10609
|
k + "=" + repr(v) for k, v in self._values.items()
|
|
10306
10610
|
)
|
|
10307
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
|
+
|
|
10308
10719
|
@jsii.data_type(
|
|
10309
10720
|
jsii_type="aws-cdk-lib.aws_eks.CfnNodegroup.NodeRepairConfigProperty",
|
|
10310
10721
|
jsii_struct_bases=[],
|
|
10311
|
-
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
|
+
},
|
|
10312
10730
|
)
|
|
10313
10731
|
class NodeRepairConfigProperty:
|
|
10314
10732
|
def __init__(
|
|
10315
10733
|
self,
|
|
10316
10734
|
*,
|
|
10317
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,
|
|
10318
10741
|
) -> None:
|
|
10319
10742
|
'''The node auto repair configuration for the node group.
|
|
10320
10743
|
|
|
10321
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.
|
|
10322
10750
|
|
|
10323
10751
|
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-nodegroup-noderepairconfig.html
|
|
10324
10752
|
:exampleMetadata: fixture=_generated
|
|
@@ -10330,15 +10758,40 @@ class CfnNodegroup(
|
|
|
10330
10758
|
from aws_cdk import aws_eks as eks
|
|
10331
10759
|
|
|
10332
10760
|
node_repair_config_property = eks.CfnNodegroup.NodeRepairConfigProperty(
|
|
10333
|
-
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
|
+
)]
|
|
10334
10772
|
)
|
|
10335
10773
|
'''
|
|
10336
10774
|
if __debug__:
|
|
10337
10775
|
type_hints = typing.get_type_hints(_typecheckingstub__29dbda55ee07f00e62bcfcbc392973b5c2850e347abc3e6692b5d82704d445f0)
|
|
10338
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"])
|
|
10339
10782
|
self._values: typing.Dict[builtins.str, typing.Any] = {}
|
|
10340
10783
|
if enabled is not None:
|
|
10341
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
|
|
10342
10795
|
|
|
10343
10796
|
@builtins.property
|
|
10344
10797
|
def enabled(
|
|
@@ -10353,6 +10806,67 @@ class CfnNodegroup(
|
|
|
10353
10806
|
result = self._values.get("enabled")
|
|
10354
10807
|
return typing.cast(typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]], result)
|
|
10355
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
|
+
|
|
10356
10870
|
def __eq__(self, rhs: typing.Any) -> builtins.bool:
|
|
10357
10871
|
return isinstance(rhs, self.__class__) and rhs._values == self._values
|
|
10358
10872
|
|
|
@@ -10831,7 +11345,17 @@ class CfnNodegroupProps:
|
|
|
10831
11345
|
),
|
|
10832
11346
|
nodegroup_name="nodegroupName",
|
|
10833
11347
|
node_repair_config=eks.CfnNodegroup.NodeRepairConfigProperty(
|
|
10834
|
-
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
|
+
)]
|
|
10835
11359
|
),
|
|
10836
11360
|
release_version="releaseVersion",
|
|
10837
11361
|
remote_access=eks.CfnNodegroup.RemoteAccessProperty(
|
|
@@ -11159,7 +11683,7 @@ class CfnNodegroupProps:
|
|
|
11159
11683
|
)
|
|
11160
11684
|
|
|
11161
11685
|
|
|
11162
|
-
@jsii.implements(_IInspectable_c2943556, _ITaggableV2_4e6798f8)
|
|
11686
|
+
@jsii.implements(_IInspectable_c2943556, _IPodIdentityAssociationRef_21f8b2b1, _ITaggableV2_4e6798f8)
|
|
11163
11687
|
class CfnPodIdentityAssociation(
|
|
11164
11688
|
_CfnResource_9df397a6,
|
|
11165
11689
|
metaclass=jsii.JSIIMeta,
|
|
@@ -11184,10 +11708,12 @@ class CfnPodIdentityAssociation(
|
|
|
11184
11708
|
service_account="serviceAccount",
|
|
11185
11709
|
|
|
11186
11710
|
# the properties below are optional
|
|
11711
|
+
disable_session_tags=False,
|
|
11187
11712
|
tags=[CfnTag(
|
|
11188
11713
|
key="key",
|
|
11189
11714
|
value="value"
|
|
11190
|
-
)]
|
|
11715
|
+
)],
|
|
11716
|
+
target_role_arn="targetRoleArn"
|
|
11191
11717
|
)
|
|
11192
11718
|
'''
|
|
11193
11719
|
|
|
@@ -11200,16 +11726,21 @@ class CfnPodIdentityAssociation(
|
|
|
11200
11726
|
namespace: builtins.str,
|
|
11201
11727
|
role_arn: builtins.str,
|
|
11202
11728
|
service_account: builtins.str,
|
|
11729
|
+
disable_session_tags: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
|
|
11203
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,
|
|
11204
11732
|
) -> None:
|
|
11205
|
-
'''
|
|
11733
|
+
'''Create a new ``AWS::EKS::PodIdentityAssociation``.
|
|
11734
|
+
|
|
11206
11735
|
:param scope: Scope in which this resource is defined.
|
|
11207
11736
|
:param id: Construct identifier for this resource (unique in its scope).
|
|
11208
11737
|
:param cluster_name: The name of the cluster that the association is in.
|
|
11209
|
-
:param namespace: The name of the Kubernetes namespace inside the cluster to create the association in. The service account and the
|
|
11210
|
-
: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.
|
|
11211
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* .
|
|
11212
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.
|
|
11213
11744
|
'''
|
|
11214
11745
|
if __debug__:
|
|
11215
11746
|
type_hints = typing.get_type_hints(_typecheckingstub__be8311b6089cea26f85c63a586f0c5b063230a1b4a96ffcd4c6c983a331d8652)
|
|
@@ -11220,7 +11751,9 @@ class CfnPodIdentityAssociation(
|
|
|
11220
11751
|
namespace=namespace,
|
|
11221
11752
|
role_arn=role_arn,
|
|
11222
11753
|
service_account=service_account,
|
|
11754
|
+
disable_session_tags=disable_session_tags,
|
|
11223
11755
|
tags=tags,
|
|
11756
|
+
target_role_arn=target_role_arn,
|
|
11224
11757
|
)
|
|
11225
11758
|
|
|
11226
11759
|
jsii.create(self.__class__, self, [scope, id, props])
|
|
@@ -11273,6 +11806,19 @@ class CfnPodIdentityAssociation(
|
|
|
11273
11806
|
'''
|
|
11274
11807
|
return typing.cast(builtins.str, jsii.get(self, "attrAssociationId"))
|
|
11275
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
|
+
|
|
11276
11822
|
@builtins.property
|
|
11277
11823
|
@jsii.member(jsii_name="cdkTagManager")
|
|
11278
11824
|
def cdk_tag_manager(self) -> _TagManager_0a598cb3:
|
|
@@ -11284,6 +11830,12 @@ class CfnPodIdentityAssociation(
|
|
|
11284
11830
|
def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
|
|
11285
11831
|
return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.get(self, "cfnProperties"))
|
|
11286
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
|
+
|
|
11287
11839
|
@builtins.property
|
|
11288
11840
|
@jsii.member(jsii_name="clusterName")
|
|
11289
11841
|
def cluster_name(self) -> builtins.str:
|
|
@@ -11336,6 +11888,27 @@ class CfnPodIdentityAssociation(
|
|
|
11336
11888
|
check_type(argname="argument value", value=value, expected_type=type_hints["value"])
|
|
11337
11889
|
jsii.set(self, "serviceAccount", value) # pyright: ignore[reportArgumentType]
|
|
11338
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
|
+
|
|
11339
11912
|
@builtins.property
|
|
11340
11913
|
@jsii.member(jsii_name="tags")
|
|
11341
11914
|
def tags(self) -> typing.Optional[typing.List[_CfnTag_f6864754]]:
|
|
@@ -11349,6 +11922,19 @@ class CfnPodIdentityAssociation(
|
|
|
11349
11922
|
check_type(argname="argument value", value=value, expected_type=type_hints["value"])
|
|
11350
11923
|
jsii.set(self, "tags", value) # pyright: ignore[reportArgumentType]
|
|
11351
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
|
+
|
|
11352
11938
|
|
|
11353
11939
|
@jsii.data_type(
|
|
11354
11940
|
jsii_type="aws-cdk-lib.aws_eks.CfnPodIdentityAssociationProps",
|
|
@@ -11358,7 +11944,9 @@ class CfnPodIdentityAssociation(
|
|
|
11358
11944
|
"namespace": "namespace",
|
|
11359
11945
|
"role_arn": "roleArn",
|
|
11360
11946
|
"service_account": "serviceAccount",
|
|
11947
|
+
"disable_session_tags": "disableSessionTags",
|
|
11361
11948
|
"tags": "tags",
|
|
11949
|
+
"target_role_arn": "targetRoleArn",
|
|
11362
11950
|
},
|
|
11363
11951
|
)
|
|
11364
11952
|
class CfnPodIdentityAssociationProps:
|
|
@@ -11369,15 +11957,19 @@ class CfnPodIdentityAssociationProps:
|
|
|
11369
11957
|
namespace: builtins.str,
|
|
11370
11958
|
role_arn: builtins.str,
|
|
11371
11959
|
service_account: builtins.str,
|
|
11960
|
+
disable_session_tags: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
|
|
11372
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,
|
|
11373
11963
|
) -> None:
|
|
11374
11964
|
'''Properties for defining a ``CfnPodIdentityAssociation``.
|
|
11375
11965
|
|
|
11376
11966
|
:param cluster_name: The name of the cluster that the association is in.
|
|
11377
|
-
:param namespace: The name of the Kubernetes namespace inside the cluster to create the association in. The service account and the
|
|
11378
|
-
: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.
|
|
11379
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* .
|
|
11380
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.
|
|
11381
11973
|
|
|
11382
11974
|
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-podidentityassociation.html
|
|
11383
11975
|
:exampleMetadata: fixture=_generated
|
|
@@ -11395,10 +11987,12 @@ class CfnPodIdentityAssociationProps:
|
|
|
11395
11987
|
service_account="serviceAccount",
|
|
11396
11988
|
|
|
11397
11989
|
# the properties below are optional
|
|
11990
|
+
disable_session_tags=False,
|
|
11398
11991
|
tags=[CfnTag(
|
|
11399
11992
|
key="key",
|
|
11400
11993
|
value="value"
|
|
11401
|
-
)]
|
|
11994
|
+
)],
|
|
11995
|
+
target_role_arn="targetRoleArn"
|
|
11402
11996
|
)
|
|
11403
11997
|
'''
|
|
11404
11998
|
if __debug__:
|
|
@@ -11407,15 +12001,21 @@ class CfnPodIdentityAssociationProps:
|
|
|
11407
12001
|
check_type(argname="argument namespace", value=namespace, expected_type=type_hints["namespace"])
|
|
11408
12002
|
check_type(argname="argument role_arn", value=role_arn, expected_type=type_hints["role_arn"])
|
|
11409
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"])
|
|
11410
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"])
|
|
11411
12007
|
self._values: typing.Dict[builtins.str, typing.Any] = {
|
|
11412
12008
|
"cluster_name": cluster_name,
|
|
11413
12009
|
"namespace": namespace,
|
|
11414
12010
|
"role_arn": role_arn,
|
|
11415
12011
|
"service_account": service_account,
|
|
11416
12012
|
}
|
|
12013
|
+
if disable_session_tags is not None:
|
|
12014
|
+
self._values["disable_session_tags"] = disable_session_tags
|
|
11417
12015
|
if tags is not None:
|
|
11418
12016
|
self._values["tags"] = tags
|
|
12017
|
+
if target_role_arn is not None:
|
|
12018
|
+
self._values["target_role_arn"] = target_role_arn
|
|
11419
12019
|
|
|
11420
12020
|
@builtins.property
|
|
11421
12021
|
def cluster_name(self) -> builtins.str:
|
|
@@ -11431,7 +12031,7 @@ class CfnPodIdentityAssociationProps:
|
|
|
11431
12031
|
def namespace(self) -> builtins.str:
|
|
11432
12032
|
'''The name of the Kubernetes namespace inside the cluster to create the association in.
|
|
11433
12033
|
|
|
11434
|
-
The service account and the
|
|
12034
|
+
The service account and the Pods that use the service account must be in this namespace.
|
|
11435
12035
|
|
|
11436
12036
|
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-podidentityassociation.html#cfn-eks-podidentityassociation-namespace
|
|
11437
12037
|
'''
|
|
@@ -11443,7 +12043,7 @@ class CfnPodIdentityAssociationProps:
|
|
|
11443
12043
|
def role_arn(self) -> builtins.str:
|
|
11444
12044
|
'''The Amazon Resource Name (ARN) of the IAM role to associate with the service account.
|
|
11445
12045
|
|
|
11446
|
-
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.
|
|
11447
12047
|
|
|
11448
12048
|
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-podidentityassociation.html#cfn-eks-podidentityassociation-rolearn
|
|
11449
12049
|
'''
|
|
@@ -11461,6 +12061,19 @@ class CfnPodIdentityAssociationProps:
|
|
|
11461
12061
|
assert result is not None, "Required property 'service_account' is missing"
|
|
11462
12062
|
return typing.cast(builtins.str, result)
|
|
11463
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
|
+
|
|
11464
12077
|
@builtins.property
|
|
11465
12078
|
def tags(self) -> typing.Optional[typing.List[_CfnTag_f6864754]]:
|
|
11466
12079
|
'''Metadata that assists with categorization and organization.
|
|
@@ -11486,6 +12099,17 @@ class CfnPodIdentityAssociationProps:
|
|
|
11486
12099
|
result = self._values.get("tags")
|
|
11487
12100
|
return typing.cast(typing.Optional[typing.List[_CfnTag_f6864754]], result)
|
|
11488
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
|
+
|
|
11489
12113
|
def __eq__(self, rhs: typing.Any) -> builtins.bool:
|
|
11490
12114
|
return isinstance(rhs, self.__class__) and rhs._values == self._values
|
|
11491
12115
|
|
|
@@ -11928,15 +12552,15 @@ class ClusterLoggingTypes(enum.Enum):
|
|
|
11928
12552
|
|
|
11929
12553
|
Example::
|
|
11930
12554
|
|
|
11931
|
-
from aws_cdk.
|
|
12555
|
+
from aws_cdk.lambda_layer_kubectl_v34 import KubectlV34Layer
|
|
11932
12556
|
|
|
11933
12557
|
|
|
11934
12558
|
cluster = eks.Cluster(self, "Cluster",
|
|
11935
12559
|
# ...
|
|
11936
|
-
version=eks.KubernetesVersion.
|
|
12560
|
+
version=eks.KubernetesVersion.V1_34,
|
|
11937
12561
|
cluster_logging=[eks.ClusterLoggingTypes.API, eks.ClusterLoggingTypes.AUTHENTICATOR, eks.ClusterLoggingTypes.SCHEDULER
|
|
11938
12562
|
],
|
|
11939
|
-
kubectl_layer=
|
|
12563
|
+
kubectl_layer=KubectlV34Layer(self, "kubectl")
|
|
11940
12564
|
)
|
|
11941
12565
|
'''
|
|
11942
12566
|
|
|
@@ -11984,7 +12608,7 @@ class CommonClusterOptions:
|
|
|
11984
12608
|
:param version: The Kubernetes version to run in the cluster.
|
|
11985
12609
|
:param cluster_name: Name for the cluster. Default: - Automatically generated name
|
|
11986
12610
|
:param output_cluster_name: Determines whether a CloudFormation output with the name of the cluster will be synthesized. Default: false
|
|
11987
|
-
: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
|
|
11988
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
|
|
11989
12613
|
:param security_group: Security Group to use for Control Plane ENIs. Default: - A security group is automatically created
|
|
11990
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``.
|
|
@@ -12085,9 +12709,13 @@ class CommonClusterOptions:
|
|
|
12085
12709
|
'''Determines whether a CloudFormation output with the ``aws eks update-kubeconfig`` command will be synthesized.
|
|
12086
12710
|
|
|
12087
12711
|
This command will include
|
|
12088
|
-
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.
|
|
12089
12715
|
|
|
12090
12716
|
:default: true
|
|
12717
|
+
|
|
12718
|
+
:see: https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_eks-readme.html#masters-role
|
|
12091
12719
|
'''
|
|
12092
12720
|
result = self._values.get("output_config_command")
|
|
12093
12721
|
return typing.cast(typing.Optional[builtins.bool], result)
|
|
@@ -12172,13 +12800,13 @@ class DefaultCapacityType(enum.Enum):
|
|
|
12172
12800
|
|
|
12173
12801
|
Example::
|
|
12174
12802
|
|
|
12175
|
-
from aws_cdk.
|
|
12803
|
+
from aws_cdk.lambda_layer_kubectl_v34 import KubectlV34Layer
|
|
12176
12804
|
|
|
12177
12805
|
|
|
12178
12806
|
cluster = eks.Cluster(self, "HelloEKS",
|
|
12179
|
-
version=eks.KubernetesVersion.
|
|
12807
|
+
version=eks.KubernetesVersion.V1_34,
|
|
12180
12808
|
default_capacity_type=eks.DefaultCapacityType.EC2,
|
|
12181
|
-
kubectl_layer=
|
|
12809
|
+
kubectl_layer=KubectlV34Layer(self, "kubectl")
|
|
12182
12810
|
)
|
|
12183
12811
|
'''
|
|
12184
12812
|
|
|
@@ -12345,13 +12973,13 @@ class EndpointAccess(
|
|
|
12345
12973
|
|
|
12346
12974
|
Example::
|
|
12347
12975
|
|
|
12348
|
-
from aws_cdk.
|
|
12976
|
+
from aws_cdk.lambda_layer_kubectl_v34 import KubectlV34Layer
|
|
12349
12977
|
|
|
12350
12978
|
|
|
12351
12979
|
cluster = eks.Cluster(self, "hello-eks",
|
|
12352
|
-
version=eks.KubernetesVersion.
|
|
12980
|
+
version=eks.KubernetesVersion.V1_34,
|
|
12353
12981
|
endpoint_access=eks.EndpointAccess.PRIVATE, # No access outside of your VPC.
|
|
12354
|
-
kubectl_layer=
|
|
12982
|
+
kubectl_layer=KubectlV34Layer(self, "kubectl")
|
|
12355
12983
|
)
|
|
12356
12984
|
'''
|
|
12357
12985
|
|
|
@@ -14525,7 +15153,7 @@ class IpFamily(enum.Enum):
|
|
|
14525
15153
|
|
|
14526
15154
|
Example::
|
|
14527
15155
|
|
|
14528
|
-
from aws_cdk.
|
|
15156
|
+
from aws_cdk.lambda_layer_kubectl_v34 import KubectlV34Layer
|
|
14529
15157
|
# vpc: ec2.Vpc
|
|
14530
15158
|
|
|
14531
15159
|
|
|
@@ -14550,11 +15178,11 @@ class IpFamily(enum.Enum):
|
|
|
14550
15178
|
subnetcount = subnetcount + 1
|
|
14551
15179
|
|
|
14552
15180
|
cluster = eks.Cluster(self, "hello-eks",
|
|
14553
|
-
version=eks.KubernetesVersion.
|
|
15181
|
+
version=eks.KubernetesVersion.V1_34,
|
|
14554
15182
|
vpc=vpc,
|
|
14555
15183
|
ip_family=eks.IpFamily.IP_V6,
|
|
14556
15184
|
vpc_subnets=[ec2.SubnetSelection(subnets=vpc.public_subnets)],
|
|
14557
|
-
kubectl_layer=
|
|
15185
|
+
kubectl_layer=KubectlV34Layer(self, "kubectl")
|
|
14558
15186
|
)
|
|
14559
15187
|
'''
|
|
14560
15188
|
|
|
@@ -14893,6 +15521,12 @@ class KubernetesManifest(
|
|
|
14893
15521
|
|
|
14894
15522
|
jsii.create(self.__class__, self, [scope, id, props])
|
|
14895
15523
|
|
|
15524
|
+
@jsii.python.classproperty
|
|
15525
|
+
@jsii.member(jsii_name="PROPERTY_INJECTION_ID")
|
|
15526
|
+
def PROPERTY_INJECTION_ID(cls) -> builtins.str:
|
|
15527
|
+
'''Uniquely identifies this class.'''
|
|
15528
|
+
return typing.cast(builtins.str, jsii.sget(cls, "PROPERTY_INJECTION_ID"))
|
|
15529
|
+
|
|
14896
15530
|
@jsii.python.classproperty
|
|
14897
15531
|
@jsii.member(jsii_name="RESOURCE_TYPE")
|
|
14898
15532
|
def RESOURCE_TYPE(cls) -> builtins.str:
|
|
@@ -15675,21 +16309,19 @@ class KubernetesVersion(
|
|
|
15675
16309
|
|
|
15676
16310
|
Example::
|
|
15677
16311
|
|
|
15678
|
-
from aws_cdk.
|
|
15679
|
-
|
|
15680
|
-
# or
|
|
15681
|
-
# vpc: ec2.Vpc
|
|
16312
|
+
from aws_cdk.lambda_layer_kubectl_v34 import KubectlV34Layer
|
|
15682
16313
|
|
|
15683
16314
|
|
|
15684
|
-
eks.Cluster(self, "
|
|
15685
|
-
|
|
15686
|
-
|
|
15687
|
-
kubectl_layer=
|
|
16315
|
+
cluster = eks.Cluster(self, "HelloEKS",
|
|
16316
|
+
version=eks.KubernetesVersion.V1_34,
|
|
16317
|
+
default_capacity=0,
|
|
16318
|
+
kubectl_layer=KubectlV34Layer(self, "kubectl")
|
|
15688
16319
|
)
|
|
15689
|
-
|
|
15690
|
-
|
|
15691
|
-
|
|
15692
|
-
|
|
16320
|
+
|
|
16321
|
+
cluster.add_nodegroup_capacity("custom-node-group",
|
|
16322
|
+
instance_types=[ec2.InstanceType("m5.large")],
|
|
16323
|
+
min_size=4,
|
|
16324
|
+
disk_size=100
|
|
15693
16325
|
)
|
|
15694
16326
|
'''
|
|
15695
16327
|
|
|
@@ -15914,6 +16546,28 @@ class KubernetesVersion(
|
|
|
15914
16546
|
'''
|
|
15915
16547
|
return typing.cast("KubernetesVersion", jsii.sget(cls, "V1_32"))
|
|
15916
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
|
+
|
|
15917
16571
|
@builtins.property
|
|
15918
16572
|
@jsii.member(jsii_name="version")
|
|
15919
16573
|
def version(self) -> builtins.str:
|
|
@@ -16225,6 +16879,12 @@ class Nodegroup(
|
|
|
16225
16879
|
check_type(argname="argument nodegroup_name", value=nodegroup_name, expected_type=type_hints["nodegroup_name"])
|
|
16226
16880
|
return typing.cast(INodegroup, jsii.sinvoke(cls, "fromNodegroupName", [scope, id, nodegroup_name]))
|
|
16227
16881
|
|
|
16882
|
+
@jsii.python.classproperty
|
|
16883
|
+
@jsii.member(jsii_name="PROPERTY_INJECTION_ID")
|
|
16884
|
+
def PROPERTY_INJECTION_ID(cls) -> builtins.str:
|
|
16885
|
+
'''Uniquely identifies this class.'''
|
|
16886
|
+
return typing.cast(builtins.str, jsii.sget(cls, "PROPERTY_INJECTION_ID"))
|
|
16887
|
+
|
|
16228
16888
|
@builtins.property
|
|
16229
16889
|
@jsii.member(jsii_name="cluster")
|
|
16230
16890
|
def cluster(self) -> ICluster:
|
|
@@ -16313,6 +16973,8 @@ class NodegroupAmiType(enum.Enum):
|
|
|
16313
16973
|
'''Amazon Linux 2023 with AWS Neuron drivers (x86-64).'''
|
|
16314
16974
|
AL2023_X86_64_NVIDIA = "AL2023_X86_64_NVIDIA"
|
|
16315
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).'''
|
|
16316
16978
|
AL2023_ARM_64_STANDARD = "AL2023_ARM_64_STANDARD"
|
|
16317
16979
|
'''Amazon Linux 2023 (ARM-64).'''
|
|
16318
16980
|
|
|
@@ -17334,6 +17996,12 @@ class OpenIdConnectProvider(
|
|
|
17334
17996
|
|
|
17335
17997
|
jsii.create(self.__class__, self, [scope, id, props])
|
|
17336
17998
|
|
|
17999
|
+
@jsii.python.classproperty
|
|
18000
|
+
@jsii.member(jsii_name="PROPERTY_INJECTION_ID")
|
|
18001
|
+
def PROPERTY_INJECTION_ID(cls) -> builtins.str:
|
|
18002
|
+
'''Uniquely identifies this class.'''
|
|
18003
|
+
return typing.cast(builtins.str, jsii.sget(cls, "PROPERTY_INJECTION_ID"))
|
|
18004
|
+
|
|
17337
18005
|
|
|
17338
18006
|
@jsii.data_type(
|
|
17339
18007
|
jsii_type="aws-cdk-lib.aws_eks.OpenIdConnectProviderProps",
|
|
@@ -18066,6 +18734,17 @@ class ServiceLoadBalancerAddressOptions:
|
|
|
18066
18734
|
class TaintEffect(enum.Enum):
|
|
18067
18735
|
'''Effect types of kubernetes node taint.
|
|
18068
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
|
|
18069
18748
|
:exampleMetadata: infused
|
|
18070
18749
|
|
|
18071
18750
|
Example::
|
|
@@ -18286,6 +18965,12 @@ class AccessEntry(
|
|
|
18286
18965
|
check_type(argname="argument new_access_policies", value=new_access_policies, expected_type=type_hints["new_access_policies"])
|
|
18287
18966
|
return typing.cast(None, jsii.invoke(self, "addAccessPolicies", [new_access_policies]))
|
|
18288
18967
|
|
|
18968
|
+
@jsii.python.classproperty
|
|
18969
|
+
@jsii.member(jsii_name="PROPERTY_INJECTION_ID")
|
|
18970
|
+
def PROPERTY_INJECTION_ID(cls) -> builtins.str:
|
|
18971
|
+
'''Uniquely identifies this class.'''
|
|
18972
|
+
return typing.cast(builtins.str, jsii.sget(cls, "PROPERTY_INJECTION_ID"))
|
|
18973
|
+
|
|
18289
18974
|
@builtins.property
|
|
18290
18975
|
@jsii.member(jsii_name="accessEntryArn")
|
|
18291
18976
|
def access_entry_arn(self) -> builtins.str:
|
|
@@ -18391,10 +19076,13 @@ class Addon(
|
|
|
18391
19076
|
|
|
18392
19077
|
eks.Addon(self, "Addon",
|
|
18393
19078
|
cluster=cluster,
|
|
18394
|
-
addon_name="
|
|
18395
|
-
addon_version="v1.
|
|
19079
|
+
addon_name="coredns",
|
|
19080
|
+
addon_version="v1.11.4-eksbuild.2",
|
|
18396
19081
|
# whether to preserve the add-on software on your cluster but Amazon EKS stops managing any settings for the add-on.
|
|
18397
|
-
preserve_on_delete=False
|
|
19082
|
+
preserve_on_delete=False,
|
|
19083
|
+
configuration_values={
|
|
19084
|
+
"replica_count": 2
|
|
19085
|
+
}
|
|
18398
19086
|
)
|
|
18399
19087
|
'''
|
|
18400
19088
|
|
|
@@ -18406,6 +19094,7 @@ class Addon(
|
|
|
18406
19094
|
addon_name: builtins.str,
|
|
18407
19095
|
cluster: ICluster,
|
|
18408
19096
|
addon_version: typing.Optional[builtins.str] = None,
|
|
19097
|
+
configuration_values: typing.Optional[typing.Mapping[builtins.str, typing.Any]] = None,
|
|
18409
19098
|
preserve_on_delete: typing.Optional[builtins.bool] = None,
|
|
18410
19099
|
) -> None:
|
|
18411
19100
|
'''Creates a new Amazon EKS Add-On.
|
|
@@ -18415,6 +19104,7 @@ class Addon(
|
|
|
18415
19104
|
:param addon_name: Name of the Add-On.
|
|
18416
19105
|
:param cluster: The EKS cluster the Add-On is associated with.
|
|
18417
19106
|
:param addon_version: Version of the Add-On. You can check all available versions with describe-addon-versions. For example, this lists all available versions for the ``eks-pod-identity-agent`` addon: $ aws eks describe-addon-versions --addon-name eks-pod-identity-agent --query 'addons[*].addonVersions[*].addonVersion' Default: the latest version.
|
|
19107
|
+
:param configuration_values: The configuration values for the Add-on. Default: - Use default configuration.
|
|
18418
19108
|
: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. Default: true
|
|
18419
19109
|
'''
|
|
18420
19110
|
if __debug__:
|
|
@@ -18425,6 +19115,7 @@ class Addon(
|
|
|
18425
19115
|
addon_name=addon_name,
|
|
18426
19116
|
cluster=cluster,
|
|
18427
19117
|
addon_version=addon_version,
|
|
19118
|
+
configuration_values=configuration_values,
|
|
18428
19119
|
preserve_on_delete=preserve_on_delete,
|
|
18429
19120
|
)
|
|
18430
19121
|
|
|
@@ -18480,6 +19171,12 @@ class Addon(
|
|
|
18480
19171
|
|
|
18481
19172
|
return typing.cast(IAddon, jsii.sinvoke(cls, "fromAddonAttributes", [scope, id, attrs]))
|
|
18482
19173
|
|
|
19174
|
+
@jsii.python.classproperty
|
|
19175
|
+
@jsii.member(jsii_name="PROPERTY_INJECTION_ID")
|
|
19176
|
+
def PROPERTY_INJECTION_ID(cls) -> builtins.str:
|
|
19177
|
+
'''Uniquely identifies this class.'''
|
|
19178
|
+
return typing.cast(builtins.str, jsii.sget(cls, "PROPERTY_INJECTION_ID"))
|
|
19179
|
+
|
|
18483
19180
|
@builtins.property
|
|
18484
19181
|
@jsii.member(jsii_name="addonArn")
|
|
18485
19182
|
def addon_arn(self) -> builtins.str:
|
|
@@ -18508,7 +19205,7 @@ class Cluster(
|
|
|
18508
19205
|
|
|
18509
19206
|
Example::
|
|
18510
19207
|
|
|
18511
|
-
from aws_cdk.
|
|
19208
|
+
from aws_cdk.lambda_layer_kubectl_v34 import KubectlV34Layer
|
|
18512
19209
|
|
|
18513
19210
|
# or
|
|
18514
19211
|
# vpc: ec2.Vpc
|
|
@@ -18516,8 +19213,8 @@ class Cluster(
|
|
|
18516
19213
|
|
|
18517
19214
|
eks.Cluster(self, "MyCluster",
|
|
18518
19215
|
kubectl_memory=Size.gibibytes(4),
|
|
18519
|
-
version=eks.KubernetesVersion.
|
|
18520
|
-
kubectl_layer=
|
|
19216
|
+
version=eks.KubernetesVersion.V1_34,
|
|
19217
|
+
kubectl_layer=KubectlV34Layer(self, "kubectl")
|
|
18521
19218
|
)
|
|
18522
19219
|
eks.Cluster.from_cluster_attributes(self, "MyCluster",
|
|
18523
19220
|
kubectl_memory=Size.gibibytes(4),
|
|
@@ -18532,6 +19229,7 @@ class Cluster(
|
|
|
18532
19229
|
id: builtins.str,
|
|
18533
19230
|
*,
|
|
18534
19231
|
bootstrap_cluster_creator_admin_permissions: typing.Optional[builtins.bool] = None,
|
|
19232
|
+
bootstrap_self_managed_addons: typing.Optional[builtins.bool] = None,
|
|
18535
19233
|
default_capacity: typing.Optional[jsii.Number] = None,
|
|
18536
19234
|
default_capacity_instance: typing.Optional[_InstanceType_f64915b9] = None,
|
|
18537
19235
|
default_capacity_type: typing.Optional[DefaultCapacityType] = None,
|
|
@@ -18556,7 +19254,8 @@ class Cluster(
|
|
|
18556
19254
|
prune: typing.Optional[builtins.bool] = None,
|
|
18557
19255
|
remote_node_networks: typing.Optional[typing.Sequence[typing.Union[RemoteNodeNetwork, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
18558
19256
|
remote_pod_networks: typing.Optional[typing.Sequence[typing.Union[RemotePodNetwork, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
18559
|
-
|
|
19257
|
+
removal_policy: typing.Optional[_RemovalPolicy_9f93c814] = None,
|
|
19258
|
+
secrets_encryption_key: typing.Optional[_IKeyRef_d4fc6ef3] = None,
|
|
18560
19259
|
service_ipv4_cidr: typing.Optional[builtins.str] = None,
|
|
18561
19260
|
version: KubernetesVersion,
|
|
18562
19261
|
cluster_name: typing.Optional[builtins.str] = None,
|
|
@@ -18572,6 +19271,7 @@ class Cluster(
|
|
|
18572
19271
|
:param scope: a Construct, most likely a cdk.Stack created.
|
|
18573
19272
|
:param id: the id of the Construct to create.
|
|
18574
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
|
|
18575
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
|
|
18576
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
|
|
18577
19277
|
:param default_capacity_type: The default capacity type for the cluster. Default: NODEGROUP
|
|
@@ -18596,12 +19296,13 @@ class Cluster(
|
|
|
18596
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
|
|
18597
19297
|
:param remote_node_networks: IPv4 CIDR blocks defining the expected address range of hybrid nodes that will join the cluster. Default: - none
|
|
18598
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.
|
|
18599
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.
|
|
18600
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
|
|
18601
19302
|
:param version: The Kubernetes version to run in the cluster.
|
|
18602
19303
|
:param cluster_name: Name for the cluster. Default: - Automatically generated name
|
|
18603
19304
|
:param output_cluster_name: Determines whether a CloudFormation output with the name of the cluster will be synthesized. Default: false
|
|
18604
|
-
: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
|
|
18605
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
|
|
18606
19307
|
:param security_group: Security Group to use for Control Plane ENIs. Default: - A security group is automatically created
|
|
18607
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``.
|
|
@@ -18613,6 +19314,7 @@ class Cluster(
|
|
|
18613
19314
|
check_type(argname="argument id", value=id, expected_type=type_hints["id"])
|
|
18614
19315
|
props = ClusterProps(
|
|
18615
19316
|
bootstrap_cluster_creator_admin_permissions=bootstrap_cluster_creator_admin_permissions,
|
|
19317
|
+
bootstrap_self_managed_addons=bootstrap_self_managed_addons,
|
|
18616
19318
|
default_capacity=default_capacity,
|
|
18617
19319
|
default_capacity_instance=default_capacity_instance,
|
|
18618
19320
|
default_capacity_type=default_capacity_type,
|
|
@@ -18637,6 +19339,7 @@ class Cluster(
|
|
|
18637
19339
|
prune=prune,
|
|
18638
19340
|
remote_node_networks=remote_node_networks,
|
|
18639
19341
|
remote_pod_networks=remote_pod_networks,
|
|
19342
|
+
removal_policy=removal_policy,
|
|
18640
19343
|
secrets_encryption_key=secrets_encryption_key,
|
|
18641
19344
|
service_ipv4_cidr=service_ipv4_cidr,
|
|
18642
19345
|
version=version,
|
|
@@ -18814,7 +19517,7 @@ class Cluster(
|
|
|
18814
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.
|
|
18815
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.
|
|
18816
19519
|
:param max_capacity: Maximum number of instances in the fleet. Default: desiredCapacity
|
|
18817
|
-
: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
|
|
18818
19521
|
:param min_capacity: Minimum number of instances in the fleet. Default: 1
|
|
18819
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
|
|
18820
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.
|
|
@@ -19248,6 +19951,12 @@ class Cluster(
|
|
|
19248
19951
|
check_type(argname="argument access_policies", value=access_policies, expected_type=type_hints["access_policies"])
|
|
19249
19952
|
return typing.cast(None, jsii.invoke(self, "grantAccess", [id, principal, access_policies]))
|
|
19250
19953
|
|
|
19954
|
+
@jsii.python.classproperty
|
|
19955
|
+
@jsii.member(jsii_name="PROPERTY_INJECTION_ID")
|
|
19956
|
+
def PROPERTY_INJECTION_ID(cls) -> builtins.str:
|
|
19957
|
+
'''Uniquely identifies this class.'''
|
|
19958
|
+
return typing.cast(builtins.str, jsii.sget(cls, "PROPERTY_INJECTION_ID"))
|
|
19959
|
+
|
|
19251
19960
|
@builtins.property
|
|
19252
19961
|
@jsii.member(jsii_name="adminRole")
|
|
19253
19962
|
def admin_role(self) -> _Role_e8c6e11f:
|
|
@@ -19578,6 +20287,7 @@ class Cluster(
|
|
|
19578
20287
|
"prune": "prune",
|
|
19579
20288
|
"remote_node_networks": "remoteNodeNetworks",
|
|
19580
20289
|
"remote_pod_networks": "remotePodNetworks",
|
|
20290
|
+
"removal_policy": "removalPolicy",
|
|
19581
20291
|
"secrets_encryption_key": "secretsEncryptionKey",
|
|
19582
20292
|
"service_ipv4_cidr": "serviceIpv4Cidr",
|
|
19583
20293
|
},
|
|
@@ -19613,7 +20323,8 @@ class ClusterOptions(CommonClusterOptions):
|
|
|
19613
20323
|
prune: typing.Optional[builtins.bool] = None,
|
|
19614
20324
|
remote_node_networks: typing.Optional[typing.Sequence[typing.Union[RemoteNodeNetwork, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
19615
20325
|
remote_pod_networks: typing.Optional[typing.Sequence[typing.Union[RemotePodNetwork, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
19616
|
-
|
|
20326
|
+
removal_policy: typing.Optional[_RemovalPolicy_9f93c814] = None,
|
|
20327
|
+
secrets_encryption_key: typing.Optional[_IKeyRef_d4fc6ef3] = None,
|
|
19617
20328
|
service_ipv4_cidr: typing.Optional[builtins.str] = None,
|
|
19618
20329
|
) -> None:
|
|
19619
20330
|
'''Options for EKS clusters.
|
|
@@ -19621,7 +20332,7 @@ class ClusterOptions(CommonClusterOptions):
|
|
|
19621
20332
|
:param version: The Kubernetes version to run in the cluster.
|
|
19622
20333
|
:param cluster_name: Name for the cluster. Default: - Automatically generated name
|
|
19623
20334
|
:param output_cluster_name: Determines whether a CloudFormation output with the name of the cluster will be synthesized. Default: false
|
|
19624
|
-
: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
|
|
19625
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
|
|
19626
20337
|
:param security_group: Security Group to use for Control Plane ENIs. Default: - A security group is automatically created
|
|
19627
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``.
|
|
@@ -19645,6 +20356,7 @@ class ClusterOptions(CommonClusterOptions):
|
|
|
19645
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
|
|
19646
20357
|
:param remote_node_networks: IPv4 CIDR blocks defining the expected address range of hybrid nodes that will join the cluster. Default: - none
|
|
19647
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.
|
|
19648
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.
|
|
19649
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
|
|
19650
20362
|
|
|
@@ -19658,12 +20370,12 @@ class ClusterOptions(CommonClusterOptions):
|
|
|
19658
20370
|
from aws_cdk import aws_ec2 as ec2
|
|
19659
20371
|
from aws_cdk import aws_eks as eks
|
|
19660
20372
|
from aws_cdk import aws_iam as iam
|
|
19661
|
-
from aws_cdk import aws_kms as kms
|
|
19662
20373
|
from aws_cdk import aws_lambda as lambda_
|
|
20374
|
+
from aws_cdk.interfaces import aws_kms as interfaces_aws_kms
|
|
19663
20375
|
|
|
19664
20376
|
# alb_controller_version: eks.AlbControllerVersion
|
|
19665
20377
|
# endpoint_access: eks.EndpointAccess
|
|
19666
|
-
#
|
|
20378
|
+
# key_ref: interfaces_aws_kms.IKeyRef
|
|
19667
20379
|
# kubernetes_version: eks.KubernetesVersion
|
|
19668
20380
|
# layer_version: lambda.LayerVersion
|
|
19669
20381
|
# policy: Any
|
|
@@ -19718,8 +20430,9 @@ class ClusterOptions(CommonClusterOptions):
|
|
|
19718
20430
|
remote_pod_networks=[eks.RemotePodNetwork(
|
|
19719
20431
|
cidrs=["cidrs"]
|
|
19720
20432
|
)],
|
|
20433
|
+
removal_policy=cdk.RemovalPolicy.DESTROY,
|
|
19721
20434
|
role=role,
|
|
19722
|
-
secrets_encryption_key=
|
|
20435
|
+
secrets_encryption_key=key_ref,
|
|
19723
20436
|
security_group=security_group,
|
|
19724
20437
|
service_ipv4_cidr="serviceIpv4Cidr",
|
|
19725
20438
|
vpc=vpc,
|
|
@@ -19764,6 +20477,7 @@ class ClusterOptions(CommonClusterOptions):
|
|
|
19764
20477
|
check_type(argname="argument prune", value=prune, expected_type=type_hints["prune"])
|
|
19765
20478
|
check_type(argname="argument remote_node_networks", value=remote_node_networks, expected_type=type_hints["remote_node_networks"])
|
|
19766
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"])
|
|
19767
20481
|
check_type(argname="argument secrets_encryption_key", value=secrets_encryption_key, expected_type=type_hints["secrets_encryption_key"])
|
|
19768
20482
|
check_type(argname="argument service_ipv4_cidr", value=service_ipv4_cidr, expected_type=type_hints["service_ipv4_cidr"])
|
|
19769
20483
|
self._values: typing.Dict[builtins.str, typing.Any] = {
|
|
@@ -19820,6 +20534,8 @@ class ClusterOptions(CommonClusterOptions):
|
|
|
19820
20534
|
self._values["remote_node_networks"] = remote_node_networks
|
|
19821
20535
|
if remote_pod_networks is not None:
|
|
19822
20536
|
self._values["remote_pod_networks"] = remote_pod_networks
|
|
20537
|
+
if removal_policy is not None:
|
|
20538
|
+
self._values["removal_policy"] = removal_policy
|
|
19823
20539
|
if secrets_encryption_key is not None:
|
|
19824
20540
|
self._values["secrets_encryption_key"] = secrets_encryption_key
|
|
19825
20541
|
if service_ipv4_cidr is not None:
|
|
@@ -19855,9 +20571,13 @@ class ClusterOptions(CommonClusterOptions):
|
|
|
19855
20571
|
'''Determines whether a CloudFormation output with the ``aws eks update-kubeconfig`` command will be synthesized.
|
|
19856
20572
|
|
|
19857
20573
|
This command will include
|
|
19858
|
-
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.
|
|
19859
20577
|
|
|
19860
20578
|
:default: true
|
|
20579
|
+
|
|
20580
|
+
:see: https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_eks-readme.html#masters-role
|
|
19861
20581
|
'''
|
|
19862
20582
|
result = self._values.get("output_config_command")
|
|
19863
20583
|
return typing.cast(typing.Optional[builtins.bool], result)
|
|
@@ -20125,7 +20845,25 @@ class ClusterOptions(CommonClusterOptions):
|
|
|
20125
20845
|
return typing.cast(typing.Optional[typing.List[RemotePodNetwork]], result)
|
|
20126
20846
|
|
|
20127
20847
|
@builtins.property
|
|
20128
|
-
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]:
|
|
20129
20867
|
'''KMS secret for envelope encryption for Kubernetes secrets.
|
|
20130
20868
|
|
|
20131
20869
|
:default:
|
|
@@ -20135,7 +20873,7 @@ class ClusterOptions(CommonClusterOptions):
|
|
|
20135
20873
|
using AWS-Managed encryption keys.
|
|
20136
20874
|
'''
|
|
20137
20875
|
result = self._values.get("secrets_encryption_key")
|
|
20138
|
-
return typing.cast(typing.Optional[
|
|
20876
|
+
return typing.cast(typing.Optional[_IKeyRef_d4fc6ef3], result)
|
|
20139
20877
|
|
|
20140
20878
|
@builtins.property
|
|
20141
20879
|
def service_ipv4_cidr(self) -> typing.Optional[builtins.str]:
|
|
@@ -20194,9 +20932,11 @@ class ClusterOptions(CommonClusterOptions):
|
|
|
20194
20932
|
"prune": "prune",
|
|
20195
20933
|
"remote_node_networks": "remoteNodeNetworks",
|
|
20196
20934
|
"remote_pod_networks": "remotePodNetworks",
|
|
20935
|
+
"removal_policy": "removalPolicy",
|
|
20197
20936
|
"secrets_encryption_key": "secretsEncryptionKey",
|
|
20198
20937
|
"service_ipv4_cidr": "serviceIpv4Cidr",
|
|
20199
20938
|
"bootstrap_cluster_creator_admin_permissions": "bootstrapClusterCreatorAdminPermissions",
|
|
20939
|
+
"bootstrap_self_managed_addons": "bootstrapSelfManagedAddons",
|
|
20200
20940
|
"default_capacity": "defaultCapacity",
|
|
20201
20941
|
"default_capacity_instance": "defaultCapacityInstance",
|
|
20202
20942
|
"default_capacity_type": "defaultCapacityType",
|
|
@@ -20235,9 +20975,11 @@ class ClusterProps(ClusterOptions):
|
|
|
20235
20975
|
prune: typing.Optional[builtins.bool] = None,
|
|
20236
20976
|
remote_node_networks: typing.Optional[typing.Sequence[typing.Union[RemoteNodeNetwork, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
20237
20977
|
remote_pod_networks: typing.Optional[typing.Sequence[typing.Union[RemotePodNetwork, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
20238
|
-
|
|
20978
|
+
removal_policy: typing.Optional[_RemovalPolicy_9f93c814] = None,
|
|
20979
|
+
secrets_encryption_key: typing.Optional[_IKeyRef_d4fc6ef3] = None,
|
|
20239
20980
|
service_ipv4_cidr: typing.Optional[builtins.str] = None,
|
|
20240
20981
|
bootstrap_cluster_creator_admin_permissions: typing.Optional[builtins.bool] = None,
|
|
20982
|
+
bootstrap_self_managed_addons: typing.Optional[builtins.bool] = None,
|
|
20241
20983
|
default_capacity: typing.Optional[jsii.Number] = None,
|
|
20242
20984
|
default_capacity_instance: typing.Optional[_InstanceType_f64915b9] = None,
|
|
20243
20985
|
default_capacity_type: typing.Optional[DefaultCapacityType] = None,
|
|
@@ -20249,7 +20991,7 @@ class ClusterProps(ClusterOptions):
|
|
|
20249
20991
|
:param version: The Kubernetes version to run in the cluster.
|
|
20250
20992
|
:param cluster_name: Name for the cluster. Default: - Automatically generated name
|
|
20251
20993
|
:param output_cluster_name: Determines whether a CloudFormation output with the name of the cluster will be synthesized. Default: false
|
|
20252
|
-
: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
|
|
20253
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
|
|
20254
20996
|
:param security_group: Security Group to use for Control Plane ENIs. Default: - A security group is automatically created
|
|
20255
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``.
|
|
@@ -20273,9 +21015,11 @@ class ClusterProps(ClusterOptions):
|
|
|
20273
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
|
|
20274
21016
|
:param remote_node_networks: IPv4 CIDR blocks defining the expected address range of hybrid nodes that will join the cluster. Default: - none
|
|
20275
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.
|
|
20276
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.
|
|
20277
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
|
|
20278
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
|
|
20279
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
|
|
20280
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
|
|
20281
21025
|
:param default_capacity_type: The default capacity type for the cluster. Default: NODEGROUP
|
|
@@ -20286,7 +21030,7 @@ class ClusterProps(ClusterOptions):
|
|
|
20286
21030
|
|
|
20287
21031
|
Example::
|
|
20288
21032
|
|
|
20289
|
-
from aws_cdk.
|
|
21033
|
+
from aws_cdk.lambda_layer_kubectl_v34 import KubectlV34Layer
|
|
20290
21034
|
|
|
20291
21035
|
# or
|
|
20292
21036
|
# vpc: ec2.Vpc
|
|
@@ -20294,8 +21038,8 @@ class ClusterProps(ClusterOptions):
|
|
|
20294
21038
|
|
|
20295
21039
|
eks.Cluster(self, "MyCluster",
|
|
20296
21040
|
kubectl_memory=Size.gibibytes(4),
|
|
20297
|
-
version=eks.KubernetesVersion.
|
|
20298
|
-
kubectl_layer=
|
|
21041
|
+
version=eks.KubernetesVersion.V1_34,
|
|
21042
|
+
kubectl_layer=KubectlV34Layer(self, "kubectl")
|
|
20299
21043
|
)
|
|
20300
21044
|
eks.Cluster.from_cluster_attributes(self, "MyCluster",
|
|
20301
21045
|
kubectl_memory=Size.gibibytes(4),
|
|
@@ -20334,9 +21078,11 @@ class ClusterProps(ClusterOptions):
|
|
|
20334
21078
|
check_type(argname="argument prune", value=prune, expected_type=type_hints["prune"])
|
|
20335
21079
|
check_type(argname="argument remote_node_networks", value=remote_node_networks, expected_type=type_hints["remote_node_networks"])
|
|
20336
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"])
|
|
20337
21082
|
check_type(argname="argument secrets_encryption_key", value=secrets_encryption_key, expected_type=type_hints["secrets_encryption_key"])
|
|
20338
21083
|
check_type(argname="argument service_ipv4_cidr", value=service_ipv4_cidr, expected_type=type_hints["service_ipv4_cidr"])
|
|
20339
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"])
|
|
20340
21086
|
check_type(argname="argument default_capacity", value=default_capacity, expected_type=type_hints["default_capacity"])
|
|
20341
21087
|
check_type(argname="argument default_capacity_instance", value=default_capacity_instance, expected_type=type_hints["default_capacity_instance"])
|
|
20342
21088
|
check_type(argname="argument default_capacity_type", value=default_capacity_type, expected_type=type_hints["default_capacity_type"])
|
|
@@ -20396,12 +21142,16 @@ class ClusterProps(ClusterOptions):
|
|
|
20396
21142
|
self._values["remote_node_networks"] = remote_node_networks
|
|
20397
21143
|
if remote_pod_networks is not None:
|
|
20398
21144
|
self._values["remote_pod_networks"] = remote_pod_networks
|
|
21145
|
+
if removal_policy is not None:
|
|
21146
|
+
self._values["removal_policy"] = removal_policy
|
|
20399
21147
|
if secrets_encryption_key is not None:
|
|
20400
21148
|
self._values["secrets_encryption_key"] = secrets_encryption_key
|
|
20401
21149
|
if service_ipv4_cidr is not None:
|
|
20402
21150
|
self._values["service_ipv4_cidr"] = service_ipv4_cidr
|
|
20403
21151
|
if bootstrap_cluster_creator_admin_permissions is not None:
|
|
20404
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
|
|
20405
21155
|
if default_capacity is not None:
|
|
20406
21156
|
self._values["default_capacity"] = default_capacity
|
|
20407
21157
|
if default_capacity_instance is not None:
|
|
@@ -20443,9 +21193,13 @@ class ClusterProps(ClusterOptions):
|
|
|
20443
21193
|
'''Determines whether a CloudFormation output with the ``aws eks update-kubeconfig`` command will be synthesized.
|
|
20444
21194
|
|
|
20445
21195
|
This command will include
|
|
20446
|
-
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.
|
|
20447
21199
|
|
|
20448
21200
|
:default: true
|
|
21201
|
+
|
|
21202
|
+
:see: https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_eks-readme.html#masters-role
|
|
20449
21203
|
'''
|
|
20450
21204
|
result = self._values.get("output_config_command")
|
|
20451
21205
|
return typing.cast(typing.Optional[builtins.bool], result)
|
|
@@ -20713,7 +21467,25 @@ class ClusterProps(ClusterOptions):
|
|
|
20713
21467
|
return typing.cast(typing.Optional[typing.List[RemotePodNetwork]], result)
|
|
20714
21468
|
|
|
20715
21469
|
@builtins.property
|
|
20716
|
-
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]:
|
|
20717
21489
|
'''KMS secret for envelope encryption for Kubernetes secrets.
|
|
20718
21490
|
|
|
20719
21491
|
:default:
|
|
@@ -20723,7 +21495,7 @@ class ClusterProps(ClusterOptions):
|
|
|
20723
21495
|
using AWS-Managed encryption keys.
|
|
20724
21496
|
'''
|
|
20725
21497
|
result = self._values.get("secrets_encryption_key")
|
|
20726
|
-
return typing.cast(typing.Optional[
|
|
21498
|
+
return typing.cast(typing.Optional[_IKeyRef_d4fc6ef3], result)
|
|
20727
21499
|
|
|
20728
21500
|
@builtins.property
|
|
20729
21501
|
def service_ipv4_cidr(self) -> typing.Optional[builtins.str]:
|
|
@@ -20752,6 +21524,20 @@ class ClusterProps(ClusterOptions):
|
|
|
20752
21524
|
result = self._values.get("bootstrap_cluster_creator_admin_permissions")
|
|
20753
21525
|
return typing.cast(typing.Optional[builtins.bool], result)
|
|
20754
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
|
+
|
|
20755
21541
|
@builtins.property
|
|
20756
21542
|
def default_capacity(self) -> typing.Optional[jsii.Number]:
|
|
20757
21543
|
'''Number of instances to allocate as an initial capacity for this cluster.
|
|
@@ -20833,12 +21619,12 @@ class FargateCluster(
|
|
|
20833
21619
|
|
|
20834
21620
|
Example::
|
|
20835
21621
|
|
|
20836
|
-
from aws_cdk.
|
|
21622
|
+
from aws_cdk.lambda_layer_kubectl_v34 import KubectlV34Layer
|
|
20837
21623
|
|
|
20838
21624
|
|
|
20839
21625
|
cluster = eks.FargateCluster(self, "MyCluster",
|
|
20840
|
-
version=eks.KubernetesVersion.
|
|
20841
|
-
kubectl_layer=
|
|
21626
|
+
version=eks.KubernetesVersion.V1_34,
|
|
21627
|
+
kubectl_layer=KubectlV34Layer(self, "kubectl")
|
|
20842
21628
|
)
|
|
20843
21629
|
'''
|
|
20844
21630
|
|
|
@@ -20867,7 +21653,8 @@ class FargateCluster(
|
|
|
20867
21653
|
prune: typing.Optional[builtins.bool] = None,
|
|
20868
21654
|
remote_node_networks: typing.Optional[typing.Sequence[typing.Union[RemoteNodeNetwork, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
20869
21655
|
remote_pod_networks: typing.Optional[typing.Sequence[typing.Union[RemotePodNetwork, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
20870
|
-
|
|
21656
|
+
removal_policy: typing.Optional[_RemovalPolicy_9f93c814] = None,
|
|
21657
|
+
secrets_encryption_key: typing.Optional[_IKeyRef_d4fc6ef3] = None,
|
|
20871
21658
|
service_ipv4_cidr: typing.Optional[builtins.str] = None,
|
|
20872
21659
|
version: KubernetesVersion,
|
|
20873
21660
|
cluster_name: typing.Optional[builtins.str] = None,
|
|
@@ -20901,12 +21688,13 @@ class FargateCluster(
|
|
|
20901
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
|
|
20902
21689
|
:param remote_node_networks: IPv4 CIDR blocks defining the expected address range of hybrid nodes that will join the cluster. Default: - none
|
|
20903
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.
|
|
20904
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.
|
|
20905
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
|
|
20906
21694
|
:param version: The Kubernetes version to run in the cluster.
|
|
20907
21695
|
:param cluster_name: Name for the cluster. Default: - Automatically generated name
|
|
20908
21696
|
:param output_cluster_name: Determines whether a CloudFormation output with the name of the cluster will be synthesized. Default: false
|
|
20909
|
-
: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
|
|
20910
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
|
|
20911
21699
|
:param security_group: Security Group to use for Control Plane ENIs. Default: - A security group is automatically created
|
|
20912
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``.
|
|
@@ -20937,6 +21725,7 @@ class FargateCluster(
|
|
|
20937
21725
|
prune=prune,
|
|
20938
21726
|
remote_node_networks=remote_node_networks,
|
|
20939
21727
|
remote_pod_networks=remote_pod_networks,
|
|
21728
|
+
removal_policy=removal_policy,
|
|
20940
21729
|
secrets_encryption_key=secrets_encryption_key,
|
|
20941
21730
|
service_ipv4_cidr=service_ipv4_cidr,
|
|
20942
21731
|
version=version,
|
|
@@ -20951,6 +21740,12 @@ class FargateCluster(
|
|
|
20951
21740
|
|
|
20952
21741
|
jsii.create(self.__class__, self, [scope, id, props])
|
|
20953
21742
|
|
|
21743
|
+
@jsii.python.classproperty
|
|
21744
|
+
@jsii.member(jsii_name="PROPERTY_INJECTION_ID")
|
|
21745
|
+
def PROPERTY_INJECTION_ID(cls) -> builtins.str:
|
|
21746
|
+
'''Uniquely identifies this class.'''
|
|
21747
|
+
return typing.cast(builtins.str, jsii.sget(cls, "PROPERTY_INJECTION_ID"))
|
|
21748
|
+
|
|
20954
21749
|
@builtins.property
|
|
20955
21750
|
@jsii.member(jsii_name="defaultProfile")
|
|
20956
21751
|
def default_profile(self) -> FargateProfile:
|
|
@@ -20989,6 +21784,7 @@ class FargateCluster(
|
|
|
20989
21784
|
"prune": "prune",
|
|
20990
21785
|
"remote_node_networks": "remoteNodeNetworks",
|
|
20991
21786
|
"remote_pod_networks": "remotePodNetworks",
|
|
21787
|
+
"removal_policy": "removalPolicy",
|
|
20992
21788
|
"secrets_encryption_key": "secretsEncryptionKey",
|
|
20993
21789
|
"service_ipv4_cidr": "serviceIpv4Cidr",
|
|
20994
21790
|
"default_profile": "defaultProfile",
|
|
@@ -21025,7 +21821,8 @@ class FargateClusterProps(ClusterOptions):
|
|
|
21025
21821
|
prune: typing.Optional[builtins.bool] = None,
|
|
21026
21822
|
remote_node_networks: typing.Optional[typing.Sequence[typing.Union[RemoteNodeNetwork, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
21027
21823
|
remote_pod_networks: typing.Optional[typing.Sequence[typing.Union[RemotePodNetwork, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
21028
|
-
|
|
21824
|
+
removal_policy: typing.Optional[_RemovalPolicy_9f93c814] = None,
|
|
21825
|
+
secrets_encryption_key: typing.Optional[_IKeyRef_d4fc6ef3] = None,
|
|
21029
21826
|
service_ipv4_cidr: typing.Optional[builtins.str] = None,
|
|
21030
21827
|
default_profile: typing.Optional[typing.Union[FargateProfileOptions, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
21031
21828
|
) -> None:
|
|
@@ -21034,7 +21831,7 @@ class FargateClusterProps(ClusterOptions):
|
|
|
21034
21831
|
:param version: The Kubernetes version to run in the cluster.
|
|
21035
21832
|
:param cluster_name: Name for the cluster. Default: - Automatically generated name
|
|
21036
21833
|
:param output_cluster_name: Determines whether a CloudFormation output with the name of the cluster will be synthesized. Default: false
|
|
21037
|
-
: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
|
|
21038
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
|
|
21039
21836
|
:param security_group: Security Group to use for Control Plane ENIs. Default: - A security group is automatically created
|
|
21040
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``.
|
|
@@ -21058,6 +21855,7 @@ class FargateClusterProps(ClusterOptions):
|
|
|
21058
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
|
|
21059
21856
|
:param remote_node_networks: IPv4 CIDR blocks defining the expected address range of hybrid nodes that will join the cluster. Default: - none
|
|
21060
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.
|
|
21061
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.
|
|
21062
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
|
|
21063
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.
|
|
@@ -21066,12 +21864,12 @@ class FargateClusterProps(ClusterOptions):
|
|
|
21066
21864
|
|
|
21067
21865
|
Example::
|
|
21068
21866
|
|
|
21069
|
-
from aws_cdk.
|
|
21867
|
+
from aws_cdk.lambda_layer_kubectl_v34 import KubectlV34Layer
|
|
21070
21868
|
|
|
21071
21869
|
|
|
21072
21870
|
cluster = eks.FargateCluster(self, "MyCluster",
|
|
21073
|
-
version=eks.KubernetesVersion.
|
|
21074
|
-
kubectl_layer=
|
|
21871
|
+
version=eks.KubernetesVersion.V1_34,
|
|
21872
|
+
kubectl_layer=KubectlV34Layer(self, "kubectl")
|
|
21075
21873
|
)
|
|
21076
21874
|
'''
|
|
21077
21875
|
if isinstance(alb_controller, dict):
|
|
@@ -21107,6 +21905,7 @@ class FargateClusterProps(ClusterOptions):
|
|
|
21107
21905
|
check_type(argname="argument prune", value=prune, expected_type=type_hints["prune"])
|
|
21108
21906
|
check_type(argname="argument remote_node_networks", value=remote_node_networks, expected_type=type_hints["remote_node_networks"])
|
|
21109
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"])
|
|
21110
21909
|
check_type(argname="argument secrets_encryption_key", value=secrets_encryption_key, expected_type=type_hints["secrets_encryption_key"])
|
|
21111
21910
|
check_type(argname="argument service_ipv4_cidr", value=service_ipv4_cidr, expected_type=type_hints["service_ipv4_cidr"])
|
|
21112
21911
|
check_type(argname="argument default_profile", value=default_profile, expected_type=type_hints["default_profile"])
|
|
@@ -21164,6 +21963,8 @@ class FargateClusterProps(ClusterOptions):
|
|
|
21164
21963
|
self._values["remote_node_networks"] = remote_node_networks
|
|
21165
21964
|
if remote_pod_networks is not None:
|
|
21166
21965
|
self._values["remote_pod_networks"] = remote_pod_networks
|
|
21966
|
+
if removal_policy is not None:
|
|
21967
|
+
self._values["removal_policy"] = removal_policy
|
|
21167
21968
|
if secrets_encryption_key is not None:
|
|
21168
21969
|
self._values["secrets_encryption_key"] = secrets_encryption_key
|
|
21169
21970
|
if service_ipv4_cidr is not None:
|
|
@@ -21201,9 +22002,13 @@ class FargateClusterProps(ClusterOptions):
|
|
|
21201
22002
|
'''Determines whether a CloudFormation output with the ``aws eks update-kubeconfig`` command will be synthesized.
|
|
21202
22003
|
|
|
21203
22004
|
This command will include
|
|
21204
|
-
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.
|
|
21205
22008
|
|
|
21206
22009
|
:default: true
|
|
22010
|
+
|
|
22011
|
+
:see: https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_eks-readme.html#masters-role
|
|
21207
22012
|
'''
|
|
21208
22013
|
result = self._values.get("output_config_command")
|
|
21209
22014
|
return typing.cast(typing.Optional[builtins.bool], result)
|
|
@@ -21471,7 +22276,25 @@ class FargateClusterProps(ClusterOptions):
|
|
|
21471
22276
|
return typing.cast(typing.Optional[typing.List[RemotePodNetwork]], result)
|
|
21472
22277
|
|
|
21473
22278
|
@builtins.property
|
|
21474
|
-
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]:
|
|
21475
22298
|
'''KMS secret for envelope encryption for Kubernetes secrets.
|
|
21476
22299
|
|
|
21477
22300
|
:default:
|
|
@@ -21481,7 +22304,7 @@ class FargateClusterProps(ClusterOptions):
|
|
|
21481
22304
|
using AWS-Managed encryption keys.
|
|
21482
22305
|
'''
|
|
21483
22306
|
result = self._values.get("secrets_encryption_key")
|
|
21484
|
-
return typing.cast(typing.Optional[
|
|
22307
|
+
return typing.cast(typing.Optional[_IKeyRef_d4fc6ef3], result)
|
|
21485
22308
|
|
|
21486
22309
|
@builtins.property
|
|
21487
22310
|
def service_ipv4_cidr(self) -> typing.Optional[builtins.str]:
|
|
@@ -21766,6 +22589,7 @@ def _typecheckingstub__febc9f6cb4243d885b1b1838be38d633e7c5fc6534eaaf731f00a2465
|
|
|
21766
22589
|
addon_name: builtins.str,
|
|
21767
22590
|
cluster: ICluster,
|
|
21768
22591
|
addon_version: typing.Optional[builtins.str] = None,
|
|
22592
|
+
configuration_values: typing.Optional[typing.Mapping[builtins.str, typing.Any]] = None,
|
|
21769
22593
|
preserve_on_delete: typing.Optional[builtins.bool] = None,
|
|
21770
22594
|
) -> None:
|
|
21771
22595
|
"""Type checking stubs"""
|
|
@@ -22057,6 +22881,7 @@ def _typecheckingstub__45ff0728c7d6fc5f47c97aa791c327f70a32e19bdf463d94d9351053f
|
|
|
22057
22881
|
cluster_name: builtins.str,
|
|
22058
22882
|
addon_version: typing.Optional[builtins.str] = None,
|
|
22059
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,
|
|
22060
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,
|
|
22061
22886
|
preserve_on_delete: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
|
|
22062
22887
|
resolve_conflicts: typing.Optional[builtins.str] = None,
|
|
@@ -22102,6 +22927,12 @@ def _typecheckingstub__f2b158aed78a78d2962c2650df64f6c3880ccb508ebd6b281bda6c1a1
|
|
|
22102
22927
|
"""Type checking stubs"""
|
|
22103
22928
|
pass
|
|
22104
22929
|
|
|
22930
|
+
def _typecheckingstub__039b518895f39f54dce3ea31a35bed66445fb7b5e7f4c52a89adafc86911f331(
|
|
22931
|
+
value: typing.Optional[typing.Union[_IResolvable_da3f097b, CfnAddon.NamespaceConfigProperty]],
|
|
22932
|
+
) -> None:
|
|
22933
|
+
"""Type checking stubs"""
|
|
22934
|
+
pass
|
|
22935
|
+
|
|
22105
22936
|
def _typecheckingstub__04a430658e28600fba10a8c3e5edab2978904829dda6f2c70e9cca8560f7e400(
|
|
22106
22937
|
value: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, CfnAddon.PodIdentityAssociationProperty]]]],
|
|
22107
22938
|
) -> None:
|
|
@@ -22132,6 +22963,13 @@ def _typecheckingstub__61cfcc2cd9aba81e02df7f2a5c976044dc5e5cbf6c05b880c4944cb35
|
|
|
22132
22963
|
"""Type checking stubs"""
|
|
22133
22964
|
pass
|
|
22134
22965
|
|
|
22966
|
+
def _typecheckingstub__c336eaf5f7476c60c3b0b8dc688fc9ea53319525b39f820a30e2510a38e67cbc(
|
|
22967
|
+
*,
|
|
22968
|
+
namespace: builtins.str,
|
|
22969
|
+
) -> None:
|
|
22970
|
+
"""Type checking stubs"""
|
|
22971
|
+
pass
|
|
22972
|
+
|
|
22135
22973
|
def _typecheckingstub__3925c850dd0d0ad3b9faeea87aafbe69220a7bf33d95af5527715674625c9891(
|
|
22136
22974
|
*,
|
|
22137
22975
|
role_arn: builtins.str,
|
|
@@ -22146,6 +22984,7 @@ def _typecheckingstub__484b2779e40e4780cb0940ac7bc9daaf91fa04347613d732138d3be3d
|
|
|
22146
22984
|
cluster_name: builtins.str,
|
|
22147
22985
|
addon_version: typing.Optional[builtins.str] = None,
|
|
22148
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,
|
|
22149
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,
|
|
22150
22989
|
preserve_on_delete: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
|
|
22151
22990
|
resolve_conflicts: typing.Optional[builtins.str] = None,
|
|
@@ -22164,6 +23003,7 @@ def _typecheckingstub__d3e62a858014f3867f3039d1328d57223fb0d16e3fb6d1e2d79279938
|
|
|
22164
23003
|
access_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnCluster.AccessConfigProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
22165
23004
|
bootstrap_self_managed_addons: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
|
|
22166
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,
|
|
22167
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,
|
|
22168
23008
|
force: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
|
|
22169
23009
|
kubernetes_network_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnCluster.KubernetesNetworkConfigProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
@@ -22180,6 +23020,22 @@ def _typecheckingstub__d3e62a858014f3867f3039d1328d57223fb0d16e3fb6d1e2d79279938
|
|
|
22180
23020
|
"""Type checking stubs"""
|
|
22181
23021
|
pass
|
|
22182
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
|
+
|
|
22183
23039
|
def _typecheckingstub__4ce8181eaff5e47deffee284e9005fc3985d7f0cc2ae10f69530ae44c00c9022(
|
|
22184
23040
|
inspector: _TreeInspector_488e0dd5,
|
|
22185
23041
|
) -> None:
|
|
@@ -22222,6 +23078,12 @@ def _typecheckingstub__5d35f88b28db161e1414d604c41ffc1d10fcf76351a0503d110f81158
|
|
|
22222
23078
|
"""Type checking stubs"""
|
|
22223
23079
|
pass
|
|
22224
23080
|
|
|
23081
|
+
def _typecheckingstub__19e2a4eccf6e2e232dc5d0a9572dba914015320e88042ef8f90020cd0d14b037(
|
|
23082
|
+
value: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]],
|
|
23083
|
+
) -> None:
|
|
23084
|
+
"""Type checking stubs"""
|
|
23085
|
+
pass
|
|
23086
|
+
|
|
22225
23087
|
def _typecheckingstub__b161fda542258d1cd8a20fecd3943cacecb658f19ab16b918baf49908459644c(
|
|
22226
23088
|
value: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, CfnCluster.EncryptionConfigProperty]]]],
|
|
22227
23089
|
) -> None:
|
|
@@ -22448,6 +23310,7 @@ def _typecheckingstub__270f142a59c249328ab174c5b0484cfdae6e3110ab52578dbe783d6f8
|
|
|
22448
23310
|
access_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnCluster.AccessConfigProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
22449
23311
|
bootstrap_self_managed_addons: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
|
|
22450
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,
|
|
22451
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,
|
|
22452
23315
|
force: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
|
|
22453
23316
|
kubernetes_network_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnCluster.KubernetesNetworkConfigProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
@@ -22803,9 +23666,24 @@ def _typecheckingstub__e659212680af90c8732b5ec096030b6902f35121f1ca1a82a513ebaa5
|
|
|
22803
23666
|
"""Type checking stubs"""
|
|
22804
23667
|
pass
|
|
22805
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
|
+
|
|
22806
23679
|
def _typecheckingstub__29dbda55ee07f00e62bcfcbc392973b5c2850e347abc3e6692b5d82704d445f0(
|
|
22807
23680
|
*,
|
|
22808
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,
|
|
22809
23687
|
) -> None:
|
|
22810
23688
|
"""Type checking stubs"""
|
|
22811
23689
|
pass
|
|
@@ -22878,7 +23756,9 @@ def _typecheckingstub__be8311b6089cea26f85c63a586f0c5b063230a1b4a96ffcd4c6c983a3
|
|
|
22878
23756
|
namespace: builtins.str,
|
|
22879
23757
|
role_arn: builtins.str,
|
|
22880
23758
|
service_account: builtins.str,
|
|
23759
|
+
disable_session_tags: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
|
|
22881
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,
|
|
22882
23762
|
) -> None:
|
|
22883
23763
|
"""Type checking stubs"""
|
|
22884
23764
|
pass
|
|
@@ -22919,19 +23799,33 @@ def _typecheckingstub__ea3bb34348aff57e29a5352e7460510bda8dd51720dbf7d275297137f
|
|
|
22919
23799
|
"""Type checking stubs"""
|
|
22920
23800
|
pass
|
|
22921
23801
|
|
|
23802
|
+
def _typecheckingstub__cb3dbe4cc3b44e9265bbfe13e41235db909b0c1dc0e052b3bdda07fd4b228e8b(
|
|
23803
|
+
value: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]],
|
|
23804
|
+
) -> None:
|
|
23805
|
+
"""Type checking stubs"""
|
|
23806
|
+
pass
|
|
23807
|
+
|
|
22922
23808
|
def _typecheckingstub__b0e0a0551adefc10761733af04b8c51e7dad6b483be9252882ecff10539c7dcc(
|
|
22923
23809
|
value: typing.Optional[typing.List[_CfnTag_f6864754]],
|
|
22924
23810
|
) -> None:
|
|
22925
23811
|
"""Type checking stubs"""
|
|
22926
23812
|
pass
|
|
22927
23813
|
|
|
23814
|
+
def _typecheckingstub__cb6220c6db8cf93a8a307b1ba0630d6bc64b4a09325e7cfe5854228aa75ff833(
|
|
23815
|
+
value: typing.Optional[builtins.str],
|
|
23816
|
+
) -> None:
|
|
23817
|
+
"""Type checking stubs"""
|
|
23818
|
+
pass
|
|
23819
|
+
|
|
22928
23820
|
def _typecheckingstub__40e8da56b529234cdbb596fa46af952a935adf744e907347861dfc232b89038b(
|
|
22929
23821
|
*,
|
|
22930
23822
|
cluster_name: builtins.str,
|
|
22931
23823
|
namespace: builtins.str,
|
|
22932
23824
|
role_arn: builtins.str,
|
|
22933
23825
|
service_account: builtins.str,
|
|
23826
|
+
disable_session_tags: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
|
|
22934
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,
|
|
22935
23829
|
) -> None:
|
|
22936
23830
|
"""Type checking stubs"""
|
|
22937
23831
|
pass
|
|
@@ -23543,6 +24437,7 @@ def _typecheckingstub__a8342124e215d4789acf852df764143c4809251dbcaa86f6b4a11860e
|
|
|
23543
24437
|
addon_name: builtins.str,
|
|
23544
24438
|
cluster: ICluster,
|
|
23545
24439
|
addon_version: typing.Optional[builtins.str] = None,
|
|
24440
|
+
configuration_values: typing.Optional[typing.Mapping[builtins.str, typing.Any]] = None,
|
|
23546
24441
|
preserve_on_delete: typing.Optional[builtins.bool] = None,
|
|
23547
24442
|
) -> None:
|
|
23548
24443
|
"""Type checking stubs"""
|
|
@@ -23571,6 +24466,7 @@ def _typecheckingstub__786576ad54eacdb9ab8e92277c0fd07f813bc56d4243937f3b5a85c0c
|
|
|
23571
24466
|
id: builtins.str,
|
|
23572
24467
|
*,
|
|
23573
24468
|
bootstrap_cluster_creator_admin_permissions: typing.Optional[builtins.bool] = None,
|
|
24469
|
+
bootstrap_self_managed_addons: typing.Optional[builtins.bool] = None,
|
|
23574
24470
|
default_capacity: typing.Optional[jsii.Number] = None,
|
|
23575
24471
|
default_capacity_instance: typing.Optional[_InstanceType_f64915b9] = None,
|
|
23576
24472
|
default_capacity_type: typing.Optional[DefaultCapacityType] = None,
|
|
@@ -23595,7 +24491,8 @@ def _typecheckingstub__786576ad54eacdb9ab8e92277c0fd07f813bc56d4243937f3b5a85c0c
|
|
|
23595
24491
|
prune: typing.Optional[builtins.bool] = None,
|
|
23596
24492
|
remote_node_networks: typing.Optional[typing.Sequence[typing.Union[RemoteNodeNetwork, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
23597
24493
|
remote_pod_networks: typing.Optional[typing.Sequence[typing.Union[RemotePodNetwork, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
23598
|
-
|
|
24494
|
+
removal_policy: typing.Optional[_RemovalPolicy_9f93c814] = None,
|
|
24495
|
+
secrets_encryption_key: typing.Optional[_IKeyRef_d4fc6ef3] = None,
|
|
23599
24496
|
service_ipv4_cidr: typing.Optional[builtins.str] = None,
|
|
23600
24497
|
version: KubernetesVersion,
|
|
23601
24498
|
cluster_name: typing.Optional[builtins.str] = None,
|
|
@@ -23835,7 +24732,8 @@ def _typecheckingstub__0b45b97fda36b43e872f90f9fe4cde65de855b50b3acfd236c1f400ef
|
|
|
23835
24732
|
prune: typing.Optional[builtins.bool] = None,
|
|
23836
24733
|
remote_node_networks: typing.Optional[typing.Sequence[typing.Union[RemoteNodeNetwork, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
23837
24734
|
remote_pod_networks: typing.Optional[typing.Sequence[typing.Union[RemotePodNetwork, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
23838
|
-
|
|
24735
|
+
removal_policy: typing.Optional[_RemovalPolicy_9f93c814] = None,
|
|
24736
|
+
secrets_encryption_key: typing.Optional[_IKeyRef_d4fc6ef3] = None,
|
|
23839
24737
|
service_ipv4_cidr: typing.Optional[builtins.str] = None,
|
|
23840
24738
|
) -> None:
|
|
23841
24739
|
"""Type checking stubs"""
|
|
@@ -23870,9 +24768,11 @@ def _typecheckingstub__ce7a73a63de29ba5e5b5cd5cabde7aca1c4bc7d119de52fc4c0f11d99
|
|
|
23870
24768
|
prune: typing.Optional[builtins.bool] = None,
|
|
23871
24769
|
remote_node_networks: typing.Optional[typing.Sequence[typing.Union[RemoteNodeNetwork, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
23872
24770
|
remote_pod_networks: typing.Optional[typing.Sequence[typing.Union[RemotePodNetwork, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
23873
|
-
|
|
24771
|
+
removal_policy: typing.Optional[_RemovalPolicy_9f93c814] = None,
|
|
24772
|
+
secrets_encryption_key: typing.Optional[_IKeyRef_d4fc6ef3] = None,
|
|
23874
24773
|
service_ipv4_cidr: typing.Optional[builtins.str] = None,
|
|
23875
24774
|
bootstrap_cluster_creator_admin_permissions: typing.Optional[builtins.bool] = None,
|
|
24775
|
+
bootstrap_self_managed_addons: typing.Optional[builtins.bool] = None,
|
|
23876
24776
|
default_capacity: typing.Optional[jsii.Number] = None,
|
|
23877
24777
|
default_capacity_instance: typing.Optional[_InstanceType_f64915b9] = None,
|
|
23878
24778
|
default_capacity_type: typing.Optional[DefaultCapacityType] = None,
|
|
@@ -23906,7 +24806,8 @@ def _typecheckingstub__ae166d791f5d5176f3386726c22bc44afedf5d336437a3513e3740387
|
|
|
23906
24806
|
prune: typing.Optional[builtins.bool] = None,
|
|
23907
24807
|
remote_node_networks: typing.Optional[typing.Sequence[typing.Union[RemoteNodeNetwork, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
23908
24808
|
remote_pod_networks: typing.Optional[typing.Sequence[typing.Union[RemotePodNetwork, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
23909
|
-
|
|
24809
|
+
removal_policy: typing.Optional[_RemovalPolicy_9f93c814] = None,
|
|
24810
|
+
secrets_encryption_key: typing.Optional[_IKeyRef_d4fc6ef3] = None,
|
|
23910
24811
|
service_ipv4_cidr: typing.Optional[builtins.str] = None,
|
|
23911
24812
|
version: KubernetesVersion,
|
|
23912
24813
|
cluster_name: typing.Optional[builtins.str] = None,
|
|
@@ -23949,7 +24850,8 @@ def _typecheckingstub__f11c7f989209f6213cb855d2846bb0b2b79a6a2b85eb0d65939e981df
|
|
|
23949
24850
|
prune: typing.Optional[builtins.bool] = None,
|
|
23950
24851
|
remote_node_networks: typing.Optional[typing.Sequence[typing.Union[RemoteNodeNetwork, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
23951
24852
|
remote_pod_networks: typing.Optional[typing.Sequence[typing.Union[RemotePodNetwork, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
23952
|
-
|
|
24853
|
+
removal_policy: typing.Optional[_RemovalPolicy_9f93c814] = None,
|
|
24854
|
+
secrets_encryption_key: typing.Optional[_IKeyRef_d4fc6ef3] = None,
|
|
23953
24855
|
service_ipv4_cidr: typing.Optional[builtins.str] = None,
|
|
23954
24856
|
default_profile: typing.Optional[typing.Union[FargateProfileOptions, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
23955
24857
|
) -> None:
|
|
@@ -23963,3 +24865,6 @@ def _typecheckingstub__b393c3f294ed9f8582743840eca786b8cd915c5b4df9d362597e69dbe
|
|
|
23963
24865
|
) -> None:
|
|
23964
24866
|
"""Type checking stubs"""
|
|
23965
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__'])
|