aws-cdk-lib 2.200.2__py3-none-any.whl → 2.224.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of aws-cdk-lib might be problematic. Click here for more details.

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