{ "author": { "name": "Amazon Web Services", "organization": true, "roles": [ "author" ], "url": "https://aws.amazon.com" }, "bundled": { "yaml": "1.10.2" }, "dependencies": { "@aws-cdk/aws-autoscaling": "1.204.0", "@aws-cdk/aws-ec2": "1.204.0", "@aws-cdk/aws-iam": "1.204.0", "@aws-cdk/aws-kms": "1.204.0", "@aws-cdk/aws-lambda": "1.204.0", "@aws-cdk/aws-s3-assets": "1.204.0", "@aws-cdk/aws-ssm": "1.204.0", "@aws-cdk/core": "1.204.0", "@aws-cdk/custom-resources": "1.204.0", "@aws-cdk/lambda-layer-awscli": "1.204.0", "@aws-cdk/lambda-layer-kubectl": "1.204.0", "@aws-cdk/lambda-layer-node-proxy-agent": "1.204.0", "constructs": "^3.3.69" }, "dependencyClosure": { "@aws-cdk/assets": { "targets": { "dotnet": { "iconUrl": "https://raw.githubusercontent.com/aws/aws-cdk/master/logo/default-256-dark.png", "namespace": "Amazon.CDK.Assets", "packageId": "Amazon.CDK.Assets" }, "java": { "maven": { "artifactId": "cdk-assets", "groupId": "software.amazon.awscdk" }, "package": "software.amazon.awscdk.assets" }, "js": { "npm": "@aws-cdk/assets" }, "python": { "classifiers": [ "Framework :: AWS CDK", "Framework :: AWS CDK :: 1" ], "distName": "aws-cdk.assets", "module": "aws_cdk.assets" } } }, "@aws-cdk/aws-acmpca": { "targets": { "dotnet": { "iconUrl": "https://raw.githubusercontent.com/aws/aws-cdk/master/logo/default-256-dark.png", "namespace": "Amazon.CDK.AWS.ACMPCA", "packageId": "Amazon.CDK.AWS.ACMPCA" }, "java": { "maven": { "artifactId": "acmpca", "groupId": "software.amazon.awscdk" }, "package": "software.amazon.awscdk.services.acmpca" }, "js": { "npm": "@aws-cdk/aws-acmpca" }, "python": { "classifiers": [ "Framework :: AWS CDK", "Framework :: AWS CDK :: 1" ], "distName": "aws-cdk.aws-acmpca", "module": "aws_cdk.aws_acmpca" } } }, "@aws-cdk/aws-applicationautoscaling": { "targets": { "dotnet": { "iconUrl": "https://raw.githubusercontent.com/aws/aws-cdk/master/logo/default-256-dark.png", "namespace": "Amazon.CDK.AWS.ApplicationAutoScaling", "packageId": "Amazon.CDK.AWS.ApplicationAutoScaling" }, "java": { "maven": { "artifactId": "applicationautoscaling", "groupId": "software.amazon.awscdk" }, "package": "software.amazon.awscdk.services.applicationautoscaling" }, "js": { "npm": "@aws-cdk/aws-applicationautoscaling" }, "python": { "classifiers": [ "Framework :: AWS CDK", "Framework :: AWS CDK :: 1" ], "distName": "aws-cdk.aws-applicationautoscaling", "module": "aws_cdk.aws_applicationautoscaling" } } }, "@aws-cdk/aws-autoscaling": { "targets": { "dotnet": { "iconUrl": "https://raw.githubusercontent.com/aws/aws-cdk/master/logo/default-256-dark.png", "namespace": "Amazon.CDK.AWS.AutoScaling", "packageId": "Amazon.CDK.AWS.AutoScaling" }, "java": { "maven": { "artifactId": "autoscaling", "groupId": "software.amazon.awscdk" }, "package": "software.amazon.awscdk.services.autoscaling" }, "js": { "npm": "@aws-cdk/aws-autoscaling" }, "python": { "classifiers": [ "Framework :: AWS CDK", "Framework :: AWS CDK :: 1" ], "distName": "aws-cdk.aws-autoscaling", "module": "aws_cdk.aws_autoscaling" } } }, "@aws-cdk/aws-autoscaling-common": { "targets": { "dotnet": { "iconUrl": "https://raw.githubusercontent.com/aws/aws-cdk/master/logo/default-256-dark.png", "namespace": "Amazon.CDK.AWS.AutoScaling.Common", "packageId": "Amazon.CDK.AWS.AutoScaling.Common" }, "java": { "maven": { "artifactId": "autoscaling-common", "groupId": "software.amazon.awscdk" }, "package": "software.amazon.awscdk.services.autoscaling.common" }, "js": { "npm": "@aws-cdk/aws-autoscaling-common" }, "python": { "classifiers": [ "Framework :: AWS CDK", "Framework :: AWS CDK :: 1" ], "distName": "aws-cdk.aws-autoscaling-common", "module": "aws_cdk.aws_autoscaling_common" } } }, "@aws-cdk/aws-certificatemanager": { "targets": { "dotnet": { "iconUrl": "https://raw.githubusercontent.com/aws/aws-cdk/master/logo/default-256-dark.png", "namespace": "Amazon.CDK.AWS.CertificateManager", "packageId": "Amazon.CDK.AWS.CertificateManager" }, "java": { "maven": { "artifactId": "certificatemanager", "groupId": "software.amazon.awscdk" }, "package": "software.amazon.awscdk.services.certificatemanager" }, "js": { "npm": "@aws-cdk/aws-certificatemanager" }, "python": { "classifiers": [ "Framework :: AWS CDK", "Framework :: AWS CDK :: 1" ], "distName": "aws-cdk.aws-certificatemanager", "module": "aws_cdk.aws_certificatemanager" } } }, "@aws-cdk/aws-cloudformation": { "targets": { "dotnet": { "iconUrl": "https://raw.githubusercontent.com/aws/aws-cdk/master/logo/default-256-dark.png", "namespace": "Amazon.CDK.AWS.CloudFormation", "packageId": "Amazon.CDK.AWS.CloudFormation" }, "java": { "maven": { "artifactId": "cloudformation", "groupId": "software.amazon.awscdk" }, "package": "software.amazon.awscdk.services.cloudformation" }, "js": { "npm": "@aws-cdk/aws-cloudformation" }, "python": { "classifiers": [ "Framework :: AWS CDK", "Framework :: AWS CDK :: 1" ], "distName": "aws-cdk.aws-cloudformation", "module": "aws_cdk.aws_cloudformation" } } }, "@aws-cdk/aws-cloudwatch": { "targets": { "dotnet": { "iconUrl": "https://raw.githubusercontent.com/aws/aws-cdk/master/logo/default-256-dark.png", "namespace": "Amazon.CDK.AWS.CloudWatch", "packageId": "Amazon.CDK.AWS.CloudWatch" }, "java": { "maven": { "artifactId": "cloudwatch", "groupId": "software.amazon.awscdk" }, "package": "software.amazon.awscdk.services.cloudwatch" }, "js": { "npm": "@aws-cdk/aws-cloudwatch" }, "python": { "classifiers": [ "Framework :: AWS CDK", "Framework :: AWS CDK :: 1" ], "distName": "aws-cdk.aws-cloudwatch", "module": "aws_cdk.aws_cloudwatch" } } }, "@aws-cdk/aws-codeguruprofiler": { "targets": { "dotnet": { "iconUrl": "https://raw.githubusercontent.com/aws/aws-cdk/master/logo/default-256-dark.png", "namespace": "Amazon.CDK.AWS.CodeGuruProfiler", "packageId": "Amazon.CDK.AWS.CodeGuruProfiler" }, "java": { "maven": { "artifactId": "codeguruprofiler", "groupId": "software.amazon.awscdk" }, "package": "software.amazon.awscdk.services.codeguruprofiler" }, "js": { "npm": "@aws-cdk/aws-codeguruprofiler" }, "python": { "classifiers": [ "Framework :: AWS CDK", "Framework :: AWS CDK :: 1" ], "distName": "aws-cdk.aws-codeguruprofiler", "module": "aws_cdk.aws_codeguruprofiler" } } }, "@aws-cdk/aws-codestarnotifications": { "targets": { "dotnet": { "iconUrl": "https://raw.githubusercontent.com/aws/aws-cdk/master/logo/default-256-dark.png", "namespace": "Amazon.CDK.AWS.CodeStarNotifications", "packageId": "Amazon.CDK.AWS.CodeStarNotifications" }, "java": { "maven": { "artifactId": "codestarnotifications", "groupId": "software.amazon.awscdk" }, "package": "software.amazon.awscdk.services.codestarnotifications" }, "js": { "npm": "@aws-cdk/aws-codestarnotifications" }, "python": { "classifiers": [ "Framework :: AWS CDK", "Framework :: AWS CDK :: 1" ], "distName": "aws-cdk.aws-codestarnotifications", "module": "aws_cdk.aws_codestarnotifications" } } }, "@aws-cdk/aws-ec2": { "targets": { "dotnet": { "iconUrl": "https://raw.githubusercontent.com/aws/aws-cdk/master/logo/default-256-dark.png", "namespace": "Amazon.CDK.AWS.EC2", "packageId": "Amazon.CDK.AWS.EC2" }, "java": { "maven": { "artifactId": "ec2", "groupId": "software.amazon.awscdk" }, "package": "software.amazon.awscdk.services.ec2" }, "js": { "npm": "@aws-cdk/aws-ec2" }, "python": { "classifiers": [ "Framework :: AWS CDK", "Framework :: AWS CDK :: 1" ], "distName": "aws-cdk.aws-ec2", "module": "aws_cdk.aws_ec2" } } }, "@aws-cdk/aws-ecr": { "targets": { "dotnet": { "iconUrl": "https://raw.githubusercontent.com/aws/aws-cdk/master/logo/default-256-dark.png", "namespace": "Amazon.CDK.AWS.ECR", "packageId": "Amazon.CDK.AWS.ECR" }, "java": { "maven": { "artifactId": "ecr", "groupId": "software.amazon.awscdk" }, "package": "software.amazon.awscdk.services.ecr" }, "js": { "npm": "@aws-cdk/aws-ecr" }, "python": { "classifiers": [ "Framework :: AWS CDK", "Framework :: AWS CDK :: 1" ], "distName": "aws-cdk.aws-ecr", "module": "aws_cdk.aws_ecr" } } }, "@aws-cdk/aws-ecr-assets": { "targets": { "dotnet": { "iconUrl": "https://raw.githubusercontent.com/aws/aws-cdk/master/logo/default-256-dark.png", "namespace": "Amazon.CDK.AWS.Ecr.Assets", "packageId": "Amazon.CDK.ECR.Assets" }, "java": { "maven": { "artifactId": "ecr-assets", "groupId": "software.amazon.awscdk" }, "package": "software.amazon.awscdk.services.ecr.assets" }, "js": { "npm": "@aws-cdk/aws-ecr-assets" }, "python": { "classifiers": [ "Framework :: AWS CDK", "Framework :: AWS CDK :: 1" ], "distName": "aws-cdk.aws-ecr-assets", "module": "aws_cdk.aws_ecr_assets" } } }, "@aws-cdk/aws-efs": { "targets": { "dotnet": { "iconUrl": "https://raw.githubusercontent.com/aws/aws-cdk/master/logo/default-256-dark.png", "namespace": "Amazon.CDK.AWS.EFS", "packageId": "Amazon.CDK.AWS.EFS" }, "java": { "maven": { "artifactId": "efs", "groupId": "software.amazon.awscdk" }, "package": "software.amazon.awscdk.services.efs" }, "js": { "npm": "@aws-cdk/aws-efs" }, "python": { "classifiers": [ "Framework :: AWS CDK", "Framework :: AWS CDK :: 1" ], "distName": "aws-cdk.aws-efs", "module": "aws_cdk.aws_efs" } } }, "@aws-cdk/aws-elasticloadbalancing": { "targets": { "dotnet": { "iconUrl": "https://raw.githubusercontent.com/aws/aws-cdk/master/logo/default-256-dark.png", "namespace": "Amazon.CDK.AWS.ElasticLoadBalancing", "packageId": "Amazon.CDK.AWS.ElasticLoadBalancing" }, "java": { "maven": { "artifactId": "elasticloadbalancing", "groupId": "software.amazon.awscdk" }, "package": "software.amazon.awscdk.services.elasticloadbalancing" }, "js": { "npm": "@aws-cdk/aws-elasticloadbalancing" }, "python": { "classifiers": [ "Framework :: AWS CDK", "Framework :: AWS CDK :: 1" ], "distName": "aws-cdk.aws-elasticloadbalancing", "module": "aws_cdk.aws_elasticloadbalancing" } } }, "@aws-cdk/aws-elasticloadbalancingv2": { "targets": { "dotnet": { "iconUrl": "https://raw.githubusercontent.com/aws/aws-cdk/master/logo/default-256-dark.png", "namespace": "Amazon.CDK.AWS.ElasticLoadBalancingV2", "packageId": "Amazon.CDK.AWS.ElasticLoadBalancingV2" }, "java": { "maven": { "artifactId": "elasticloadbalancingv2", "groupId": "software.amazon.awscdk" }, "package": "software.amazon.awscdk.services.elasticloadbalancingv2" }, "js": { "npm": "@aws-cdk/aws-elasticloadbalancingv2" }, "python": { "classifiers": [ "Framework :: AWS CDK", "Framework :: AWS CDK :: 1" ], "distName": "aws-cdk.aws-elasticloadbalancingv2", "module": "aws_cdk.aws_elasticloadbalancingv2" } } }, "@aws-cdk/aws-events": { "targets": { "dotnet": { "iconUrl": "https://raw.githubusercontent.com/aws/aws-cdk/master/logo/default-256-dark.png", "namespace": "Amazon.CDK.AWS.Events", "packageId": "Amazon.CDK.AWS.Events" }, "java": { "maven": { "artifactId": "events", "groupId": "software.amazon.awscdk" }, "package": "software.amazon.awscdk.services.events" }, "js": { "npm": "@aws-cdk/aws-events" }, "python": { "classifiers": [ "Framework :: AWS CDK", "Framework :: AWS CDK :: 1" ], "distName": "aws-cdk.aws-events", "module": "aws_cdk.aws_events" } } }, "@aws-cdk/aws-iam": { "targets": { "dotnet": { "iconUrl": "https://raw.githubusercontent.com/aws/aws-cdk/master/logo/default-256-dark.png", "namespace": "Amazon.CDK.AWS.IAM", "packageId": "Amazon.CDK.AWS.IAM" }, "java": { "maven": { "artifactId": "iam", "groupId": "software.amazon.awscdk" }, "package": "software.amazon.awscdk.services.iam" }, "js": { "npm": "@aws-cdk/aws-iam" }, "python": { "classifiers": [ "Framework :: AWS CDK", "Framework :: AWS CDK :: 1" ], "distName": "aws-cdk.aws-iam", "module": "aws_cdk.aws_iam" } } }, "@aws-cdk/aws-kms": { "targets": { "dotnet": { "iconUrl": "https://raw.githubusercontent.com/aws/aws-cdk/master/logo/default-256-dark.png", "namespace": "Amazon.CDK.AWS.KMS", "packageId": "Amazon.CDK.AWS.KMS" }, "java": { "maven": { "artifactId": "kms", "groupId": "software.amazon.awscdk" }, "package": "software.amazon.awscdk.services.kms" }, "js": { "npm": "@aws-cdk/aws-kms" }, "python": { "classifiers": [ "Framework :: AWS CDK", "Framework :: AWS CDK :: 1" ], "distName": "aws-cdk.aws-kms", "module": "aws_cdk.aws_kms" } } }, "@aws-cdk/aws-lambda": { "targets": { "dotnet": { "iconUrl": "https://raw.githubusercontent.com/aws/aws-cdk/master/logo/default-256-dark.png", "namespace": "Amazon.CDK.AWS.Lambda", "packageId": "Amazon.CDK.AWS.Lambda" }, "java": { "maven": { "artifactId": "lambda", "groupId": "software.amazon.awscdk" }, "package": "software.amazon.awscdk.services.lambda" }, "js": { "npm": "@aws-cdk/aws-lambda" }, "python": { "classifiers": [ "Framework :: AWS CDK", "Framework :: AWS CDK :: 1" ], "distName": "aws-cdk.aws-lambda", "module": "aws_cdk.aws_lambda" } } }, "@aws-cdk/aws-logs": { "targets": { "dotnet": { "iconUrl": "https://raw.githubusercontent.com/aws/aws-cdk/master/logo/default-256-dark.png", "namespace": "Amazon.CDK.AWS.Logs", "packageId": "Amazon.CDK.AWS.Logs" }, "java": { "maven": { "artifactId": "logs", "groupId": "software.amazon.awscdk" }, "package": "software.amazon.awscdk.services.logs" }, "js": { "npm": "@aws-cdk/aws-logs" }, "python": { "classifiers": [ "Framework :: AWS CDK", "Framework :: AWS CDK :: 1" ], "distName": "aws-cdk.aws-logs", "module": "aws_cdk.aws_logs" } } }, "@aws-cdk/aws-route53": { "targets": { "dotnet": { "iconUrl": "https://raw.githubusercontent.com/aws/aws-cdk/master/logo/default-256-dark.png", "namespace": "Amazon.CDK.AWS.Route53", "packageId": "Amazon.CDK.AWS.Route53" }, "java": { "maven": { "artifactId": "route53", "groupId": "software.amazon.awscdk" }, "package": "software.amazon.awscdk.services.route53" }, "js": { "npm": "@aws-cdk/aws-route53" }, "python": { "classifiers": [ "Framework :: AWS CDK", "Framework :: AWS CDK :: 1" ], "distName": "aws-cdk.aws-route53", "module": "aws_cdk.aws_route53" } } }, "@aws-cdk/aws-s3": { "targets": { "dotnet": { "iconUrl": "https://raw.githubusercontent.com/aws/aws-cdk/master/logo/default-256-dark.png", "namespace": "Amazon.CDK.AWS.S3", "packageId": "Amazon.CDK.AWS.S3" }, "java": { "maven": { "artifactId": "s3", "groupId": "software.amazon.awscdk" }, "package": "software.amazon.awscdk.services.s3" }, "js": { "npm": "@aws-cdk/aws-s3" }, "python": { "classifiers": [ "Framework :: AWS CDK", "Framework :: AWS CDK :: 1" ], "distName": "aws-cdk.aws-s3", "module": "aws_cdk.aws_s3" } } }, "@aws-cdk/aws-s3-assets": { "targets": { "dotnet": { "iconUrl": "https://raw.githubusercontent.com/aws/aws-cdk/master/logo/default-256-dark.png", "namespace": "Amazon.CDK.AWS.S3.Assets", "packageId": "Amazon.CDK.AWS.S3.Assets" }, "java": { "maven": { "artifactId": "s3-assets", "groupId": "software.amazon.awscdk" }, "package": "software.amazon.awscdk.services.s3.assets" }, "js": { "npm": "@aws-cdk/aws-s3-assets" }, "python": { "classifiers": [ "Framework :: AWS CDK", "Framework :: AWS CDK :: 1" ], "distName": "aws-cdk.aws-s3-assets", "module": "aws_cdk.aws_s3_assets" } } }, "@aws-cdk/aws-signer": { "targets": { "dotnet": { "iconUrl": "https://raw.githubusercontent.com/aws/aws-cdk/master/logo/default-256-dark.png", "namespace": "Amazon.CDK.AWS.Signer", "packageId": "Amazon.CDK.AWS.Signer" }, "java": { "maven": { "artifactId": "signer", "groupId": "software.amazon.awscdk" }, "package": "software.amazon.awscdk.services.signer" }, "js": { "npm": "@aws-cdk/aws-signer" }, "python": { "classifiers": [ "Framework :: AWS CDK", "Framework :: AWS CDK :: 1" ], "distName": "aws-cdk.aws-signer", "module": "aws_cdk.aws_signer" } } }, "@aws-cdk/aws-sns": { "targets": { "dotnet": { "iconUrl": "https://raw.githubusercontent.com/aws/aws-cdk/master/logo/default-256-dark.png", "namespace": "Amazon.CDK.AWS.SNS", "packageId": "Amazon.CDK.AWS.SNS" }, "java": { "maven": { "artifactId": "sns", "groupId": "software.amazon.awscdk" }, "package": "software.amazon.awscdk.services.sns" }, "js": { "npm": "@aws-cdk/aws-sns" }, "python": { "classifiers": [ "Framework :: AWS CDK", "Framework :: AWS CDK :: 1" ], "distName": "aws-cdk.aws-sns", "module": "aws_cdk.aws_sns" } } }, "@aws-cdk/aws-sqs": { "targets": { "dotnet": { "iconUrl": "https://raw.githubusercontent.com/aws/aws-cdk/master/logo/default-256-dark.png", "namespace": "Amazon.CDK.AWS.SQS", "packageId": "Amazon.CDK.AWS.SQS" }, "java": { "maven": { "artifactId": "sqs", "groupId": "software.amazon.awscdk" }, "package": "software.amazon.awscdk.services.sqs" }, "js": { "npm": "@aws-cdk/aws-sqs" }, "python": { "classifiers": [ "Framework :: AWS CDK", "Framework :: AWS CDK :: 1" ], "distName": "aws-cdk.aws-sqs", "module": "aws_cdk.aws_sqs" } } }, "@aws-cdk/aws-ssm": { "targets": { "dotnet": { "iconUrl": "https://raw.githubusercontent.com/aws/aws-cdk/master/logo/default-256-dark.png", "namespace": "Amazon.CDK.AWS.SSM", "packageId": "Amazon.CDK.AWS.SSM" }, "java": { "maven": { "artifactId": "ssm", "groupId": "software.amazon.awscdk" }, "package": "software.amazon.awscdk.services.ssm" }, "js": { "npm": "@aws-cdk/aws-ssm" }, "python": { "classifiers": [ "Framework :: AWS CDK", "Framework :: AWS CDK :: 1" ], "distName": "aws-cdk.aws-ssm", "module": "aws_cdk.aws_ssm" } } }, "@aws-cdk/cloud-assembly-schema": { "targets": { "dotnet": { "iconUrl": "https://raw.githubusercontent.com/aws/aws-cdk/master/logo/default-256-dark.png", "namespace": "Amazon.CDK.CloudAssembly.Schema", "packageId": "Amazon.CDK.CloudAssembly.Schema" }, "java": { "maven": { "artifactId": "cdk-cloud-assembly-schema", "groupId": "software.amazon.awscdk" }, "package": "software.amazon.awscdk.cloudassembly.schema" }, "js": { "npm": "@aws-cdk/cloud-assembly-schema" }, "python": { "classifiers": [ "Framework :: AWS CDK", "Framework :: AWS CDK :: 1" ], "distName": "aws-cdk.cloud-assembly-schema", "module": "aws_cdk.cloud_assembly_schema" } } }, "@aws-cdk/core": { "targets": { "dotnet": { "iconUrl": "https://raw.githubusercontent.com/aws/aws-cdk/master/logo/default-256-dark.png", "namespace": "Amazon.CDK", "packageId": "Amazon.CDK" }, "java": { "maven": { "artifactId": "core", "groupId": "software.amazon.awscdk" }, "package": "software.amazon.awscdk.core" }, "js": { "npm": "@aws-cdk/core" }, "python": { "classifiers": [ "Framework :: AWS CDK", "Framework :: AWS CDK :: 1" ], "distName": "aws-cdk.core", "module": "aws_cdk.core" } } }, "@aws-cdk/custom-resources": { "targets": { "dotnet": { "iconUrl": "https://raw.githubusercontent.com/aws/aws-cdk/master/logo/default-256-dark.png", "namespace": "Amazon.CDK.CustomResources", "packageId": "Amazon.CDK.AWS.CustomResources" }, "java": { "maven": { "artifactId": "cdk-customresources", "groupId": "software.amazon.awscdk" }, "package": "software.amazon.awscdk.customresources" }, "js": { "npm": "@aws-cdk/custom-resources" }, "python": { "classifiers": [ "Framework :: AWS CDK", "Framework :: AWS CDK :: 1" ], "distName": "aws-cdk.custom-resources", "module": "aws_cdk.custom_resources" } } }, "@aws-cdk/cx-api": { "targets": { "dotnet": { "iconUrl": "https://raw.githubusercontent.com/aws/aws-cdk/master/logo/default-256-dark.png", "namespace": "Amazon.CDK.CXAPI", "packageId": "Amazon.CDK.CXAPI" }, "java": { "maven": { "artifactId": "cdk-cx-api", "groupId": "software.amazon.awscdk" }, "package": "software.amazon.awscdk.cxapi" }, "js": { "npm": "@aws-cdk/cx-api" }, "python": { "classifiers": [ "Framework :: AWS CDK", "Framework :: AWS CDK :: 1" ], "distName": "aws-cdk.cx-api", "module": "aws_cdk.cx_api" } } }, "@aws-cdk/lambda-layer-awscli": { "targets": { "dotnet": { "iconUrl": "https://raw.githubusercontent.com/aws/aws-cdk/master/logo/default-256-dark.png", "namespace": "Amazon.CDK.LambdaLayer.AwsCli", "packageId": "Amazon.CDK.LambdaLayer.AwsCli" }, "java": { "maven": { "artifactId": "cdk-lambda-layer-awscli", "groupId": "software.amazon.awscdk" }, "package": "software.amazon.awscdk.lambdalayer.awscli" }, "js": { "npm": "@aws-cdk/lambda-layer-awscli" }, "python": { "classifiers": [ "Framework :: AWS CDK", "Framework :: AWS CDK :: 1" ], "distName": "aws-cdk.lambda-layer-awscli", "module": "aws_cdk.lambda_layer_awscli" } } }, "@aws-cdk/lambda-layer-kubectl": { "targets": { "dotnet": { "iconUrl": "https://raw.githubusercontent.com/aws/aws-cdk/master/logo/default-256-dark.png", "namespace": "Amazon.CDK.LambdaLayer.Kubectl", "packageId": "Amazon.CDK.LambdaLayer.Kubectl" }, "java": { "maven": { "artifactId": "cdk-lambda-layer-kubectl", "groupId": "software.amazon.awscdk" }, "package": "software.amazon.awscdk.lambdalayer.kubectl" }, "js": { "npm": "@aws-cdk/lambda-layer-kubectl" }, "python": { "classifiers": [ "Framework :: AWS CDK", "Framework :: AWS CDK :: 1" ], "distName": "aws-cdk.lambda-layer-kubectl", "module": "aws_cdk.lambda_layer_kubectl" } } }, "@aws-cdk/lambda-layer-node-proxy-agent": { "targets": { "dotnet": { "iconUrl": "https://raw.githubusercontent.com/aws/aws-cdk/master/logo/default-256-dark.png", "namespace": "Amazon.CDK.LambdaLayer.NodeProxyAgent", "packageId": "Amazon.CDK.LambdaLayer.NodeProxyAgent" }, "java": { "maven": { "artifactId": "cdk-lambda-layer-node-proxy-agent", "groupId": "software.amazon.awscdk" }, "package": "software.amazon.awscdk.lambda.layer.node.proxy.agent" }, "js": { "npm": "@aws-cdk/lambda-layer-node-proxy-agent" }, "python": { "classifiers": [ "Framework :: AWS CDK", "Framework :: AWS CDK :: 1" ], "distName": "aws-cdk.lambda-layer-node-proxy-agent", "module": "aws_cdk.lambda_layer_node_proxy_agent" } } }, "@aws-cdk/region-info": { "targets": { "dotnet": { "iconUrl": "https://raw.githubusercontent.com/aws/aws-cdk/master/logo/default-256-dark.png", "namespace": "Amazon.CDK.RegionInfo", "packageId": "Amazon.CDK.RegionInfo" }, "java": { "maven": { "artifactId": "cdk-region-info", "groupId": "software.amazon.awscdk" }, "package": "software.amazon.awscdk.regioninfo" }, "js": { "npm": "@aws-cdk/region-info" }, "python": { "classifiers": [ "Framework :: AWS CDK", "Framework :: AWS CDK :: 1" ], "distName": "aws-cdk.region-info", "module": "aws_cdk.region_info" } } }, "constructs": { "targets": { "dotnet": { "namespace": "Constructs", "packageId": "Constructs" }, "go": { "moduleName": "github.com/aws/constructs-go" }, "java": { "maven": { "artifactId": "constructs", "groupId": "software.constructs" }, "package": "software.constructs" }, "js": { "npm": "constructs" }, "python": { "distName": "constructs", "module": "constructs" } } } }, "description": "The CDK Construct Library for AWS::EKS", "docs": { "deprecated": "AWS CDK v1 has reached End-of-Support on 2023-06-01.\nThis package is no longer being updated, and users should migrate to AWS CDK v2.\n\nFor more information on how to migrate, see https://docs.aws.amazon.com/cdk/v2/guide/migrating-v2.html", "stability": "stable" }, "homepage": "https://github.com/aws/aws-cdk", "jsiiVersion": "1.84.0 (build 5404dcf)", "keywords": [ "aws", "cdk", "constructs", "eks" ], "license": "Apache-2.0", "metadata": { "jsii": { "compiledWithDeprecationWarnings": true, "pacmak": { "hasDefaultInterfaces": true }, "rosetta": { "strict": true } } }, "name": "@aws-cdk/aws-eks", "readme": { "markdown": "# Amazon EKS Construct Library\n\n\n---\n\n![End-of-Support](https://img.shields.io/badge/End--of--Support-critical.svg?style=for-the-badge)\n\n> AWS CDK v1 has reached End-of-Support on 2023-06-01.\n> This package is no longer being updated, and users should migrate to AWS CDK v2.\n>\n> For more information on how to migrate, see the [_Migrating to AWS CDK v2_ guide][doc].\n>\n> [doc]: https://docs.aws.amazon.com/cdk/v2/guide/migrating-v2.html\n\n---\n\n\n\nThis construct library allows you to define [Amazon Elastic Container Service for Kubernetes (EKS)](https://aws.amazon.com/eks/) clusters.\nIn addition, the library also supports defining Kubernetes resource manifests within EKS clusters.\n\n## Table Of Contents\n\n* [Quick Start](#quick-start)\n* [API Reference](https://docs.aws.amazon.com/cdk/api/latest/docs/aws-eks-readme.html)\n* [Architectural Overview](#architectural-overview)\n* [Provisioning clusters](#provisioning-clusters)\n * [Managed node groups](#managed-node-groups)\n * [Fargate Profiles](#fargate-profiles)\n * [Self-managed nodes](#self-managed-nodes)\n * [Endpoint Access](#endpoint-access)\n * [ALB Controller](#alb-controller)\n * [VPC Support](#vpc-support)\n * [Kubectl Support](#kubectl-support)\n * [ARM64 Support](#arm64-support)\n * [Masters Role](#masters-role)\n * [Encryption](#encryption)\n* [Permissions and Security](#permissions-and-security)\n* [Applying Kubernetes Resources](#applying-kubernetes-resources)\n * [Kubernetes Manifests](#kubernetes-manifests)\n * [Helm Charts](#helm-charts)\n * [CDK8s Charts](#cdk8s-charts)\n* [Patching Kubernetes Resources](#patching-kubernetes-resources)\n* [Querying Kubernetes Resources](#querying-kubernetes-resources)\n* [Using existing clusters](#using-existing-clusters)\n* [Known Issues and Limitations](#known-issues-and-limitations)\n\n## Quick Start\n\nThis example defines an Amazon EKS cluster with the following configuration:\n\n* Dedicated VPC with default configuration (Implicitly created using [ec2.Vpc](https://docs.aws.amazon.com/cdk/api/latest/docs/aws-ec2-readme.html#vpc))\n* A Kubernetes pod with a container based on the [paulbouwer/hello-kubernetes](https://github.com/paulbouwer/hello-kubernetes) image.\n\n```ts\n// provisiong a cluster\nconst cluster = new eks.Cluster(this, 'hello-eks', {\n version: eks.KubernetesVersion.V1_21,\n});\n\n// apply a kubernetes manifest to the cluster\ncluster.addManifest('mypod', {\n apiVersion: 'v1',\n kind: 'Pod',\n metadata: { name: 'mypod' },\n spec: {\n containers: [\n {\n name: 'hello',\n image: 'paulbouwer/hello-kubernetes:1.5',\n ports: [ { containerPort: 8080 } ],\n },\n ],\n },\n});\n```\n\nIn order to interact with your cluster through `kubectl`, you can use the `aws eks update-kubeconfig` [AWS CLI command](https://docs.aws.amazon.com/cli/latest/reference/eks/update-kubeconfig.html)\nto configure your local kubeconfig. The EKS module will define a CloudFormation output in your stack which contains the command to run. For example:\n\n```plaintext\nOutputs:\nClusterConfigCommand43AAE40F = aws eks update-kubeconfig --name cluster-xxxxx --role-arn arn:aws:iam::112233445566:role/yyyyy\n```\n\nExecute the `aws eks update-kubeconfig ...` command in your terminal to create or update a local kubeconfig context:\n\n```console\n$ aws eks update-kubeconfig --name cluster-xxxxx --role-arn arn:aws:iam::112233445566:role/yyyyy\nAdded new context arn:aws:eks:rrrrr:112233445566:cluster/cluster-xxxxx to /home/boom/.kube/config\n```\n\nAnd now you can simply use `kubectl`:\n\n```console\n$ kubectl get all -n kube-system\nNAME READY STATUS RESTARTS AGE\npod/aws-node-fpmwv 1/1 Running 0 21m\npod/aws-node-m9htf 1/1 Running 0 21m\npod/coredns-5cb4fb54c7-q222j 1/1 Running 0 23m\npod/coredns-5cb4fb54c7-v9nxx 1/1 Running 0 23m\n...\n```\n\n## Architectural Overview\n\nThe following is a qualitative diagram of the various possible components involved in the cluster deployment.\n\n```text\n +-----------------------------------------------+ +-----------------+\n | EKS Cluster | kubectl | |\n |-----------------------------------------------|<-------------+| Kubectl Handler |\n | | | |\n | | +-----------------+\n | +--------------------+ +-----------------+ |\n | | | | | |\n | | Managed Node Group | | Fargate Profile | | +-----------------+\n | | | | | | | |\n | +--------------------+ +-----------------+ | | Cluster Handler |\n | | | |\n +-----------------------------------------------+ +-----------------+\n ^ ^ +\n | | |\n | connect self managed capacity | | aws-sdk\n | | create/update/delete |\n + | v\n +--------------------+ + +-------------------+\n | | --------------+| eks.amazonaws.com |\n | Auto Scaling Group | +-------------------+\n | |\n +--------------------+\n```\n\nIn a nutshell:\n\n* `EKS Cluster` - The cluster endpoint created by EKS.\n* `Managed Node Group` - EC2 worker nodes managed by EKS.\n* `Fargate Profile` - Fargate worker nodes managed by EKS.\n* `Auto Scaling Group` - EC2 worker nodes managed by the user.\n* `KubectlHandler` - Lambda function for invoking `kubectl` commands on the cluster - created by CDK.\n* `ClusterHandler` - Lambda function for interacting with EKS API to manage the cluster lifecycle - created by CDK.\n\nA more detailed breakdown of each is provided further down this README.\n\n## Provisioning clusters\n\nCreating a new cluster is done using the `Cluster` or `FargateCluster` constructs. The only required property is the kubernetes `version`.\n\n```ts\nnew eks.Cluster(this, 'HelloEKS', {\n version: eks.KubernetesVersion.V1_21,\n});\n```\n\nYou can also use `FargateCluster` to provision a cluster that uses only fargate workers.\n\n```ts\nnew eks.FargateCluster(this, 'HelloEKS', {\n version: eks.KubernetesVersion.V1_21,\n});\n```\n\n> **NOTE: Only 1 cluster per stack is supported.** If you have a use-case for multiple clusters per stack, or would like to understand more about this limitation, see .\n\nBelow you'll find a few important cluster configuration options. First of which is Capacity.\nCapacity is the amount and the type of worker nodes that are available to the cluster for deploying resources. Amazon EKS offers 3 ways of configuring capacity, which you can combine as you like:\n\n### Managed node groups\n\nAmazon EKS managed node groups automate the provisioning and lifecycle management of nodes (Amazon EC2 instances) for Amazon EKS Kubernetes clusters.\nWith Amazon EKS managed node groups, you don’t need to separately provision or register the Amazon EC2 instances that provide compute capacity to run your Kubernetes applications. You can create, update, or terminate nodes for your cluster with a single operation. Nodes run using the latest Amazon EKS optimized AMIs in your AWS account while node updates and terminations gracefully drain nodes to ensure that your applications stay available.\n\n> For more details visit [Amazon EKS Managed Node Groups](https://docs.aws.amazon.com/eks/latest/userguide/managed-node-groups.html).\n\n**Managed Node Groups are the recommended way to allocate cluster capacity.**\n\nBy default, this library will allocate a managed node group with 2 *m5.large* instances (this instance type suits most common use-cases, and is good value for money).\n\nAt cluster instantiation time, you can customize the number of instances and their type:\n\n```ts\nnew eks.Cluster(this, 'HelloEKS', {\n version: eks.KubernetesVersion.V1_21,\n defaultCapacity: 5,\n defaultCapacityInstance: ec2.InstanceType.of(ec2.InstanceClass.M5, ec2.InstanceSize.SMALL),\n});\n```\n\nTo access the node group that was created on your behalf, you can use `cluster.defaultNodegroup`.\n\nAdditional customizations are available post instantiation. To apply them, set the default capacity to 0, and use the `cluster.addNodegroupCapacity` method:\n\n```ts\nconst cluster = new eks.Cluster(this, 'HelloEKS', {\n version: eks.KubernetesVersion.V1_21,\n defaultCapacity: 0,\n});\n\ncluster.addNodegroupCapacity('custom-node-group', {\n instanceTypes: [new ec2.InstanceType('m5.large')],\n minSize: 4,\n diskSize: 100,\n amiType: eks.NodegroupAmiType.AL2_X86_64_GPU,\n});\n```\n\nTo set node taints, you can set `taints` option.\n\n```ts\ndeclare const cluster: eks.Cluster;\ncluster.addNodegroupCapacity('custom-node-group', {\n instanceTypes: [new ec2.InstanceType('m5.large')],\n taints: [\n {\n effect: eks.TaintEffect.NO_SCHEDULE,\n key: 'foo',\n value: 'bar',\n },\n ],\n});\n```\n\n#### Spot Instances Support\n\nUse `capacityType` to create managed node groups comprised of spot instances. To maximize the availability of your applications while using\nSpot Instances, we recommend that you configure a Spot managed node group to use multiple instance types with the `instanceTypes` property.\n\n> For more details visit [Managed node group capacity types](https://docs.aws.amazon.com/eks/latest/userguide/managed-node-groups.html#managed-node-group-capacity-types).\n\n\n```ts\ndeclare const cluster: eks.Cluster;\ncluster.addNodegroupCapacity('extra-ng-spot', {\n instanceTypes: [\n new ec2.InstanceType('c5.large'),\n new ec2.InstanceType('c5a.large'),\n new ec2.InstanceType('c5d.large'),\n ],\n minSize: 3,\n capacityType: eks.CapacityType.SPOT,\n});\n\n```\n\n#### Launch Template Support\n\nYou can specify a launch template that the node group will use. For example, this can be useful if you want to use\na custom AMI or add custom user data.\n\nWhen supplying a custom user data script, it must be encoded in the MIME multi-part archive format, since Amazon EKS merges with its own user data. Visit the [Launch Template Docs](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html#launch-template-user-data)\nfor mode details.\n\n```ts\ndeclare const cluster: eks.Cluster;\n\nconst userData = `MIME-Version: 1.0\nContent-Type: multipart/mixed; boundary=\"==MYBOUNDARY==\"\n\n--==MYBOUNDARY==\nContent-Type: text/x-shellscript; charset=\"us-ascii\"\n\n#!/bin/bash\necho \"Running custom user data script\"\n\n--==MYBOUNDARY==--\\\\\n`;\nconst lt = new ec2.CfnLaunchTemplate(this, 'LaunchTemplate', {\n launchTemplateData: {\n instanceType: 't3.small',\n userData: Fn.base64(userData),\n },\n});\n\ncluster.addNodegroupCapacity('extra-ng', {\n launchTemplateSpec: {\n id: lt.ref,\n version: lt.attrLatestVersionNumber,\n },\n});\n\n```\n\nNote that when using a custom AMI, Amazon EKS doesn't merge any user data. Which means you do not need the multi-part encoding. and are responsible for supplying the required bootstrap commands for nodes to join the cluster.\nIn the following example, `/ect/eks/bootstrap.sh` from the AMI will be used to bootstrap the node.\n\n```ts\ndeclare const cluster: eks.Cluster;\nconst userData = ec2.UserData.forLinux();\nuserData.addCommands(\n 'set -o xtrace',\n `/etc/eks/bootstrap.sh ${cluster.clusterName}`,\n);\nconst lt = new ec2.CfnLaunchTemplate(this, 'LaunchTemplate', {\n launchTemplateData: {\n imageId: 'some-ami-id', // custom AMI\n instanceType: 't3.small',\n userData: Fn.base64(userData.render()),\n },\n});\ncluster.addNodegroupCapacity('extra-ng', {\n launchTemplateSpec: {\n id: lt.ref,\n version: lt.attrLatestVersionNumber,\n },\n});\n```\n\nYou may specify one `instanceType` in the launch template or multiple `instanceTypes` in the node group, **but not both**.\n\n> For more details visit [Launch Template Support](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html).\n\nGraviton 2 instance types are supported including `c6g`, `m6g`, `r6g` and `t4g`.\n\n### Fargate profiles\n\nAWS Fargate is a technology that provides on-demand, right-sized compute\ncapacity for containers. With AWS Fargate, you no longer have to provision,\nconfigure, or scale groups of virtual machines to run containers. This removes\nthe need to choose server types, decide when to scale your node groups, or\noptimize cluster packing.\n\nYou can control which pods start on Fargate and how they run with Fargate\nProfiles, which are defined as part of your Amazon EKS cluster.\n\nSee [Fargate Considerations](https://docs.aws.amazon.com/eks/latest/userguide/fargate.html#fargate-considerations) in the AWS EKS User Guide.\n\nYou can add Fargate Profiles to any EKS cluster defined in your CDK app\nthrough the `addFargateProfile()` method. The following example adds a profile\nthat will match all pods from the \"default\" namespace:\n\n```ts\ndeclare const cluster: eks.Cluster;\ncluster.addFargateProfile('MyProfile', {\n selectors: [ { namespace: 'default' } ],\n});\n```\n\nYou can also directly use the `FargateProfile` construct to create profiles under different scopes:\n\n```ts\ndeclare const cluster: eks.Cluster;\nnew eks.FargateProfile(this, 'MyProfile', {\n cluster,\n selectors: [ { namespace: 'default' } ],\n});\n```\n\nTo create an EKS cluster that **only** uses Fargate capacity, you can use `FargateCluster`.\nThe 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).\n\n```ts\nconst cluster = new eks.FargateCluster(this, 'MyCluster', {\n version: eks.KubernetesVersion.V1_21,\n});\n```\n\n`FargateCluster` will create a default `FargateProfile` which can be accessed via the cluster's `defaultProfile` property. The created profile can also be customized by passing options as with `addFargateProfile`.\n\n**NOTE**: Classic Load Balancers and Network Load Balancers are not supported on\npods running on Fargate. For ingress, we recommend that you use the [ALB Ingress\nController](https://docs.aws.amazon.com/eks/latest/userguide/alb-ingress.html)\non Amazon EKS (minimum version v1.1.4).\n\n### Self-managed nodes\n\nAnother way of allocating capacity to an EKS cluster is by using self-managed nodes.\nEC2 instances that are part of the auto-scaling group will serve as worker nodes for the cluster.\nThis type of capacity is also commonly referred to as *EC2 Capacity** or *EC2 Nodes*.\n\nFor a detailed overview please visit [Self Managed Nodes](https://docs.aws.amazon.com/eks/latest/userguide/worker.html).\n\nCreating an auto-scaling group and connecting it to the cluster is done using the `cluster.addAutoScalingGroupCapacity` method:\n\n```ts\ndeclare const cluster: eks.Cluster;\ncluster.addAutoScalingGroupCapacity('frontend-nodes', {\n instanceType: new ec2.InstanceType('t2.medium'),\n minCapacity: 3,\n vpcSubnets: { subnetType: ec2.SubnetType.PUBLIC },\n});\n```\n\nTo connect an already initialized auto-scaling group, use the `cluster.connectAutoScalingGroupCapacity()` method:\n\n```ts\ndeclare const cluster: eks.Cluster;\ndeclare const asg: autoscaling.AutoScalingGroup;\ncluster.connectAutoScalingGroupCapacity(asg, {});\n```\n\nTo connect a self-managed node group to an imported cluster, use the `cluster.connectAutoScalingGroupCapacity()` method:\n\n```ts\ndeclare const cluster: eks.Cluster;\ndeclare const asg: autoscaling.AutoScalingGroup;\nconst importedCluster = eks.Cluster.fromClusterAttributes(this, 'ImportedCluster', {\n clusterName: cluster.clusterName,\n clusterSecurityGroupId: cluster.clusterSecurityGroupId,\n});\n\nimportedCluster.connectAutoScalingGroupCapacity(asg, {});\n```\n\nIn both cases, the [cluster security group](https://docs.aws.amazon.com/eks/latest/userguide/sec-group-reqs.html#cluster-sg) will be automatically attached to\nthe auto-scaling group, allowing for traffic to flow freely between managed and self-managed nodes.\n\n> **Note:** The default `updateType` for auto-scaling groups does not replace existing nodes. Since security groups are determined at launch time, self-managed nodes that were provisioned with version `1.78.0` or lower, will not be updated.\n> To apply the new configuration on all your self-managed nodes, you'll need to replace the nodes using the `UpdateType.REPLACING_UPDATE` policy for the [`updateType`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-autoscaling.AutoScalingGroup.html#updatetypespan-classapi-icon-api-icon-deprecated-titlethis-api-element-is-deprecated-its-use-is-not-recommended%EF%B8%8Fspan) property.\n\nYou can customize the [/etc/eks/boostrap.sh](https://github.com/awslabs/amazon-eks-ami/blob/master/files/bootstrap.sh) script, which is responsible\nfor bootstrapping the node to the EKS cluster. For example, you can use `kubeletExtraArgs` to add custom node labels or taints.\n\n```ts\ndeclare const cluster: eks.Cluster;\ncluster.addAutoScalingGroupCapacity('spot', {\n instanceType: new ec2.InstanceType('t3.large'),\n minCapacity: 2,\n bootstrapOptions: {\n kubeletExtraArgs: '--node-labels foo=bar,goo=far',\n awsApiRetryAttempts: 5,\n },\n});\n```\n\nTo disable bootstrapping altogether (i.e. to fully customize user-data), set `bootstrapEnabled` to `false`.\nYou can also configure the cluster to use an auto-scaling group as the default capacity:\n\n```ts\nconst cluster = new eks.Cluster(this, 'HelloEKS', {\n version: eks.KubernetesVersion.V1_21,\n defaultCapacityType: eks.DefaultCapacityType.EC2,\n});\n```\n\nThis will allocate an auto-scaling group with 2 *m5.large* instances (this instance type suits most common use-cases, and is good value for money).\nTo access the `AutoScalingGroup` that was created on your behalf, you can use `cluster.defaultCapacity`.\nYou can also independently create an `AutoScalingGroup` and connect it to the cluster using the `cluster.connectAutoScalingGroupCapacity` method:\n\n```ts\ndeclare const cluster: eks.Cluster;\ndeclare const asg: autoscaling.AutoScalingGroup;\ncluster.connectAutoScalingGroupCapacity(asg, {});\n```\n\nThis will add the necessary user-data to access the apiserver and configure all connections, roles, and tags needed for the instances in the auto-scaling group to properly join the cluster.\n\n#### Spot Instances\n\nWhen using self-managed nodes, you can configure the capacity to use spot instances, greatly reducing capacity cost.\nTo enable spot capacity, use the `spotPrice` property:\n\n```ts\ndeclare const cluster: eks.Cluster;\ncluster.addAutoScalingGroupCapacity('spot', {\n spotPrice: '0.1094',\n instanceType: new ec2.InstanceType('t3.large'),\n maxCapacity: 10,\n});\n```\n\n> Spot instance nodes will be labeled with `lifecycle=Ec2Spot` and tainted with `PreferNoSchedule`.\n\nThe [AWS Node Termination Handler](https://github.com/aws/aws-node-termination-handler) `DaemonSet` will be\ninstalled from [Amazon EKS Helm chart repository](https://github.com/aws/eks-charts/tree/master/stable/aws-node-termination-handler) on these nodes.\nThe termination handler ensures that the Kubernetes control plane responds appropriately to events that\ncan cause your EC2 instance to become unavailable, such as [EC2 maintenance events](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/monitoring-instances-status-check_sched.html)\nand [EC2 Spot interruptions](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-interruptions.html) and helps gracefully stop all pods running on spot nodes that are about to be\nterminated.\n\n> Handler Version: [1.7.0](https://github.com/aws/aws-node-termination-handler/releases/tag/v1.7.0)\n>\n> Chart Version: [0.9.5](https://github.com/aws/eks-charts/blob/v0.0.28/stable/aws-node-termination-handler/Chart.yaml)\n\nTo disable the installation of the termination handler, set the `spotInterruptHandler` property to `false`. This applies both to `addAutoScalingGroupCapacity` and `connectAutoScalingGroupCapacity`.\n\n#### Bottlerocket\n\n[Bottlerocket](https://aws.amazon.com/bottlerocket/) is a Linux-based open-source operating system that is purpose-built by Amazon Web Services for running containers on virtual machines or bare metal hosts.\n\n`Bottlerocket` is supported when using managed nodegroups or self-managed auto-scaling groups.\n\nTo create a Bottlerocket managed nodegroup:\n\n```ts\ndeclare const cluster: eks.Cluster;\ncluster.addNodegroupCapacity('BottlerocketNG', {\n amiType: eks.NodegroupAmiType.BOTTLEROCKET_X86_64,\n});\n```\n\nThe following example will create an auto-scaling group of 2 `t3.small` Linux instances running with the `Bottlerocket` AMI.\n\n```ts\ndeclare const cluster: eks.Cluster;\ncluster.addAutoScalingGroupCapacity('BottlerocketNodes', {\n instanceType: new ec2.InstanceType('t3.small'),\n minCapacity: 2,\n machineImageType: eks.MachineImageType.BOTTLEROCKET,\n});\n```\n\nThe specific Bottlerocket AMI variant will be auto selected according to the k8s version for the `x86_64` architecture.\nFor example, if the Amazon EKS cluster version is `1.17`, the Bottlerocket AMI variant will be auto selected as\n`aws-k8s-1.17` behind the scene.\n\n> See [Variants](https://github.com/bottlerocket-os/bottlerocket/blob/develop/README.md#variants) for more details.\n\nPlease note Bottlerocket does not allow to customize bootstrap options and `bootstrapOptions` properties is not supported when you create the `Bottlerocket` capacity.\n\nFor more details about Bottlerocket, see [Bottlerocket FAQs](https://aws.amazon.com/bottlerocket/faqs/) and [Bottlerocket Open Source Blog](https://aws.amazon.com/blogs/opensource/announcing-the-general-availability-of-bottlerocket-an-open-source-linux-distribution-purpose-built-to-run-containers/).\n\n### Endpoint Access\n\nWhen you create a new cluster, Amazon EKS creates an endpoint for the managed Kubernetes API server that you use to communicate with your cluster (using Kubernetes management tools such as `kubectl`)\n\nBy default, this API server endpoint is public to the internet, and access to the API server is secured using a combination of\nAWS Identity and Access Management (IAM) and native Kubernetes [Role Based Access Control](https://kubernetes.io/docs/reference/access-authn-authz/rbac/) (RBAC).\n\nYou can configure the [cluster endpoint access](https://docs.aws.amazon.com/eks/latest/userguide/cluster-endpoint.html) by using the `endpointAccess` property:\n\n```ts\nconst cluster = new eks.Cluster(this, 'hello-eks', {\n version: eks.KubernetesVersion.V1_21,\n endpointAccess: eks.EndpointAccess.PRIVATE, // No access outside of your VPC.\n});\n```\n\nThe default value is `eks.EndpointAccess.PUBLIC_AND_PRIVATE`. Which means the cluster endpoint is accessible from outside of your VPC, but worker node traffic and `kubectl` commands issued by this library stay within your VPC.\n\n### Alb Controller\n\nSome Kubernetes resources are commonly implemented on AWS with the help of the [ALB Controller](https://kubernetes-sigs.github.io/aws-load-balancer-controller/v2.3/).\n\nFrom the docs:\n\n> AWS Load Balancer Controller is a controller to help manage Elastic Load Balancers for a Kubernetes cluster.\n>\n> * It satisfies Kubernetes Ingress resources by provisioning Application Load Balancers.\n> * It satisfies Kubernetes Service resources by provisioning Network Load Balancers.\n\nTo deploy the controller on your EKS cluster, configure the `albController` property:\n\n```ts\nnew eks.Cluster(this, 'HelloEKS', {\n version: eks.KubernetesVersion.V1_21,\n albController: {\n version: eks.AlbControllerVersion.V2_4_1,\n },\n});\n```\n\nQuerying the controller pods should look something like this:\n\n```console\n❯ kubectl get pods -n kube-system\nNAME READY STATUS RESTARTS AGE\naws-load-balancer-controller-76bd6c7586-d929p 1/1 Running 0 109m\naws-load-balancer-controller-76bd6c7586-fqxph 1/1 Running 0 109m\n...\n...\n```\n\nEvery Kubernetes manifest that utilizes the ALB Controller is effectively dependant on the controller.\nIf the controller is deleted before the manifest, it might result in dangling ELB/ALB resources.\nCurrently, the EKS construct library does not detect such dependencies, and they should be done explicitly.\n\nFor example:\n\n```ts\ndeclare const cluster: eks.Cluster;\nconst manifest = cluster.addManifest('manifest', {/* ... */});\nif (cluster.albController) {\n manifest.node.addDependency(cluster.albController);\n}\n```\n\n### VPC Support\n\nYou can specify the VPC of the cluster using the `vpc` and `vpcSubnets` properties:\n\n```ts\ndeclare const vpc: ec2.Vpc;\n\nnew eks.Cluster(this, 'HelloEKS', {\n version: eks.KubernetesVersion.V1_21,\n vpc,\n vpcSubnets: [{ subnetType: ec2.SubnetType.PRIVATE_WITH_NAT }],\n});\n```\n\n> Note: Isolated VPCs (i.e with no internet access) are not currently supported. See https://github.com/aws/aws-cdk/issues/12171\n\nIf you do not specify a VPC, one will be created on your behalf, which you can then access via `cluster.vpc`. The cluster VPC will be associated to any EKS managed capacity (i.e Managed Node Groups and Fargate Profiles).\n\nPlease note that the `vpcSubnets` property defines the subnets where EKS will place the _control plane_ ENIs. To choose\nthe subnets where EKS will place the worker nodes, please refer to the **Provisioning clusters** section above.\n\nIf you allocate self managed capacity, you can specify which subnets should the auto-scaling group use:\n\n```ts\ndeclare const vpc: ec2.Vpc;\ndeclare const cluster: eks.Cluster;\ncluster.addAutoScalingGroupCapacity('nodes', {\n vpcSubnets: { subnets: vpc.privateSubnets },\n instanceType: new ec2.InstanceType('t2.medium'),\n});\n```\n\nThere are two additional components you might want to provision within the VPC.\n\n#### Kubectl Handler\n\nThe `KubectlHandler` is a Lambda function responsible to issuing `kubectl` and `helm` commands against the cluster when you add resource manifests to the cluster.\n\nThe handler association to the VPC is derived from the `endpointAccess` configuration. The rule of thumb is: *If the cluster VPC can be associated, it will be*.\n\nBreaking this down, it means that if the endpoint exposes private access (via `EndpointAccess.PRIVATE` or `EndpointAccess.PUBLIC_AND_PRIVATE`), and the VPC contains **private** subnets, the Lambda function will be provisioned inside the VPC and use the private subnets to interact with the cluster. This is the common use-case.\n\nIf the endpoint does not expose private access (via `EndpointAccess.PUBLIC`) **or** the VPC does not contain private subnets, the function will not be provisioned within the VPC.\n\nIf your use-case requires control over the IAM role that the KubeCtl Handler assumes, a custom role can be passed through the ClusterProps (as `kubectlLambdaRole`) of the EKS Cluster construct.\n\n#### Cluster Handler\n\nThe `ClusterHandler` is a set of Lambda functions (`onEventHandler`, `isCompleteHandler`) responsible for interacting with the EKS API in order to control the cluster lifecycle. To provision these functions inside the VPC, set the `placeClusterHandlerInVpc` property to `true`. This will place the functions inside the private subnets of the VPC based on the selection strategy specified in the [`vpcSubnets`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-eks.Cluster.html#vpcsubnetsspan-classapi-icon-api-icon-experimental-titlethis-api-element-is-experimental-it-may-change-without-noticespan) property.\n\nYou 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:\n\n```ts\ndeclare const proxyInstanceSecurityGroup: ec2.SecurityGroup;\nconst cluster = new eks.Cluster(this, 'hello-eks', {\n version: eks.KubernetesVersion.V1_21,\n clusterHandlerEnvironment: {\n https_proxy: 'http://proxy.myproxy.com',\n },\n /**\n * If the proxy is not open publicly, you can pass a security group to the\n * Cluster Handler Lambdas so that it can reach the proxy.\n */\n clusterHandlerSecurityGroup: proxyInstanceSecurityGroup,\n});\n```\n\n### Kubectl Support\n\nThe resources are created in the cluster by running `kubectl apply` from a python lambda function.\n\nBy default, CDK will create a new python lambda function to apply your k8s manifests. If you want to use an existing kubectl provider function, for example with tight trusted entities on your IAM Roles - you can import the existing provider and then use the imported provider when importing the cluster:\n\n```ts\nconst handlerRole = iam.Role.fromRoleArn(this, 'HandlerRole', 'arn:aws:iam::123456789012:role/lambda-role');\nconst kubectlProvider = eks.KubectlProvider.fromKubectlProviderAttributes(this, 'KubectlProvider', {\n functionArn: 'arn:aws:lambda:us-east-2:123456789012:function:my-function:1',\n kubectlRoleArn: 'arn:aws:iam::123456789012:role/kubectl-role',\n handlerRole,\n});\n\nconst cluster = eks.Cluster.fromClusterAttributes(this, 'Cluster', {\n clusterName: 'cluster',\n kubectlProvider,\n});\n```\n\n#### Environment\n\nYou 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:\n\n```ts\nconst cluster = new eks.Cluster(this, 'hello-eks', {\n version: eks.KubernetesVersion.V1_21,\n kubectlEnvironment: {\n 'http_proxy': 'http://proxy.myproxy.com',\n },\n});\n```\n\n#### Runtime\n\nThe kubectl handler uses `kubectl`, `helm` and the `aws` CLI in order to\ninteract with the cluster. These are bundled into AWS Lambda layers included in\nthe `@aws-cdk/lambda-layer-awscli` and `@aws-cdk/lambda-layer-kubectl` modules.\n\nYou can specify a custom `lambda.LayerVersion` if you wish to use a different\nversion of these tools. The handler expects the layer to include the following\nthree executables:\n\n```text\nhelm/helm\nkubectl/kubectl\nawscli/aws\n```\n\nSee more information in the\n[Dockerfile](https://github.com/aws/aws-cdk/tree/master/packages/%40aws-cdk/lambda-layer-awscli/layer) for @aws-cdk/lambda-layer-awscli\nand the\n[Dockerfile](https://github.com/aws/aws-cdk/tree/master/packages/%40aws-cdk/lambda-layer-kubectl/layer) for @aws-cdk/lambda-layer-kubectl.\n\n```ts\nconst layer = new lambda.LayerVersion(this, 'KubectlLayer', {\n code: lambda.Code.fromAsset('layer.zip'),\n});\n```\n\nNow specify when the cluster is defined:\n\n```ts\ndeclare const layer: lambda.LayerVersion;\ndeclare const vpc: ec2.Vpc;\n\nconst cluster1 = new eks.Cluster(this, 'MyCluster', {\n kubectlLayer: layer,\n vpc,\n clusterName: 'cluster-name',\n version: eks.KubernetesVersion.V1_21,\n});\n\n// or\nconst cluster2 = eks.Cluster.fromClusterAttributes(this, 'MyCluster', {\n kubectlLayer: layer,\n vpc,\n clusterName: 'cluster-name',\n});\n```\n\n#### Memory\n\nBy 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:\n\n```ts\nnew eks.Cluster(this, 'MyCluster', {\n kubectlMemory: Size.gibibytes(4),\n version: eks.KubernetesVersion.V1_21,\n});\n\n// or\ndeclare const vpc: ec2.Vpc;\neks.Cluster.fromClusterAttributes(this, 'MyCluster', {\n kubectlMemory: Size.gibibytes(4),\n vpc,\n clusterName: 'cluster-name',\n});\n```\n\n### ARM64 Support\n\nInstance types with `ARM64` architecture are supported in both managed nodegroup and self-managed capacity. Simply specify an ARM64 `instanceType` (such as `m6g.medium`), and the latest\nAmazon Linux 2 AMI for ARM64 will be automatically selected.\n\n```ts\ndeclare const cluster: eks.Cluster;\n// add a managed ARM64 nodegroup\ncluster.addNodegroupCapacity('extra-ng-arm', {\n instanceTypes: [new ec2.InstanceType('m6g.medium')],\n minSize: 2,\n});\n\n// add a self-managed ARM64 nodegroup\ncluster.addAutoScalingGroupCapacity('self-ng-arm', {\n instanceType: new ec2.InstanceType('m6g.medium'),\n minCapacity: 2,\n})\n```\n\n### Masters Role\n\nWhen 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.\n\n```ts\ndeclare const role: iam.Role;\nnew eks.Cluster(this, 'HelloEKS', {\n version: eks.KubernetesVersion.V1_21,\n mastersRole: role,\n});\n```\n\nIf you do not specify it, a default role will be created on your behalf, that can be assumed by anyone in the account with `sts:AssumeRole` permissions for this role.\n\nThis is the role you see as part of the stack outputs mentioned in the [Quick Start](#quick-start).\n\n```console\n$ aws eks update-kubeconfig --name cluster-xxxxx --role-arn arn:aws:iam::112233445566:role/yyyyy\nAdded new context arn:aws:eks:rrrrr:112233445566:cluster/cluster-xxxxx to /home/boom/.kube/config\n```\n\n### Encryption\n\nWhen you create an Amazon EKS cluster, envelope encryption of Kubernetes secrets using the AWS Key Management Service (AWS KMS) can be enabled.\nThe documentation on [creating a cluster](https://docs.aws.amazon.com/eks/latest/userguide/create-cluster.html)\ncan provide more details about the customer master key (CMK) that can be used for the encryption.\n\nYou can use the `secretsEncryptionKey` to configure which key the cluster will use to encrypt Kubernetes secrets. By default, an AWS Managed key will be used.\n\n> This setting can only be specified when the cluster is created and cannot be updated.\n\n```ts\nconst secretsKey = new kms.Key(this, 'SecretsKey');\nconst cluster = new eks.Cluster(this, 'MyCluster', {\n secretsEncryptionKey: secretsKey,\n version: eks.KubernetesVersion.V1_21,\n});\n```\n\nYou can also use a similar configuration for running a cluster built using the FargateCluster construct.\n\n```ts\nconst secretsKey = new kms.Key(this, 'SecretsKey');\nconst cluster = new eks.FargateCluster(this, 'MyFargateCluster', {\n secretsEncryptionKey: secretsKey,\n version: eks.KubernetesVersion.V1_21,\n});\n```\n\nThe Amazon Resource Name (ARN) for that CMK can be retrieved.\n\n```ts\ndeclare const cluster: eks.Cluster;\nconst clusterEncryptionConfigKeyArn = cluster.clusterEncryptionConfigKeyArn;\n```\n\n## Permissions and Security\n\nAmazon EKS provides several mechanism of securing the cluster and granting permissions to specific IAM users and roles.\n\n### AWS IAM Mapping\n\nAs described in the [Amazon EKS User Guide](https://docs.aws.amazon.com/en_us/eks/latest/userguide/add-user-role.html), you can map AWS IAM users and roles to [Kubernetes Role-based access control (RBAC)](https://kubernetes.io/docs/reference/access-authn-authz/rbac).\n\nThe Amazon EKS construct manages the *aws-auth* `ConfigMap` Kubernetes resource on your behalf and exposes an API through the `cluster.awsAuth` for mapping\nusers, roles and accounts.\n\nFurthermore, when auto-scaling group capacity is added to the cluster, the IAM instance role of the auto-scaling group will be automatically mapped to RBAC so nodes can connect to the cluster. No manual mapping is required.\n\nFor example, let's say you want to grant an IAM user administrative privileges on your cluster:\n\n```ts\ndeclare const cluster: eks.Cluster;\nconst adminUser = new iam.User(this, 'Admin');\ncluster.awsAuth.addUserMapping(adminUser, { groups: [ 'system:masters' ]});\n```\n\nA convenience method for mapping a role to the `system:masters` group is also available:\n\n```ts\ndeclare const cluster: eks.Cluster;\ndeclare const role: iam.Role;\ncluster.awsAuth.addMastersRole(role);\n```\n\n### Cluster Security Group\n\nWhen you create an Amazon EKS cluster, a [cluster security group](https://docs.aws.amazon.com/eks/latest/userguide/sec-group-reqs.html)\nis automatically created as well. This security group is designed to allow all traffic from the control plane and managed node groups to flow freely\nbetween each other.\n\nThe ID for that security group can be retrieved after creating the cluster.\n\n```ts\ndeclare const cluster: eks.Cluster;\nconst clusterSecurityGroupId = cluster.clusterSecurityGroupId;\n```\n\n### Node SSH Access\n\nIf you want to be able to SSH into your worker nodes, you must already have an SSH key in the region you're connecting to and pass it when\nyou add capacity to the cluster. You must also be able to connect to the hosts (meaning they must have a public IP and you\nshould be allowed to connect to them on port 22):\n\nSee [SSH into nodes](test/example.ssh-into-nodes.lit.ts) for a code example.\n\nIf you want to SSH into nodes in a private subnet, you should set up a bastion host in a public subnet. That setup is recommended, but is\nunfortunately beyond the scope of this documentation.\n\n### Service Accounts\n\nWith services account you can provide Kubernetes Pods access to AWS resources.\n\n```ts\ndeclare const cluster: eks.Cluster;\n// add service account\nconst serviceAccount = cluster.addServiceAccount('MyServiceAccount');\n\nconst bucket = new s3.Bucket(this, 'Bucket');\nbucket.grantReadWrite(serviceAccount);\n\nconst mypod = cluster.addManifest('mypod', {\n apiVersion: 'v1',\n kind: 'Pod',\n metadata: { name: 'mypod' },\n spec: {\n serviceAccountName: serviceAccount.serviceAccountName,\n containers: [\n {\n name: 'hello',\n image: 'paulbouwer/hello-kubernetes:1.5',\n ports: [ { containerPort: 8080 } ],\n },\n ],\n },\n});\n\n// create the resource after the service account.\nmypod.node.addDependency(serviceAccount);\n\n// print the IAM role arn for this service account\nnew CfnOutput(this, 'ServiceAccountIamRole', { value: serviceAccount.role.roleArn });\n```\n\nNote that using `serviceAccount.serviceAccountName` above **does not** translate into a resource dependency.\nThis is why an explicit dependency is needed. See for more details.\n\nIt is possible to pass annotations and labels to the service account.\n\n```ts\ndeclare const cluster: eks.Cluster;\n// add service account with annotations and labels\nconst serviceAccount = cluster.addServiceAccount('MyServiceAccount', {\n annotations: {\n 'eks.amazonaws.com/sts-regional-endpoints': 'false',\n },\n labels: {\n 'some-label': 'with-some-value',\n },\n});\n```\n\nYou can also add service accounts to existing clusters.\nTo do so, pass the `openIdConnectProvider` property when you import the cluster into the application.\n\n```ts\n// you can import an existing provider\nconst provider = eks.OpenIdConnectProvider.fromOpenIdConnectProviderArn(this, 'Provider', 'arn:aws:iam::123456:oidc-provider/oidc.eks.eu-west-1.amazonaws.com/id/AB123456ABC');\n\n// or create a new one using an existing issuer url\ndeclare const issuerUrl: string;\nconst provider2 = new eks.OpenIdConnectProvider(this, 'Provider', {\n url: issuerUrl,\n});\n\nconst cluster = eks.Cluster.fromClusterAttributes(this, 'MyCluster', {\n clusterName: 'Cluster',\n openIdConnectProvider: provider,\n kubectlRoleArn: 'arn:aws:iam::123456:role/service-role/k8sservicerole',\n});\n\nconst serviceAccount = cluster.addServiceAccount('MyServiceAccount');\n\nconst bucket = new s3.Bucket(this, 'Bucket');\nbucket.grantReadWrite(serviceAccount);\n```\n\nNote that adding service accounts requires running `kubectl` commands against the cluster.\nThis means you must also pass the `kubectlRoleArn` when importing the cluster.\nSee [Using existing Clusters](https://github.com/aws/aws-cdk/tree/master/packages/@aws-cdk/aws-eks#using-existing-clusters).\n\n## Applying Kubernetes Resources\n\nThe library supports several popular resource deployment mechanisms, among which are:\n\n### Kubernetes Manifests\n\nThe `KubernetesManifest` construct or `cluster.addManifest` method can be used\nto apply Kubernetes resource manifests to this cluster.\n\n> When using `cluster.addManifest`, the manifest construct is defined within the cluster's stack scope. If the manifest contains\n> attributes from a different stack which depend on the cluster stack, a circular dependency will be created and you will get a synth time error.\n> To avoid this, directly use `new KubernetesManifest` to create the manifest in the scope of the other stack.\n\nThe following examples will deploy the [paulbouwer/hello-kubernetes](https://github.com/paulbouwer/hello-kubernetes)\nservice on the cluster:\n\n```ts\ndeclare const cluster: eks.Cluster;\nconst appLabel = { app: \"hello-kubernetes\" };\n\nconst deployment = {\n apiVersion: \"apps/v1\",\n kind: \"Deployment\",\n metadata: { name: \"hello-kubernetes\" },\n spec: {\n replicas: 3,\n selector: { matchLabels: appLabel },\n template: {\n metadata: { labels: appLabel },\n spec: {\n containers: [\n {\n name: \"hello-kubernetes\",\n image: \"paulbouwer/hello-kubernetes:1.5\",\n ports: [ { containerPort: 8080 } ],\n },\n ],\n },\n },\n },\n};\n\nconst service = {\n apiVersion: \"v1\",\n kind: \"Service\",\n metadata: { name: \"hello-kubernetes\" },\n spec: {\n type: \"LoadBalancer\",\n ports: [ { port: 80, targetPort: 8080 } ],\n selector: appLabel,\n }\n};\n\n// option 1: use a construct\nnew eks.KubernetesManifest(this, 'hello-kub', {\n cluster,\n manifest: [ deployment, service ],\n});\n\n// or, option2: use `addManifest`\ncluster.addManifest('hello-kub', service, deployment);\n```\n\n#### ALB Controller Integration\n\nThe `KubernetesManifest` construct can detect ingress resources inside your manifest and automatically add the necessary annotations\nso they are picked up by the ALB Controller.\n\n> See [Alb Controller](#alb-controller)\n\nTo that end, it offers the following properties:\n\n* `ingressAlb` - Signal that the ingress detection should be done.\n* `ingressAlbScheme` - Which ALB scheme should be applied. Defaults to `internal`.\n\n#### Adding resources from a URL\n\nThe following example will deploy the resource manifest hosting on remote server:\n\n```text\n// This example is only available in TypeScript\n\nimport * as yaml from 'js-yaml';\nimport * as request from 'sync-request';\n\ndeclare const cluster: eks.Cluster;\nconst manifestUrl = 'https://url/of/manifest.yaml';\nconst manifest = yaml.safeLoadAll(request('GET', manifestUrl).getBody());\ncluster.addManifest('my-resource', manifest);\n```\n\n#### Dependencies\n\nThere are cases where Kubernetes resources must be deployed in a specific order.\nFor example, you cannot define a resource in a Kubernetes namespace before the\nnamespace was created.\n\nYou can represent dependencies between `KubernetesManifest`s using\n`resource.node.addDependency()`:\n\n```ts\ndeclare const cluster: eks.Cluster;\nconst namespace = cluster.addManifest('my-namespace', {\n apiVersion: 'v1',\n kind: 'Namespace',\n metadata: { name: 'my-app' },\n});\n\nconst service = cluster.addManifest('my-service', {\n metadata: {\n name: 'myservice',\n namespace: 'my-app',\n },\n spec: { }, // ...\n});\n\nservice.node.addDependency(namespace); // will apply `my-namespace` before `my-service`.\n```\n\n**NOTE:** when a `KubernetesManifest` includes multiple resources (either directly\nor through `cluster.addManifest()`) (e.g. `cluster.addManifest('foo', r1, r2,\nr3,...)`), these resources will be applied as a single manifest via `kubectl`\nand will be applied sequentially (the standard behavior in `kubectl`).\n\n---\n\nSince Kubernetes manifests are implemented as CloudFormation resources in the\nCDK. This means that if the manifest is deleted from your code (or the stack is\ndeleted), the next `cdk deploy` will issue a `kubectl delete` command and the\nKubernetes resources in that manifest will be deleted.\n\n#### Resource Pruning\n\nWhen a resource is deleted from a Kubernetes manifest, the EKS module will\nautomatically delete these resources by injecting a _prune label_ to all\nmanifest resources. This label is then passed to [`kubectl apply --prune`].\n\n[`kubectl apply --prune`]: https://kubernetes.io/docs/tasks/manage-kubernetes-objects/declarative-config/#alternative-kubectl-apply-f-directory-prune-l-your-label\n\nPruning is enabled by default but can be disabled through the `prune` option\nwhen a cluster is defined:\n\n```ts\nnew eks.Cluster(this, 'MyCluster', {\n version: eks.KubernetesVersion.V1_21,\n prune: false,\n});\n```\n\n#### Manifests Validation\n\nThe `kubectl` CLI supports applying a manifest by skipping the validation.\nThis can be accomplished by setting the `skipValidation` flag to `true` in the `KubernetesManifest` props.\n\n```ts\ndeclare const cluster: eks.Cluster;\nnew eks.KubernetesManifest(this, 'HelloAppWithoutValidation', {\n cluster,\n manifest: [{ foo: 'bar' }],\n skipValidation: true,\n});\n```\n\n### Helm Charts\n\nThe `HelmChart` construct or `cluster.addHelmChart` method can be used\nto add Kubernetes resources to this cluster using Helm.\n\n> When using `cluster.addHelmChart`, the manifest construct is defined within the cluster's stack scope. If the manifest contains\n> attributes from a different stack which depend on the cluster stack, a circular dependency will be created and you will get a synth time error.\n> To avoid this, directly use `new HelmChart` to create the chart in the scope of the other stack.\n\nThe following example will install the [NGINX Ingress Controller](https://kubernetes.github.io/ingress-nginx/) to your cluster using Helm.\n\n```ts\ndeclare const cluster: eks.Cluster;\n// option 1: use a construct\nnew eks.HelmChart(this, 'NginxIngress', {\n cluster,\n chart: 'nginx-ingress',\n repository: 'https://helm.nginx.com/stable',\n namespace: 'kube-system',\n});\n\n// or, option2: use `addHelmChart`\ncluster.addHelmChart('NginxIngress', {\n chart: 'nginx-ingress',\n repository: 'https://helm.nginx.com/stable',\n namespace: 'kube-system',\n});\n```\n\nHelm charts will be installed and updated using `helm upgrade --install`, where a few parameters\nare being passed down (such as `repo`, `values`, `version`, `namespace`, `wait`, `timeout`, etc).\nThis means that if the chart is added to CDK with the same release name, it will try to update\nthe chart in the cluster.\n\nAdditionally, the `chartAsset` property can be an `aws-s3-assets.Asset`. This allows the use of local, private helm charts.\n\n```ts\nimport * as s3Assets from '@aws-cdk/aws-s3-assets';\n\ndeclare const cluster: eks.Cluster;\nconst chartAsset = new s3Assets.Asset(this, 'ChartAsset', {\n path: '/path/to/asset'\n});\n\ncluster.addHelmChart('test-chart', {\n chartAsset: chartAsset,\n});\n```\n\n### OCI Charts\n\nOCI charts are also supported.\nAlso replace the `${VARS}` with appropriate values.\n\n```ts\ndeclare const cluster: eks.Cluster;\n// option 1: use a construct\nnew eks.HelmChart(this, 'MyOCIChart', {\n cluster,\n chart: 'some-chart',\n repository: 'oci://${ACCOUNT_ID}.dkr.ecr.${ACCOUNT_REGION}.amazonaws.com/${REPO_NAME}',\n namespace: 'oci',\n version: '0.0.1'\n});\n\n```\n\nHelm charts are implemented as CloudFormation resources in CDK.\nThis means that if the chart is deleted from your code (or the stack is\ndeleted), the next `cdk deploy` will issue a `helm uninstall` command and the\nHelm chart will be deleted.\n\nWhen there is no `release` defined, a unique ID will be allocated for the release based\non the construct path.\n\nBy default, all Helm charts will be installed concurrently. In some cases, this\ncould cause race conditions where two Helm charts attempt to deploy the same\nresource or if Helm charts depend on each other. You can use\n`chart.node.addDependency()` in order to declare a dependency order between\ncharts:\n\n```ts\ndeclare const cluster: eks.Cluster;\nconst chart1 = cluster.addHelmChart('MyChart', {\n chart: 'foo',\n});\nconst chart2 = cluster.addHelmChart('MyChart', {\n chart: 'bar',\n});\n\nchart2.node.addDependency(chart1);\n```\n\n#### CDK8s Charts\n\n[CDK8s](https://cdk8s.io/) is an open-source library that enables Kubernetes manifest authoring using familiar programming languages. It is founded on the same technologies as the AWS CDK, such as [`constructs`](https://github.com/aws/constructs) and [`jsii`](https://github.com/aws/jsii).\n\n> To learn more about cdk8s, visit the [Getting Started](https://cdk8s.io/docs/latest/getting-started/) tutorials.\n\nThe EKS module natively integrates with cdk8s and allows you to apply cdk8s charts on AWS EKS clusters via the `cluster.addCdk8sChart` method.\n\nIn addition to `cdk8s`, you can also use [`cdk8s+`](https://cdk8s.io/docs/latest/plus/), which provides higher level abstraction for the core kubernetes api objects.\nYou can think of it like the `L2` constructs for Kubernetes. Any other `cdk8s` based libraries are also supported, for example [`cdk8s-debore`](https://github.com/toricls/cdk8s-debore).\n\nTo get started, add the following dependencies to your `package.json` file:\n\n```json\n\"dependencies\": {\n \"cdk8s\": \"^1.0.0\",\n \"cdk8s-plus-21\": \"^1.0.0-beta.38\",\n \"constructs\": \"^3.3.69\"\n}\n```\n\nNote that here we are using `cdk8s-plus-21` as we are targeting Kubernetes version 1.21.0. If you operate a different kubernetes version, you should\nuse the corresponding `cdk8s-plus-XX` library.\nSee [Select the appropriate cdk8s+ library](https://cdk8s.io/docs/latest/plus/#i-operate-kubernetes-version-1xx-which-cdk8s-library-should-i-be-using)\nfor more details.\n\nSimilarly to how you would create a stack by extending `@aws-cdk/core.Stack`, we recommend you create a chart of your own that extends `cdk8s.Chart`,\nand add your kubernetes resources to it. You can use `aws-cdk` construct attributes and properties inside your `cdk8s` construct freely.\n\nIn this example we create a chart that accepts an `s3.Bucket` and passes its name to a kubernetes pod as an environment variable.\n\nNotice that the chart must accept a `constructs.Construct` type as its scope, not an `@aws-cdk/core.Construct` as you would normally use.\nFor this reason, to avoid possible confusion, we will create the chart in a separate file:\n\n`+ my-chart.ts`\n\n```ts nofixture\nimport * as s3 from '@aws-cdk/aws-s3';\nimport * as constructs from 'constructs';\nimport * as cdk8s from 'cdk8s';\nimport * as kplus from 'cdk8s-plus-21';\n\nexport interface MyChartProps {\n readonly bucket: s3.Bucket;\n}\n\nexport class MyChart extends cdk8s.Chart {\n constructor(scope: constructs.Construct, id: string, props: MyChartProps) {\n super(scope, id);\n\n new kplus.Pod(this, 'Pod', {\n containers: [\n new kplus.Container({\n image: 'my-image',\n envVariables: {\n BUCKET_NAME: kplus.EnvValue.fromValue(props.bucket.bucketName),\n },\n }),\n ],\n });\n }\n}\n```\n\nThen, in your AWS CDK app:\n\n```ts fixture=cdk8schart\ndeclare const cluster: eks.Cluster;\n\n// some bucket..\nconst bucket = new s3.Bucket(this, 'Bucket');\n\n// create a cdk8s chart and use `cdk8s.App` as the scope.\nconst myChart = new MyChart(new cdk8s.App(), 'MyChart', { bucket });\n\n// add the cdk8s chart to the cluster\ncluster.addCdk8sChart('my-chart', myChart);\n```\n\n##### Custom CDK8s Constructs\n\nYou can also compose a few stock `cdk8s+` constructs into your own custom construct. However, since mixing scopes between `aws-cdk` and `cdk8s` is currently not supported, the `Construct` class\nyou'll need to use is the one from the [`constructs`](https://github.com/aws/constructs) module, and not from `@aws-cdk/core` like you normally would.\nThis is why we used `new cdk8s.App()` as the scope of the chart above.\n\n```ts nofixture\nimport * as constructs from 'constructs';\nimport * as cdk8s from 'cdk8s';\nimport * as kplus from 'cdk8s-plus-21';\n\nexport interface LoadBalancedWebService {\n readonly port: number;\n readonly image: string;\n readonly replicas: number;\n}\n\nconst app = new cdk8s.App();\nconst chart = new cdk8s.Chart(app, 'my-chart');\n\nexport class LoadBalancedWebService extends constructs.Construct {\n constructor(scope: constructs.Construct, id: string, props: LoadBalancedWebService) {\n super(scope, id);\n\n const deployment = new kplus.Deployment(chart, 'Deployment', {\n replicas: props.replicas,\n containers: [ new kplus.Container({ image: props.image }) ],\n });\n\n deployment.exposeViaService({\n port: props.port,\n serviceType: kplus.ServiceType.LOAD_BALANCER,\n });\n }\n}\n```\n\n##### Manually importing k8s specs and CRD's\n\nIf you find yourself unable to use `cdk8s+`, or just like to directly use the `k8s` native objects or CRD's, you can do so by manually importing them using the `cdk8s-cli`.\n\nSee [Importing kubernetes objects](https://cdk8s.io/docs/latest/cli/import/) for detailed instructions.\n\n## Patching Kubernetes Resources\n\nThe `KubernetesPatch` construct can be used to update existing kubernetes\nresources. The following example can be used to patch the `hello-kubernetes`\ndeployment from the example above with 5 replicas.\n\n```ts\ndeclare const cluster: eks.Cluster;\nnew eks.KubernetesPatch(this, 'hello-kub-deployment-label', {\n cluster,\n resourceName: \"deployment/hello-kubernetes\",\n applyPatch: { spec: { replicas: 5 } },\n restorePatch: { spec: { replicas: 3 } },\n})\n```\n\n## Querying Kubernetes Resources\n\nThe `KubernetesObjectValue` construct can be used to query for information about kubernetes objects,\nand use that as part of your CDK application.\n\nFor example, you can fetch the address of a [`LoadBalancer`](https://kubernetes.io/docs/concepts/services-networking/service/#loadbalancer) type service:\n\n```ts\ndeclare const cluster: eks.Cluster;\n// query the load balancer address\nconst myServiceAddress = new eks.KubernetesObjectValue(this, 'LoadBalancerAttribute', {\n cluster: cluster,\n objectType: 'service',\n objectName: 'my-service',\n jsonPath: '.status.loadBalancer.ingress[0].hostname', // https://kubernetes.io/docs/reference/kubectl/jsonpath/\n});\n\n// pass the address to a lambda function\nconst proxyFunction = new lambda.Function(this, 'ProxyFunction', {\n handler: 'index.handler',\n code: lambda.Code.fromInline('my-code'),\n runtime: lambda.Runtime.NODEJS_14_X,\n environment: {\n myServiceAddress: myServiceAddress.value,\n },\n})\n```\n\nSpecifically, since the above use-case is quite common, there is an easier way to access that information:\n\n```ts\ndeclare const cluster: eks.Cluster;\nconst loadBalancerAddress = cluster.getServiceLoadBalancerAddress('my-service');\n```\n\n## Using existing clusters\n\nThe Amazon EKS library allows defining Kubernetes resources such as [Kubernetes\nmanifests](#kubernetes-resources) and [Helm charts](#helm-charts) on clusters\nthat are not defined as part of your CDK app.\n\nFirst, you'll need to \"import\" a cluster to your CDK app. To do that, use the\n`eks.Cluster.fromClusterAttributes()` static method:\n\n```ts\nconst cluster = eks.Cluster.fromClusterAttributes(this, 'MyCluster', {\n clusterName: 'my-cluster-name',\n kubectlRoleArn: 'arn:aws:iam::1111111:role/iam-role-that-has-masters-access',\n});\n```\n\nThen, you can use `addManifest` or `addHelmChart` to define resources inside\nyour Kubernetes cluster. For example:\n\n```ts\ndeclare const cluster: eks.Cluster;\ncluster.addManifest('Test', {\n apiVersion: 'v1',\n kind: 'ConfigMap',\n metadata: {\n name: 'myconfigmap',\n },\n data: {\n Key: 'value',\n Another: '123454',\n },\n});\n```\n\nAt the minimum, when importing clusters for `kubectl` management, you will need\nto specify:\n\n* `clusterName` - the name of the cluster.\n* `kubectlRoleArn` - the ARN of an IAM role mapped to the `system:masters` RBAC\n role. If the cluster you are importing was created using the AWS CDK, the\n CloudFormation stack has an output that includes an IAM role that can be used.\n Otherwise, you can create an IAM role and map it to `system:masters` manually.\n The trust policy of this role should include the the\n `arn:aws::iam::${accountId}:root` principal in order to allow the execution\n role of the kubectl resource to assume it.\n\nIf the cluster is configured with private-only or private and restricted public\nKubernetes [endpoint access](#endpoint-access), you must also specify:\n\n* `kubectlSecurityGroupId` - the ID of an EC2 security group that is allowed\n connections to the cluster's control security group. For example, the EKS managed [cluster security group](#cluster-security-group).\n* `kubectlPrivateSubnetIds` - a list of private VPC subnets IDs that will be used\n to access the Kubernetes endpoint.\n\n## Logging\n\nEKS supports cluster logging for 5 different types of events:\n\n* API requests to the cluster.\n* Cluster access via the Kubernetes API.\n* Authentication requests into the cluster.\n* State of cluster controllers.\n* Scheduling decisions.\n\nYou can enable logging for each one separately using the `clusterLogging`\nproperty. For example:\n\n```ts\nconst cluster = new eks.Cluster(this, 'Cluster', {\n // ...\n version: eks.KubernetesVersion.V1_21,\n clusterLogging: [\n eks.ClusterLoggingTypes.API,\n eks.ClusterLoggingTypes.AUTHENTICATOR,\n eks.ClusterLoggingTypes.SCHEDULER,\n ],\n});\n```\n\n## Known Issues and Limitations\n\n* [One cluster per stack](https://github.com/aws/aws-cdk/issues/10073)\n* [Service Account dependencies](https://github.com/aws/aws-cdk/issues/9910)\n* [Support isolated VPCs](https://github.com/aws/aws-cdk/issues/12171)\n" }, "repository": { "directory": "packages/@aws-cdk/aws-eks", "type": "git", "url": "https://github.com/aws/aws-cdk.git" }, "schema": "jsii/0.10.0", "targets": { "dotnet": { "iconUrl": "https://raw.githubusercontent.com/aws/aws-cdk/master/logo/default-256-dark.png", "namespace": "Amazon.CDK.AWS.EKS", "packageId": "Amazon.CDK.AWS.EKS" }, "java": { "maven": { "artifactId": "eks", "groupId": "software.amazon.awscdk" }, "package": "software.amazon.awscdk.services.eks" }, "js": { "npm": "@aws-cdk/aws-eks" }, "python": { "classifiers": [ "Framework :: AWS CDK", "Framework :: AWS CDK :: 1" ], "distName": "aws-cdk.aws-eks", "module": "aws_cdk.aws_eks" } }, "types": { "@aws-cdk/aws-eks.AlbController": { "assembly": "@aws-cdk/aws-eks", "base": "@aws-cdk/core.Construct", "docs": { "remarks": "Use the factory functions `get` and `getOrCreate` to obtain/create instances of this controller.", "see": "https://kubernetes-sigs.github.io/aws-load-balancer-controller", "stability": "stable", "summary": "Construct for installing the AWS ALB Contoller on EKS clusters.", "example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as eks from '@aws-cdk/aws-eks';\n\ndeclare const albControllerVersion: eks.AlbControllerVersion;\ndeclare const cluster: eks.Cluster;\ndeclare const policy: any;\nconst albController = new eks.AlbController(this, 'MyAlbController', {\n cluster: cluster,\n version: albControllerVersion,\n\n // the properties below are optional\n policy: policy,\n repository: 'repository',\n});", "custom": { "exampleMetadata": "fixture=_generated" } }, "fqn": "@aws-cdk/aws-eks.AlbController", "initializer": { "docs": { "stability": "stable" }, "locationInModule": { "filename": "lib/alb-controller.ts", "line": 205 }, "parameters": [ { "name": "scope", "type": { "fqn": "constructs.Construct" } }, { "name": "id", "type": { "primitive": "string" } }, { "name": "props", "type": { "fqn": "@aws-cdk/aws-eks.AlbControllerProps" } } ] }, "kind": "class", "locationInModule": { "filename": "lib/alb-controller.ts", "line": 188 }, "methods": [ { "docs": { "remarks": "Singleton per stack/cluster.", "stability": "stable", "summary": "Create the controller construct associated with this cluster and scope." }, "locationInModule": { "filename": "lib/alb-controller.ts", "line": 195 }, "name": "create", "parameters": [ { "name": "scope", "type": { "fqn": "constructs.Construct" } }, { "name": "props", "type": { "fqn": "@aws-cdk/aws-eks.AlbControllerProps" } } ], "returns": { "type": { "fqn": "@aws-cdk/aws-eks.AlbController" } }, "static": true } ], "name": "AlbController", "symbolId": "lib/alb-controller:AlbController" }, "@aws-cdk/aws-eks.AlbControllerOptions": { "assembly": "@aws-cdk/aws-eks", "datatype": true, "docs": { "stability": "stable", "summary": "Options for `AlbController`.", "example": "new eks.Cluster(this, 'HelloEKS', {\n version: eks.KubernetesVersion.V1_21,\n albController: {\n version: eks.AlbControllerVersion.V2_4_1,\n },\n});", "custom": { "exampleMetadata": "infused" } }, "fqn": "@aws-cdk/aws-eks.AlbControllerOptions", "kind": "interface", "locationInModule": { "filename": "lib/alb-controller.ts", "line": 136 }, "name": "AlbControllerOptions", "properties": [ { "abstract": true, "docs": { "stability": "stable", "summary": "Version of the controller." }, "immutable": true, "locationInModule": { "filename": "lib/alb-controller.ts", "line": 141 }, "name": "version", "type": { "fqn": "@aws-cdk/aws-eks.AlbControllerVersion" } }, { "abstract": true, "docs": { "default": "- Corresponds to the predefined version.", "remarks": "If you're using one of the built-in versions, this is not required since\nCDK ships with the appropriate policies for those versions.\n\nHowever, if you are using a custom version, this is required (and validated).", "stability": "stable", "summary": "The IAM policy to apply to the service account." }, "immutable": true, "locationInModule": { "filename": "lib/alb-controller.ts", "line": 164 }, "name": "policy", "optional": true, "type": { "primitive": "any" } }, { "abstract": true, "docs": { "default": "'602401143452.dkr.ecr.us-west-2.amazonaws.com/amazon/aws-load-balancer-controller'", "remarks": "Note that the default repository works for most regions, but not all.\nIf the repository is not applicable to your region, use a custom repository\naccording to the information here: https://github.com/kubernetes-sigs/aws-load-balancer-controller/releases.", "stability": "stable", "summary": "The repository to pull the controller image from." }, "immutable": true, "locationInModule": { "filename": "lib/alb-controller.ts", "line": 152 }, "name": "repository", "optional": true, "type": { "primitive": "string" } } ], "symbolId": "lib/alb-controller:AlbControllerOptions" }, "@aws-cdk/aws-eks.AlbControllerProps": { "assembly": "@aws-cdk/aws-eks", "datatype": true, "docs": { "stability": "stable", "summary": "Properties for `AlbController`.", "example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as eks from '@aws-cdk/aws-eks';\n\ndeclare const albControllerVersion: eks.AlbControllerVersion;\ndeclare const cluster: eks.Cluster;\ndeclare const policy: any;\nconst albControllerProps: eks.AlbControllerProps = {\n cluster: cluster,\n version: albControllerVersion,\n\n // the properties below are optional\n policy: policy,\n repository: 'repository',\n};", "custom": { "exampleMetadata": "fixture=_generated" } }, "fqn": "@aws-cdk/aws-eks.AlbControllerProps", "interfaces": [ "@aws-cdk/aws-eks.AlbControllerOptions" ], "kind": "interface", "locationInModule": { "filename": "lib/alb-controller.ts", "line": 171 }, "name": "AlbControllerProps", "properties": [ { "abstract": true, "docs": { "stability": "stable", "summary": "[disable-awslint:ref-via-interface] Cluster to install the controller onto." }, "immutable": true, "locationInModule": { "filename": "lib/alb-controller.ts", "line": 177 }, "name": "cluster", "type": { "fqn": "@aws-cdk/aws-eks.Cluster" } } ], "symbolId": "lib/alb-controller:AlbControllerProps" }, "@aws-cdk/aws-eks.AlbControllerVersion": { "assembly": "@aws-cdk/aws-eks", "docs": { "remarks": "Corresponds to the image tag of 'amazon/aws-load-balancer-controller' image.", "stability": "stable", "summary": "Controller version.", "example": "new eks.Cluster(this, 'HelloEKS', {\n version: eks.KubernetesVersion.V1_21,\n albController: {\n version: eks.AlbControllerVersion.V2_4_1,\n },\n});", "custom": { "exampleMetadata": "infused" } }, "fqn": "@aws-cdk/aws-eks.AlbControllerVersion", "kind": "class", "locationInModule": { "filename": "lib/alb-controller.ts", "line": 18 }, "methods": [ { "docs": { "remarks": "Use this if the version you need is not available in one of the predefined versions.\nNote that in this case, you will also need to provide an IAM policy in the controller options.", "stability": "stable", "summary": "Specify a custom version." }, "locationInModule": { "filename": "lib/alb-controller.ts", "line": 97 }, "name": "of", "parameters": [ { "docs": { "summary": "The version number." }, "name": "version", "type": { "primitive": "string" } } ], "returns": { "type": { "fqn": "@aws-cdk/aws-eks.AlbControllerVersion" } }, "static": true } ], "name": "AlbControllerVersion", "properties": [ { "const": true, "docs": { "stability": "stable", "summary": "v2.0.0." }, "immutable": true, "locationInModule": { "filename": "lib/alb-controller.ts", "line": 23 }, "name": "V2_0_0", "static": true, "type": { "fqn": "@aws-cdk/aws-eks.AlbControllerVersion" } }, { "const": true, "docs": { "stability": "stable", "summary": "v2.0.1." }, "immutable": true, "locationInModule": { "filename": "lib/alb-controller.ts", "line": 28 }, "name": "V2_0_1", "static": true, "type": { "fqn": "@aws-cdk/aws-eks.AlbControllerVersion" } }, { "const": true, "docs": { "stability": "stable", "summary": "v2.1.0." }, "immutable": true, "locationInModule": { "filename": "lib/alb-controller.ts", "line": 33 }, "name": "V2_1_0", "static": true, "type": { "fqn": "@aws-cdk/aws-eks.AlbControllerVersion" } }, { "const": true, "docs": { "stability": "stable", "summary": "v2.1.1." }, "immutable": true, "locationInModule": { "filename": "lib/alb-controller.ts", "line": 38 }, "name": "V2_1_1", "static": true, "type": { "fqn": "@aws-cdk/aws-eks.AlbControllerVersion" } }, { "const": true, "docs": { "stability": "stable", "summary": "v2.1.2." }, "immutable": true, "locationInModule": { "filename": "lib/alb-controller.ts", "line": 43 }, "name": "V2_1_2", "static": true, "type": { "fqn": "@aws-cdk/aws-eks.AlbControllerVersion" } }, { "const": true, "docs": { "stability": "stable", "summary": "v2.1.3." }, "immutable": true, "locationInModule": { "filename": "lib/alb-controller.ts", "line": 48 }, "name": "V2_1_3", "static": true, "type": { "fqn": "@aws-cdk/aws-eks.AlbControllerVersion" } }, { "const": true, "docs": { "stability": "stable", "summary": "v2.0.0." }, "immutable": true, "locationInModule": { "filename": "lib/alb-controller.ts", "line": 53 }, "name": "V2_2_0", "static": true, "type": { "fqn": "@aws-cdk/aws-eks.AlbControllerVersion" } }, { "const": true, "docs": { "stability": "stable", "summary": "v2.2.1." }, "immutable": true, "locationInModule": { "filename": "lib/alb-controller.ts", "line": 58 }, "name": "V2_2_1", "static": true, "type": { "fqn": "@aws-cdk/aws-eks.AlbControllerVersion" } }, { "const": true, "docs": { "stability": "stable", "summary": "v2.2.2." }, "immutable": true, "locationInModule": { "filename": "lib/alb-controller.ts", "line": 63 }, "name": "V2_2_2", "static": true, "type": { "fqn": "@aws-cdk/aws-eks.AlbControllerVersion" } }, { "const": true, "docs": { "stability": "stable", "summary": "v2.2.3." }, "immutable": true, "locationInModule": { "filename": "lib/alb-controller.ts", "line": 68 }, "name": "V2_2_3", "static": true, "type": { "fqn": "@aws-cdk/aws-eks.AlbControllerVersion" } }, { "const": true, "docs": { "stability": "stable", "summary": "v2.2.4." }, "immutable": true, "locationInModule": { "filename": "lib/alb-controller.ts", "line": 73 }, "name": "V2_2_4", "static": true, "type": { "fqn": "@aws-cdk/aws-eks.AlbControllerVersion" } }, { "const": true, "docs": { "stability": "stable", "summary": "v2.3.0." }, "immutable": true, "locationInModule": { "filename": "lib/alb-controller.ts", "line": 78 }, "name": "V2_3_0", "static": true, "type": { "fqn": "@aws-cdk/aws-eks.AlbControllerVersion" } }, { "const": true, "docs": { "stability": "stable", "summary": "v2.3.1." }, "immutable": true, "locationInModule": { "filename": "lib/alb-controller.ts", "line": 83 }, "name": "V2_3_1", "static": true, "type": { "fqn": "@aws-cdk/aws-eks.AlbControllerVersion" } }, { "const": true, "docs": { "stability": "stable", "summary": "v2.4.1." }, "immutable": true, "locationInModule": { "filename": "lib/alb-controller.ts", "line": 88 }, "name": "V2_4_1", "static": true, "type": { "fqn": "@aws-cdk/aws-eks.AlbControllerVersion" } }, { "docs": { "stability": "stable", "summary": "Whether or not its a custom version." }, "immutable": true, "locationInModule": { "filename": "lib/alb-controller.ts", "line": 109 }, "name": "custom", "type": { "primitive": "boolean" } }, { "docs": { "stability": "stable", "summary": "The version string." }, "immutable": true, "locationInModule": { "filename": "lib/alb-controller.ts", "line": 105 }, "name": "version", "type": { "primitive": "string" } } ], "symbolId": "lib/alb-controller:AlbControllerVersion" }, "@aws-cdk/aws-eks.AlbScheme": { "assembly": "@aws-cdk/aws-eks", "docs": { "see": "https://kubernetes-sigs.github.io/aws-load-balancer-controller/v2.3/guide/ingress/annotations/#scheme", "stability": "stable", "summary": "ALB Scheme." }, "fqn": "@aws-cdk/aws-eks.AlbScheme", "kind": "enum", "locationInModule": { "filename": "lib/alb-controller.ts", "line": 117 }, "members": [ { "docs": { "remarks": "The DNS name of an internal load balancer is publicly resolvable to the private IP addresses of the nodes.\nTherefore, internal load balancers can only route requests from clients with access to the VPC for the load balancer.", "stability": "stable", "summary": "The nodes of an internal load balancer have only private IP addresses." }, "name": "INTERNAL" }, { "docs": { "stability": "stable", "summary": "An internet-facing load balancer has a publicly resolvable DNS name, so it can route requests from clients over the internet to the EC2 instances that are registered with the load balancer." }, "name": "INTERNET_FACING" } ], "name": "AlbScheme", "symbolId": "lib/alb-controller:AlbScheme" }, "@aws-cdk/aws-eks.AutoScalingGroupCapacityOptions": { "assembly": "@aws-cdk/aws-eks", "datatype": true, "docs": { "stability": "stable", "summary": "Options for adding worker nodes.", "example": "declare const cluster: eks.Cluster;\ncluster.addAutoScalingGroupCapacity('BottlerocketNodes', {\n instanceType: new ec2.InstanceType('t3.small'),\n minCapacity: 2,\n machineImageType: eks.MachineImageType.BOTTLEROCKET,\n});", "custom": { "exampleMetadata": "infused" } }, "fqn": "@aws-cdk/aws-eks.AutoScalingGroupCapacityOptions", "interfaces": [ "@aws-cdk/aws-autoscaling.CommonAutoScalingGroupProps" ], "kind": "interface", "locationInModule": { "filename": "lib/cluster.ts", "line": 1876 }, "name": "AutoScalingGroupCapacityOptions", "properties": [ { "abstract": true, "docs": { "stability": "stable", "summary": "Instance type of the instances to start." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 1880 }, "name": "instanceType", "type": { "fqn": "@aws-cdk/aws-ec2.InstanceType" } }, { "abstract": true, "docs": { "default": "true", "remarks": "If you wish to provide a custom user data script, set this to `false` and\nmanually invoke `autoscalingGroup.addUserData()`.", "stability": "stable", "summary": "Configures the EC2 user-data script for instances in this autoscaling group to bootstrap the node (invoke `/etc/eks/bootstrap.sh`) and associate it with the EKS cluster." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 1902 }, "name": "bootstrapEnabled", "optional": true, "type": { "primitive": "boolean" } }, { "abstract": true, "docs": { "default": "- none", "stability": "stable", "summary": "EKS node bootstrapping options." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 1909 }, "name": "bootstrapOptions", "optional": true, "type": { "fqn": "@aws-cdk/aws-eks.BootstrapOptions" } }, { "abstract": true, "docs": { "default": "MachineImageType.AMAZON_LINUX_2", "stability": "stable", "summary": "Machine image type." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 1916 }, "name": "machineImageType", "optional": true, "type": { "fqn": "@aws-cdk/aws-eks.MachineImageType" } }, { "abstract": true, "docs": { "default": "- true if the cluster has kubectl enabled (which is the default).", "remarks": "This cannot be explicitly set to `true` if the cluster has kubectl disabled.", "stability": "stable", "summary": "Will automatically update the aws-auth ConfigMap to map the IAM instance role to RBAC." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 1890 }, "name": "mapRole", "optional": true, "type": { "primitive": "boolean" } }, { "abstract": true, "docs": { "default": "true", "remarks": "Only relevant if `spotPrice` is used.", "stability": "stable", "summary": "Installs the AWS spot instance interrupt handler on the cluster if it's not already added." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 1924 }, "name": "spotInterruptHandler", "optional": true, "type": { "primitive": "boolean" } } ], "symbolId": "lib/cluster:AutoScalingGroupCapacityOptions" }, "@aws-cdk/aws-eks.AutoScalingGroupOptions": { "assembly": "@aws-cdk/aws-eks", "datatype": true, "docs": { "stability": "stable", "summary": "Options for adding an AutoScalingGroup as capacity.", "example": "declare const cluster: eks.Cluster;\ndeclare const asg: autoscaling.AutoScalingGroup;\ncluster.connectAutoScalingGroupCapacity(asg, {});", "custom": { "exampleMetadata": "infused" } }, "fqn": "@aws-cdk/aws-eks.AutoScalingGroupOptions", "kind": "interface", "locationInModule": { "filename": "lib/cluster.ts", "line": 1992 }, "name": "AutoScalingGroupOptions", "properties": [ { "abstract": true, "docs": { "default": "true", "remarks": "If you wish to provide a custom user data script, set this to `false` and\nmanually invoke `autoscalingGroup.addUserData()`.", "stability": "stable", "summary": "Configures the EC2 user-data script for instances in this autoscaling group to bootstrap the node (invoke `/etc/eks/bootstrap.sh`) and associate it with the EKS cluster." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 2013 }, "name": "bootstrapEnabled", "optional": true, "type": { "primitive": "boolean" } }, { "abstract": true, "docs": { "default": "- default options", "stability": "stable", "summary": "Allows options for node bootstrapping through EC2 user data." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 2019 }, "name": "bootstrapOptions", "optional": true, "type": { "fqn": "@aws-cdk/aws-eks.BootstrapOptions" } }, { "abstract": true, "docs": { "default": "MachineImageType.AMAZON_LINUX_2", "stability": "stable", "summary": "Allow options to specify different machine image type." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 2026 }, "name": "machineImageType", "optional": true, "type": { "fqn": "@aws-cdk/aws-eks.MachineImageType" } }, { "abstract": true, "docs": { "default": "- true if the cluster has kubectl enabled (which is the default).", "remarks": "This cannot be explicitly set to `true` if the cluster has kubectl disabled.", "stability": "stable", "summary": "Will automatically update the aws-auth ConfigMap to map the IAM instance role to RBAC." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 2001 }, "name": "mapRole", "optional": true, "type": { "primitive": "boolean" } }, { "abstract": true, "docs": { "default": "true", "remarks": "Only relevant if `spotPrice` is configured on the auto-scaling group.", "stability": "stable", "summary": "Installs the AWS spot instance interrupt handler on the cluster if it's not already added." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 2034 }, "name": "spotInterruptHandler", "optional": true, "type": { "primitive": "boolean" } } ], "symbolId": "lib/cluster:AutoScalingGroupOptions" }, "@aws-cdk/aws-eks.AwsAuth": { "assembly": "@aws-cdk/aws-eks", "base": "@aws-cdk/core.Construct", "docs": { "see": "https://docs.aws.amazon.com/en_us/eks/latest/userguide/add-user-role.html", "stability": "stable", "summary": "Manages mapping between IAM users and roles to Kubernetes RBAC configuration.", "example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as eks from '@aws-cdk/aws-eks';\n\ndeclare const cluster: eks.Cluster;\nconst awsAuth = new eks.AwsAuth(this, 'MyAwsAuth', {\n cluster: cluster,\n});", "custom": { "exampleMetadata": "fixture=_generated" } }, "fqn": "@aws-cdk/aws-eks.AwsAuth", "initializer": { "docs": { "stability": "stable" }, "locationInModule": { "filename": "lib/aws-auth.ts", "line": 35 }, "parameters": [ { "name": "scope", "type": { "fqn": "constructs.Construct" } }, { "name": "id", "type": { "primitive": "string" } }, { "name": "props", "type": { "fqn": "@aws-cdk/aws-eks.AwsAuthProps" } } ] }, "kind": "class", "locationInModule": { "filename": "lib/aws-auth.ts", "line": 29 }, "methods": [ { "docs": { "stability": "stable", "summary": "Additional AWS account to add to the aws-auth configmap." }, "locationInModule": { "filename": "lib/aws-auth.ts", "line": 101 }, "name": "addAccount", "parameters": [ { "docs": { "summary": "account number." }, "name": "accountId", "type": { "primitive": "string" } } ] }, { "docs": { "stability": "stable", "summary": "Adds the specified IAM role to the `system:masters` RBAC group, which means that anyone that can assume it will be able to administer this Kubernetes system." }, "locationInModule": { "filename": "lib/aws-auth.ts", "line": 68 }, "name": "addMastersRole", "parameters": [ { "docs": { "summary": "The IAM role to add." }, "name": "role", "type": { "fqn": "@aws-cdk/aws-iam.IRole" } }, { "docs": { "summary": "Optional user (defaults to the role ARN)." }, "name": "username", "optional": true, "type": { "primitive": "string" } } ] }, { "docs": { "stability": "stable", "summary": "Adds a mapping between an IAM role to a Kubernetes user and groups." }, "locationInModule": { "filename": "lib/aws-auth.ts", "line": 81 }, "name": "addRoleMapping", "parameters": [ { "docs": { "summary": "The IAM role to map." }, "name": "role", "type": { "fqn": "@aws-cdk/aws-iam.IRole" } }, { "docs": { "summary": "Mapping to k8s user name and groups." }, "name": "mapping", "type": { "fqn": "@aws-cdk/aws-eks.AwsAuthMapping" } } ] }, { "docs": { "stability": "stable", "summary": "Adds a mapping between an IAM user to a Kubernetes user and groups." }, "locationInModule": { "filename": "lib/aws-auth.ts", "line": 92 }, "name": "addUserMapping", "parameters": [ { "docs": { "summary": "The IAM user to map." }, "name": "user", "type": { "fqn": "@aws-cdk/aws-iam.IUser" } }, { "docs": { "summary": "Mapping to k8s user name and groups." }, "name": "mapping", "type": { "fqn": "@aws-cdk/aws-eks.AwsAuthMapping" } } ] } ], "name": "AwsAuth", "symbolId": "lib/aws-auth:AwsAuth" }, "@aws-cdk/aws-eks.AwsAuthMapping": { "assembly": "@aws-cdk/aws-eks", "datatype": true, "docs": { "stability": "stable", "summary": "AwsAuth mapping.", "example": "declare const cluster: eks.Cluster;\nconst adminUser = new iam.User(this, 'Admin');\ncluster.awsAuth.addUserMapping(adminUser, { groups: [ 'system:masters' ]});", "custom": { "exampleMetadata": "infused" } }, "fqn": "@aws-cdk/aws-eks.AwsAuthMapping", "kind": "interface", "locationInModule": { "filename": "lib/aws-auth-mapping.ts", "line": 4 }, "name": "AwsAuthMapping", "properties": [ { "abstract": true, "docs": { "see": "https://kubernetes.io/docs/reference/access-authn-authz/rbac/#default-roles-and-role-bindings", "stability": "stable", "summary": "A list of groups within Kubernetes to which the role is mapped." }, "immutable": true, "locationInModule": { "filename": "lib/aws-auth-mapping.ts", "line": 17 }, "name": "groups", "type": { "collection": { "elementtype": { "primitive": "string" }, "kind": "array" } } }, { "abstract": true, "docs": { "default": "- By default, the user name is the ARN of the IAM role.", "stability": "stable", "summary": "The user name within Kubernetes to map to the IAM role." }, "immutable": true, "locationInModule": { "filename": "lib/aws-auth-mapping.ts", "line": 10 }, "name": "username", "optional": true, "type": { "primitive": "string" } } ], "symbolId": "lib/aws-auth-mapping:AwsAuthMapping" }, "@aws-cdk/aws-eks.AwsAuthProps": { "assembly": "@aws-cdk/aws-eks", "datatype": true, "docs": { "stability": "stable", "summary": "Configuration props for the AwsAuth construct.", "example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as eks from '@aws-cdk/aws-eks';\n\ndeclare const cluster: eks.Cluster;\nconst awsAuthProps: eks.AwsAuthProps = {\n cluster: cluster,\n};", "custom": { "exampleMetadata": "fixture=_generated" } }, "fqn": "@aws-cdk/aws-eks.AwsAuthProps", "kind": "interface", "locationInModule": { "filename": "lib/aws-auth.ts", "line": 15 }, "name": "AwsAuthProps", "properties": [ { "abstract": true, "docs": { "remarks": "[disable-awslint:ref-via-interface]", "stability": "stable", "summary": "The EKS cluster to apply this configuration to." }, "immutable": true, "locationInModule": { "filename": "lib/aws-auth.ts", "line": 21 }, "name": "cluster", "type": { "fqn": "@aws-cdk/aws-eks.Cluster" } } ], "symbolId": "lib/aws-auth:AwsAuthProps" }, "@aws-cdk/aws-eks.BootstrapOptions": { "assembly": "@aws-cdk/aws-eks", "datatype": true, "docs": { "stability": "stable", "summary": "EKS node bootstrapping options.", "example": "declare const cluster: eks.Cluster;\ncluster.addAutoScalingGroupCapacity('spot', {\n instanceType: new ec2.InstanceType('t3.large'),\n minCapacity: 2,\n bootstrapOptions: {\n kubeletExtraArgs: '--node-labels foo=bar,goo=far',\n awsApiRetryAttempts: 5,\n },\n});", "custom": { "exampleMetadata": "infused" } }, "fqn": "@aws-cdk/aws-eks.BootstrapOptions", "kind": "interface", "locationInModule": { "filename": "lib/cluster.ts", "line": 1930 }, "name": "BootstrapOptions", "properties": [ { "abstract": true, "docs": { "default": "- none", "see": "https://github.com/awslabs/amazon-eks-ami/blob/master/files/bootstrap.sh", "stability": "stable", "summary": "Additional command line arguments to pass to the `/etc/eks/bootstrap.sh` command." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 1986 }, "name": "additionalArgs", "optional": true, "type": { "primitive": "string" } }, { "abstract": true, "docs": { "default": "3", "stability": "stable", "summary": "Number of retry attempts for AWS API call (DescribeCluster)." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 1950 }, "name": "awsApiRetryAttempts", "optional": true, "type": { "primitive": "number" } }, { "abstract": true, "docs": { "default": "- 10.100.0.10 or 172.20.0.10 based on the IP\naddress of the primary interface.", "stability": "stable", "summary": "Overrides the IP address to use for DNS queries within the cluster." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 1968 }, "name": "dnsClusterIp", "optional": true, "type": { "primitive": "string" } }, { "abstract": true, "docs": { "default": "- none", "stability": "stable", "summary": "The contents of the `/etc/docker/daemon.json` file. Useful if you want a custom config differing from the default one in the EKS AMI." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 1958 }, "name": "dockerConfigJson", "optional": true, "type": { "primitive": "string" } }, { "abstract": true, "docs": { "default": "false", "stability": "stable", "summary": "Restores the docker default bridge network." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 1943 }, "name": "enableDockerBridge", "optional": true, "type": { "primitive": "boolean" } }, { "abstract": true, "docs": { "default": "- none", "remarks": "For example, `--node-labels foo=bar,goo=far`.", "stability": "stable", "summary": "Extra arguments to add to the kubelet. Useful for adding labels or taints." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 1977 }, "name": "kubeletExtraArgs", "optional": true, "type": { "primitive": "string" } }, { "abstract": true, "docs": { "default": "true", "stability": "stable", "summary": "Sets `--max-pods` for the kubelet based on the capacity of the EC2 instance." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 1936 }, "name": "useMaxPods", "optional": true, "type": { "primitive": "boolean" } } ], "symbolId": "lib/cluster:BootstrapOptions" }, "@aws-cdk/aws-eks.CapacityType": { "assembly": "@aws-cdk/aws-eks", "docs": { "stability": "stable", "summary": "Capacity type of the managed node group.", "example": "declare const cluster: eks.Cluster;\ncluster.addNodegroupCapacity('extra-ng-spot', {\n instanceTypes: [\n new ec2.InstanceType('c5.large'),\n new ec2.InstanceType('c5a.large'),\n new ec2.InstanceType('c5d.large'),\n ],\n minSize: 3,\n capacityType: eks.CapacityType.SPOT,\n});", "custom": { "exampleMetadata": "infused" } }, "fqn": "@aws-cdk/aws-eks.CapacityType", "kind": "enum", "locationInModule": { "filename": "lib/managed-nodegroup.ts", "line": 50 }, "members": [ { "docs": { "stability": "stable", "summary": "spot instances." }, "name": "SPOT" }, { "docs": { "stability": "stable", "summary": "on-demand instances." }, "name": "ON_DEMAND" } ], "name": "CapacityType", "symbolId": "lib/managed-nodegroup:CapacityType" }, "@aws-cdk/aws-eks.CfnAddon": { "assembly": "@aws-cdk/aws-eks", "base": "@aws-cdk/core.CfnResource", "docs": { "custom": { "cloudformationResource": "AWS::EKS::Addon", "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-addon.html", "exampleMetadata": "fixture=_generated" }, "remarks": "Creates an Amazon EKS add-on.\n\nAmazon EKS add-ons help to automate the provisioning and lifecycle management of common operational software for Amazon EKS clusters. For more information, see [Amazon EKS add-ons](https://docs.aws.amazon.com/eks/latest/userguide/eks-add-ons.html) in the *Amazon EKS User Guide* .", "stability": "external", "summary": "A CloudFormation `AWS::EKS::Addon`.", "example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as eks from '@aws-cdk/aws-eks';\nconst cfnAddon = new eks.CfnAddon(this, 'MyCfnAddon', {\n addonName: 'addonName',\n clusterName: 'clusterName',\n\n // the properties below are optional\n addonVersion: 'addonVersion',\n configurationValues: 'configurationValues',\n preserveOnDelete: false,\n resolveConflicts: 'resolveConflicts',\n serviceAccountRoleArn: 'serviceAccountRoleArn',\n tags: [{\n key: 'key',\n value: 'value',\n }],\n});" }, "fqn": "@aws-cdk/aws-eks.CfnAddon", "initializer": { "docs": { "stability": "external", "summary": "Create a new `AWS::EKS::Addon`." }, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 268 }, "parameters": [ { "docs": { "summary": "- scope in which this resource is defined." }, "name": "scope", "type": { "fqn": "@aws-cdk/core.Construct" } }, { "docs": { "summary": "- scoped id of the resource." }, "name": "id", "type": { "primitive": "string" } }, { "docs": { "summary": "- resource properties." }, "name": "props", "type": { "fqn": "@aws-cdk/aws-eks.CfnAddonProps" } } ] }, "interfaces": [ "@aws-cdk/core.IInspectable" ], "kind": "class", "locationInModule": { "filename": "lib/eks.generated.ts", "line": 166 }, "methods": [ { "docs": { "stability": "external", "summary": "Examines the CloudFormation resource and discloses attributes." }, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 290 }, "name": "inspect", "overrides": "@aws-cdk/core.IInspectable", "parameters": [ { "docs": { "summary": "- tree inspector to collect and process attributes." }, "name": "inspector", "type": { "fqn": "@aws-cdk/core.TreeInspector" } } ] }, { "docs": { "stability": "external" }, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 308 }, "name": "renderProperties", "overrides": "@aws-cdk/core.CfnResource", "parameters": [ { "name": "props", "type": { "collection": { "elementtype": { "primitive": "any" }, "kind": "map" } } } ], "protected": true, "returns": { "type": { "collection": { "elementtype": { "primitive": "any" }, "kind": "map" } } } } ], "name": "CfnAddon", "properties": [ { "const": true, "docs": { "stability": "external", "summary": "The CloudFormation resource type name for this resource class." }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 170 }, "name": "CFN_RESOURCE_TYPE_NAME", "static": true, "type": { "primitive": "string" } }, { "docs": { "custom": { "cloudformationAttribute": "Arn" }, "stability": "external", "summary": "The ARN of the add-on, such as `arn:aws:eks:us-west-2:111122223333:addon/1-19/vpc-cni/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx` ." }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 195 }, "name": "attrArn", "type": { "primitive": "string" } }, { "docs": { "stability": "external" }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 295 }, "name": "cfnProperties", "overrides": "@aws-cdk/core.CfnResource", "protected": true, "type": { "collection": { "elementtype": { "primitive": "any" }, "kind": "map" } } }, { "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-addon.html#cfn-eks-addon-tags" }, "remarks": "Each tag consists of a key and an optional value, both of which you define. Add-on tags do not propagate to any other resources associated with the cluster.", "stability": "external", "summary": "The metadata that you apply to the add-on to assist with categorization and organization." }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 259 }, "name": "tags", "type": { "fqn": "@aws-cdk/core.TagManager" } }, { "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-addon.html#cfn-eks-addon-addonname" }, "stability": "external", "summary": "The name of the add-on." }, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 202 }, "name": "addonName", "type": { "primitive": "string" } }, { "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-addon.html#cfn-eks-addon-clustername" }, "stability": "external", "summary": "The name of the cluster." }, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 209 }, "name": "clusterName", "type": { "primitive": "string" } }, { "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-addon.html#cfn-eks-addon-addonversion" }, "stability": "external", "summary": "The version of the add-on." }, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 216 }, "name": "addonVersion", "optional": true, "type": { "primitive": "string" } }, { "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-addon.html#cfn-eks-addon-configurationvalues" }, "stability": "external", "summary": "The configuration values that you provided." }, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 223 }, "name": "configurationValues", "optional": true, "type": { "primitive": "string" } }, { "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-addon.html#cfn-eks-addon-preserveondelete" }, "remarks": "If an IAM account is associated with the add-on, it isn't removed.", "stability": "external", "summary": "Specifying this option preserves the add-on software on your cluster but Amazon EKS stops managing any settings for the add-on." }, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 230 }, "name": "preserveOnDelete", "optional": true, "type": { "union": { "types": [ { "primitive": "boolean" }, { "fqn": "@aws-cdk/core.IResolvable" } ] } } }, { "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-addon.html#cfn-eks-addon-resolveconflicts" }, "remarks": "Conflicts are handled based on the value you choose:\n\n- *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.\n- *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.\n- *Preserve* – Not supported. You can set this value when updating an add-on though. For more information, see [UpdateAddon](https://docs.aws.amazon.com/eks/latest/APIReference/API_UpdateAddon.html) .\n\nIf 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.", "stability": "external", "summary": "How to resolve field value conflicts for an Amazon EKS add-on." }, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 243 }, "name": "resolveConflicts", "optional": true, "type": { "primitive": "string" } }, { "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-addon.html#cfn-eks-addon-serviceaccountrolearn" }, "remarks": "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* .\n\n> 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* .", "stability": "external", "summary": "The Amazon Resource Name (ARN) of an existing IAM role to bind to the add-on's service account." }, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 252 }, "name": "serviceAccountRoleArn", "optional": true, "type": { "primitive": "string" } } ], "symbolId": "lib/eks.generated:CfnAddon" }, "@aws-cdk/aws-eks.CfnAddonProps": { "assembly": "@aws-cdk/aws-eks", "datatype": true, "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-addon.html", "exampleMetadata": "fixture=_generated" }, "stability": "external", "summary": "Properties for defining a `CfnAddon`.", "example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as eks from '@aws-cdk/aws-eks';\nconst cfnAddonProps: eks.CfnAddonProps = {\n addonName: 'addonName',\n clusterName: 'clusterName',\n\n // the properties below are optional\n addonVersion: 'addonVersion',\n configurationValues: 'configurationValues',\n preserveOnDelete: false,\n resolveConflicts: 'resolveConflicts',\n serviceAccountRoleArn: 'serviceAccountRoleArn',\n tags: [{\n key: 'key',\n value: 'value',\n }],\n};" }, "fqn": "@aws-cdk/aws-eks.CfnAddonProps", "kind": "interface", "locationInModule": { "filename": "lib/eks.generated.ts", "line": 19 }, "name": "CfnAddonProps", "properties": [ { "abstract": true, "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-addon.html#cfn-eks-addon-addonname" }, "stability": "external", "summary": "The name of the add-on." }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 26 }, "name": "addonName", "type": { "primitive": "string" } }, { "abstract": true, "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-addon.html#cfn-eks-addon-clustername" }, "stability": "external", "summary": "The name of the cluster." }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 33 }, "name": "clusterName", "type": { "primitive": "string" } }, { "abstract": true, "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-addon.html#cfn-eks-addon-addonversion" }, "stability": "external", "summary": "The version of the add-on." }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 40 }, "name": "addonVersion", "optional": true, "type": { "primitive": "string" } }, { "abstract": true, "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-addon.html#cfn-eks-addon-configurationvalues" }, "stability": "external", "summary": "The configuration values that you provided." }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 47 }, "name": "configurationValues", "optional": true, "type": { "primitive": "string" } }, { "abstract": true, "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-addon.html#cfn-eks-addon-preserveondelete" }, "remarks": "If an IAM account is associated with the add-on, it isn't removed.", "stability": "external", "summary": "Specifying this option preserves the add-on software on your cluster but Amazon EKS stops managing any settings for the add-on." }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 54 }, "name": "preserveOnDelete", "optional": true, "type": { "union": { "types": [ { "primitive": "boolean" }, { "fqn": "@aws-cdk/core.IResolvable" } ] } } }, { "abstract": true, "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-addon.html#cfn-eks-addon-resolveconflicts" }, "remarks": "Conflicts are handled based on the value you choose:\n\n- *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.\n- *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.\n- *Preserve* – Not supported. You can set this value when updating an add-on though. For more information, see [UpdateAddon](https://docs.aws.amazon.com/eks/latest/APIReference/API_UpdateAddon.html) .\n\nIf 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.", "stability": "external", "summary": "How to resolve field value conflicts for an Amazon EKS add-on." }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 67 }, "name": "resolveConflicts", "optional": true, "type": { "primitive": "string" } }, { "abstract": true, "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-addon.html#cfn-eks-addon-serviceaccountrolearn" }, "remarks": "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* .\n\n> 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* .", "stability": "external", "summary": "The Amazon Resource Name (ARN) of an existing IAM role to bind to the add-on's service account." }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 76 }, "name": "serviceAccountRoleArn", "optional": true, "type": { "primitive": "string" } }, { "abstract": true, "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-addon.html#cfn-eks-addon-tags" }, "remarks": "Each tag consists of a key and an optional value, both of which you define. Add-on tags do not propagate to any other resources associated with the cluster.", "stability": "external", "summary": "The metadata that you apply to the add-on to assist with categorization and organization." }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 83 }, "name": "tags", "optional": true, "type": { "collection": { "elementtype": { "fqn": "@aws-cdk/core.CfnTag" }, "kind": "array" } } } ], "symbolId": "lib/eks.generated:CfnAddonProps" }, "@aws-cdk/aws-eks.CfnCluster": { "assembly": "@aws-cdk/aws-eks", "base": "@aws-cdk/core.CfnResource", "docs": { "custom": { "cloudformationResource": "AWS::EKS::Cluster", "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-cluster.html", "exampleMetadata": "fixture=_generated" }, "remarks": "Creates an Amazon EKS control plane.\n\nThe Amazon EKS control plane consists of control plane instances that run the Kubernetes software, such as `etcd` and the API server. The control plane runs in an account managed by AWS , and the Kubernetes API is exposed by the Amazon EKS API server endpoint. Each Amazon EKS cluster control plane is single tenant and unique. It runs on its own set of Amazon EC2 instances.\n\nThe cluster control plane is provisioned across multiple Availability Zones and fronted by an Elastic Load Balancing Network Load Balancer. Amazon EKS also provisions elastic network interfaces in your VPC subnets to provide connectivity from the control plane instances to the nodes (for example, to support `kubectl exec` , `logs` , and `proxy` data flows).\n\nAmazon 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.\n\nIn most cases, it takes several minutes to create a cluster. After you create an Amazon EKS cluster, you must configure your Kubernetes tooling to communicate with the API server and launch nodes into your cluster. For more information, see [Managing Cluster Authentication](https://docs.aws.amazon.com/eks/latest/userguide/managing-auth.html) and [Launching Amazon EKS nodes](https://docs.aws.amazon.com/eks/latest/userguide/launch-workers.html) in the *Amazon EKS User Guide* .", "stability": "external", "summary": "A CloudFormation `AWS::EKS::Cluster`.", "example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as eks from '@aws-cdk/aws-eks';\nconst cfnCluster = new eks.CfnCluster(this, 'MyCfnCluster', {\n resourcesVpcConfig: {\n subnetIds: ['subnetIds'],\n\n // the properties below are optional\n endpointPrivateAccess: false,\n endpointPublicAccess: false,\n publicAccessCidrs: ['publicAccessCidrs'],\n securityGroupIds: ['securityGroupIds'],\n },\n roleArn: 'roleArn',\n\n // the properties below are optional\n encryptionConfig: [{\n provider: {\n keyArn: 'keyArn',\n },\n resources: ['resources'],\n }],\n kubernetesNetworkConfig: {\n ipFamily: 'ipFamily',\n serviceIpv4Cidr: 'serviceIpv4Cidr',\n serviceIpv6Cidr: 'serviceIpv6Cidr',\n },\n logging: {\n clusterLogging: {\n enabledTypes: [{\n type: 'type',\n }],\n },\n },\n name: 'name',\n outpostConfig: {\n controlPlaneInstanceType: 'controlPlaneInstanceType',\n outpostArns: ['outpostArns'],\n\n // the properties below are optional\n controlPlanePlacement: {\n groupName: 'groupName',\n },\n },\n tags: [{\n key: 'key',\n value: 'value',\n }],\n version: 'version',\n});" }, "fqn": "@aws-cdk/aws-eks.CfnCluster", "initializer": { "docs": { "stability": "external", "summary": "Create a new `AWS::EKS::Cluster`." }, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 633 }, "parameters": [ { "docs": { "summary": "- scope in which this resource is defined." }, "name": "scope", "type": { "fqn": "@aws-cdk/core.Construct" } }, { "docs": { "summary": "- scoped id of the resource." }, "name": "id", "type": { "primitive": "string" } }, { "docs": { "summary": "- resource properties." }, "name": "props", "type": { "fqn": "@aws-cdk/aws-eks.CfnClusterProps" } } ] }, "interfaces": [ "@aws-cdk/core.IInspectable" ], "kind": "class", "locationInModule": { "filename": "lib/eks.generated.ts", "line": 482 }, "methods": [ { "docs": { "stability": "external", "summary": "Examines the CloudFormation resource and discloses attributes." }, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 663 }, "name": "inspect", "overrides": "@aws-cdk/core.IInspectable", "parameters": [ { "docs": { "summary": "- tree inspector to collect and process attributes." }, "name": "inspector", "type": { "fqn": "@aws-cdk/core.TreeInspector" } } ] }, { "docs": { "stability": "external" }, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 682 }, "name": "renderProperties", "overrides": "@aws-cdk/core.CfnResource", "parameters": [ { "name": "props", "type": { "collection": { "elementtype": { "primitive": "any" }, "kind": "map" } } } ], "protected": true, "returns": { "type": { "collection": { "elementtype": { "primitive": "any" }, "kind": "map" } } } } ], "name": "CfnCluster", "properties": [ { "const": true, "docs": { "stability": "external", "summary": "The CloudFormation resource type name for this resource class." }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 486 }, "name": "CFN_RESOURCE_TYPE_NAME", "static": true, "type": { "primitive": "string" } }, { "docs": { "custom": { "cloudformationAttribute": "Arn" }, "stability": "external", "summary": "The ARN of the cluster, such as `arn:aws:eks:us-west-2:666666666666:cluster/prod` ." }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 511 }, "name": "attrArn", "type": { "primitive": "string" } }, { "docs": { "custom": { "cloudformationAttribute": "CertificateAuthorityData" }, "stability": "external", "summary": "The `certificate-authority-data` for your cluster." }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 517 }, "name": "attrCertificateAuthorityData", "type": { "primitive": "string" } }, { "docs": { "custom": { "cloudformationAttribute": "ClusterSecurityGroupId" }, "remarks": "Managed node groups use this security group for control plane to data plane communication.\n\nThis parameter is only returned by Amazon EKS clusters that support managed node groups. For more information, see [Managed node groups](https://docs.aws.amazon.com/eks/latest/userguide/managed-node-groups.html) in the *Amazon EKS User Guide* .", "stability": "external", "summary": "The cluster security group that was created by Amazon EKS for the cluster." }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 525 }, "name": "attrClusterSecurityGroupId", "type": { "primitive": "string" } }, { "docs": { "custom": { "cloudformationAttribute": "EncryptionConfigKeyArn" }, "stability": "external", "summary": "Amazon Resource Name (ARN) or alias of the customer master key (CMK)." }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 531 }, "name": "attrEncryptionConfigKeyArn", "type": { "primitive": "string" } }, { "docs": { "custom": { "cloudformationAttribute": "Endpoint" }, "stability": "external", "summary": "The endpoint for your Kubernetes API server, such as `https://5E1D0CEXAMPLEA591B746AFC5AB30262.yl4.us-west-2.eks.amazonaws.com` ." }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 537 }, "name": "attrEndpoint", "type": { "primitive": "string" } }, { "docs": { "custom": { "cloudformationAttribute": "Id" }, "remarks": "This property isn't available for an Amazon EKS cluster on the AWS cloud.", "stability": "external", "summary": "The ID of your local Amazon EKS cluster on an AWS Outpost." }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 543 }, "name": "attrId", "type": { "primitive": "string" } }, { "docs": { "custom": { "cloudformationAttribute": "KubernetesNetworkConfig.ServiceIpv6Cidr" }, "stability": "external", "summary": "The CIDR block that Kubernetes Service IP addresses are assigned from if you created a `1.21` or later cluster with version `>1.10.1` or later of the Amazon VPC CNI add-on and specified `ipv6` for *ipFamily* when you created the cluster. Kubernetes assigns Service addresses from the unique local address range ( `fc00::/7` ) because you can't specify a custom `IPv6` CIDR block when you create the cluster." }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 549 }, "name": "attrKubernetesNetworkConfigServiceIpv6Cidr", "type": { "primitive": "string" } }, { "docs": { "custom": { "cloudformationAttribute": "OpenIdConnectIssuerUrl" }, "stability": "external", "summary": "The issuer URL for the OIDC identity provider." }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 555 }, "name": "attrOpenIdConnectIssuerUrl", "type": { "primitive": "string" } }, { "docs": { "stability": "external" }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 668 }, "name": "cfnProperties", "overrides": "@aws-cdk/core.CfnResource", "protected": true, "type": { "collection": { "elementtype": { "primitive": "any" }, "kind": "map" } } }, { "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-cluster.html#cfn-eks-cluster-tags" }, "remarks": "Each tag consists of a key and an optional value, both of which you define. Cluster tags don't propagate to any other resources associated with the cluster.\n\n> You must have the `eks:TagResource` and `eks:UntagResource` permissions for your [IAM principal](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html) to manage the AWS CloudFormation stack. If you don't have these permissions, there might be unexpected behavior with stack-level tags propagating to the resource during resource creation and update.", "stability": "external", "summary": "The metadata that you apply to the cluster to assist with categorization and organization." }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 615 }, "name": "tags", "type": { "fqn": "@aws-cdk/core.TagManager" } }, { "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-cluster.html#cfn-eks-cluster-resourcesvpcconfig" }, "remarks": "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.\n\n> Updates require replacement of the `SecurityGroupIds` and `SubnetIds` sub-properties.", "stability": "external", "summary": "The VPC configuration that's used by the cluster control plane." }, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 564 }, "name": "resourcesVpcConfig", "type": { "union": { "types": [ { "fqn": "@aws-cdk/core.IResolvable" }, { "fqn": "@aws-cdk/aws-eks.CfnCluster.ResourcesVpcConfigProperty" } ] } } }, { "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-cluster.html#cfn-eks-cluster-rolearn" }, "remarks": "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** .", "stability": "external", "summary": "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." }, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 571 }, "name": "roleArn", "type": { "primitive": "string" } }, { "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-cluster.html#cfn-eks-cluster-encryptionconfig" }, "stability": "external", "summary": "The encryption configuration for the cluster." }, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 578 }, "name": "encryptionConfig", "optional": true, "type": { "union": { "types": [ { "fqn": "@aws-cdk/core.IResolvable" }, { "collection": { "elementtype": { "union": { "types": [ { "fqn": "@aws-cdk/core.IResolvable" }, { "fqn": "@aws-cdk/aws-eks.CfnCluster.EncryptionConfigProperty" } ] } }, "kind": "array" } } ] } } }, { "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-cluster.html#cfn-eks-cluster-kubernetesnetworkconfig" }, "stability": "external", "summary": "The Kubernetes network configuration for the cluster." }, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 585 }, "name": "kubernetesNetworkConfig", "optional": true, "type": { "union": { "types": [ { "fqn": "@aws-cdk/core.IResolvable" }, { "fqn": "@aws-cdk/aws-eks.CfnCluster.KubernetesNetworkConfigProperty" } ] } } }, { "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-cluster.html#cfn-eks-cluster-logging" }, "stability": "external", "summary": "The logging configuration for your cluster." }, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 592 }, "name": "logging", "optional": true, "type": { "union": { "types": [ { "fqn": "@aws-cdk/core.IResolvable" }, { "fqn": "@aws-cdk/aws-eks.CfnCluster.LoggingProperty" } ] } } }, { "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-cluster.html#cfn-eks-cluster-name" }, "stability": "external", "summary": "The unique name to give to your cluster." }, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 599 }, "name": "name", "optional": true, "type": { "primitive": "string" } }, { "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-cluster.html#cfn-eks-cluster-outpostconfig" }, "remarks": "This object isn't available for clusters on the AWS cloud.", "stability": "external", "summary": "An object representing the configuration of your local Amazon EKS cluster on an AWS Outpost." }, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 606 }, "name": "outpostConfig", "optional": true, "type": { "union": { "types": [ { "fqn": "@aws-cdk/core.IResolvable" }, { "fqn": "@aws-cdk/aws-eks.CfnCluster.OutpostConfigProperty" } ] } } }, { "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-cluster.html#cfn-eks-cluster-version" }, "remarks": "If you don't specify a value here, the default version available in Amazon EKS is used.\n\n> The default version might not be the latest version available.", "stability": "external", "summary": "The desired Kubernetes version for your cluster." }, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 624 }, "name": "version", "optional": true, "type": { "primitive": "string" } } ], "symbolId": "lib/eks.generated:CfnCluster" }, "@aws-cdk/aws-eks.CfnCluster.ClusterLoggingProperty": { "assembly": "@aws-cdk/aws-eks", "datatype": true, "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-clusterlogging.html", "exampleMetadata": "fixture=_generated" }, "remarks": "> When updating a resource, you must include this `ClusterLogging` property if the previous CloudFormation template of the resource had it.", "stability": "external", "summary": "The cluster control plane logging configuration for your cluster.", "example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as eks from '@aws-cdk/aws-eks';\nconst clusterLoggingProperty: eks.CfnCluster.ClusterLoggingProperty = {\n enabledTypes: [{\n type: 'type',\n }],\n};" }, "fqn": "@aws-cdk/aws-eks.CfnCluster.ClusterLoggingProperty", "kind": "interface", "locationInModule": { "filename": "lib/eks.generated.ts", "line": 698 }, "name": "ClusterLoggingProperty", "namespace": "CfnCluster", "properties": [ { "abstract": true, "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-clusterlogging.html#cfn-eks-cluster-clusterlogging-enabledtypes" }, "remarks": "> When updating a resource, you must include this `EnabledTypes` property if the previous CloudFormation template of the resource had it.", "stability": "external", "summary": "The enabled control plane logs for your cluster. All log types are disabled if the array is empty." }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 706 }, "name": "enabledTypes", "optional": true, "type": { "union": { "types": [ { "fqn": "@aws-cdk/core.IResolvable" }, { "collection": { "elementtype": { "union": { "types": [ { "fqn": "@aws-cdk/core.IResolvable" }, { "fqn": "@aws-cdk/aws-eks.CfnCluster.LoggingTypeConfigProperty" } ] } }, "kind": "array" } } ] } } } ], "symbolId": "lib/eks.generated:CfnCluster.ClusterLoggingProperty" }, "@aws-cdk/aws-eks.CfnCluster.ControlPlanePlacementProperty": { "assembly": "@aws-cdk/aws-eks", "datatype": true, "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-controlplaneplacement.html", "exampleMetadata": "fixture=_generated" }, "remarks": "For more information, see [Capacity considerations](https://docs.aws.amazon.com/eks/latest/userguide/eks-outposts-capacity-considerations.html) in the Amazon EKS User Guide.", "stability": "external", "summary": "The placement configuration for all the control plane instances of your local Amazon EKS cluster on an AWS Outpost.", "example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as eks from '@aws-cdk/aws-eks';\nconst controlPlanePlacementProperty: eks.CfnCluster.ControlPlanePlacementProperty = {\n groupName: 'groupName',\n};" }, "fqn": "@aws-cdk/aws-eks.CfnCluster.ControlPlanePlacementProperty", "kind": "interface", "locationInModule": { "filename": "lib/eks.generated.ts", "line": 767 }, "name": "ControlPlanePlacementProperty", "namespace": "CfnCluster", "properties": [ { "abstract": true, "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-controlplaneplacement.html#cfn-eks-cluster-controlplaneplacement-groupname" }, "stability": "external", "summary": "The name of the placement group for the Kubernetes control plane instances." }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 773 }, "name": "groupName", "optional": true, "type": { "primitive": "string" } } ], "symbolId": "lib/eks.generated:CfnCluster.ControlPlanePlacementProperty" }, "@aws-cdk/aws-eks.CfnCluster.EncryptionConfigProperty": { "assembly": "@aws-cdk/aws-eks", "datatype": true, "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-encryptionconfig.html", "exampleMetadata": "fixture=_generated" }, "stability": "external", "summary": "The encryption configuration for the cluster.", "example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as eks from '@aws-cdk/aws-eks';\nconst encryptionConfigProperty: eks.CfnCluster.EncryptionConfigProperty = {\n provider: {\n keyArn: 'keyArn',\n },\n resources: ['resources'],\n};" }, "fqn": "@aws-cdk/aws-eks.CfnCluster.EncryptionConfigProperty", "kind": "interface", "locationInModule": { "filename": "lib/eks.generated.ts", "line": 834 }, "name": "EncryptionConfigProperty", "namespace": "CfnCluster", "properties": [ { "abstract": true, "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-encryptionconfig.html#cfn-eks-cluster-encryptionconfig-provider" }, "stability": "external", "summary": "The encryption provider for the cluster." }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 840 }, "name": "provider", "optional": true, "type": { "union": { "types": [ { "fqn": "@aws-cdk/core.IResolvable" }, { "fqn": "@aws-cdk/aws-eks.CfnCluster.ProviderProperty" } ] } } }, { "abstract": true, "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-encryptionconfig.html#cfn-eks-cluster-encryptionconfig-resources" }, "remarks": "The only supported value is \"secrets\".", "stability": "external", "summary": "Specifies the resources to be encrypted." }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 846 }, "name": "resources", "optional": true, "type": { "collection": { "elementtype": { "primitive": "string" }, "kind": "array" } } } ], "symbolId": "lib/eks.generated:CfnCluster.EncryptionConfigProperty" }, "@aws-cdk/aws-eks.CfnCluster.KubernetesNetworkConfigProperty": { "assembly": "@aws-cdk/aws-eks", "datatype": true, "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-kubernetesnetworkconfig.html", "exampleMetadata": "fixture=_generated" }, "stability": "external", "summary": "The Kubernetes network configuration for the cluster.", "example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as eks from '@aws-cdk/aws-eks';\nconst kubernetesNetworkConfigProperty: eks.CfnCluster.KubernetesNetworkConfigProperty = {\n ipFamily: 'ipFamily',\n serviceIpv4Cidr: 'serviceIpv4Cidr',\n serviceIpv6Cidr: 'serviceIpv6Cidr',\n};" }, "fqn": "@aws-cdk/aws-eks.CfnCluster.KubernetesNetworkConfigProperty", "kind": "interface", "locationInModule": { "filename": "lib/eks.generated.ts", "line": 910 }, "name": "KubernetesNetworkConfigProperty", "namespace": "CfnCluster", "properties": [ { "abstract": true, "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-kubernetesnetworkconfig.html#cfn-eks-cluster-kubernetesnetworkconfig-ipfamily" }, "remarks": "If you don't specify a value, `ipv4` is used by default. You can only specify an IP family when you create a cluster and can't change this value once the cluster is created. If you specify `ipv6` , the VPC and subnets that you specify for cluster creation must have both `IPv4` and `IPv6` CIDR blocks assigned to them. You can't specify `ipv6` for clusters in China Regions.\n\nYou can only specify `ipv6` for `1.21` and later clusters that use version `1.10.1` or later of the Amazon VPC CNI add-on. If you specify `ipv6` , then ensure that your VPC meets the requirements listed in the considerations listed in [Assigning IPv6 addresses to pods and services](https://docs.aws.amazon.com/eks/latest/userguide/cni-ipv6.html) in the Amazon EKS User Guide. Kubernetes assigns services `IPv6` addresses from the unique local address range `(fc00::/7)` . You can't specify a custom `IPv6` CIDR block. Pod addresses are assigned from the subnet's `IPv6` CIDR.", "stability": "external", "summary": "Specify which IP family is used to assign Kubernetes pod and service IP addresses." }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 918 }, "name": "ipFamily", "optional": true, "type": { "primitive": "string" } }, { "abstract": true, "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-kubernetesnetworkconfig.html#cfn-eks-cluster-kubernetesnetworkconfig-serviceipv4cidr" }, "remarks": "The CIDR block to assign Kubernetes service IP addresses from. If you don't specify a block, Kubernetes assigns addresses from either the `10.100.0.0/16` or `172.20.0.0/16` CIDR blocks. We recommend that you specify a block that does not overlap with resources in other networks that are peered or connected to your VPC. The block must meet the following requirements:\n\n- Within one of the following private IP address blocks: `10.0.0.0/8` , `172.16.0.0/12` , or `192.168.0.0/16` .\n- Doesn't overlap with any CIDR block assigned to the VPC that you selected for VPC.\n- Between /24 and /12.\n\n> You can only specify a custom CIDR block when you create a cluster and can't change this value once the cluster is created.", "stability": "external", "summary": "Don't specify a value if you select `ipv6` for *ipFamily* ." }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 930 }, "name": "serviceIpv4Cidr", "optional": true, "type": { "primitive": "string" } }, { "abstract": true, "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-kubernetesnetworkconfig.html#cfn-eks-cluster-kubernetesnetworkconfig-serviceipv6cidr" }, "stability": "external", "summary": "The CIDR block that Kubernetes pod and service IP addresses are assigned from if you created a 1.21 or later cluster with version 1.10.1 or later of the Amazon VPC CNI add-on and specified `ipv6` for *ipFamily* when you created the cluster. Kubernetes assigns service addresses from the unique local address range ( `fc00::/7` ) because you can't specify a custom IPv6 CIDR block when you create the cluster." }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 936 }, "name": "serviceIpv6Cidr", "optional": true, "type": { "primitive": "string" } } ], "symbolId": "lib/eks.generated:CfnCluster.KubernetesNetworkConfigProperty" }, "@aws-cdk/aws-eks.CfnCluster.LoggingProperty": { "assembly": "@aws-cdk/aws-eks", "datatype": true, "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-logging.html", "exampleMetadata": "fixture=_generated" }, "remarks": "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** .\n\n> When updating a resource, you must include this `Logging` property if the previous CloudFormation template of the resource had it. > CloudWatch Logs ingestion, archive storage, and data scanning rates apply to exported control plane logs. For more information, see [CloudWatch Pricing](https://docs.aws.amazon.com/cloudwatch/pricing/) .", "stability": "external", "summary": "Enable or disable exporting the Kubernetes control plane logs for your cluster to CloudWatch Logs.", "example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as eks from '@aws-cdk/aws-eks';\nconst loggingProperty: eks.CfnCluster.LoggingProperty = {\n clusterLogging: {\n enabledTypes: [{\n type: 'type',\n }],\n },\n};" }, "fqn": "@aws-cdk/aws-eks.CfnCluster.LoggingProperty", "kind": "interface", "locationInModule": { "filename": "lib/eks.generated.ts", "line": 1005 }, "name": "LoggingProperty", "namespace": "CfnCluster", "properties": [ { "abstract": true, "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-logging.html#cfn-eks-cluster-logging-clusterlogging" }, "stability": "external", "summary": "The cluster control plane logging configuration for your cluster." }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 1011 }, "name": "clusterLogging", "optional": true, "type": { "union": { "types": [ { "fqn": "@aws-cdk/core.IResolvable" }, { "fqn": "@aws-cdk/aws-eks.CfnCluster.ClusterLoggingProperty" } ] } } } ], "symbolId": "lib/eks.generated:CfnCluster.LoggingProperty" }, "@aws-cdk/aws-eks.CfnCluster.LoggingTypeConfigProperty": { "assembly": "@aws-cdk/aws-eks", "datatype": true, "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-loggingtypeconfig.html", "exampleMetadata": "fixture=_generated" }, "remarks": "For a list of the valid logging types, see the [`types` property of `LogSetup`](https://docs.aws.amazon.com/eks/latest/APIReference/API_LogSetup.html#AmazonEKS-Type-LogSetup-types) in the *Amazon EKS API Reference* .", "stability": "external", "summary": "The enabled logging type.", "example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as eks from '@aws-cdk/aws-eks';\nconst loggingTypeConfigProperty: eks.CfnCluster.LoggingTypeConfigProperty = {\n type: 'type',\n};" }, "fqn": "@aws-cdk/aws-eks.CfnCluster.LoggingTypeConfigProperty", "kind": "interface", "locationInModule": { "filename": "lib/eks.generated.ts", "line": 1072 }, "name": "LoggingTypeConfigProperty", "namespace": "CfnCluster", "properties": [ { "abstract": true, "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-loggingtypeconfig.html#cfn-eks-cluster-loggingtypeconfig-type" }, "stability": "external", "summary": "The name of the log type." }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 1078 }, "name": "type", "optional": true, "type": { "primitive": "string" } } ], "symbolId": "lib/eks.generated:CfnCluster.LoggingTypeConfigProperty" }, "@aws-cdk/aws-eks.CfnCluster.OutpostConfigProperty": { "assembly": "@aws-cdk/aws-eks", "datatype": true, "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-outpostconfig.html", "exampleMetadata": "fixture=_generated" }, "remarks": "Before creating a cluster on an Outpost, review [Creating a local cluster on an Outpost](https://docs.aws.amazon.com/eks/latest/userguide/eks-outposts-local-cluster-create.html) in the *Amazon EKS User Guide* . This API isn't available for Amazon EKS clusters on the AWS cloud.", "stability": "external", "summary": "The configuration of your local Amazon EKS cluster on an AWS Outpost.", "example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as eks from '@aws-cdk/aws-eks';\nconst outpostConfigProperty: eks.CfnCluster.OutpostConfigProperty = {\n controlPlaneInstanceType: 'controlPlaneInstanceType',\n outpostArns: ['outpostArns'],\n\n // the properties below are optional\n controlPlanePlacement: {\n groupName: 'groupName',\n },\n};" }, "fqn": "@aws-cdk/aws-eks.CfnCluster.OutpostConfigProperty", "kind": "interface", "locationInModule": { "filename": "lib/eks.generated.ts", "line": 1139 }, "name": "OutpostConfigProperty", "namespace": "CfnCluster", "properties": [ { "abstract": true, "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-outpostconfig.html#cfn-eks-cluster-outpostconfig-controlplaneinstancetype" }, "remarks": "Choose an instance type based on the number of nodes that your cluster will have. For more information, see [Capacity considerations](https://docs.aws.amazon.com/eks/latest/userguide/eks-outposts-capacity-considerations.html) in the *Amazon EKS User Guide* .\n\nThe instance type that you specify is used for all Kubernetes control plane instances. The instance type can't be changed after cluster creation. The control plane is not automatically scaled by Amazon EKS.", "stability": "external", "summary": "The Amazon EC2 instance type that you want to use for your local Amazon EKS cluster on Outposts." }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 1147 }, "name": "controlPlaneInstanceType", "type": { "primitive": "string" } }, { "abstract": true, "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-outpostconfig.html#cfn-eks-cluster-outpostconfig-outpostarns" }, "remarks": "Only a single Outpost ARN is supported.", "stability": "external", "summary": "The ARN of the Outpost that you want to use for your local Amazon EKS cluster on Outposts." }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 1159 }, "name": "outpostArns", "type": { "collection": { "elementtype": { "primitive": "string" }, "kind": "array" } } }, { "abstract": true, "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-outpostconfig.html#cfn-eks-cluster-outpostconfig-controlplaneplacement" }, "remarks": "For more information, see [Capacity considerations](https://docs.aws.amazon.com/eks/latest/userguide/eks-outposts-capacity-considerations.html) in the *Amazon EKS User Guide* .", "stability": "external", "summary": "An object representing the placement configuration for all the control plane instances of your local Amazon EKS cluster on an AWS Outpost." }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 1153 }, "name": "controlPlanePlacement", "optional": true, "type": { "union": { "types": [ { "fqn": "@aws-cdk/core.IResolvable" }, { "fqn": "@aws-cdk/aws-eks.CfnCluster.ControlPlanePlacementProperty" } ] } } } ], "symbolId": "lib/eks.generated:CfnCluster.OutpostConfigProperty" }, "@aws-cdk/aws-eks.CfnCluster.ProviderProperty": { "assembly": "@aws-cdk/aws-eks", "datatype": true, "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-provider.html", "exampleMetadata": "fixture=_generated" }, "stability": "external", "summary": "Identifies the AWS Key Management Service ( AWS KMS ) key used to encrypt the secrets.", "example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as eks from '@aws-cdk/aws-eks';\nconst providerProperty: eks.CfnCluster.ProviderProperty = {\n keyArn: 'keyArn',\n};" }, "fqn": "@aws-cdk/aws-eks.CfnCluster.ProviderProperty", "kind": "interface", "locationInModule": { "filename": "lib/eks.generated.ts", "line": 1228 }, "name": "ProviderProperty", "namespace": "CfnCluster", "properties": [ { "abstract": true, "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-provider.html#cfn-eks-cluster-provider-keyarn" }, "remarks": "The KMS key must be symmetric and created in the same AWS Region as the cluster. If the KMS key was created in a different account, the [IAM principal](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html) must have access to the KMS key. For more information, see [Allowing users in other accounts to use a KMS key](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-modifying-external-accounts.html) in the *AWS Key Management Service Developer Guide* .", "stability": "external", "summary": "Amazon Resource Name (ARN) or alias of the KMS key." }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 1234 }, "name": "keyArn", "optional": true, "type": { "primitive": "string" } } ], "symbolId": "lib/eks.generated:CfnCluster.ProviderProperty" }, "@aws-cdk/aws-eks.CfnCluster.ResourcesVpcConfigProperty": { "assembly": "@aws-cdk/aws-eks", "datatype": true, "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-resourcesvpcconfig.html", "exampleMetadata": "fixture=_generated" }, "remarks": "> When updating a resource, you must include these properties if the previous CloudFormation template of the resource had them:\n>\n> - `EndpointPublicAccess`\n> - `EndpointPrivateAccess`\n> - `PublicAccessCidrs`", "stability": "external", "summary": "An object representing the VPC configuration to use for an Amazon EKS cluster.", "example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as eks from '@aws-cdk/aws-eks';\nconst resourcesVpcConfigProperty: eks.CfnCluster.ResourcesVpcConfigProperty = {\n subnetIds: ['subnetIds'],\n\n // the properties below are optional\n endpointPrivateAccess: false,\n endpointPublicAccess: false,\n publicAccessCidrs: ['publicAccessCidrs'],\n securityGroupIds: ['securityGroupIds'],\n};" }, "fqn": "@aws-cdk/aws-eks.CfnCluster.ResourcesVpcConfigProperty", "kind": "interface", "locationInModule": { "filename": "lib/eks.generated.ts", "line": 1301 }, "name": "ResourcesVpcConfigProperty", "namespace": "CfnCluster", "properties": [ { "abstract": true, "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-resourcesvpcconfig.html#cfn-eks-cluster-resourcesvpcconfig-subnetids" }, "remarks": "Amazon EKS creates cross-account elastic network interfaces in these subnets to allow communication between your nodes and the Kubernetes control plane.", "stability": "external", "summary": "Specify subnets for your Amazon EKS nodes." }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 1331 }, "name": "subnetIds", "type": { "collection": { "elementtype": { "primitive": "string" }, "kind": "array" } } }, { "abstract": true, "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-resourcesvpcconfig.html#cfn-eks-cluster-resourcesvpcconfig-endpointprivateaccess" }, "remarks": "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** .", "stability": "external", "summary": "Set this value to `true` to enable private access for your cluster's Kubernetes API server endpoint." }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 1307 }, "name": "endpointPrivateAccess", "optional": true, "type": { "union": { "types": [ { "primitive": "boolean" }, { "fqn": "@aws-cdk/core.IResolvable" } ] } } }, { "abstract": true, "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-resourcesvpcconfig.html#cfn-eks-cluster-resourcesvpcconfig-endpointpublicaccess" }, "remarks": "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** .", "stability": "external", "summary": "Set this value to `false` to disable public access to your cluster's Kubernetes API server endpoint." }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 1313 }, "name": "endpointPublicAccess", "optional": true, "type": { "union": { "types": [ { "primitive": "boolean" }, { "fqn": "@aws-cdk/core.IResolvable" } ] } } }, { "abstract": true, "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-resourcesvpcconfig.html#cfn-eks-cluster-resourcesvpcconfig-publicaccesscidrs" }, "remarks": "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 and you have nodes or AWS Fargate pods in the cluster, then ensure that you specify the necessary CIDR blocks. 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** .", "stability": "external", "summary": "The CIDR blocks that are allowed access to your cluster's public Kubernetes API server endpoint." }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 1319 }, "name": "publicAccessCidrs", "optional": true, "type": { "collection": { "elementtype": { "primitive": "string" }, "kind": "array" } } }, { "abstract": true, "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-cluster-resourcesvpcconfig.html#cfn-eks-cluster-resourcesvpcconfig-securitygroupids" }, "remarks": "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** .", "stability": "external", "summary": "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." }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 1325 }, "name": "securityGroupIds", "optional": true, "type": { "collection": { "elementtype": { "primitive": "string" }, "kind": "array" } } } ], "symbolId": "lib/eks.generated:CfnCluster.ResourcesVpcConfigProperty" }, "@aws-cdk/aws-eks.CfnClusterProps": { "assembly": "@aws-cdk/aws-eks", "datatype": true, "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-cluster.html", "exampleMetadata": "fixture=_generated" }, "stability": "external", "summary": "Properties for defining a `CfnCluster`.", "example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as eks from '@aws-cdk/aws-eks';\nconst cfnClusterProps: eks.CfnClusterProps = {\n resourcesVpcConfig: {\n subnetIds: ['subnetIds'],\n\n // the properties below are optional\n endpointPrivateAccess: false,\n endpointPublicAccess: false,\n publicAccessCidrs: ['publicAccessCidrs'],\n securityGroupIds: ['securityGroupIds'],\n },\n roleArn: 'roleArn',\n\n // the properties below are optional\n encryptionConfig: [{\n provider: {\n keyArn: 'keyArn',\n },\n resources: ['resources'],\n }],\n kubernetesNetworkConfig: {\n ipFamily: 'ipFamily',\n serviceIpv4Cidr: 'serviceIpv4Cidr',\n serviceIpv6Cidr: 'serviceIpv6Cidr',\n },\n logging: {\n clusterLogging: {\n enabledTypes: [{\n type: 'type',\n }],\n },\n },\n name: 'name',\n outpostConfig: {\n controlPlaneInstanceType: 'controlPlaneInstanceType',\n outpostArns: ['outpostArns'],\n\n // the properties below are optional\n controlPlanePlacement: {\n groupName: 'groupName',\n },\n },\n tags: [{\n key: 'key',\n value: 'value',\n }],\n version: 'version',\n};" }, "fqn": "@aws-cdk/aws-eks.CfnClusterProps", "kind": "interface", "locationInModule": { "filename": "lib/eks.generated.ts", "line": 321 }, "name": "CfnClusterProps", "properties": [ { "abstract": true, "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-cluster.html#cfn-eks-cluster-resourcesvpcconfig" }, "remarks": "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.\n\n> Updates require replacement of the `SecurityGroupIds` and `SubnetIds` sub-properties.", "stability": "external", "summary": "The VPC configuration that's used by the cluster control plane." }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 330 }, "name": "resourcesVpcConfig", "type": { "union": { "types": [ { "fqn": "@aws-cdk/core.IResolvable" }, { "fqn": "@aws-cdk/aws-eks.CfnCluster.ResourcesVpcConfigProperty" } ] } } }, { "abstract": true, "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-cluster.html#cfn-eks-cluster-rolearn" }, "remarks": "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** .", "stability": "external", "summary": "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." }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 337 }, "name": "roleArn", "type": { "primitive": "string" } }, { "abstract": true, "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-cluster.html#cfn-eks-cluster-encryptionconfig" }, "stability": "external", "summary": "The encryption configuration for the cluster." }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 344 }, "name": "encryptionConfig", "optional": true, "type": { "union": { "types": [ { "fqn": "@aws-cdk/core.IResolvable" }, { "collection": { "elementtype": { "union": { "types": [ { "fqn": "@aws-cdk/core.IResolvable" }, { "fqn": "@aws-cdk/aws-eks.CfnCluster.EncryptionConfigProperty" } ] } }, "kind": "array" } } ] } } }, { "abstract": true, "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-cluster.html#cfn-eks-cluster-kubernetesnetworkconfig" }, "stability": "external", "summary": "The Kubernetes network configuration for the cluster." }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 351 }, "name": "kubernetesNetworkConfig", "optional": true, "type": { "union": { "types": [ { "fqn": "@aws-cdk/core.IResolvable" }, { "fqn": "@aws-cdk/aws-eks.CfnCluster.KubernetesNetworkConfigProperty" } ] } } }, { "abstract": true, "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-cluster.html#cfn-eks-cluster-logging" }, "stability": "external", "summary": "The logging configuration for your cluster." }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 358 }, "name": "logging", "optional": true, "type": { "union": { "types": [ { "fqn": "@aws-cdk/core.IResolvable" }, { "fqn": "@aws-cdk/aws-eks.CfnCluster.LoggingProperty" } ] } } }, { "abstract": true, "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-cluster.html#cfn-eks-cluster-name" }, "stability": "external", "summary": "The unique name to give to your cluster." }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 365 }, "name": "name", "optional": true, "type": { "primitive": "string" } }, { "abstract": true, "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-cluster.html#cfn-eks-cluster-outpostconfig" }, "remarks": "This object isn't available for clusters on the AWS cloud.", "stability": "external", "summary": "An object representing the configuration of your local Amazon EKS cluster on an AWS Outpost." }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 372 }, "name": "outpostConfig", "optional": true, "type": { "union": { "types": [ { "fqn": "@aws-cdk/core.IResolvable" }, { "fqn": "@aws-cdk/aws-eks.CfnCluster.OutpostConfigProperty" } ] } } }, { "abstract": true, "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-cluster.html#cfn-eks-cluster-tags" }, "remarks": "Each tag consists of a key and an optional value, both of which you define. Cluster tags don't propagate to any other resources associated with the cluster.\n\n> You must have the `eks:TagResource` and `eks:UntagResource` permissions for your [IAM principal](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html) to manage the AWS CloudFormation stack. If you don't have these permissions, there might be unexpected behavior with stack-level tags propagating to the resource during resource creation and update.", "stability": "external", "summary": "The metadata that you apply to the cluster to assist with categorization and organization." }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 381 }, "name": "tags", "optional": true, "type": { "collection": { "elementtype": { "fqn": "@aws-cdk/core.CfnTag" }, "kind": "array" } } }, { "abstract": true, "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-cluster.html#cfn-eks-cluster-version" }, "remarks": "If you don't specify a value here, the default version available in Amazon EKS is used.\n\n> The default version might not be the latest version available.", "stability": "external", "summary": "The desired Kubernetes version for your cluster." }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 390 }, "name": "version", "optional": true, "type": { "primitive": "string" } } ], "symbolId": "lib/eks.generated:CfnClusterProps" }, "@aws-cdk/aws-eks.CfnFargateProfile": { "assembly": "@aws-cdk/aws-eks", "base": "@aws-cdk/core.CfnResource", "docs": { "custom": { "cloudformationResource": "AWS::EKS::FargateProfile", "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-fargateprofile.html", "exampleMetadata": "fixture=_generated" }, "remarks": "Creates an AWS Fargate profile for your Amazon EKS cluster. You must have at least one Fargate profile in a cluster to be able to run pods on Fargate.\n\nThe Fargate profile allows an administrator to declare which pods run on Fargate and specify which pods run on which Fargate profile. This declaration is done through the profile’s selectors. Each profile can have up to five selectors that contain a namespace and labels. A namespace is required for every selector. The label field consists of multiple optional key-value pairs. Pods that match the selectors are scheduled on Fargate. If a to-be-scheduled pod matches any of the selectors in the Fargate profile, then that pod is run on Fargate.\n\nWhen you create a Fargate profile, you must specify a pod execution role to use with the pods that are scheduled with the profile. This role is added to the cluster's Kubernetes [Role Based Access Control](https://docs.aws.amazon.com/https://kubernetes.io/docs/admin/authorization/rbac/) (RBAC) for authorization so that the `kubelet` that is running on the Fargate infrastructure can register with your Amazon EKS cluster so that it can appear in your cluster as a node. The pod execution role also provides IAM permissions to the Fargate infrastructure to allow read access to Amazon ECR image repositories. For more information, see [Pod Execution Role](https://docs.aws.amazon.com/eks/latest/userguide/pod-execution-role.html) in the *Amazon EKS User Guide* .\n\nFargate profiles are immutable. However, you can create a new updated profile to replace an existing profile and then delete the original after the updated profile has finished creating.\n\nIf any Fargate profiles in a cluster are in the `DELETING` status, you must wait for that Fargate profile to finish deleting before you can create any other profiles in that cluster.\n\nFor more information, see [AWS Fargate Profile](https://docs.aws.amazon.com/eks/latest/userguide/fargate-profile.html) in the *Amazon EKS User Guide* .", "stability": "external", "summary": "A CloudFormation `AWS::EKS::FargateProfile`.", "example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as eks from '@aws-cdk/aws-eks';\nconst cfnFargateProfile = new eks.CfnFargateProfile(this, 'MyCfnFargateProfile', {\n clusterName: 'clusterName',\n podExecutionRoleArn: 'podExecutionRoleArn',\n selectors: [{\n namespace: 'namespace',\n\n // the properties below are optional\n labels: [{\n key: 'key',\n value: 'value',\n }],\n }],\n\n // the properties below are optional\n fargateProfileName: 'fargateProfileName',\n subnets: ['subnets'],\n tags: [{\n key: 'key',\n value: 'value',\n }],\n});" }, "fqn": "@aws-cdk/aws-eks.CfnFargateProfile", "initializer": { "docs": { "stability": "external", "summary": "Create a new `AWS::EKS::FargateProfile`." }, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 1612 }, "parameters": [ { "docs": { "summary": "- scope in which this resource is defined." }, "name": "scope", "type": { "fqn": "@aws-cdk/core.Construct" } }, { "docs": { "summary": "- scoped id of the resource." }, "name": "id", "type": { "primitive": "string" } }, { "docs": { "summary": "- resource properties." }, "name": "props", "type": { "fqn": "@aws-cdk/aws-eks.CfnFargateProfileProps" } } ] }, "interfaces": [ "@aws-cdk/core.IInspectable" ], "kind": "class", "locationInModule": { "filename": "lib/eks.generated.ts", "line": 1532 }, "methods": [ { "docs": { "stability": "external", "summary": "Examines the CloudFormation resource and discloses attributes." }, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 1633 }, "name": "inspect", "overrides": "@aws-cdk/core.IInspectable", "parameters": [ { "docs": { "summary": "- tree inspector to collect and process attributes." }, "name": "inspector", "type": { "fqn": "@aws-cdk/core.TreeInspector" } } ] }, { "docs": { "stability": "external" }, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 1649 }, "name": "renderProperties", "overrides": "@aws-cdk/core.CfnResource", "parameters": [ { "name": "props", "type": { "collection": { "elementtype": { "primitive": "any" }, "kind": "map" } } } ], "protected": true, "returns": { "type": { "collection": { "elementtype": { "primitive": "any" }, "kind": "map" } } } } ], "name": "CfnFargateProfile", "properties": [ { "const": true, "docs": { "stability": "external", "summary": "The CloudFormation resource type name for this resource class." }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 1536 }, "name": "CFN_RESOURCE_TYPE_NAME", "static": true, "type": { "primitive": "string" } }, { "docs": { "custom": { "cloudformationAttribute": "Arn" }, "stability": "external", "summary": "The ARN of the cluster, such as `arn:aws:eks:us-west-2:666666666666:fargateprofile/myCluster/myFargateProfile/1cb1a11a-1dc1-1d11-cf11-1111f11fa111` ." }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 1561 }, "name": "attrArn", "type": { "primitive": "string" } }, { "docs": { "stability": "external" }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 1638 }, "name": "cfnProperties", "overrides": "@aws-cdk/core.CfnResource", "protected": true, "type": { "collection": { "elementtype": { "primitive": "any" }, "kind": "map" } } }, { "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-fargateprofile.html#cfn-eks-fargateprofile-tags" }, "remarks": "Each tag consists of a key and an optional value. You define both. Fargate profile tags do not propagate to any other resources associated with the Fargate profile, such as the pods that are scheduled with it.", "stability": "external", "summary": "The metadata to apply to the Fargate profile to assist with categorization and organization." }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 1603 }, "name": "tags", "type": { "fqn": "@aws-cdk/core.TagManager" } }, { "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-fargateprofile.html#cfn-eks-fargateprofile-clustername" }, "stability": "external", "summary": "The name of the Amazon EKS cluster to apply the Fargate profile to." }, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 1568 }, "name": "clusterName", "type": { "primitive": "string" } }, { "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-fargateprofile.html#cfn-eks-fargateprofile-podexecutionrolearn" }, "remarks": "The pod execution role allows Fargate infrastructure to register with your cluster as a node, and it provides read access to Amazon ECR image repositories. For more information, see [Pod Execution Role](https://docs.aws.amazon.com/eks/latest/userguide/pod-execution-role.html) in the *Amazon EKS User Guide* .", "stability": "external", "summary": "The Amazon Resource Name (ARN) of the pod execution role to use for pods that match the selectors in the Fargate profile." }, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 1575 }, "name": "podExecutionRoleArn", "type": { "primitive": "string" } }, { "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-fargateprofile.html#cfn-eks-fargateprofile-selectors" }, "remarks": "Each selector must have an associated namespace. Optionally, you can also specify labels for a namespace. You may specify up to five selectors in a Fargate profile.", "stability": "external", "summary": "The selectors to match for pods to use this Fargate profile." }, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 1582 }, "name": "selectors", "type": { "union": { "types": [ { "fqn": "@aws-cdk/core.IResolvable" }, { "collection": { "elementtype": { "union": { "types": [ { "fqn": "@aws-cdk/core.IResolvable" }, { "fqn": "@aws-cdk/aws-eks.CfnFargateProfile.SelectorProperty" } ] } }, "kind": "array" } } ] } } }, { "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-fargateprofile.html#cfn-eks-fargateprofile-fargateprofilename" }, "stability": "external", "summary": "The name of the Fargate profile." }, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 1589 }, "name": "fargateProfileName", "optional": true, "type": { "primitive": "string" } }, { "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-fargateprofile.html#cfn-eks-fargateprofile-subnets" }, "remarks": "At this time, pods running on Fargate are not assigned public IP addresses, so only private subnets (with no direct route to an Internet Gateway) are accepted for this parameter.", "stability": "external", "summary": "The IDs of subnets to launch your pods into." }, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 1596 }, "name": "subnets", "optional": true, "type": { "collection": { "elementtype": { "primitive": "string" }, "kind": "array" } } } ], "symbolId": "lib/eks.generated:CfnFargateProfile" }, "@aws-cdk/aws-eks.CfnFargateProfile.LabelProperty": { "assembly": "@aws-cdk/aws-eks", "datatype": true, "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-fargateprofile-label.html", "exampleMetadata": "fixture=_generated" }, "stability": "external", "summary": "A key-value pair.", "example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as eks from '@aws-cdk/aws-eks';\nconst labelProperty: eks.CfnFargateProfile.LabelProperty = {\n key: 'key',\n value: 'value',\n};" }, "fqn": "@aws-cdk/aws-eks.CfnFargateProfile.LabelProperty", "kind": "interface", "locationInModule": { "filename": "lib/eks.generated.ts", "line": 1663 }, "name": "LabelProperty", "namespace": "CfnFargateProfile", "properties": [ { "abstract": true, "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-fargateprofile-label.html#cfn-eks-fargateprofile-label-key" }, "stability": "external", "summary": "Enter a key." }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 1669 }, "name": "key", "type": { "primitive": "string" } }, { "abstract": true, "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-fargateprofile-label.html#cfn-eks-fargateprofile-label-value" }, "stability": "external", "summary": "Enter a value." }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 1675 }, "name": "value", "type": { "primitive": "string" } } ], "symbolId": "lib/eks.generated:CfnFargateProfile.LabelProperty" }, "@aws-cdk/aws-eks.CfnFargateProfile.SelectorProperty": { "assembly": "@aws-cdk/aws-eks", "datatype": true, "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-fargateprofile-selector.html", "exampleMetadata": "fixture=_generated" }, "stability": "external", "summary": "An object representing an AWS Fargate profile selector.", "example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as eks from '@aws-cdk/aws-eks';\nconst selectorProperty: eks.CfnFargateProfile.SelectorProperty = {\n namespace: 'namespace',\n\n // the properties below are optional\n labels: [{\n key: 'key',\n value: 'value',\n }],\n};" }, "fqn": "@aws-cdk/aws-eks.CfnFargateProfile.SelectorProperty", "kind": "interface", "locationInModule": { "filename": "lib/eks.generated.ts", "line": 1741 }, "name": "SelectorProperty", "namespace": "CfnFargateProfile", "properties": [ { "abstract": true, "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-fargateprofile-selector.html#cfn-eks-fargateprofile-selector-namespace" }, "stability": "external", "summary": "The Kubernetes namespace that the selector should match." }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 1753 }, "name": "namespace", "type": { "primitive": "string" } }, { "abstract": true, "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-fargateprofile-selector.html#cfn-eks-fargateprofile-selector-labels" }, "remarks": "A pod must contain all of the labels that are specified in the selector for it to be considered a match.", "stability": "external", "summary": "The Kubernetes labels that the selector should match." }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 1747 }, "name": "labels", "optional": true, "type": { "union": { "types": [ { "fqn": "@aws-cdk/core.IResolvable" }, { "collection": { "elementtype": { "union": { "types": [ { "fqn": "@aws-cdk/core.IResolvable" }, { "fqn": "@aws-cdk/aws-eks.CfnFargateProfile.LabelProperty" } ] } }, "kind": "array" } } ] } } } ], "symbolId": "lib/eks.generated:CfnFargateProfile.SelectorProperty" }, "@aws-cdk/aws-eks.CfnFargateProfileProps": { "assembly": "@aws-cdk/aws-eks", "datatype": true, "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-fargateprofile.html", "exampleMetadata": "fixture=_generated" }, "stability": "external", "summary": "Properties for defining a `CfnFargateProfile`.", "example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as eks from '@aws-cdk/aws-eks';\nconst cfnFargateProfileProps: eks.CfnFargateProfileProps = {\n clusterName: 'clusterName',\n podExecutionRoleArn: 'podExecutionRoleArn',\n selectors: [{\n namespace: 'namespace',\n\n // the properties below are optional\n labels: [{\n key: 'key',\n value: 'value',\n }],\n }],\n\n // the properties below are optional\n fargateProfileName: 'fargateProfileName',\n subnets: ['subnets'],\n tags: [{\n key: 'key',\n value: 'value',\n }],\n};" }, "fqn": "@aws-cdk/aws-eks.CfnFargateProfileProps", "kind": "interface", "locationInModule": { "filename": "lib/eks.generated.ts", "line": 1404 }, "name": "CfnFargateProfileProps", "properties": [ { "abstract": true, "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-fargateprofile.html#cfn-eks-fargateprofile-clustername" }, "stability": "external", "summary": "The name of the Amazon EKS cluster to apply the Fargate profile to." }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 1411 }, "name": "clusterName", "type": { "primitive": "string" } }, { "abstract": true, "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-fargateprofile.html#cfn-eks-fargateprofile-podexecutionrolearn" }, "remarks": "The pod execution role allows Fargate infrastructure to register with your cluster as a node, and it provides read access to Amazon ECR image repositories. For more information, see [Pod Execution Role](https://docs.aws.amazon.com/eks/latest/userguide/pod-execution-role.html) in the *Amazon EKS User Guide* .", "stability": "external", "summary": "The Amazon Resource Name (ARN) of the pod execution role to use for pods that match the selectors in the Fargate profile." }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 1418 }, "name": "podExecutionRoleArn", "type": { "primitive": "string" } }, { "abstract": true, "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-fargateprofile.html#cfn-eks-fargateprofile-selectors" }, "remarks": "Each selector must have an associated namespace. Optionally, you can also specify labels for a namespace. You may specify up to five selectors in a Fargate profile.", "stability": "external", "summary": "The selectors to match for pods to use this Fargate profile." }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 1425 }, "name": "selectors", "type": { "union": { "types": [ { "fqn": "@aws-cdk/core.IResolvable" }, { "collection": { "elementtype": { "union": { "types": [ { "fqn": "@aws-cdk/core.IResolvable" }, { "fqn": "@aws-cdk/aws-eks.CfnFargateProfile.SelectorProperty" } ] } }, "kind": "array" } } ] } } }, { "abstract": true, "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-fargateprofile.html#cfn-eks-fargateprofile-fargateprofilename" }, "stability": "external", "summary": "The name of the Fargate profile." }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 1432 }, "name": "fargateProfileName", "optional": true, "type": { "primitive": "string" } }, { "abstract": true, "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-fargateprofile.html#cfn-eks-fargateprofile-subnets" }, "remarks": "At this time, pods running on Fargate are not assigned public IP addresses, so only private subnets (with no direct route to an Internet Gateway) are accepted for this parameter.", "stability": "external", "summary": "The IDs of subnets to launch your pods into." }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 1439 }, "name": "subnets", "optional": true, "type": { "collection": { "elementtype": { "primitive": "string" }, "kind": "array" } } }, { "abstract": true, "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-fargateprofile.html#cfn-eks-fargateprofile-tags" }, "remarks": "Each tag consists of a key and an optional value. You define both. Fargate profile tags do not propagate to any other resources associated with the Fargate profile, such as the pods that are scheduled with it.", "stability": "external", "summary": "The metadata to apply to the Fargate profile to assist with categorization and organization." }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 1446 }, "name": "tags", "optional": true, "type": { "collection": { "elementtype": { "fqn": "@aws-cdk/core.CfnTag" }, "kind": "array" } } } ], "symbolId": "lib/eks.generated:CfnFargateProfileProps" }, "@aws-cdk/aws-eks.CfnIdentityProviderConfig": { "assembly": "@aws-cdk/aws-eks", "base": "@aws-cdk/core.CfnResource", "docs": { "custom": { "cloudformationResource": "AWS::EKS::IdentityProviderConfig", "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-identityproviderconfig.html", "exampleMetadata": "fixture=_generated" }, "remarks": "Associate an identity provider configuration to a cluster.\n\nIf you want to authenticate identities using an identity provider, you can create an identity provider configuration and associate it to your cluster. After configuring authentication to your cluster you can create Kubernetes `roles` and `clusterroles` to assign permissions to the roles, and then bind the roles to the identities using Kubernetes `rolebindings` and `clusterrolebindings` . For more information see [Using RBAC Authorization](https://docs.aws.amazon.com/https://kubernetes.io/docs/reference/access-authn-authz/rbac/) in the Kubernetes documentation.", "stability": "external", "summary": "A CloudFormation `AWS::EKS::IdentityProviderConfig`.", "example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as eks from '@aws-cdk/aws-eks';\nconst cfnIdentityProviderConfig = new eks.CfnIdentityProviderConfig(this, 'MyCfnIdentityProviderConfig', {\n clusterName: 'clusterName',\n type: 'type',\n\n // the properties below are optional\n identityProviderConfigName: 'identityProviderConfigName',\n oidc: {\n clientId: 'clientId',\n issuerUrl: 'issuerUrl',\n\n // the properties below are optional\n groupsClaim: 'groupsClaim',\n groupsPrefix: 'groupsPrefix',\n requiredClaims: [{\n key: 'key',\n value: 'value',\n }],\n usernameClaim: 'usernameClaim',\n usernamePrefix: 'usernamePrefix',\n },\n tags: [{\n key: 'key',\n value: 'value',\n }],\n});" }, "fqn": "@aws-cdk/aws-eks.CfnIdentityProviderConfig", "initializer": { "docs": { "stability": "external", "summary": "Create a new `AWS::EKS::IdentityProviderConfig`." }, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 1999 }, "parameters": [ { "docs": { "summary": "- scope in which this resource is defined." }, "name": "scope", "type": { "fqn": "@aws-cdk/core.Construct" } }, { "docs": { "summary": "- scoped id of the resource." }, "name": "id", "type": { "primitive": "string" } }, { "docs": { "summary": "- resource properties." }, "name": "props", "type": { "fqn": "@aws-cdk/aws-eks.CfnIdentityProviderConfigProps" } } ] }, "interfaces": [ "@aws-cdk/core.IInspectable" ], "kind": "class", "locationInModule": { "filename": "lib/eks.generated.ts", "line": 1926 }, "methods": [ { "docs": { "stability": "external", "summary": "Examines the CloudFormation resource and discloses attributes." }, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 2018 }, "name": "inspect", "overrides": "@aws-cdk/core.IInspectable", "parameters": [ { "docs": { "summary": "- tree inspector to collect and process attributes." }, "name": "inspector", "type": { "fqn": "@aws-cdk/core.TreeInspector" } } ] }, { "docs": { "stability": "external" }, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 2033 }, "name": "renderProperties", "overrides": "@aws-cdk/core.CfnResource", "parameters": [ { "name": "props", "type": { "collection": { "elementtype": { "primitive": "any" }, "kind": "map" } } } ], "protected": true, "returns": { "type": { "collection": { "elementtype": { "primitive": "any" }, "kind": "map" } } } } ], "name": "CfnIdentityProviderConfig", "properties": [ { "const": true, "docs": { "stability": "external", "summary": "The CloudFormation resource type name for this resource class." }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 1930 }, "name": "CFN_RESOURCE_TYPE_NAME", "static": true, "type": { "primitive": "string" } }, { "docs": { "custom": { "cloudformationAttribute": "IdentityProviderConfigArn" }, "stability": "external", "summary": "The Amazon Resource Name (ARN) associated with the identity provider config." }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 1955 }, "name": "attrIdentityProviderConfigArn", "type": { "primitive": "string" } }, { "docs": { "stability": "external" }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 2023 }, "name": "cfnProperties", "overrides": "@aws-cdk/core.CfnResource", "protected": true, "type": { "collection": { "elementtype": { "primitive": "any" }, "kind": "map" } } }, { "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-identityproviderconfig.html#cfn-eks-identityproviderconfig-tags" }, "remarks": "Each tag consists of a key and an optional value. You define both.", "stability": "external", "summary": "The metadata to apply to the provider configuration to assist with categorization and organization." }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 1990 }, "name": "tags", "type": { "fqn": "@aws-cdk/core.TagManager" } }, { "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-identityproviderconfig.html#cfn-eks-identityproviderconfig-clustername" }, "stability": "external", "summary": "The cluster that the configuration is associated to." }, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 1962 }, "name": "clusterName", "type": { "primitive": "string" } }, { "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-identityproviderconfig.html#cfn-eks-identityproviderconfig-type" }, "remarks": "The only type available is `oidc` .", "stability": "external", "summary": "The type of the identity provider configuration." }, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 1969 }, "name": "type", "type": { "primitive": "string" } }, { "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-identityproviderconfig.html#cfn-eks-identityproviderconfig-identityproviderconfigname" }, "stability": "external", "summary": "The name of the configuration." }, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 1976 }, "name": "identityProviderConfigName", "optional": true, "type": { "primitive": "string" } }, { "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-identityproviderconfig.html#cfn-eks-identityproviderconfig-oidc" }, "stability": "external", "summary": "An object representing an OpenID Connect (OIDC) identity provider configuration." }, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 1983 }, "name": "oidc", "optional": true, "type": { "union": { "types": [ { "fqn": "@aws-cdk/core.IResolvable" }, { "fqn": "@aws-cdk/aws-eks.CfnIdentityProviderConfig.OidcIdentityProviderConfigProperty" } ] } } } ], "symbolId": "lib/eks.generated:CfnIdentityProviderConfig" }, "@aws-cdk/aws-eks.CfnIdentityProviderConfig.OidcIdentityProviderConfigProperty": { "assembly": "@aws-cdk/aws-eks", "datatype": true, "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-identityproviderconfig-oidcidentityproviderconfig.html", "exampleMetadata": "fixture=_generated" }, "stability": "external", "summary": "An object representing the configuration for an OpenID Connect (OIDC) identity provider.", "example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as eks from '@aws-cdk/aws-eks';\nconst oidcIdentityProviderConfigProperty: eks.CfnIdentityProviderConfig.OidcIdentityProviderConfigProperty = {\n clientId: 'clientId',\n issuerUrl: 'issuerUrl',\n\n // the properties below are optional\n groupsClaim: 'groupsClaim',\n groupsPrefix: 'groupsPrefix',\n requiredClaims: [{\n key: 'key',\n value: 'value',\n }],\n usernameClaim: 'usernameClaim',\n usernamePrefix: 'usernamePrefix',\n};" }, "fqn": "@aws-cdk/aws-eks.CfnIdentityProviderConfig.OidcIdentityProviderConfigProperty", "kind": "interface", "locationInModule": { "filename": "lib/eks.generated.ts", "line": 2047 }, "name": "OidcIdentityProviderConfigProperty", "namespace": "CfnIdentityProviderConfig", "properties": [ { "abstract": true, "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-identityproviderconfig-oidcidentityproviderconfig.html#cfn-eks-identityproviderconfig-oidcidentityproviderconfig-clientid" }, "remarks": "The ID of the client application that makes authentication requests to the OIDC identity provider.", "stability": "external", "summary": "This is also known as *audience* ." }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 2053 }, "name": "clientId", "type": { "primitive": "string" } }, { "abstract": true, "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-identityproviderconfig-oidcidentityproviderconfig.html#cfn-eks-identityproviderconfig-oidcidentityproviderconfig-issuerurl" }, "stability": "external", "summary": "The URL of the OIDC identity provider that allows the API server to discover public signing keys for verifying tokens." }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 2071 }, "name": "issuerUrl", "type": { "primitive": "string" } }, { "abstract": true, "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-identityproviderconfig-oidcidentityproviderconfig.html#cfn-eks-identityproviderconfig-oidcidentityproviderconfig-groupsclaim" }, "stability": "external", "summary": "The JSON web token (JWT) claim that the provider uses to return your groups." }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 2059 }, "name": "groupsClaim", "optional": true, "type": { "primitive": "string" } }, { "abstract": true, "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-identityproviderconfig-oidcidentityproviderconfig.html#cfn-eks-identityproviderconfig-oidcidentityproviderconfig-groupsprefix" }, "remarks": "For example, the value `oidc:` creates group names like `oidc:engineering` and `oidc:infra` . The prefix can't contain `system:`", "stability": "external", "summary": "The prefix that is prepended to group claims to prevent clashes with existing names (such as `system:` groups)." }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 2065 }, "name": "groupsPrefix", "optional": true, "type": { "primitive": "string" } }, { "abstract": true, "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-identityproviderconfig-oidcidentityproviderconfig.html#cfn-eks-identityproviderconfig-oidcidentityproviderconfig-requiredclaims" }, "remarks": "If set, each claim is verified to be present in the token with a matching value.", "stability": "external", "summary": "The key-value pairs that describe required claims in the identity token." }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 2077 }, "name": "requiredClaims", "optional": true, "type": { "union": { "types": [ { "fqn": "@aws-cdk/core.IResolvable" }, { "collection": { "elementtype": { "union": { "types": [ { "fqn": "@aws-cdk/core.IResolvable" }, { "fqn": "@aws-cdk/aws-eks.CfnIdentityProviderConfig.RequiredClaimProperty" } ] } }, "kind": "array" } } ] } } }, { "abstract": true, "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-identityproviderconfig-oidcidentityproviderconfig.html#cfn-eks-identityproviderconfig-oidcidentityproviderconfig-usernameclaim" }, "stability": "external", "summary": "The JSON Web token (JWT) claim that is used as the username." }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 2083 }, "name": "usernameClaim", "optional": true, "type": { "primitive": "string" } }, { "abstract": true, "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-identityproviderconfig-oidcidentityproviderconfig.html#cfn-eks-identityproviderconfig-oidcidentityproviderconfig-usernameprefix" }, "remarks": "The prefix can't contain `system:`", "stability": "external", "summary": "The prefix that is prepended to username claims to prevent clashes with existing names." }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 2089 }, "name": "usernamePrefix", "optional": true, "type": { "primitive": "string" } } ], "symbolId": "lib/eks.generated:CfnIdentityProviderConfig.OidcIdentityProviderConfigProperty" }, "@aws-cdk/aws-eks.CfnIdentityProviderConfig.RequiredClaimProperty": { "assembly": "@aws-cdk/aws-eks", "datatype": true, "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-identityproviderconfig-requiredclaim.html", "exampleMetadata": "fixture=_generated" }, "remarks": "If set, each claim is verified to be present in the token with a matching value.", "stability": "external", "summary": "A key-value pair that describes a required claim in the identity token.", "example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as eks from '@aws-cdk/aws-eks';\nconst requiredClaimProperty: eks.CfnIdentityProviderConfig.RequiredClaimProperty = {\n key: 'key',\n value: 'value',\n};" }, "fqn": "@aws-cdk/aws-eks.CfnIdentityProviderConfig.RequiredClaimProperty", "kind": "interface", "locationInModule": { "filename": "lib/eks.generated.ts", "line": 2170 }, "name": "RequiredClaimProperty", "namespace": "CfnIdentityProviderConfig", "properties": [ { "abstract": true, "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-identityproviderconfig-requiredclaim.html#cfn-eks-identityproviderconfig-requiredclaim-key" }, "stability": "external", "summary": "The key to match from the token." }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 2176 }, "name": "key", "type": { "primitive": "string" } }, { "abstract": true, "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-identityproviderconfig-requiredclaim.html#cfn-eks-identityproviderconfig-requiredclaim-value" }, "stability": "external", "summary": "The value for the key from the token." }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 2182 }, "name": "value", "type": { "primitive": "string" } } ], "symbolId": "lib/eks.generated:CfnIdentityProviderConfig.RequiredClaimProperty" }, "@aws-cdk/aws-eks.CfnIdentityProviderConfigProps": { "assembly": "@aws-cdk/aws-eks", "datatype": true, "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-identityproviderconfig.html", "exampleMetadata": "fixture=_generated" }, "stability": "external", "summary": "Properties for defining a `CfnIdentityProviderConfig`.", "example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as eks from '@aws-cdk/aws-eks';\nconst cfnIdentityProviderConfigProps: eks.CfnIdentityProviderConfigProps = {\n clusterName: 'clusterName',\n type: 'type',\n\n // the properties below are optional\n identityProviderConfigName: 'identityProviderConfigName',\n oidc: {\n clientId: 'clientId',\n issuerUrl: 'issuerUrl',\n\n // the properties below are optional\n groupsClaim: 'groupsClaim',\n groupsPrefix: 'groupsPrefix',\n requiredClaims: [{\n key: 'key',\n value: 'value',\n }],\n usernameClaim: 'usernameClaim',\n usernamePrefix: 'usernamePrefix',\n },\n tags: [{\n key: 'key',\n value: 'value',\n }],\n};" }, "fqn": "@aws-cdk/aws-eks.CfnIdentityProviderConfigProps", "kind": "interface", "locationInModule": { "filename": "lib/eks.generated.ts", "line": 1817 }, "name": "CfnIdentityProviderConfigProps", "properties": [ { "abstract": true, "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-identityproviderconfig.html#cfn-eks-identityproviderconfig-clustername" }, "stability": "external", "summary": "The cluster that the configuration is associated to." }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 1824 }, "name": "clusterName", "type": { "primitive": "string" } }, { "abstract": true, "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-identityproviderconfig.html#cfn-eks-identityproviderconfig-type" }, "remarks": "The only type available is `oidc` .", "stability": "external", "summary": "The type of the identity provider configuration." }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 1831 }, "name": "type", "type": { "primitive": "string" } }, { "abstract": true, "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-identityproviderconfig.html#cfn-eks-identityproviderconfig-identityproviderconfigname" }, "stability": "external", "summary": "The name of the configuration." }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 1838 }, "name": "identityProviderConfigName", "optional": true, "type": { "primitive": "string" } }, { "abstract": true, "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-identityproviderconfig.html#cfn-eks-identityproviderconfig-oidc" }, "stability": "external", "summary": "An object representing an OpenID Connect (OIDC) identity provider configuration." }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 1845 }, "name": "oidc", "optional": true, "type": { "union": { "types": [ { "fqn": "@aws-cdk/core.IResolvable" }, { "fqn": "@aws-cdk/aws-eks.CfnIdentityProviderConfig.OidcIdentityProviderConfigProperty" } ] } } }, { "abstract": true, "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-identityproviderconfig.html#cfn-eks-identityproviderconfig-tags" }, "remarks": "Each tag consists of a key and an optional value. You define both.", "stability": "external", "summary": "The metadata to apply to the provider configuration to assist with categorization and organization." }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 1852 }, "name": "tags", "optional": true, "type": { "collection": { "elementtype": { "fqn": "@aws-cdk/core.CfnTag" }, "kind": "array" } } } ], "symbolId": "lib/eks.generated:CfnIdentityProviderConfigProps" }, "@aws-cdk/aws-eks.CfnNodegroup": { "assembly": "@aws-cdk/aws-eks", "base": "@aws-cdk/core.CfnResource", "docs": { "custom": { "cloudformationResource": "AWS::EKS::Nodegroup", "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-nodegroup.html", "exampleMetadata": "fixture=_generated" }, "remarks": "Creates a managed node group for an Amazon EKS cluster. You can only create a node group for your cluster that is equal to the current Kubernetes version for the cluster. All node groups are created with the latest AMI release version for the respective minor Kubernetes version of the cluster, unless you deploy a custom AMI using a launch template. For more information about using launch templates, see [Launch template support](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) .\n\nAn Amazon EKS managed node group is an Amazon EC2 Auto Scaling group and associated Amazon EC2 instances that are managed by AWS for an Amazon EKS cluster. For more information, see [Managed node groups](https://docs.aws.amazon.com/eks/latest/userguide/managed-node-groups.html) in the *Amazon EKS User Guide* .\n\n> Windows AMI types are only supported for commercial Regions that support Windows Amazon EKS.", "stability": "external", "summary": "A CloudFormation `AWS::EKS::Nodegroup`.", "example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as eks from '@aws-cdk/aws-eks';\nconst cfnNodegroup = new eks.CfnNodegroup(this, 'MyCfnNodegroup', {\n clusterName: 'clusterName',\n nodeRole: 'nodeRole',\n subnets: ['subnets'],\n\n // the properties below are optional\n amiType: 'amiType',\n capacityType: 'capacityType',\n diskSize: 123,\n forceUpdateEnabled: false,\n instanceTypes: ['instanceTypes'],\n labels: {\n labelsKey: 'labels',\n },\n launchTemplate: {\n id: 'id',\n name: 'name',\n version: 'version',\n },\n nodegroupName: 'nodegroupName',\n releaseVersion: 'releaseVersion',\n remoteAccess: {\n ec2SshKey: 'ec2SshKey',\n\n // the properties below are optional\n sourceSecurityGroups: ['sourceSecurityGroups'],\n },\n scalingConfig: {\n desiredSize: 123,\n maxSize: 123,\n minSize: 123,\n },\n tags: {\n tagsKey: 'tags',\n },\n taints: [{\n effect: 'effect',\n key: 'key',\n value: 'value',\n }],\n updateConfig: {\n maxUnavailable: 123,\n maxUnavailablePercentage: 123,\n },\n version: 'version',\n});" }, "fqn": "@aws-cdk/aws-eks.CfnNodegroup", "initializer": { "docs": { "stability": "external", "summary": "Create a new `AWS::EKS::Nodegroup`." }, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 2683 }, "parameters": [ { "docs": { "summary": "- scope in which this resource is defined." }, "name": "scope", "type": { "fqn": "@aws-cdk/core.Construct" } }, { "docs": { "summary": "- scoped id of the resource." }, "name": "id", "type": { "primitive": "string" } }, { "docs": { "summary": "- resource properties." }, "name": "props", "type": { "fqn": "@aws-cdk/aws-eks.CfnNodegroupProps" } } ] }, "interfaces": [ "@aws-cdk/core.IInspectable" ], "kind": "class", "locationInModule": { "filename": "lib/eks.generated.ts", "line": 2495 }, "methods": [ { "docs": { "stability": "external", "summary": "Examines the CloudFormation resource and discloses attributes." }, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 2719 }, "name": "inspect", "overrides": "@aws-cdk/core.IInspectable", "parameters": [ { "docs": { "summary": "- tree inspector to collect and process attributes." }, "name": "inspector", "type": { "fqn": "@aws-cdk/core.TreeInspector" } } ] }, { "docs": { "stability": "external" }, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 2747 }, "name": "renderProperties", "overrides": "@aws-cdk/core.CfnResource", "parameters": [ { "name": "props", "type": { "collection": { "elementtype": { "primitive": "any" }, "kind": "map" } } } ], "protected": true, "returns": { "type": { "collection": { "elementtype": { "primitive": "any" }, "kind": "map" } } } } ], "name": "CfnNodegroup", "properties": [ { "const": true, "docs": { "stability": "external", "summary": "The CloudFormation resource type name for this resource class." }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 2499 }, "name": "CFN_RESOURCE_TYPE_NAME", "static": true, "type": { "primitive": "string" } }, { "docs": { "custom": { "cloudformationAttribute": "Arn" }, "stability": "external", "summary": "The Amazon Resource Name (ARN) associated with the managed node group." }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 2524 }, "name": "attrArn", "type": { "primitive": "string" } }, { "docs": { "custom": { "cloudformationAttribute": "ClusterName" }, "stability": "external", "summary": "The name of the cluster that the managed node group resides in." }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 2530 }, "name": "attrClusterName", "type": { "primitive": "string" } }, { "docs": { "custom": { "cloudformationAttribute": "Id" }, "stability": "external" }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 2536 }, "name": "attrId", "type": { "primitive": "string" } }, { "docs": { "custom": { "cloudformationAttribute": "NodegroupName" }, "stability": "external", "summary": "The name associated with an Amazon EKS managed node group." }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 2542 }, "name": "attrNodegroupName", "type": { "primitive": "string" } }, { "docs": { "stability": "external" }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 2724 }, "name": "cfnProperties", "overrides": "@aws-cdk/core.CfnResource", "protected": true, "type": { "collection": { "elementtype": { "primitive": "any" }, "kind": "map" } } }, { "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-nodegroup.html#cfn-eks-nodegroup-tags" }, "remarks": "Each tag consists of a key and an optional value. You define both. Node group tags do not propagate to any other resources associated with the node group, such as the Amazon EC2 instances or subnets.", "stability": "external", "summary": "The metadata applied to the node group to assist with categorization and organization." }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 2651 }, "name": "tags", "type": { "fqn": "@aws-cdk/core.TagManager" } }, { "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-nodegroup.html#cfn-eks-nodegroup-clustername" }, "stability": "external", "summary": "The name of the cluster to create the node group in." }, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 2549 }, "name": "clusterName", "type": { "primitive": "string" } }, { "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-nodegroup.html#cfn-eks-nodegroup-noderole" }, "remarks": "The Amazon EKS worker node `kubelet` daemon makes calls to AWS APIs on your behalf. Nodes receive permissions for these API calls through an IAM instance profile and associated policies. Before you can launch nodes and register them into a cluster, you must create an IAM role for those nodes to use when they are launched. 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** . If you specify `launchTemplate` , then don't specify [`IamInstanceProfile`](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_IamInstanceProfile.html) in your launch template, or the node group deployment will fail. For more information about using launch templates with Amazon EKS, see [Launch template support](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the *Amazon EKS User Guide* .", "stability": "external", "summary": "The Amazon Resource Name (ARN) of the IAM role to associate with your node group." }, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 2556 }, "name": "nodeRole", "type": { "primitive": "string" } }, { "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-nodegroup.html#cfn-eks-nodegroup-subnets" }, "remarks": "If you specify `launchTemplate` , then don't specify [`SubnetId`](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateNetworkInterface.html) in your launch template, or the node group deployment will fail. For more information about using launch templates with Amazon EKS, see [Launch template support](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the *Amazon EKS User Guide* .", "stability": "external", "summary": "The subnets to use for the Auto Scaling group that is created for your node group." }, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 2563 }, "name": "subnets", "type": { "collection": { "elementtype": { "primitive": "string" }, "kind": "array" } } }, { "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-nodegroup.html#cfn-eks-nodegroup-amitype" }, "remarks": "If you specify `launchTemplate` , and your launch template uses a custom AMI, then don't specify `amiType` , or the node group deployment will fail. If your launch template uses a Windows custom AMI, then add `eks:kube-proxy-windows` to your Windows nodes `rolearn` in the `aws-auth` `ConfigMap` . For more information about using launch templates with Amazon EKS, see [Launch template support](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the *Amazon EKS User Guide* .", "stability": "external", "summary": "The AMI type for your node group." }, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 2570 }, "name": "amiType", "optional": true, "type": { "primitive": "string" } }, { "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-nodegroup.html#cfn-eks-nodegroup-capacitytype" }, "stability": "external", "summary": "The capacity type of your managed node group." }, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 2577 }, "name": "capacityType", "optional": true, "type": { "primitive": "string" } }, { "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-nodegroup.html#cfn-eks-nodegroup-disksize" }, "remarks": "The default disk size is 20 GiB for Linux and Bottlerocket. The default disk size is 50 GiB for Windows. If you specify `launchTemplate` , then don't specify `diskSize` , or the node group deployment will fail. For more information about using launch templates with Amazon EKS, see [Launch template support](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the *Amazon EKS User Guide* .", "stability": "external", "summary": "The root device disk size (in GiB) for your node group instances." }, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 2584 }, "name": "diskSize", "optional": true, "type": { "primitive": "number" } }, { "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-nodegroup.html#cfn-eks-nodegroup-forceupdateenabled" }, "remarks": "If an update fails because pods could not be drained, you can force the update after it fails to terminate the old node whether or not any pods are running on the node.", "stability": "external", "summary": "Force the update if the existing node group's pods are unable to be drained due to a pod disruption budget issue." }, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 2591 }, "name": "forceUpdateEnabled", "optional": true, "type": { "union": { "types": [ { "primitive": "boolean" }, { "fqn": "@aws-cdk/core.IResolvable" } ] } } }, { "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-nodegroup.html#cfn-eks-nodegroup-instancetypes" }, "remarks": "If you specify a GPU instance type, make sure to also specify an applicable GPU AMI type with the `amiType` parameter. If you specify `launchTemplate` , then you can specify zero or one instance type in your launch template *or* you can specify 0-20 instance types for `instanceTypes` . If however, you specify an instance type in your launch template *and* specify any `instanceTypes` , the node group deployment will fail. If you don't specify an instance type in a launch template or for `instanceTypes` , then `t3.medium` is used, by default. If you specify `Spot` for `capacityType` , then we recommend specifying multiple values for `instanceTypes` . For more information, see [Managed node group capacity types](https://docs.aws.amazon.com/eks/latest/userguide/managed-node-groups.html#managed-node-group-capacity-types) and [Launch template support](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the *Amazon EKS User Guide* .", "stability": "external", "summary": "Specify the instance types for a node group." }, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 2598 }, "name": "instanceTypes", "optional": true, "type": { "collection": { "elementtype": { "primitive": "string" }, "kind": "array" } } }, { "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-nodegroup.html#cfn-eks-nodegroup-labels" }, "remarks": "> Only labels that are applied with the Amazon EKS API are shown here. There may be other Kubernetes labels applied to the nodes in this group.", "stability": "external", "summary": "The Kubernetes labels applied to the nodes in the node group." }, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 2607 }, "name": "labels", "optional": true, "type": { "union": { "types": [ { "fqn": "@aws-cdk/core.IResolvable" }, { "collection": { "elementtype": { "primitive": "string" }, "kind": "map" } } ] } } }, { "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-nodegroup.html#cfn-eks-nodegroup-launchtemplate" }, "remarks": "If specified, then do not specify `instanceTypes` , `diskSize` , or `remoteAccess` and make sure that the launch template meets the requirements in `launchTemplateSpecification` .", "stability": "external", "summary": "An object representing a node group's launch template specification." }, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 2614 }, "name": "launchTemplate", "optional": true, "type": { "union": { "types": [ { "fqn": "@aws-cdk/core.IResolvable" }, { "fqn": "@aws-cdk/aws-eks.CfnNodegroup.LaunchTemplateSpecificationProperty" } ] } } }, { "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-nodegroup.html#cfn-eks-nodegroup-nodegroupname" }, "stability": "external", "summary": "The unique name to give your node group." }, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 2621 }, "name": "nodegroupName", "optional": true, "type": { "primitive": "string" } }, { "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-nodegroup.html#cfn-eks-nodegroup-releaseversion" }, "remarks": "> Changing this value triggers an update of the node group if one is available. You can't update other properties at the same time as updating `Release Version` .", "stability": "external", "summary": "The AMI version of the Amazon EKS optimized AMI to use with your node group (for example, `1.14.7- *YYYYMMDD*` ). By default, the latest available AMI version for the node group's current Kubernetes version is used. For more information, see [Amazon EKS optimized Linux AMI Versions](https://docs.aws.amazon.com/eks/latest/userguide/eks-linux-ami-versions.html) in the *Amazon EKS User Guide* ." }, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 2630 }, "name": "releaseVersion", "optional": true, "type": { "primitive": "string" } }, { "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-nodegroup.html#cfn-eks-nodegroup-remoteaccess" }, "remarks": "For Linux, the protocol is SSH. For Windows, the protocol is RDP. If you specify `launchTemplate` , then don't specify `remoteAccess` , or the node group deployment will fail. For more information about using launch templates with Amazon EKS, see [Launch template support](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the *Amazon EKS User Guide* .", "stability": "external", "summary": "The remote access configuration to use with your node group." }, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 2637 }, "name": "remoteAccess", "optional": true, "type": { "union": { "types": [ { "fqn": "@aws-cdk/core.IResolvable" }, { "fqn": "@aws-cdk/aws-eks.CfnNodegroup.RemoteAccessProperty" } ] } } }, { "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-nodegroup.html#cfn-eks-nodegroup-scalingconfig" }, "stability": "external", "summary": "The scaling configuration details for the Auto Scaling group that is created for your node group." }, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 2644 }, "name": "scalingConfig", "optional": true, "type": { "union": { "types": [ { "fqn": "@aws-cdk/core.IResolvable" }, { "fqn": "@aws-cdk/aws-eks.CfnNodegroup.ScalingConfigProperty" } ] } } }, { "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-nodegroup.html#cfn-eks-nodegroup-taints" }, "remarks": "Effect is one of `No_Schedule` , `Prefer_No_Schedule` , or `No_Execute` . Kubernetes taints can be used together with tolerations to control how workloads are scheduled to your nodes. For more information, see [Node taints on managed node groups](https://docs.aws.amazon.com/eks/latest/userguide/node-taints-managed-node-groups.html) .", "stability": "external", "summary": "The Kubernetes taints to be applied to the nodes in the node group when they are created." }, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 2658 }, "name": "taints", "optional": true, "type": { "union": { "types": [ { "fqn": "@aws-cdk/core.IResolvable" }, { "collection": { "elementtype": { "union": { "types": [ { "fqn": "@aws-cdk/core.IResolvable" }, { "fqn": "@aws-cdk/aws-eks.CfnNodegroup.TaintProperty" } ] } }, "kind": "array" } } ] } } }, { "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-nodegroup.html#cfn-eks-nodegroup-updateconfig" }, "stability": "external", "summary": "The node group update configuration." }, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 2665 }, "name": "updateConfig", "optional": true, "type": { "union": { "types": [ { "fqn": "@aws-cdk/core.IResolvable" }, { "fqn": "@aws-cdk/aws-eks.CfnNodegroup.UpdateConfigProperty" } ] } } }, { "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-nodegroup.html#cfn-eks-nodegroup-version" }, "remarks": "By default, the Kubernetes version of the cluster is used, and this is the only accepted specified value. If you specify `launchTemplate` , and your launch template uses a custom AMI, then don't specify `version` , or the node group deployment will fail. For more information about using launch templates with Amazon EKS, see [Launch template support](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the *Amazon EKS User Guide* .\n\n> You can't update other properties at the same time as updating `Version` .", "stability": "external", "summary": "The Kubernetes version to use for your managed nodes." }, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 2674 }, "name": "version", "optional": true, "type": { "primitive": "string" } } ], "symbolId": "lib/eks.generated:CfnNodegroup" }, "@aws-cdk/aws-eks.CfnNodegroup.LaunchTemplateSpecificationProperty": { "assembly": "@aws-cdk/aws-eks", "datatype": true, "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-nodegroup-launchtemplatespecification.html", "exampleMetadata": "fixture=_generated" }, "remarks": "The launch template can't include [`SubnetId`](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateNetworkInterface.html) , [`IamInstanceProfile`](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_IamInstanceProfile.html) , [`RequestSpotInstances`](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RequestSpotInstances.html) , [`HibernationOptions`](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_HibernationOptionsRequest.html) , or [`TerminateInstances`](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_TerminateInstances.html) , or the node group deployment or update will fail. For more information about launch templates, see [`CreateLaunchTemplate`](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateLaunchTemplate.html) in the Amazon EC2 API Reference. For more information about using launch templates with Amazon EKS, see [Launch template support](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the *Amazon EKS User Guide* .\n\nYou must specify either the launch template ID or the launch template name in the request, but not both.", "stability": "external", "summary": "An object representing a node group launch template specification.", "example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as eks from '@aws-cdk/aws-eks';\nconst launchTemplateSpecificationProperty: eks.CfnNodegroup.LaunchTemplateSpecificationProperty = {\n id: 'id',\n name: 'name',\n version: 'version',\n};" }, "fqn": "@aws-cdk/aws-eks.CfnNodegroup.LaunchTemplateSpecificationProperty", "kind": "interface", "locationInModule": { "filename": "lib/eks.generated.ts", "line": 2763 }, "name": "LaunchTemplateSpecificationProperty", "namespace": "CfnNodegroup", "properties": [ { "abstract": true, "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-nodegroup-launchtemplatespecification.html#cfn-eks-nodegroup-launchtemplatespecification-id" }, "remarks": "You must specify either the launch template ID or the launch template name in the request, but not both.", "stability": "external", "summary": "The ID of the launch template." }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 2771 }, "name": "id", "optional": true, "type": { "primitive": "string" } }, { "abstract": true, "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-nodegroup-launchtemplatespecification.html#cfn-eks-nodegroup-launchtemplatespecification-name" }, "remarks": "You must specify either the launch template name or the launch template ID in the request, but not both.", "stability": "external", "summary": "The name of the launch template." }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 2779 }, "name": "name", "optional": true, "type": { "primitive": "string" } }, { "abstract": true, "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-nodegroup-launchtemplatespecification.html#cfn-eks-nodegroup-launchtemplatespecification-version" }, "remarks": "If no version is specified, then the template's default version is used.", "stability": "external", "summary": "The version number of the launch template to use." }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 2785 }, "name": "version", "optional": true, "type": { "primitive": "string" } } ], "symbolId": "lib/eks.generated:CfnNodegroup.LaunchTemplateSpecificationProperty" }, "@aws-cdk/aws-eks.CfnNodegroup.RemoteAccessProperty": { "assembly": "@aws-cdk/aws-eks", "datatype": true, "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-nodegroup-remoteaccess.html", "exampleMetadata": "fixture=_generated" }, "stability": "external", "summary": "An object representing the remote access configuration for the managed node group.", "example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as eks from '@aws-cdk/aws-eks';\nconst remoteAccessProperty: eks.CfnNodegroup.RemoteAccessProperty = {\n ec2SshKey: 'ec2SshKey',\n\n // the properties below are optional\n sourceSecurityGroups: ['sourceSecurityGroups'],\n};" }, "fqn": "@aws-cdk/aws-eks.CfnNodegroup.RemoteAccessProperty", "kind": "interface", "locationInModule": { "filename": "lib/eks.generated.ts", "line": 2852 }, "name": "RemoteAccessProperty", "namespace": "CfnNodegroup", "properties": [ { "abstract": true, "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-nodegroup-remoteaccess.html#cfn-eks-nodegroup-remoteaccess-ec2sshkey" }, "remarks": "For more information, see [Amazon EC2 key pairs and Linux instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html) in the *Amazon Elastic Compute Cloud User Guide for Linux Instances* . For Windows, an Amazon EC2 SSH key is used to obtain the RDP password. For more information, see [Amazon EC2 key pairs and Windows instances](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ec2-key-pairs.html) in the *Amazon Elastic Compute Cloud User Guide for Windows Instances* .", "stability": "external", "summary": "The Amazon EC2 SSH key name that provides access for SSH communication with the nodes in the managed node group." }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 2858 }, "name": "ec2SshKey", "type": { "primitive": "string" } }, { "abstract": true, "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-nodegroup-remoteaccess.html#cfn-eks-nodegroup-remoteaccess-sourcesecuritygroups" }, "remarks": "For Windows, the port is 3389. If you specify an Amazon EC2 SSH key but don't specify a source security group when you create a managed node group, then the port on the nodes is opened to the internet ( `0.0.0.0/0` ). For more information, see [Security Groups for Your VPC](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html) in the *Amazon Virtual Private Cloud User Guide* .", "stability": "external", "summary": "The security group IDs that are allowed SSH access (port 22) to the nodes." }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 2864 }, "name": "sourceSecurityGroups", "optional": true, "type": { "collection": { "elementtype": { "primitive": "string" }, "kind": "array" } } } ], "symbolId": "lib/eks.generated:CfnNodegroup.RemoteAccessProperty" }, "@aws-cdk/aws-eks.CfnNodegroup.ScalingConfigProperty": { "assembly": "@aws-cdk/aws-eks", "datatype": true, "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-nodegroup-scalingconfig.html", "exampleMetadata": "fixture=_generated" }, "remarks": "When creating a node group, you must specify all or none of the properties. When updating a node group, you can specify any or none of the properties.", "stability": "external", "summary": "An object representing the scaling configuration details for the Auto Scaling group that is associated with your node group.", "example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as eks from '@aws-cdk/aws-eks';\nconst scalingConfigProperty: eks.CfnNodegroup.ScalingConfigProperty = {\n desiredSize: 123,\n maxSize: 123,\n minSize: 123,\n};" }, "fqn": "@aws-cdk/aws-eks.CfnNodegroup.ScalingConfigProperty", "kind": "interface", "locationInModule": { "filename": "lib/eks.generated.ts", "line": 2929 }, "name": "ScalingConfigProperty", "namespace": "CfnNodegroup", "properties": [ { "abstract": true, "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-nodegroup-scalingconfig.html#cfn-eks-nodegroup-scalingconfig-desiredsize" }, "remarks": "> If you use Cluster Autoscaler, you shouldn't change the desiredSize value directly, as this can cause the Cluster Autoscaler to suddenly scale up or scale down.\n\nWhenever this parameter changes, the number of worker nodes in the node group is updated to the specified size. If this parameter is given a value that is smaller than the current number of running worker nodes, the necessary number of worker nodes are terminated to match the given value. When using CloudFormation, no action occurs if you remove this parameter from your CFN template.\n\nThis parameter can be different from minSize in some cases, such as when starting with extra hosts for testing. This parameter can also be different when you want to start with an estimated number of needed hosts, but let Cluster Autoscaler reduce the number if there are too many. When Cluster Autoscaler is used, the desiredSize parameter is altered by Cluster Autoscaler (but can be out-of-date for short periods of time). Cluster Autoscaler doesn't scale a managed node group lower than minSize or higher than maxSize.", "stability": "external", "summary": "The current number of nodes that the managed node group should maintain." }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 2941 }, "name": "desiredSize", "optional": true, "type": { "primitive": "number" } }, { "abstract": true, "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-nodegroup-scalingconfig.html#cfn-eks-nodegroup-scalingconfig-maxsize" }, "remarks": "For information about the maximum number that you can specify, see [Amazon EKS service quotas](https://docs.aws.amazon.com/eks/latest/userguide/service-quotas.html) in the *Amazon EKS User Guide* .", "stability": "external", "summary": "The maximum number of nodes that the managed node group can scale out to." }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 2947 }, "name": "maxSize", "optional": true, "type": { "primitive": "number" } }, { "abstract": true, "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-nodegroup-scalingconfig.html#cfn-eks-nodegroup-scalingconfig-minsize" }, "stability": "external", "summary": "The minimum number of nodes that the managed node group can scale in to." }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 2953 }, "name": "minSize", "optional": true, "type": { "primitive": "number" } } ], "symbolId": "lib/eks.generated:CfnNodegroup.ScalingConfigProperty" }, "@aws-cdk/aws-eks.CfnNodegroup.TaintProperty": { "assembly": "@aws-cdk/aws-eks", "datatype": true, "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-nodegroup-taint.html", "exampleMetadata": "fixture=_generated" }, "remarks": "For more information, see [Node taints on managed node groups](https://docs.aws.amazon.com/eks/latest/userguide/node-taints-managed-node-groups.html) .", "stability": "external", "summary": "A property that allows a node to repel a set of pods.", "example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as eks from '@aws-cdk/aws-eks';\nconst taintProperty: eks.CfnNodegroup.TaintProperty = {\n effect: 'effect',\n key: 'key',\n value: 'value',\n};" }, "fqn": "@aws-cdk/aws-eks.CfnNodegroup.TaintProperty", "kind": "interface", "locationInModule": { "filename": "lib/eks.generated.ts", "line": 3020 }, "name": "TaintProperty", "namespace": "CfnNodegroup", "properties": [ { "abstract": true, "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-nodegroup-taint.html#cfn-eks-nodegroup-taint-effect" }, "stability": "external", "summary": "The effect of the taint." }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 3026 }, "name": "effect", "optional": true, "type": { "primitive": "string" } }, { "abstract": true, "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-nodegroup-taint.html#cfn-eks-nodegroup-taint-key" }, "stability": "external", "summary": "The key of the taint." }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 3032 }, "name": "key", "optional": true, "type": { "primitive": "string" } }, { "abstract": true, "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-nodegroup-taint.html#cfn-eks-nodegroup-taint-value" }, "stability": "external", "summary": "The value of the taint." }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 3038 }, "name": "value", "optional": true, "type": { "primitive": "string" } } ], "symbolId": "lib/eks.generated:CfnNodegroup.TaintProperty" }, "@aws-cdk/aws-eks.CfnNodegroup.UpdateConfigProperty": { "assembly": "@aws-cdk/aws-eks", "datatype": true, "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-nodegroup-updateconfig.html", "exampleMetadata": "fixture=_generated" }, "stability": "external", "summary": "The update configuration for the node group.", "example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as eks from '@aws-cdk/aws-eks';\nconst updateConfigProperty: eks.CfnNodegroup.UpdateConfigProperty = {\n maxUnavailable: 123,\n maxUnavailablePercentage: 123,\n};" }, "fqn": "@aws-cdk/aws-eks.CfnNodegroup.UpdateConfigProperty", "kind": "interface", "locationInModule": { "filename": "lib/eks.generated.ts", "line": 3105 }, "name": "UpdateConfigProperty", "namespace": "CfnNodegroup", "properties": [ { "abstract": true, "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-nodegroup-updateconfig.html#cfn-eks-nodegroup-updateconfig-maxunavailable" }, "remarks": "Nodes will be updated in parallel. This value or `maxUnavailablePercentage` is required to have a value.The maximum number is 100.", "stability": "external", "summary": "The maximum number of nodes unavailable at once during a version update." }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 3111 }, "name": "maxUnavailable", "optional": true, "type": { "primitive": "number" } }, { "abstract": true, "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-nodegroup-updateconfig.html#cfn-eks-nodegroup-updateconfig-maxunavailablepercentage" }, "remarks": "This percentage of nodes will be updated in parallel, up to 100 nodes at once. This value or `maxUnavailable` is required to have a value.", "stability": "external", "summary": "The maximum percentage of nodes unavailable during a version update." }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 3117 }, "name": "maxUnavailablePercentage", "optional": true, "type": { "primitive": "number" } } ], "symbolId": "lib/eks.generated:CfnNodegroup.UpdateConfigProperty" }, "@aws-cdk/aws-eks.CfnNodegroupProps": { "assembly": "@aws-cdk/aws-eks", "datatype": true, "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-nodegroup.html", "exampleMetadata": "fixture=_generated" }, "stability": "external", "summary": "Properties for defining a `CfnNodegroup`.", "example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as eks from '@aws-cdk/aws-eks';\nconst cfnNodegroupProps: eks.CfnNodegroupProps = {\n clusterName: 'clusterName',\n nodeRole: 'nodeRole',\n subnets: ['subnets'],\n\n // the properties below are optional\n amiType: 'amiType',\n capacityType: 'capacityType',\n diskSize: 123,\n forceUpdateEnabled: false,\n instanceTypes: ['instanceTypes'],\n labels: {\n labelsKey: 'labels',\n },\n launchTemplate: {\n id: 'id',\n name: 'name',\n version: 'version',\n },\n nodegroupName: 'nodegroupName',\n releaseVersion: 'releaseVersion',\n remoteAccess: {\n ec2SshKey: 'ec2SshKey',\n\n // the properties below are optional\n sourceSecurityGroups: ['sourceSecurityGroups'],\n },\n scalingConfig: {\n desiredSize: 123,\n maxSize: 123,\n minSize: 123,\n },\n tags: {\n tagsKey: 'tags',\n },\n taints: [{\n effect: 'effect',\n key: 'key',\n value: 'value',\n }],\n updateConfig: {\n maxUnavailable: 123,\n maxUnavailablePercentage: 123,\n },\n version: 'version',\n};" }, "fqn": "@aws-cdk/aws-eks.CfnNodegroupProps", "kind": "interface", "locationInModule": { "filename": "lib/eks.generated.ts", "line": 2247 }, "name": "CfnNodegroupProps", "properties": [ { "abstract": true, "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-nodegroup.html#cfn-eks-nodegroup-clustername" }, "stability": "external", "summary": "The name of the cluster to create the node group in." }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 2254 }, "name": "clusterName", "type": { "primitive": "string" } }, { "abstract": true, "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-nodegroup.html#cfn-eks-nodegroup-noderole" }, "remarks": "The Amazon EKS worker node `kubelet` daemon makes calls to AWS APIs on your behalf. Nodes receive permissions for these API calls through an IAM instance profile and associated policies. Before you can launch nodes and register them into a cluster, you must create an IAM role for those nodes to use when they are launched. 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** . If you specify `launchTemplate` , then don't specify [`IamInstanceProfile`](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_IamInstanceProfile.html) in your launch template, or the node group deployment will fail. For more information about using launch templates with Amazon EKS, see [Launch template support](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the *Amazon EKS User Guide* .", "stability": "external", "summary": "The Amazon Resource Name (ARN) of the IAM role to associate with your node group." }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 2261 }, "name": "nodeRole", "type": { "primitive": "string" } }, { "abstract": true, "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-nodegroup.html#cfn-eks-nodegroup-subnets" }, "remarks": "If you specify `launchTemplate` , then don't specify [`SubnetId`](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateNetworkInterface.html) in your launch template, or the node group deployment will fail. For more information about using launch templates with Amazon EKS, see [Launch template support](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the *Amazon EKS User Guide* .", "stability": "external", "summary": "The subnets to use for the Auto Scaling group that is created for your node group." }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 2268 }, "name": "subnets", "type": { "collection": { "elementtype": { "primitive": "string" }, "kind": "array" } } }, { "abstract": true, "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-nodegroup.html#cfn-eks-nodegroup-amitype" }, "remarks": "If you specify `launchTemplate` , and your launch template uses a custom AMI, then don't specify `amiType` , or the node group deployment will fail. If your launch template uses a Windows custom AMI, then add `eks:kube-proxy-windows` to your Windows nodes `rolearn` in the `aws-auth` `ConfigMap` . For more information about using launch templates with Amazon EKS, see [Launch template support](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the *Amazon EKS User Guide* .", "stability": "external", "summary": "The AMI type for your node group." }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 2275 }, "name": "amiType", "optional": true, "type": { "primitive": "string" } }, { "abstract": true, "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-nodegroup.html#cfn-eks-nodegroup-capacitytype" }, "stability": "external", "summary": "The capacity type of your managed node group." }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 2282 }, "name": "capacityType", "optional": true, "type": { "primitive": "string" } }, { "abstract": true, "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-nodegroup.html#cfn-eks-nodegroup-disksize" }, "remarks": "The default disk size is 20 GiB for Linux and Bottlerocket. The default disk size is 50 GiB for Windows. If you specify `launchTemplate` , then don't specify `diskSize` , or the node group deployment will fail. For more information about using launch templates with Amazon EKS, see [Launch template support](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the *Amazon EKS User Guide* .", "stability": "external", "summary": "The root device disk size (in GiB) for your node group instances." }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 2289 }, "name": "diskSize", "optional": true, "type": { "primitive": "number" } }, { "abstract": true, "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-nodegroup.html#cfn-eks-nodegroup-forceupdateenabled" }, "remarks": "If an update fails because pods could not be drained, you can force the update after it fails to terminate the old node whether or not any pods are running on the node.", "stability": "external", "summary": "Force the update if the existing node group's pods are unable to be drained due to a pod disruption budget issue." }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 2296 }, "name": "forceUpdateEnabled", "optional": true, "type": { "union": { "types": [ { "primitive": "boolean" }, { "fqn": "@aws-cdk/core.IResolvable" } ] } } }, { "abstract": true, "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-nodegroup.html#cfn-eks-nodegroup-instancetypes" }, "remarks": "If you specify a GPU instance type, make sure to also specify an applicable GPU AMI type with the `amiType` parameter. If you specify `launchTemplate` , then you can specify zero or one instance type in your launch template *or* you can specify 0-20 instance types for `instanceTypes` . If however, you specify an instance type in your launch template *and* specify any `instanceTypes` , the node group deployment will fail. If you don't specify an instance type in a launch template or for `instanceTypes` , then `t3.medium` is used, by default. If you specify `Spot` for `capacityType` , then we recommend specifying multiple values for `instanceTypes` . For more information, see [Managed node group capacity types](https://docs.aws.amazon.com/eks/latest/userguide/managed-node-groups.html#managed-node-group-capacity-types) and [Launch template support](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the *Amazon EKS User Guide* .", "stability": "external", "summary": "Specify the instance types for a node group." }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 2303 }, "name": "instanceTypes", "optional": true, "type": { "collection": { "elementtype": { "primitive": "string" }, "kind": "array" } } }, { "abstract": true, "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-nodegroup.html#cfn-eks-nodegroup-labels" }, "remarks": "> Only labels that are applied with the Amazon EKS API are shown here. There may be other Kubernetes labels applied to the nodes in this group.", "stability": "external", "summary": "The Kubernetes labels applied to the nodes in the node group." }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 2312 }, "name": "labels", "optional": true, "type": { "union": { "types": [ { "fqn": "@aws-cdk/core.IResolvable" }, { "collection": { "elementtype": { "primitive": "string" }, "kind": "map" } } ] } } }, { "abstract": true, "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-nodegroup.html#cfn-eks-nodegroup-launchtemplate" }, "remarks": "If specified, then do not specify `instanceTypes` , `diskSize` , or `remoteAccess` and make sure that the launch template meets the requirements in `launchTemplateSpecification` .", "stability": "external", "summary": "An object representing a node group's launch template specification." }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 2319 }, "name": "launchTemplate", "optional": true, "type": { "union": { "types": [ { "fqn": "@aws-cdk/core.IResolvable" }, { "fqn": "@aws-cdk/aws-eks.CfnNodegroup.LaunchTemplateSpecificationProperty" } ] } } }, { "abstract": true, "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-nodegroup.html#cfn-eks-nodegroup-nodegroupname" }, "stability": "external", "summary": "The unique name to give your node group." }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 2326 }, "name": "nodegroupName", "optional": true, "type": { "primitive": "string" } }, { "abstract": true, "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-nodegroup.html#cfn-eks-nodegroup-releaseversion" }, "remarks": "> Changing this value triggers an update of the node group if one is available. You can't update other properties at the same time as updating `Release Version` .", "stability": "external", "summary": "The AMI version of the Amazon EKS optimized AMI to use with your node group (for example, `1.14.7- *YYYYMMDD*` ). By default, the latest available AMI version for the node group's current Kubernetes version is used. For more information, see [Amazon EKS optimized Linux AMI Versions](https://docs.aws.amazon.com/eks/latest/userguide/eks-linux-ami-versions.html) in the *Amazon EKS User Guide* ." }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 2335 }, "name": "releaseVersion", "optional": true, "type": { "primitive": "string" } }, { "abstract": true, "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-nodegroup.html#cfn-eks-nodegroup-remoteaccess" }, "remarks": "For Linux, the protocol is SSH. For Windows, the protocol is RDP. If you specify `launchTemplate` , then don't specify `remoteAccess` , or the node group deployment will fail. For more information about using launch templates with Amazon EKS, see [Launch template support](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the *Amazon EKS User Guide* .", "stability": "external", "summary": "The remote access configuration to use with your node group." }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 2342 }, "name": "remoteAccess", "optional": true, "type": { "union": { "types": [ { "fqn": "@aws-cdk/core.IResolvable" }, { "fqn": "@aws-cdk/aws-eks.CfnNodegroup.RemoteAccessProperty" } ] } } }, { "abstract": true, "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-nodegroup.html#cfn-eks-nodegroup-scalingconfig" }, "stability": "external", "summary": "The scaling configuration details for the Auto Scaling group that is created for your node group." }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 2349 }, "name": "scalingConfig", "optional": true, "type": { "union": { "types": [ { "fqn": "@aws-cdk/core.IResolvable" }, { "fqn": "@aws-cdk/aws-eks.CfnNodegroup.ScalingConfigProperty" } ] } } }, { "abstract": true, "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-nodegroup.html#cfn-eks-nodegroup-tags" }, "remarks": "Each tag consists of a key and an optional value. You define both. Node group tags do not propagate to any other resources associated with the node group, such as the Amazon EC2 instances or subnets.", "stability": "external", "summary": "The metadata applied to the node group to assist with categorization and organization." }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 2356 }, "name": "tags", "optional": true, "type": { "collection": { "elementtype": { "primitive": "string" }, "kind": "map" } } }, { "abstract": true, "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-nodegroup.html#cfn-eks-nodegroup-taints" }, "remarks": "Effect is one of `No_Schedule` , `Prefer_No_Schedule` , or `No_Execute` . Kubernetes taints can be used together with tolerations to control how workloads are scheduled to your nodes. For more information, see [Node taints on managed node groups](https://docs.aws.amazon.com/eks/latest/userguide/node-taints-managed-node-groups.html) .", "stability": "external", "summary": "The Kubernetes taints to be applied to the nodes in the node group when they are created." }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 2363 }, "name": "taints", "optional": true, "type": { "union": { "types": [ { "fqn": "@aws-cdk/core.IResolvable" }, { "collection": { "elementtype": { "union": { "types": [ { "fqn": "@aws-cdk/core.IResolvable" }, { "fqn": "@aws-cdk/aws-eks.CfnNodegroup.TaintProperty" } ] } }, "kind": "array" } } ] } } }, { "abstract": true, "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-nodegroup.html#cfn-eks-nodegroup-updateconfig" }, "stability": "external", "summary": "The node group update configuration." }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 2370 }, "name": "updateConfig", "optional": true, "type": { "union": { "types": [ { "fqn": "@aws-cdk/core.IResolvable" }, { "fqn": "@aws-cdk/aws-eks.CfnNodegroup.UpdateConfigProperty" } ] } } }, { "abstract": true, "docs": { "custom": { "link": "http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-nodegroup.html#cfn-eks-nodegroup-version" }, "remarks": "By default, the Kubernetes version of the cluster is used, and this is the only accepted specified value. If you specify `launchTemplate` , and your launch template uses a custom AMI, then don't specify `version` , or the node group deployment will fail. For more information about using launch templates with Amazon EKS, see [Launch template support](https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html) in the *Amazon EKS User Guide* .\n\n> You can't update other properties at the same time as updating `Version` .", "stability": "external", "summary": "The Kubernetes version to use for your managed nodes." }, "immutable": true, "locationInModule": { "filename": "lib/eks.generated.ts", "line": 2379 }, "name": "version", "optional": true, "type": { "primitive": "string" } } ], "symbolId": "lib/eks.generated:CfnNodegroupProps" }, "@aws-cdk/aws-eks.Cluster": { "assembly": "@aws-cdk/aws-eks", "base": "@aws-cdk/core.Resource", "docs": { "remarks": "This is a fully managed cluster of API Servers (control-plane)\nThe user is still required to create the worker nodes.", "stability": "stable", "summary": "A Cluster represents a managed Kubernetes Service (EKS).", "example": "declare const vpc: ec2.Vpc;\n\nnew eks.Cluster(this, 'HelloEKS', {\n version: eks.KubernetesVersion.V1_21,\n vpc,\n vpcSubnets: [{ subnetType: ec2.SubnetType.PRIVATE_WITH_NAT }],\n});", "custom": { "exampleMetadata": "infused" } }, "fqn": "@aws-cdk/aws-eks.Cluster", "initializer": { "docs": { "stability": "stable", "summary": "Initiates an EKS Cluster with the supplied arguments." }, "locationInModule": { "filename": "lib/cluster.ts", "line": 1318 }, "parameters": [ { "docs": { "summary": "a Construct, most likely a cdk.Stack created." }, "name": "scope", "type": { "fqn": "constructs.Construct" } }, { "docs": { "summary": "the id of the Construct to create." }, "name": "id", "type": { "primitive": "string" } }, { "docs": { "summary": "properties in the IClusterProps interface." }, "name": "props", "type": { "fqn": "@aws-cdk/aws-eks.ClusterProps" } } ] }, "interfaces": [ "@aws-cdk/aws-eks.ICluster" ], "kind": "class", "locationInModule": { "filename": "lib/cluster.ts", "line": 1098 }, "methods": [ { "docs": { "stability": "stable", "summary": "Import an existing cluster." }, "locationInModule": { "filename": "lib/cluster.ts", "line": 1106 }, "name": "fromClusterAttributes", "parameters": [ { "docs": { "summary": "the construct scope, in most cases 'this'." }, "name": "scope", "type": { "fqn": "constructs.Construct" } }, { "docs": { "summary": "the id or name to import as." }, "name": "id", "type": { "primitive": "string" } }, { "docs": { "summary": "the cluster properties to use for importing information." }, "name": "attrs", "type": { "fqn": "@aws-cdk/aws-eks.ClusterAttributes" } } ], "returns": { "type": { "fqn": "@aws-cdk/aws-eks.ICluster" } }, "static": true }, { "docs": { "remarks": "The nodes will automatically be configured with the right VPC and AMI\nfor the instance type and Kubernetes version.\n\nNote that if you specify `updateType: RollingUpdate` or `updateType: ReplacingUpdate`, your nodes might be replaced at deploy\ntime without notice in case the recommended AMI for your machine image type has been updated by AWS.\nThe default behavior for `updateType` is `None`, which means only new instances will be launched using the new AMI.\n\nSpot instances will be labeled `lifecycle=Ec2Spot` and tainted with `PreferNoSchedule`.\nIn addition, the [spot interrupt handler](https://github.com/awslabs/ec2-spot-labs/tree/master/ec2-spot-eks-solution/spot-termination-handler)\ndaemon will be installed on all spot instances to handle\n[EC2 Spot Instance Termination Notices](https://aws.amazon.com/blogs/aws/new-ec2-spot-instance-termination-notices/).", "stability": "stable", "summary": "Add nodes to this EKS cluster." }, "locationInModule": { "filename": "lib/cluster.ts", "line": 1604 }, "name": "addAutoScalingGroupCapacity", "parameters": [ { "name": "id", "type": { "primitive": "string" } }, { "name": "options", "type": { "fqn": "@aws-cdk/aws-eks.AutoScalingGroupCapacityOptions" } } ], "returns": { "type": { "fqn": "@aws-cdk/aws-autoscaling.AutoScalingGroup" } } }, { "docs": { "returns": "a `KubernetesManifest` construct representing the chart.", "stability": "stable", "summary": "Defines a CDK8s chart in this cluster." }, "locationInModule": { "filename": "lib/cluster.ts", "line": 916 }, "name": "addCdk8sChart", "overrides": "@aws-cdk/aws-eks.ICluster", "parameters": [ { "docs": { "summary": "logical id of this chart." }, "name": "id", "type": { "primitive": "string" } }, { "docs": { "summary": "the cdk8s chart." }, "name": "chart", "type": { "fqn": "constructs.Construct" } }, { "name": "options", "optional": true, "type": { "fqn": "@aws-cdk/aws-eks.KubernetesManifestOptions" } } ], "returns": { "type": { "fqn": "@aws-cdk/aws-eks.KubernetesManifest" } } }, { "docs": { "see": "https://docs.aws.amazon.com/eks/latest/userguide/fargate-profile.html", "stability": "stable", "summary": "Adds a Fargate profile to this cluster." }, "locationInModule": { "filename": "lib/cluster.ts", "line": 1709 }, "name": "addFargateProfile", "parameters": [ { "docs": { "summary": "the id of this profile." }, "name": "id", "type": { "primitive": "string" } }, { "docs": { "summary": "profile options." }, "name": "options", "type": { "fqn": "@aws-cdk/aws-eks.FargateProfileOptions" } } ], "returns": { "type": { "fqn": "@aws-cdk/aws-eks.FargateProfile" } } }, { "docs": { "returns": "a `HelmChart` construct", "stability": "stable", "summary": "Defines a Helm chart in this cluster." }, "locationInModule": { "filename": "lib/cluster.ts", "line": 905 }, "name": "addHelmChart", "overrides": "@aws-cdk/aws-eks.ICluster", "parameters": [ { "docs": { "summary": "logical id of this chart." }, "name": "id", "type": { "primitive": "string" } }, { "docs": { "summary": "options of this chart." }, "name": "options", "type": { "fqn": "@aws-cdk/aws-eks.HelmChartOptions" } } ], "returns": { "type": { "fqn": "@aws-cdk/aws-eks.HelmChart" } } }, { "docs": { "remarks": "The manifest will be applied/deleted using kubectl as needed.", "returns": "a `KubernetesResource` object.", "stability": "stable", "summary": "Defines a Kubernetes resource in this cluster." }, "locationInModule": { "filename": "lib/cluster.ts", "line": 894 }, "name": "addManifest", "overrides": "@aws-cdk/aws-eks.ICluster", "parameters": [ { "docs": { "summary": "logical id of this manifest." }, "name": "id", "type": { "primitive": "string" } }, { "docs": { "summary": "a list of Kubernetes resource specifications." }, "name": "manifest", "type": { "collection": { "elementtype": { "primitive": "any" }, "kind": "map" } }, "variadic": true } ], "returns": { "type": { "fqn": "@aws-cdk/aws-eks.KubernetesManifest" } }, "variadic": true }, { "docs": { "remarks": "This method will create a new managed nodegroup and add into the capacity.", "see": "https://docs.aws.amazon.com/eks/latest/userguide/managed-node-groups.html", "stability": "stable", "summary": "Add managed nodegroup to this Amazon EKS cluster." }, "locationInModule": { "filename": "lib/cluster.ts", "line": 1646 }, "name": "addNodegroupCapacity", "parameters": [ { "docs": { "summary": "The ID of the nodegroup." }, "name": "id", "type": { "primitive": "string" } }, { "docs": { "summary": "options for creating a new nodegroup." }, "name": "options", "optional": true, "type": { "fqn": "@aws-cdk/aws-eks.NodegroupOptions" } } ], "returns": { "type": { "fqn": "@aws-cdk/aws-eks.Nodegroup" } } }, { "docs": { "stability": "stable", "summary": "Creates a new service account with corresponding IAM Role (IRSA)." }, "locationInModule": { "filename": "lib/cluster.ts", "line": 934 }, "name": "addServiceAccount", "overrides": "@aws-cdk/aws-eks.ICluster", "parameters": [ { "name": "id", "type": { "primitive": "string" } }, { "name": "options", "optional": true, "type": { "fqn": "@aws-cdk/aws-eks.ServiceAccountOptions" } } ], "returns": { "type": { "fqn": "@aws-cdk/aws-eks.ServiceAccount" } } }, { "docs": { "remarks": "The AutoScalingGroup must be running an EKS-optimized AMI containing the\n/etc/eks/bootstrap.sh script. This method will configure Security Groups,\nadd the right policies to the instance role, apply the right tags, and add\nthe required user data to the instance's launch configuration.\n\nSpot instances will be labeled `lifecycle=Ec2Spot` and tainted with `PreferNoSchedule`.\nIf kubectl is enabled, the\n[spot interrupt handler](https://github.com/awslabs/ec2-spot-labs/tree/master/ec2-spot-eks-solution/spot-termination-handler)\ndaemon will be installed on all spot instances to handle\n[EC2 Spot Instance Termination Notices](https://aws.amazon.com/blogs/aws/new-ec2-spot-instance-termination-notices/).\n\nPrefer to use `addAutoScalingGroupCapacity` if possible.", "see": "https://docs.aws.amazon.com/eks/latest/userguide/launch-workers.html", "stability": "stable", "summary": "Connect capacity in the form of an existing AutoScalingGroup to the EKS cluster." }, "locationInModule": { "filename": "lib/cluster.ts", "line": 983 }, "name": "connectAutoScalingGroupCapacity", "overrides": "@aws-cdk/aws-eks.ICluster", "parameters": [ { "docs": { "summary": "[disable-awslint:ref-via-interface]." }, "name": "autoScalingGroup", "type": { "fqn": "@aws-cdk/aws-autoscaling.AutoScalingGroup" } }, { "docs": { "summary": "options for adding auto scaling groups, like customizing the bootstrap script." }, "name": "options", "type": { "fqn": "@aws-cdk/aws-eks.AutoScalingGroupOptions" } } ] }, { "docs": { "stability": "stable", "summary": "Fetch the load balancer address of an ingress backed by a load balancer." }, "locationInModule": { "filename": "lib/cluster.ts", "line": 1574 }, "name": "getIngressLoadBalancerAddress", "parameters": [ { "docs": { "summary": "The name of the ingress." }, "name": "ingressName", "type": { "primitive": "string" } }, { "docs": { "summary": "Additional operation options." }, "name": "options", "optional": true, "type": { "fqn": "@aws-cdk/aws-eks.IngressLoadBalancerAddressOptions" } } ], "returns": { "type": { "primitive": "string" } } }, { "docs": { "stability": "stable", "summary": "Fetch the load balancer address of a service of type 'LoadBalancer'." }, "locationInModule": { "filename": "lib/cluster.ts", "line": 1553 }, "name": "getServiceLoadBalancerAddress", "parameters": [ { "docs": { "summary": "The name of the service." }, "name": "serviceName", "type": { "primitive": "string" } }, { "docs": { "summary": "Additional operation options." }, "name": "options", "optional": true, "type": { "fqn": "@aws-cdk/aws-eks.ServiceLoadBalancerAddressOptions" } } ], "returns": { "type": { "primitive": "string" } } } ], "name": "Cluster", "properties": [ { "docs": { "remarks": "This role also has `systems:master` permissions.", "stability": "stable", "summary": "An IAM role with administrative permissions to create or update the cluster." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 1227 }, "name": "adminRole", "type": { "fqn": "@aws-cdk/aws-iam.Role" } }, { "docs": { "stability": "stable", "summary": "Lazily creates the AwsAuth resource, which manages AWS authentication mapping." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 1656 }, "name": "awsAuth", "type": { "fqn": "@aws-cdk/aws-eks.AwsAuth" } }, { "docs": { "remarks": "For example, `arn:aws:eks:us-west-2:666666666666:cluster/prod`", "stability": "stable", "summary": "The AWS generated ARN for the Cluster resource." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 1125 }, "name": "clusterArn", "overrides": "@aws-cdk/aws-eks.ICluster", "type": { "primitive": "string" } }, { "docs": { "stability": "stable", "summary": "The certificate-authority-data for your cluster." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 1139 }, "name": "clusterCertificateAuthorityData", "overrides": "@aws-cdk/aws-eks.ICluster", "type": { "primitive": "string" } }, { "docs": { "stability": "stable", "summary": "Amazon Resource Name (ARN) or alias of the customer master key (CMK)." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 1154 }, "name": "clusterEncryptionConfigKeyArn", "overrides": "@aws-cdk/aws-eks.ICluster", "type": { "primitive": "string" } }, { "docs": { "remarks": "This is the URL inside the kubeconfig file to use with kubectl\n\nFor example, `https://5E1D0CEXAMPLEA591B746AFC5AB30262.yl4.us-west-2.eks.amazonaws.com`", "stability": "stable", "summary": "The endpoint URL for the Cluster." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 1134 }, "name": "clusterEndpoint", "overrides": "@aws-cdk/aws-eks.ICluster", "type": { "primitive": "string" } }, { "docs": { "stability": "stable", "summary": "The Name of the created EKS Cluster." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 1118 }, "name": "clusterName", "overrides": "@aws-cdk/aws-eks.ICluster", "type": { "primitive": "string" } }, { "docs": { "custom": { "attribute": "true" }, "remarks": "This is because the values is only be retrieved by the API and not exposed\nby CloudFormation. If this cluster is not kubectl-enabled (i.e. uses the\nstock `CfnCluster`), this is `undefined`.", "stability": "stable", "summary": "If this cluster is kubectl-enabled, returns the OpenID Connect issuer." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 1682 }, "name": "clusterOpenIdConnectIssuer", "type": { "primitive": "string" } }, { "docs": { "custom": { "attribute": "true" }, "remarks": "This is because the values is only be retrieved by the API and not exposed\nby CloudFormation. If this cluster is not kubectl-enabled (i.e. uses the\nstock `CfnCluster`), this is `undefined`.", "stability": "stable", "summary": "If this cluster is kubectl-enabled, returns the OpenID Connect issuer url." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 1671 }, "name": "clusterOpenIdConnectIssuerUrl", "type": { "primitive": "string" } }, { "docs": { "stability": "stable", "summary": "The cluster security group that was created by Amazon EKS for the cluster." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 1149 }, "name": "clusterSecurityGroup", "overrides": "@aws-cdk/aws-eks.ICluster", "type": { "fqn": "@aws-cdk/aws-ec2.ISecurityGroup" } }, { "docs": { "stability": "stable", "summary": "The id of the cluster security group that was created by Amazon EKS for the cluster." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 1144 }, "name": "clusterSecurityGroupId", "overrides": "@aws-cdk/aws-eks.ICluster", "type": { "primitive": "string" } }, { "docs": { "custom": { "memberof": "Cluster", "type": "{ec2.Connections}" }, "stability": "stable", "summary": "Manages connection rules (Security Group Rules) for the cluster." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 1162 }, "name": "connections", "overrides": "@aws-cdk/aws-ec2.IConnectable", "type": { "fqn": "@aws-cdk/aws-ec2.Connections" } }, { "docs": { "remarks": "A provider will only be defined if this property is accessed (lazy initialization).", "stability": "stable", "summary": "An `OpenIdConnectProvider` resource associated with this cluster, and which can be used to link this cluster to AWS IAM." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 1692 }, "name": "openIdConnectProvider", "overrides": "@aws-cdk/aws-eks.ICluster", "type": { "fqn": "@aws-cdk/aws-iam.IOpenIdConnectProvider" } }, { "docs": { "stability": "stable", "summary": "Determines if Kubernetes resources can be pruned automatically." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 1270 }, "name": "prune", "overrides": "@aws-cdk/aws-eks.ICluster", "type": { "primitive": "boolean" } }, { "docs": { "stability": "stable", "summary": "IAM role assumed by the EKS Control Plane." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 1167 }, "name": "role", "type": { "fqn": "@aws-cdk/aws-iam.IRole" } }, { "docs": { "stability": "stable", "summary": "The VPC in which this Cluster was created." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 1113 }, "name": "vpc", "overrides": "@aws-cdk/aws-eks.ICluster", "type": { "fqn": "@aws-cdk/aws-ec2.IVpc" } }, { "docs": { "remarks": "Will be undefined if `albController` wasn't configured.", "stability": "stable", "summary": "The ALB Controller construct defined for this cluster." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 1276 }, "name": "albController", "optional": true, "type": { "fqn": "@aws-cdk/aws-eks.AlbController" } }, { "docs": { "default": "- No security group.", "remarks": "The Cluster Handler's Lambdas are responsible for calling AWS's EKS API.\n\nRequires `placeClusterHandlerInVpc` to be set to true.", "stability": "stable", "summary": "A security group to associate with the Cluster Handler's Lambdas." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 1259 }, "name": "clusterHandlerSecurityGroup", "optional": true, "overrides": "@aws-cdk/aws-eks.ICluster", "type": { "fqn": "@aws-cdk/aws-ec2.ISecurityGroup" } }, { "docs": { "remarks": "This will be `undefined` if the `defaultCapacityType` is not `EC2` or\n`defaultCapacityType` is `EC2` but default capacity is set to 0.", "stability": "stable", "summary": "The auto scaling group that hosts the default capacity for this cluster." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 1174 }, "name": "defaultCapacity", "optional": true, "type": { "fqn": "@aws-cdk/aws-autoscaling.AutoScalingGroup" } }, { "docs": { "remarks": "This will be `undefined` if the `defaultCapacityType` is `EC2` or\n`defaultCapacityType` is `NODEGROUP` but default capacity is set to 0.", "stability": "stable", "summary": "The node group that hosts the default capacity for this cluster." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 1181 }, "name": "defaultNodegroup", "optional": true, "type": { "fqn": "@aws-cdk/aws-eks.Nodegroup" } }, { "docs": { "stability": "stable", "summary": "Custom environment variables when running `kubectl` against this cluster." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 1205 }, "name": "kubectlEnvironment", "optional": true, "overrides": "@aws-cdk/aws-eks.ICluster", "type": { "collection": { "elementtype": { "primitive": "string" }, "kind": "map" } } }, { "docs": { "default": "- if not specified, the default role created by a lambda function will\nbe used.", "remarks": "The role should be mapped to the `system:masters` Kubernetes RBAC role.\n\nThis role is directly passed to the lambda handler that sends Kube Ctl commands to the cluster.", "stability": "stable", "summary": "An IAM role that can perform kubectl operations against this cluster." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 1200 }, "name": "kubectlLambdaRole", "optional": true, "overrides": "@aws-cdk/aws-eks.ICluster", "type": { "fqn": "@aws-cdk/aws-iam.IRole" } }, { "docs": { "remarks": "If\nundefined, a SAR app that contains this layer will be used.", "stability": "stable", "summary": "The AWS Lambda layer that contains `kubectl`, `helm` and the AWS CLI." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 1244 }, "name": "kubectlLayer", "optional": true, "overrides": "@aws-cdk/aws-eks.ICluster", "type": { "fqn": "@aws-cdk/aws-lambda.ILayerVersion" } }, { "docs": { "stability": "stable", "summary": "The amount of memory allocated to the kubectl provider's lambda function." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 1249 }, "name": "kubectlMemory", "optional": true, "overrides": "@aws-cdk/aws-eks.ICluster", "type": { "fqn": "@aws-cdk/core.Size" } }, { "docs": { "default": "- If not specified, the k8s endpoint is expected to be accessible\npublicly.", "stability": "stable", "summary": "Subnets to host the `kubectl` compute resources." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 1221 }, "name": "kubectlPrivateSubnets", "optional": true, "overrides": "@aws-cdk/aws-eks.ICluster", "type": { "collection": { "elementtype": { "fqn": "@aws-cdk/aws-ec2.ISubnet" }, "kind": "array" } } }, { "docs": { "remarks": "The role should be mapped to the `system:masters` Kubernetes RBAC role.", "stability": "stable", "summary": "An IAM role that can perform kubectl operations against this cluster." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 1188 }, "name": "kubectlRole", "optional": true, "overrides": "@aws-cdk/aws-eks.ICluster", "type": { "fqn": "@aws-cdk/aws-iam.IRole" } }, { "docs": { "default": "- If not specified, the k8s endpoint is expected to be accessible\npublicly.", "stability": "stable", "summary": "A security group to use for `kubectl` execution." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 1213 }, "name": "kubectlSecurityGroup", "optional": true, "overrides": "@aws-cdk/aws-eks.ICluster", "type": { "fqn": "@aws-cdk/aws-ec2.ISecurityGroup" } }, { "docs": { "remarks": "If\nundefined, a SAR app that contains this layer will be used.", "stability": "stable", "summary": "The AWS Lambda layer that contains the NPM dependency `proxy-agent`." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 1265 }, "name": "onEventLayer", "optional": true, "overrides": "@aws-cdk/aws-eks.ICluster", "type": { "fqn": "@aws-cdk/aws-lambda.ILayerVersion" } } ], "symbolId": "lib/cluster:Cluster" }, "@aws-cdk/aws-eks.ClusterAttributes": { "assembly": "@aws-cdk/aws-eks", "datatype": true, "docs": { "stability": "stable", "summary": "Attributes for EKS clusters.", "example": "declare const cluster: eks.Cluster;\ndeclare const asg: autoscaling.AutoScalingGroup;\nconst importedCluster = eks.Cluster.fromClusterAttributes(this, 'ImportedCluster', {\n clusterName: cluster.clusterName,\n clusterSecurityGroupId: cluster.clusterSecurityGroupId,\n});\n\nimportedCluster.connectAutoScalingGroupCapacity(asg, {});", "custom": { "exampleMetadata": "infused" } }, "fqn": "@aws-cdk/aws-eks.ClusterAttributes", "kind": "interface", "locationInModule": { "filename": "lib/cluster.ts", "line": 238 }, "name": "ClusterAttributes", "properties": [ { "abstract": true, "docs": { "stability": "stable", "summary": "The physical name of the Cluster." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 248 }, "name": "clusterName", "type": { "primitive": "string" } }, { "abstract": true, "docs": { "default": "- if not specified `cluster.clusterCertificateAuthorityData` will\nthrow an error", "stability": "stable", "summary": "The certificate-authority-data for your cluster." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 261 }, "name": "clusterCertificateAuthorityData", "optional": true, "type": { "primitive": "string" } }, { "abstract": true, "docs": { "default": "- if not specified `cluster.clusterEncryptionConfigKeyArn` will\nthrow an error", "stability": "stable", "summary": "Amazon Resource Name (ARN) or alias of the customer master key (CMK)." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 275 }, "name": "clusterEncryptionConfigKeyArn", "optional": true, "type": { "primitive": "string" } }, { "abstract": true, "docs": { "default": "- if not specified `cluster.clusterEndpoint` will throw an error.", "stability": "stable", "summary": "The API Server endpoint URL." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 254 }, "name": "clusterEndpoint", "optional": true, "type": { "primitive": "string" } }, { "abstract": true, "docs": { "default": "- No security group.", "remarks": "The Cluster Handler's Lambdas are responsible for calling AWS's EKS API.", "stability": "stable", "summary": "A security group id to associate with the Cluster Handler's Lambdas." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 365 }, "name": "clusterHandlerSecurityGroupId", "optional": true, "type": { "primitive": "string" } }, { "abstract": true, "docs": { "default": "- if not specified `cluster.clusterSecurityGroupId` will throw an\nerror", "stability": "stable", "summary": "The cluster security group that was created by Amazon EKS for the cluster." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 268 }, "name": "clusterSecurityGroupId", "optional": true, "type": { "primitive": "string" } }, { "abstract": true, "docs": { "default": "- no additional variables", "stability": "stable", "summary": "Environment variables to use when running `kubectl` against this cluster." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 307 }, "name": "kubectlEnvironment", "optional": true, "type": { "collection": { "elementtype": { "primitive": "string" }, "kind": "map" } } }, { "abstract": true, "docs": { "default": "- if not specified, the default role created by a lambda function will\nbe used.", "remarks": "The role should be mapped to the `system:masters` Kubernetes RBAC role.\n\nThis role is directly passed to the lambda handler that sends Kube Ctl commands\nto the cluster.", "stability": "stable", "summary": "An IAM role that can perform kubectl operations against this cluster." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 301 }, "name": "kubectlLambdaRole", "optional": true, "type": { "fqn": "@aws-cdk/aws-iam.IRole" } }, { "abstract": true, "docs": { "default": "- a layer bundled with this module.", "remarks": "This layer\nis used by the kubectl handler to apply manifests and install helm charts.\n\nThe handler expects the layer to include the following executables:\n\n helm/helm\n kubectl/kubectl\n awscli/aws", "stability": "stable", "summary": "An AWS Lambda Layer which includes `kubectl`, Helm and the AWS CLI." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 343 }, "name": "kubectlLayer", "optional": true, "type": { "fqn": "@aws-cdk/aws-lambda.ILayerVersion" } }, { "abstract": true, "docs": { "default": "Size.gibibytes(1)", "stability": "stable", "summary": "Amount of memory to allocate to the provider's lambda function." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 357 }, "name": "kubectlMemory", "optional": true, "type": { "fqn": "@aws-cdk/core.Size" } }, { "abstract": true, "docs": { "default": "- k8s endpoint is expected to be accessible publicly", "remarks": "If not specified, the k8s\nendpoint is expected to be accessible publicly.", "stability": "stable", "summary": "Subnets to host the `kubectl` compute resources." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 321 }, "name": "kubectlPrivateSubnetIds", "optional": true, "type": { "collection": { "elementtype": { "primitive": "string" }, "kind": "array" } } }, { "abstract": true, "docs": { "default": "- Default CDK provider", "stability": "stable", "summary": "KubectlProvider for issuing kubectl commands." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 350 }, "name": "kubectlProvider", "optional": true, "type": { "fqn": "@aws-cdk/aws-eks.IKubectlProvider" } }, { "abstract": true, "docs": { "default": "- if not specified, it not be possible to issue `kubectl` commands\nagainst an imported cluster.", "stability": "stable", "summary": "An IAM role with cluster administrator and \"system:masters\" permissions." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 289 }, "name": "kubectlRoleArn", "optional": true, "type": { "primitive": "string" } }, { "abstract": true, "docs": { "default": "- k8s endpoint is expected to be accessible publicly", "remarks": "If not specified, the k8s\nendpoint is expected to be accessible publicly.", "stability": "stable", "summary": "A security group to use for `kubectl` execution." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 314 }, "name": "kubectlSecurityGroupId", "optional": true, "type": { "primitive": "string" } }, { "abstract": true, "docs": { "default": "- a layer bundled with this module.", "remarks": "This layer\nis used by the onEvent handler to route AWS SDK requests through a proxy.\n\nThe handler expects the layer to include the following node_modules:\n\n proxy-agent", "stability": "stable", "summary": "An AWS Lambda Layer which includes the NPM dependency `proxy-agent`." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 377 }, "name": "onEventLayer", "optional": true, "type": { "fqn": "@aws-cdk/aws-lambda.ILayerVersion" } }, { "abstract": true, "docs": { "default": "- if not specified `cluster.openIdConnectProvider` and `cluster.addServiceAccount` will throw an error.", "remarks": "You can either import an existing provider using `iam.OpenIdConnectProvider.fromProviderArn`,\nor create a new provider using `new eks.OpenIdConnectProvider`", "stability": "stable", "summary": "An Open ID Connect provider for this cluster that can be used to configure service accounts." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 329 }, "name": "openIdConnectProvider", "optional": true, "type": { "fqn": "@aws-cdk/aws-iam.IOpenIdConnectProvider" } }, { "abstract": true, "docs": { "default": "true", "remarks": "When this is enabled (default), prune labels will be\nallocated and injected to each resource. These labels will then be used\nwhen issuing the `kubectl apply` operation with the `--prune` switch.", "stability": "stable", "summary": "Indicates whether Kubernetes resources added through `addManifest()` can be automatically pruned." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 387 }, "name": "prune", "optional": true, "type": { "primitive": "boolean" } }, { "abstract": true, "docs": { "default": "- if not specified, no additional security groups will be\nconsidered in `cluster.connections`.", "stability": "stable", "summary": "Additional security groups associated with this cluster." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 282 }, "name": "securityGroupIds", "optional": true, "type": { "collection": { "elementtype": { "primitive": "string" }, "kind": "array" } } }, { "abstract": true, "docs": { "default": "- if not specified `cluster.vpc` will throw an error", "stability": "stable", "summary": "The VPC in which this Cluster was created." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 243 }, "name": "vpc", "optional": true, "type": { "fqn": "@aws-cdk/aws-ec2.IVpc" } } ], "symbolId": "lib/cluster:ClusterAttributes" }, "@aws-cdk/aws-eks.ClusterLoggingTypes": { "assembly": "@aws-cdk/aws-eks", "docs": { "stability": "stable", "summary": "EKS cluster logging types.", "example": "const cluster = new eks.Cluster(this, 'Cluster', {\n // ...\n version: eks.KubernetesVersion.V1_21,\n clusterLogging: [\n eks.ClusterLoggingTypes.API,\n eks.ClusterLoggingTypes.AUTHENTICATOR,\n eks.ClusterLoggingTypes.SCHEDULER,\n ],\n});", "custom": { "exampleMetadata": "infused" } }, "fqn": "@aws-cdk/aws-eks.ClusterLoggingTypes", "kind": "enum", "locationInModule": { "filename": "lib/cluster.ts", "line": 832 }, "members": [ { "docs": { "stability": "stable", "summary": "Logs pertaining to API requests to the cluster." }, "name": "API" }, { "docs": { "stability": "stable", "summary": "Logs pertaining to cluster access via the Kubernetes API." }, "name": "AUDIT" }, { "docs": { "stability": "stable", "summary": "Logs pertaining to authentication requests into the cluster." }, "name": "AUTHENTICATOR" }, { "docs": { "stability": "stable", "summary": "Logs pertaining to state of cluster controllers." }, "name": "CONTROLLER_MANAGER" }, { "docs": { "stability": "stable", "summary": "Logs pertaining to scheduling decisions." }, "name": "SCHEDULER" } ], "name": "ClusterLoggingTypes", "symbolId": "lib/cluster:ClusterLoggingTypes" }, "@aws-cdk/aws-eks.ClusterOptions": { "assembly": "@aws-cdk/aws-eks", "datatype": true, "docs": { "stability": "stable", "summary": "Options for EKS clusters.", "example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as ec2 from '@aws-cdk/aws-ec2';\nimport * as eks from '@aws-cdk/aws-eks';\nimport * as iam from '@aws-cdk/aws-iam';\nimport * as kms from '@aws-cdk/aws-kms';\nimport * as lambda from '@aws-cdk/aws-lambda';\nimport * as cdk from '@aws-cdk/core';\n\ndeclare const albControllerVersion: eks.AlbControllerVersion;\ndeclare const endpointAccess: eks.EndpointAccess;\ndeclare const key: kms.Key;\ndeclare const kubernetesVersion: eks.KubernetesVersion;\ndeclare const layerVersion: lambda.LayerVersion;\ndeclare const policy: any;\ndeclare const role: iam.Role;\ndeclare const securityGroup: ec2.SecurityGroup;\ndeclare const size: cdk.Size;\ndeclare const subnet: ec2.Subnet;\ndeclare const subnetFilter: ec2.SubnetFilter;\ndeclare const vpc: ec2.Vpc;\nconst clusterOptions: eks.ClusterOptions = {\n version: kubernetesVersion,\n\n // the properties below are optional\n albController: {\n version: albControllerVersion,\n\n // the properties below are optional\n policy: policy,\n repository: 'repository',\n },\n clusterHandlerEnvironment: {\n clusterHandlerEnvironmentKey: 'clusterHandlerEnvironment',\n },\n clusterHandlerSecurityGroup: securityGroup,\n clusterName: 'clusterName',\n coreDnsComputeType: eks.CoreDnsComputeType.EC2,\n endpointAccess: endpointAccess,\n kubectlEnvironment: {\n kubectlEnvironmentKey: 'kubectlEnvironment',\n },\n kubectlLayer: layerVersion,\n kubectlMemory: size,\n mastersRole: role,\n onEventLayer: layerVersion,\n outputClusterName: false,\n outputConfigCommand: false,\n outputMastersRoleArn: false,\n placeClusterHandlerInVpc: false,\n prune: false,\n role: role,\n secretsEncryptionKey: key,\n securityGroup: securityGroup,\n serviceIpv4Cidr: 'serviceIpv4Cidr',\n vpc: vpc,\n vpcSubnets: [{\n availabilityZones: ['availabilityZones'],\n onePerAz: false,\n subnetFilters: [subnetFilter],\n subnetGroupName: 'subnetGroupName',\n subnetName: 'subnetName',\n subnets: [subnet],\n subnetType: ec2.SubnetType.ISOLATED,\n }],\n};", "custom": { "exampleMetadata": "fixture=_generated" } }, "fqn": "@aws-cdk/aws-eks.ClusterOptions", "interfaces": [ "@aws-cdk/aws-eks.CommonClusterOptions" ], "kind": "interface", "locationInModule": { "filename": "lib/cluster.ts", "line": 461 }, "name": "ClusterOptions", "properties": [ { "abstract": true, "docs": { "default": "- The controller is not installed.", "see": "https://kubernetes-sigs.github.io/aws-load-balancer-controller", "stability": "stable", "summary": "Install the AWS Load Balancer Controller onto the cluster." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 618 }, "name": "albController", "optional": true, "type": { "fqn": "@aws-cdk/aws-eks.AlbControllerOptions" } }, { "abstract": true, "docs": { "default": "- No environment variables.", "stability": "stable", "summary": "Custom environment variables when interacting with the EKS endpoint to manage the cluster lifecycle." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 542 }, "name": "clusterHandlerEnvironment", "optional": true, "type": { "collection": { "elementtype": { "primitive": "string" }, "kind": "map" } } }, { "abstract": true, "docs": { "default": "- No security group.", "remarks": "The Cluster Handler's Lambdas are responsible for calling AWS's EKS API.\n\nRequires `placeClusterHandlerInVpc` to be set to true.", "stability": "stable", "summary": "A security group to associate with the Cluster Handler's Lambdas." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 552 }, "name": "clusterHandlerSecurityGroup", "optional": true, "type": { "fqn": "@aws-cdk/aws-ec2.ISecurityGroup" } }, { "abstract": true, "docs": { "default": "CoreDnsComputeType.EC2 (for `FargateCluster` the default is FARGATE)", "stability": "stable", "summary": "Controls the \"eks.amazonaws.com/compute-type\" annotation in the CoreDNS configuration on your cluster to determine which compute type to use for CoreDNS." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 480 }, "name": "coreDnsComputeType", "optional": true, "type": { "fqn": "@aws-cdk/aws-eks.CoreDnsComputeType" } }, { "abstract": true, "docs": { "default": "EndpointAccess.PUBLIC_AND_PRIVATE", "see": "https://docs.aws.amazon.com/eks/latest/userguide/cluster-endpoint.html", "stability": "stable", "summary": "Configure access to the Kubernetes API server endpoint.." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 497 }, "name": "endpointAccess", "optional": true, "type": { "fqn": "@aws-cdk/aws-eks.EndpointAccess" } }, { "abstract": true, "docs": { "default": "- No environment variables.", "remarks": "Only relevant for kubectl enabled clusters.", "stability": "stable", "summary": "Environment variables for the kubectl execution." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 504 }, "name": "kubectlEnvironment", "optional": true, "type": { "collection": { "elementtype": { "primitive": "string" }, "kind": "map" } } }, { "abstract": true, "docs": { "default": "- the layer provided by the `aws-lambda-layer-kubectl` SAR app.", "remarks": "By default, the provider will use the layer included in the\n\"aws-lambda-layer-kubectl\" SAR application which is available in all\ncommercial regions.\n\nTo deploy the layer locally, visit\nhttps://github.com/aws-samples/aws-lambda-layer-kubectl/blob/master/cdk/README.md\nfor instructions on how to prepare the .zip file and then define it in your\napp as follows:\n\n```ts\nconst layer = new lambda.LayerVersion(this, 'kubectl-layer', {\n code: lambda.Code.fromAsset(`${__dirname}/layer.zip`),\n compatibleRuntimes: [lambda.Runtime.PROVIDED],\n});\n```", "see": "https://github.com/aws-samples/aws-lambda-layer-kubectl", "stability": "stable", "summary": "An AWS Lambda Layer which includes `kubectl`, Helm and the AWS CLI." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 528 }, "name": "kubectlLayer", "optional": true, "type": { "fqn": "@aws-cdk/aws-lambda.ILayerVersion" } }, { "abstract": true, "docs": { "default": "Size.gibibytes(1)", "stability": "stable", "summary": "Amount of memory to allocate to the provider's lambda function." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 535 }, "name": "kubectlMemory", "optional": true, "type": { "fqn": "@aws-cdk/core.Size" } }, { "abstract": true, "docs": { "default": "- a role that assumable by anyone with permissions in the same\naccount will automatically be defined", "see": "https://kubernetes.io/docs/reference/access-authn-authz/rbac/#default-roles-and-role-bindings", "stability": "stable", "summary": "An IAM role that will be added to the `system:masters` Kubernetes RBAC group." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 471 }, "name": "mastersRole", "optional": true, "type": { "fqn": "@aws-cdk/aws-iam.IRole" } }, { "abstract": true, "docs": { "default": "- a layer bundled with this module.", "remarks": "This layer\nis used by the onEvent handler to route AWS SDK requests through a proxy.\n\nBy default, the provider will use the layer included in the\n\"aws-lambda-layer-node-proxy-agent\" SAR application which is available in all\ncommercial regions.\n\nTo deploy the layer locally define it in your app as follows:\n\n```ts\nconst layer = new lambda.LayerVersion(this, 'proxy-agent-layer', {\n code: lambda.Code.fromAsset(`${__dirname}/layer.zip`),\n compatibleRuntimes: [lambda.Runtime.NODEJS_14_X],\n});\n```", "stability": "stable", "summary": "An AWS Lambda Layer which includes the NPM dependency `proxy-agent`." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 573 }, "name": "onEventLayer", "optional": true, "type": { "fqn": "@aws-cdk/aws-lambda.ILayerVersion" } }, { "abstract": true, "docs": { "default": "false", "stability": "stable", "summary": "Determines whether a CloudFormation output with the ARN of the \"masters\" IAM role will be synthesized (if `mastersRole` is specified)." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 488 }, "name": "outputMastersRoleArn", "optional": true, "type": { "primitive": "boolean" } }, { "abstract": true, "docs": { "default": "false", "stability": "stable", "summary": "If set to true, the cluster handler functions will be placed in the private subnets of the cluster vpc, subject to the `vpcSubnets` selection strategy." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 591 }, "name": "placeClusterHandlerInVpc", "optional": true, "type": { "primitive": "boolean" } }, { "abstract": true, "docs": { "default": "true", "remarks": "When this is enabled (default), prune labels will be\nallocated and injected to each resource. These labels will then be used\nwhen issuing the `kubectl apply` operation with the `--prune` switch.", "stability": "stable", "summary": "Indicates whether Kubernetes resources added through `addManifest()` can be automatically pruned." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 583 }, "name": "prune", "optional": true, "type": { "primitive": "boolean" } }, { "abstract": true, "docs": { "default": "- By default, Kubernetes stores all secret object data within etcd and\n all etcd volumes used by Amazon EKS are encrypted at the disk-level\n using AWS-Managed encryption keys.", "stability": "stable", "summary": "KMS secret for envelope encryption for Kubernetes secrets." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 600 }, "name": "secretsEncryptionKey", "optional": true, "type": { "fqn": "@aws-cdk/aws-kms.IKey" } }, { "abstract": true, "docs": { "default": "- Kubernetes assigns addresses from either the\n 10.100.0.0/16 or 172.20.0.0/16 CIDR blocks", "see": "https://docs.aws.amazon.com/eks/latest/APIReference/API_KubernetesNetworkConfigRequest.html#AmazonEKS-Type-KubernetesNetworkConfigRequest-serviceIpv4Cidr", "stability": "stable", "summary": "The CIDR block to assign Kubernetes service IP addresses from." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 609 }, "name": "serviceIpv4Cidr", "optional": true, "type": { "primitive": "string" } } ], "symbolId": "lib/cluster:ClusterOptions" }, "@aws-cdk/aws-eks.ClusterProps": { "assembly": "@aws-cdk/aws-eks", "datatype": true, "docs": { "stability": "stable", "summary": "Common configuration props for EKS clusters.", "example": "declare const vpc: ec2.Vpc;\n\nnew eks.Cluster(this, 'HelloEKS', {\n version: eks.KubernetesVersion.V1_21,\n vpc,\n vpcSubnets: [{ subnetType: ec2.SubnetType.PRIVATE_WITH_NAT }],\n});", "custom": { "exampleMetadata": "infused" } }, "fqn": "@aws-cdk/aws-eks.ClusterProps", "interfaces": [ "@aws-cdk/aws-eks.ClusterOptions" ], "kind": "interface", "locationInModule": { "filename": "lib/cluster.ts", "line": 718 }, "name": "ClusterProps", "properties": [ { "abstract": true, "docs": { "default": "- none", "stability": "stable", "summary": "The cluster log types which you want to enable." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 766 }, "name": "clusterLogging", "optional": true, "type": { "collection": { "elementtype": { "fqn": "@aws-cdk/aws-eks.ClusterLoggingTypes" }, "kind": "array" } } }, { "abstract": true, "docs": { "default": "2", "remarks": "Instance type can be configured through `defaultCapacityInstanceType`,\nwhich defaults to `m5.large`.\n\nUse `cluster.addAutoScalingGroupCapacity` to add additional customized capacity. Set this\nto `0` is you wish to avoid the initial capacity allocation.", "stability": "stable", "summary": "Number of instances to allocate as an initial capacity for this cluster." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 730 }, "name": "defaultCapacity", "optional": true, "type": { "primitive": "number" } }, { "abstract": true, "docs": { "default": "m5.large", "remarks": "This will only be taken\ninto account if `defaultCapacity` is > 0.", "stability": "stable", "summary": "The instance type to use for the default capacity." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 738 }, "name": "defaultCapacityInstance", "optional": true, "type": { "fqn": "@aws-cdk/aws-ec2.InstanceType" } }, { "abstract": true, "docs": { "default": "NODEGROUP", "stability": "stable", "summary": "The default capacity type for the cluster." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 745 }, "name": "defaultCapacityType", "optional": true, "type": { "fqn": "@aws-cdk/aws-eks.DefaultCapacityType" } }, { "abstract": true, "docs": { "default": "- Default Lambda IAM Execution Role", "stability": "stable", "summary": "The IAM role to pass to the Kubectl Lambda Handler." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 752 }, "name": "kubectlLambdaRole", "optional": true, "type": { "fqn": "@aws-cdk/aws-iam.IRole" } }, { "abstract": true, "docs": { "default": "- none", "stability": "stable", "summary": "The tags assigned to the EKS cluster." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 759 }, "name": "tags", "optional": true, "type": { "collection": { "elementtype": { "primitive": "string" }, "kind": "map" } } } ], "symbolId": "lib/cluster:ClusterProps" }, "@aws-cdk/aws-eks.CommonClusterOptions": { "assembly": "@aws-cdk/aws-eks", "datatype": true, "docs": { "stability": "stable", "summary": "Options for configuring an EKS cluster.", "example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as ec2 from '@aws-cdk/aws-ec2';\nimport * as eks from '@aws-cdk/aws-eks';\nimport * as iam from '@aws-cdk/aws-iam';\n\ndeclare const kubernetesVersion: eks.KubernetesVersion;\ndeclare const role: iam.Role;\ndeclare const securityGroup: ec2.SecurityGroup;\ndeclare const subnet: ec2.Subnet;\ndeclare const subnetFilter: ec2.SubnetFilter;\ndeclare const vpc: ec2.Vpc;\nconst commonClusterOptions: eks.CommonClusterOptions = {\n version: kubernetesVersion,\n\n // the properties below are optional\n clusterName: 'clusterName',\n outputClusterName: false,\n outputConfigCommand: false,\n role: role,\n securityGroup: securityGroup,\n vpc: vpc,\n vpcSubnets: [{\n availabilityZones: ['availabilityZones'],\n onePerAz: false,\n subnetFilters: [subnetFilter],\n subnetGroupName: 'subnetGroupName',\n subnetName: 'subnetName',\n subnets: [subnet],\n subnetType: ec2.SubnetType.ISOLATED,\n }],\n};", "custom": { "exampleMetadata": "fixture=_generated" } }, "fqn": "@aws-cdk/aws-eks.CommonClusterOptions", "kind": "interface", "locationInModule": { "filename": "lib/cluster.ts", "line": 393 }, "name": "CommonClusterOptions", "properties": [ { "abstract": true, "docs": { "stability": "stable", "summary": "The Kubernetes version to run in the cluster." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 438 }, "name": "version", "type": { "fqn": "@aws-cdk/aws-eks.KubernetesVersion" } }, { "abstract": true, "docs": { "default": "- Automatically generated name", "stability": "stable", "summary": "Name for the cluster." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 426 }, "name": "clusterName", "optional": true, "type": { "primitive": "string" } }, { "abstract": true, "docs": { "default": "false", "stability": "stable", "summary": "Determines whether a CloudFormation output with the name of the cluster will be synthesized." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 446 }, "name": "outputClusterName", "optional": true, "type": { "primitive": "boolean" } }, { "abstract": true, "docs": { "default": "true", "remarks": "This command will include\nthe cluster name and, if applicable, the ARN of the masters IAM role.", "stability": "stable", "summary": "Determines whether a CloudFormation output with the `aws eks update-kubeconfig` command will be synthesized." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 455 }, "name": "outputConfigCommand", "optional": true, "type": { "primitive": "boolean" } }, { "abstract": true, "docs": { "default": "- A role is automatically created for you", "stability": "stable", "summary": "Role that provides permissions for the Kubernetes control plane to make calls to AWS API operations on your behalf." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 419 }, "name": "role", "optional": true, "type": { "fqn": "@aws-cdk/aws-iam.IRole" } }, { "abstract": true, "docs": { "default": "- A security group is automatically created", "stability": "stable", "summary": "Security Group to use for Control Plane ENIs." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 433 }, "name": "securityGroup", "optional": true, "type": { "fqn": "@aws-cdk/aws-ec2.ISecurityGroup" } }, { "abstract": true, "docs": { "default": "- a VPC with default configuration will be created and can be accessed through `cluster.vpc`.", "stability": "stable", "summary": "The VPC in which to create the Cluster." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 399 }, "name": "vpc", "optional": true, "type": { "fqn": "@aws-cdk/aws-ec2.IVpc" } }, { "abstract": true, "docs": { "default": "- All public and private subnets", "remarks": "If you want to create public load balancers, this must include public subnets.\n\nFor example, to only select private subnets, supply the following:\n\n`vpcSubnets: [{ subnetType: ec2.SubnetType.PRIVATE_WITH_NAT }]`", "stability": "stable", "summary": "Where to place EKS Control Plane ENIs." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 412 }, "name": "vpcSubnets", "optional": true, "type": { "collection": { "elementtype": { "fqn": "@aws-cdk/aws-ec2.SubnetSelection" }, "kind": "array" } } } ], "symbolId": "lib/cluster:CommonClusterOptions" }, "@aws-cdk/aws-eks.CoreDnsComputeType": { "assembly": "@aws-cdk/aws-eks", "docs": { "stability": "stable", "summary": "The type of compute resources to use for CoreDNS." }, "fqn": "@aws-cdk/aws-eks.CoreDnsComputeType", "kind": "enum", "locationInModule": { "filename": "lib/cluster.ts", "line": 2249 }, "members": [ { "docs": { "stability": "stable", "summary": "Deploy CoreDNS on EC2 instances." }, "name": "EC2" }, { "docs": { "stability": "stable", "summary": "Deploy CoreDNS on Fargate-managed instances." }, "name": "FARGATE" } ], "name": "CoreDnsComputeType", "symbolId": "lib/cluster:CoreDnsComputeType" }, "@aws-cdk/aws-eks.CpuArch": { "assembly": "@aws-cdk/aws-eks", "docs": { "stability": "stable", "summary": "CPU architecture." }, "fqn": "@aws-cdk/aws-eks.CpuArch", "kind": "enum", "locationInModule": { "filename": "lib/cluster.ts", "line": 2234 }, "members": [ { "docs": { "stability": "stable", "summary": "arm64 CPU type." }, "name": "ARM_64" }, { "docs": { "stability": "stable", "summary": "x86_64 CPU type." }, "name": "X86_64" } ], "name": "CpuArch", "symbolId": "lib/cluster:CpuArch" }, "@aws-cdk/aws-eks.DefaultCapacityType": { "assembly": "@aws-cdk/aws-eks", "docs": { "stability": "stable", "summary": "The default capacity type for the cluster.", "example": "const cluster = new eks.Cluster(this, 'HelloEKS', {\n version: eks.KubernetesVersion.V1_21,\n defaultCapacityType: eks.DefaultCapacityType.EC2,\n});", "custom": { "exampleMetadata": "infused" } }, "fqn": "@aws-cdk/aws-eks.DefaultCapacityType", "kind": "enum", "locationInModule": { "filename": "lib/cluster.ts", "line": 2264 }, "members": [ { "docs": { "stability": "stable", "summary": "managed node group." }, "name": "NODEGROUP" }, { "docs": { "stability": "stable", "summary": "EC2 autoscaling group." }, "name": "EC2" } ], "name": "DefaultCapacityType", "symbolId": "lib/cluster:DefaultCapacityType" }, "@aws-cdk/aws-eks.EksOptimizedImage": { "assembly": "@aws-cdk/aws-eks", "docs": { "stability": "stable", "summary": "Construct an Amazon Linux 2 image from the latest EKS Optimized AMI published in SSM.", "example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as eks from '@aws-cdk/aws-eks';\nconst eksOptimizedImage = new eks.EksOptimizedImage(/* all optional props */ {\n cpuArch: eks.CpuArch.ARM_64,\n kubernetesVersion: 'kubernetesVersion',\n nodeType: eks.NodeType.STANDARD,\n});", "custom": { "exampleMetadata": "fixture=_generated" } }, "fqn": "@aws-cdk/aws-eks.EksOptimizedImage", "initializer": { "docs": { "stability": "stable", "summary": "Constructs a new instance of the EcsOptimizedAmi class." }, "locationInModule": { "filename": "lib/cluster.ts", "line": 2181 }, "parameters": [ { "name": "props", "optional": true, "type": { "fqn": "@aws-cdk/aws-eks.EksOptimizedImageProps" } } ] }, "interfaces": [ "@aws-cdk/aws-ec2.IMachineImage" ], "kind": "class", "locationInModule": { "filename": "lib/cluster.ts", "line": 2172 }, "methods": [ { "docs": { "stability": "stable", "summary": "Return the correct image." }, "locationInModule": { "filename": "lib/cluster.ts", "line": 2198 }, "name": "getImage", "overrides": "@aws-cdk/aws-ec2.IMachineImage", "parameters": [ { "name": "scope", "type": { "fqn": "@aws-cdk/core.Construct" } } ], "returns": { "type": { "fqn": "@aws-cdk/aws-ec2.MachineImageConfig" } } } ], "name": "EksOptimizedImage", "symbolId": "lib/cluster:EksOptimizedImage" }, "@aws-cdk/aws-eks.EksOptimizedImageProps": { "assembly": "@aws-cdk/aws-eks", "datatype": true, "docs": { "stability": "stable", "summary": "Properties for EksOptimizedImage.", "example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as eks from '@aws-cdk/aws-eks';\nconst eksOptimizedImageProps: eks.EksOptimizedImageProps = {\n cpuArch: eks.CpuArch.ARM_64,\n kubernetesVersion: 'kubernetesVersion',\n nodeType: eks.NodeType.STANDARD,\n};", "custom": { "exampleMetadata": "fixture=_generated" } }, "fqn": "@aws-cdk/aws-eks.EksOptimizedImageProps", "kind": "interface", "locationInModule": { "filename": "lib/cluster.ts", "line": 2146 }, "name": "EksOptimizedImageProps", "properties": [ { "abstract": true, "docs": { "default": "CpuArch.X86_64", "stability": "stable", "summary": "What cpu architecture to retrieve the image for (arm64 or x86_64)." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 2159 }, "name": "cpuArch", "optional": true, "type": { "fqn": "@aws-cdk/aws-eks.CpuArch" } }, { "abstract": true, "docs": { "default": "- The latest version", "stability": "stable", "summary": "The Kubernetes version to use." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 2166 }, "name": "kubernetesVersion", "optional": true, "type": { "primitive": "string" } }, { "abstract": true, "docs": { "default": "NodeType.STANDARD", "stability": "stable", "summary": "What instance type to retrieve the image for (standard or GPU-optimized)." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 2152 }, "name": "nodeType", "optional": true, "type": { "fqn": "@aws-cdk/aws-eks.NodeType" } } ], "symbolId": "lib/cluster:EksOptimizedImageProps" }, "@aws-cdk/aws-eks.EndpointAccess": { "assembly": "@aws-cdk/aws-eks", "docs": { "stability": "stable", "summary": "Endpoint access characteristics.", "example": "const cluster = new eks.Cluster(this, 'hello-eks', {\n version: eks.KubernetesVersion.V1_21,\n endpointAccess: eks.EndpointAccess.PRIVATE, // No access outside of your VPC.\n});", "custom": { "exampleMetadata": "infused" } }, "fqn": "@aws-cdk/aws-eks.EndpointAccess", "kind": "class", "locationInModule": { "filename": "lib/cluster.ts", "line": 648 }, "methods": [ { "docs": { "remarks": "If public access is disabled, this method will result in an error.", "stability": "stable", "summary": "Restrict public access to specific CIDR blocks." }, "locationInModule": { "filename": "lib/cluster.ts", "line": 701 }, "name": "onlyFrom", "parameters": [ { "docs": { "summary": "CIDR blocks." }, "name": "cidr", "type": { "primitive": "string" }, "variadic": true } ], "returns": { "type": { "fqn": "@aws-cdk/aws-eks.EndpointAccess" } }, "variadic": true } ], "name": "EndpointAccess", "properties": [ { "const": true, "docs": { "remarks": "Worker node traffic to the endpoint will stay within your VPC.", "stability": "stable", "summary": "The cluster endpoint is only accessible through your VPC." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 667 }, "name": "PRIVATE", "static": true, "type": { "fqn": "@aws-cdk/aws-eks.EndpointAccess" } }, { "const": true, "docs": { "remarks": "Worker node traffic will leave your VPC to connect to the endpoint.\n\nBy default, the endpoint is exposed to all adresses. You can optionally limit the CIDR blocks that can access the public endpoint using the `PUBLIC.onlyFrom` method.\nIf you limit access to specific CIDR blocks, you must ensure that the CIDR blocks that you\nspecify include the addresses that worker nodes and Fargate pods (if you use them)\naccess the public endpoint from.", "stability": "stable", "summary": "The cluster endpoint is accessible from outside of your VPC." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 661 }, "name": "PUBLIC", "static": true, "type": { "fqn": "@aws-cdk/aws-eks.EndpointAccess" } }, { "const": true, "docs": { "remarks": "Worker node traffic to the endpoint will stay within your VPC.\n\nBy default, the endpoint is exposed to all adresses. You can optionally limit the CIDR blocks that can access the public endpoint using the `PUBLIC_AND_PRIVATE.onlyFrom` method.\nIf you limit access to specific CIDR blocks, you must ensure that the CIDR blocks that you\nspecify include the addresses that worker nodes and Fargate pods (if you use them)\naccess the public endpoint from.", "stability": "stable", "summary": "The cluster endpoint is accessible from outside of your VPC." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 680 }, "name": "PUBLIC_AND_PRIVATE", "static": true, "type": { "fqn": "@aws-cdk/aws-eks.EndpointAccess" } } ], "symbolId": "lib/cluster:EndpointAccess" }, "@aws-cdk/aws-eks.FargateCluster": { "assembly": "@aws-cdk/aws-eks", "base": "@aws-cdk/aws-eks.Cluster", "docs": { "remarks": "The cluster is created with a default Fargate Profile that matches the\n\"default\" and \"kube-system\" namespaces. You can add additional profiles using\n`addFargateProfile`.", "stability": "stable", "summary": "Defines an EKS cluster that runs entirely on AWS Fargate.", "example": "const cluster = new eks.FargateCluster(this, 'MyCluster', {\n version: eks.KubernetesVersion.V1_21,\n});", "custom": { "exampleMetadata": "infused" } }, "fqn": "@aws-cdk/aws-eks.FargateCluster", "initializer": { "docs": { "stability": "stable" }, "locationInModule": { "filename": "lib/fargate-cluster.ts", "line": 31 }, "parameters": [ { "name": "scope", "type": { "fqn": "constructs.Construct" } }, { "name": "id", "type": { "primitive": "string" } }, { "name": "props", "type": { "fqn": "@aws-cdk/aws-eks.FargateClusterProps" } } ] }, "kind": "class", "locationInModule": { "filename": "lib/fargate-cluster.ts", "line": 25 }, "name": "FargateCluster", "properties": [ { "docs": { "stability": "stable", "summary": "Fargate Profile that was created with the cluster." }, "immutable": true, "locationInModule": { "filename": "lib/fargate-cluster.ts", "line": 29 }, "name": "defaultProfile", "type": { "fqn": "@aws-cdk/aws-eks.FargateProfile" } } ], "symbolId": "lib/fargate-cluster:FargateCluster" }, "@aws-cdk/aws-eks.FargateClusterProps": { "assembly": "@aws-cdk/aws-eks", "datatype": true, "docs": { "stability": "stable", "summary": "Configuration props for EKS Fargate.", "example": "const cluster = new eks.FargateCluster(this, 'MyCluster', {\n version: eks.KubernetesVersion.V1_21,\n});", "custom": { "exampleMetadata": "infused" } }, "fqn": "@aws-cdk/aws-eks.FargateClusterProps", "interfaces": [ "@aws-cdk/aws-eks.ClusterOptions" ], "kind": "interface", "locationInModule": { "filename": "lib/fargate-cluster.ts", "line": 8 }, "name": "FargateClusterProps", "properties": [ { "abstract": true, "docs": { "default": "- A profile called \"default\" with 'default' and 'kube-system'\n selectors will be created if this is left undefined.", "stability": "stable", "summary": "Fargate Profile to create along with the cluster." }, "immutable": true, "locationInModule": { "filename": "lib/fargate-cluster.ts", "line": 15 }, "name": "defaultProfile", "optional": true, "type": { "fqn": "@aws-cdk/aws-eks.FargateProfileOptions" } } ], "symbolId": "lib/fargate-cluster:FargateClusterProps" }, "@aws-cdk/aws-eks.FargateProfile": { "assembly": "@aws-cdk/aws-eks", "base": "@aws-cdk/core.Construct", "docs": { "remarks": "This declaration is done through the profile’s selectors. Each\nprofile can have up to five selectors that contain a namespace and optional\nlabels. You must define a namespace for every selector. The label field\nconsists of multiple optional key-value pairs. Pods that match a selector (by\nmatching a namespace for the selector and all of the labels specified in the\nselector) are scheduled on Fargate. If a namespace selector is defined\nwithout any labels, Amazon EKS will attempt to schedule all pods that run in\nthat namespace onto Fargate using the profile. If a to-be-scheduled pod\nmatches any of the selectors in the Fargate profile, then that pod is\nscheduled on Fargate.\n\nIf a pod matches multiple Fargate profiles, Amazon EKS picks one of the\nmatches at random. In this case, you can specify which profile a pod should\nuse by adding the following Kubernetes label to the pod specification:\neks.amazonaws.com/fargate-profile: profile_name. However, the pod must still\nmatch a selector in that profile in order to be scheduled onto Fargate.", "stability": "stable", "summary": "Fargate profiles allows an administrator to declare which pods run on Fargate.", "example": "declare const cluster: eks.Cluster;\nnew eks.FargateProfile(this, 'MyProfile', {\n cluster,\n selectors: [ { namespace: 'default' } ],\n});", "custom": { "exampleMetadata": "infused" } }, "fqn": "@aws-cdk/aws-eks.FargateProfile", "initializer": { "docs": { "stability": "stable" }, "locationInModule": { "filename": "lib/fargate-profile.ts", "line": 147 }, "parameters": [ { "name": "scope", "type": { "fqn": "constructs.Construct" } }, { "name": "id", "type": { "primitive": "string" } }, { "name": "props", "type": { "fqn": "@aws-cdk/aws-eks.FargateProfileProps" } } ] }, "interfaces": [ "@aws-cdk/core.ITaggable" ], "kind": "class", "locationInModule": { "filename": "lib/fargate-profile.ts", "line": 118 }, "name": "FargateProfile", "properties": [ { "docs": { "custom": { "attribute": "true" }, "stability": "stable", "summary": "The full Amazon Resource Name (ARN) of the Fargate profile." }, "immutable": true, "locationInModule": { "filename": "lib/fargate-profile.ts", "line": 125 }, "name": "fargateProfileArn", "type": { "primitive": "string" } }, { "docs": { "custom": { "attribute": "true" }, "stability": "stable", "summary": "The name of the Fargate profile." }, "immutable": true, "locationInModule": { "filename": "lib/fargate-profile.ts", "line": 132 }, "name": "fargateProfileName", "type": { "primitive": "string" } }, { "docs": { "remarks": "The pod execution role allows Fargate infrastructure to\nregister with your cluster as a node, and it provides read access to Amazon\nECR image repositories.", "stability": "stable", "summary": "The pod execution role to use for pods that match the selectors in the Fargate profile." }, "immutable": true, "locationInModule": { "filename": "lib/fargate-profile.ts", "line": 145 }, "name": "podExecutionRole", "type": { "fqn": "@aws-cdk/aws-iam.IRole" } }, { "docs": { "stability": "stable", "summary": "Resource tags." }, "immutable": true, "locationInModule": { "filename": "lib/fargate-profile.ts", "line": 137 }, "name": "tags", "overrides": "@aws-cdk/core.ITaggable", "type": { "fqn": "@aws-cdk/core.TagManager" } } ], "symbolId": "lib/fargate-profile:FargateProfile" }, "@aws-cdk/aws-eks.FargateProfileOptions": { "assembly": "@aws-cdk/aws-eks", "datatype": true, "docs": { "stability": "stable", "summary": "Options for defining EKS Fargate Profiles.", "example": "declare const cluster: eks.Cluster;\ncluster.addFargateProfile('MyProfile', {\n selectors: [ { namespace: 'default' } ],\n});", "custom": { "exampleMetadata": "infused" } }, "fqn": "@aws-cdk/aws-eks.FargateProfileOptions", "kind": "interface", "locationInModule": { "filename": "lib/fargate-profile.ts", "line": 16 }, "name": "FargateProfileOptions", "properties": [ { "abstract": true, "docs": { "remarks": "Each selector\nmust have an associated namespace. Optionally, you can also specify labels\nfor a namespace.\n\nAt least one selector is required and you may specify up to five selectors.", "stability": "stable", "summary": "The selectors to match for pods to use this Fargate profile." }, "immutable": true, "locationInModule": { "filename": "lib/fargate-profile.ts", "line": 41 }, "name": "selectors", "type": { "collection": { "elementtype": { "fqn": "@aws-cdk/aws-eks.Selector" }, "kind": "array" } } }, { "abstract": true, "docs": { "default": "- generated", "stability": "stable", "summary": "The name of the Fargate profile." }, "immutable": true, "locationInModule": { "filename": "lib/fargate-profile.ts", "line": 21 }, "name": "fargateProfileName", "optional": true, "type": { "primitive": "string" } }, { "abstract": true, "docs": { "default": "- a role will be automatically created", "remarks": "The pod execution role allows Fargate infrastructure to\nregister with your cluster as a node, and it provides read access to Amazon\nECR image repositories.", "see": "https://docs.aws.amazon.com/eks/latest/userguide/pod-execution-role.html", "stability": "stable", "summary": "The pod execution role to use for pods that match the selectors in the Fargate profile." }, "immutable": true, "locationInModule": { "filename": "lib/fargate-profile.ts", "line": 32 }, "name": "podExecutionRole", "optional": true, "type": { "fqn": "@aws-cdk/aws-iam.IRole" } }, { "abstract": true, "docs": { "default": "- all private subnets of the VPC are selected.", "remarks": "At this time, pods running\non Fargate are not assigned public IP addresses, so only private subnets\n(with no direct route to an Internet Gateway) are allowed.\n\nYou must specify the VPC to customize the subnet selection", "stability": "stable", "summary": "Select which subnets to launch your pods into." }, "immutable": true, "locationInModule": { "filename": "lib/fargate-profile.ts", "line": 62 }, "name": "subnetSelection", "optional": true, "type": { "fqn": "@aws-cdk/aws-ec2.SubnetSelection" } }, { "abstract": true, "docs": { "default": "- all private subnets used by the EKS cluster", "remarks": "By default, all private subnets are selected. You can customize this using\n`subnetSelection`.", "stability": "stable", "summary": "The VPC from which to select subnets to launch your pods into." }, "immutable": true, "locationInModule": { "filename": "lib/fargate-profile.ts", "line": 51 }, "name": "vpc", "optional": true, "type": { "fqn": "@aws-cdk/aws-ec2.IVpc" } } ], "symbolId": "lib/fargate-profile:FargateProfileOptions" }, "@aws-cdk/aws-eks.FargateProfileProps": { "assembly": "@aws-cdk/aws-eks", "datatype": true, "docs": { "stability": "stable", "summary": "Configuration props for EKS Fargate Profiles.", "example": "declare const cluster: eks.Cluster;\nnew eks.FargateProfile(this, 'MyProfile', {\n cluster,\n selectors: [ { namespace: 'default' } ],\n});", "custom": { "exampleMetadata": "infused" } }, "fqn": "@aws-cdk/aws-eks.FargateProfileProps", "interfaces": [ "@aws-cdk/aws-eks.FargateProfileOptions" ], "kind": "interface", "locationInModule": { "filename": "lib/fargate-profile.ts", "line": 68 }, "name": "FargateProfileProps", "properties": [ { "abstract": true, "docs": { "remarks": "[disable-awslint:ref-via-interface]", "stability": "stable", "summary": "The EKS cluster to apply the Fargate profile to." }, "immutable": true, "locationInModule": { "filename": "lib/fargate-profile.ts", "line": 73 }, "name": "cluster", "type": { "fqn": "@aws-cdk/aws-eks.Cluster" } } ], "symbolId": "lib/fargate-profile:FargateProfileProps" }, "@aws-cdk/aws-eks.HelmChart": { "assembly": "@aws-cdk/aws-eks", "base": "@aws-cdk/core.Construct", "docs": { "remarks": "Applies/deletes the resources using `kubectl` in sync with the resource.", "stability": "stable", "summary": "Represents a helm chart within the Kubernetes system.", "example": "declare const cluster: eks.Cluster;\n// option 1: use a construct\nnew eks.HelmChart(this, 'NginxIngress', {\n cluster,\n chart: 'nginx-ingress',\n repository: 'https://helm.nginx.com/stable',\n namespace: 'kube-system',\n});\n\n// or, option2: use `addHelmChart`\ncluster.addHelmChart('NginxIngress', {\n chart: 'nginx-ingress',\n repository: 'https://helm.nginx.com/stable',\n namespace: 'kube-system',\n});", "custom": { "exampleMetadata": "infused" } }, "fqn": "@aws-cdk/aws-eks.HelmChart", "initializer": { "docs": { "stability": "stable" }, "locationInModule": { "filename": "lib/helm-chart.ts", "line": 105 }, "parameters": [ { "name": "scope", "type": { "fqn": "constructs.Construct" } }, { "name": "id", "type": { "primitive": "string" } }, { "name": "props", "type": { "fqn": "@aws-cdk/aws-eks.HelmChartProps" } } ] }, "kind": "class", "locationInModule": { "filename": "lib/helm-chart.ts", "line": 99 }, "name": "HelmChart", "properties": [ { "const": true, "docs": { "stability": "stable", "summary": "The CloudFormation resource type." }, "immutable": true, "locationInModule": { "filename": "lib/helm-chart.ts", "line": 103 }, "name": "RESOURCE_TYPE", "static": true, "type": { "primitive": "string" } } ], "symbolId": "lib/helm-chart:HelmChart" }, "@aws-cdk/aws-eks.HelmChartOptions": { "assembly": "@aws-cdk/aws-eks", "datatype": true, "docs": { "stability": "stable", "summary": "Helm Chart options.", "example": "import * as s3Assets from '@aws-cdk/aws-s3-assets';\n\ndeclare const cluster: eks.Cluster;\nconst chartAsset = new s3Assets.Asset(this, 'ChartAsset', {\n path: '/path/to/asset'\n});\n\ncluster.addHelmChart('test-chart', {\n chartAsset: chartAsset,\n});", "custom": { "exampleMetadata": "infused" } }, "fqn": "@aws-cdk/aws-eks.HelmChartOptions", "kind": "interface", "locationInModule": { "filename": "lib/helm-chart.ts", "line": 15 }, "name": "HelmChartOptions", "properties": [ { "abstract": true, "docs": { "default": "- No chart name. Implies `chartAsset` is used.", "remarks": "Either this or `chartAsset` must be specified.", "stability": "stable", "summary": "The name of the chart." }, "immutable": true, "locationInModule": { "filename": "lib/helm-chart.ts", "line": 22 }, "name": "chart", "optional": true, "type": { "primitive": "string" } }, { "abstract": true, "docs": { "default": "- No chart asset. Implies `chart` is used.", "remarks": "Either this or `chart` must be specified.", "stability": "stable", "summary": "The chart in the form of an asset." }, "immutable": true, "locationInModule": { "filename": "lib/helm-chart.ts", "line": 48 }, "name": "chartAsset", "optional": true, "type": { "fqn": "@aws-cdk/aws-s3-assets.Asset" } }, { "abstract": true, "docs": { "default": "true", "stability": "stable", "summary": "create namespace if not exist." }, "immutable": true, "locationInModule": { "filename": "lib/helm-chart.ts", "line": 79 }, "name": "createNamespace", "optional": true, "type": { "primitive": "boolean" } }, { "abstract": true, "docs": { "default": "default", "stability": "stable", "summary": "The Kubernetes namespace scope of the requests." }, "immutable": true, "locationInModule": { "filename": "lib/helm-chart.ts", "line": 54 }, "name": "namespace", "optional": true, "type": { "primitive": "string" } }, { "abstract": true, "docs": { "default": "- If no release name is given, it will use the last 53 characters of the node's unique id.", "stability": "stable", "summary": "The name of the release." }, "immutable": true, "locationInModule": { "filename": "lib/helm-chart.ts", "line": 28 }, "name": "release", "optional": true, "type": { "primitive": "string" } }, { "abstract": true, "docs": { "default": "- No repository will be used, which means that the chart needs to be an absolute URL.", "remarks": "For example: https://kubernetes-charts.storage.googleapis.com/", "stability": "stable", "summary": "The repository which contains the chart." }, "immutable": true, "locationInModule": { "filename": "lib/helm-chart.ts", "line": 40 }, "name": "repository", "optional": true, "type": { "primitive": "string" } }, { "abstract": true, "docs": { "default": "Duration.minutes(5)", "remarks": "Maximum 15 minutes.", "stability": "stable", "summary": "Amount of time to wait for any individual Kubernetes operation." }, "immutable": true, "locationInModule": { "filename": "lib/helm-chart.ts", "line": 73 }, "name": "timeout", "optional": true, "type": { "fqn": "@aws-cdk/core.Duration" } }, { "abstract": true, "docs": { "default": "- No values are provided to the chart.", "stability": "stable", "summary": "The values to be used by the chart." }, "immutable": true, "locationInModule": { "filename": "lib/helm-chart.ts", "line": 60 }, "name": "values", "optional": true, "type": { "collection": { "elementtype": { "primitive": "any" }, "kind": "map" } } }, { "abstract": true, "docs": { "default": "- If this is not specified, the latest version is installed", "stability": "stable", "summary": "The chart version to install." }, "immutable": true, "locationInModule": { "filename": "lib/helm-chart.ts", "line": 34 }, "name": "version", "optional": true, "type": { "primitive": "string" } }, { "abstract": true, "docs": { "default": "- Helm will not wait before marking release as successful", "stability": "stable", "summary": "Whether or not Helm should wait until all Pods, PVCs, Services, and minimum number of Pods of a Deployment, StatefulSet, or ReplicaSet are in a ready state before marking the release as successful." }, "immutable": true, "locationInModule": { "filename": "lib/helm-chart.ts", "line": 67 }, "name": "wait", "optional": true, "type": { "primitive": "boolean" } } ], "symbolId": "lib/helm-chart:HelmChartOptions" }, "@aws-cdk/aws-eks.HelmChartProps": { "assembly": "@aws-cdk/aws-eks", "datatype": true, "docs": { "stability": "stable", "summary": "Helm Chart properties.", "example": "declare const cluster: eks.Cluster;\n// option 1: use a construct\nnew eks.HelmChart(this, 'NginxIngress', {\n cluster,\n chart: 'nginx-ingress',\n repository: 'https://helm.nginx.com/stable',\n namespace: 'kube-system',\n});\n\n// or, option2: use `addHelmChart`\ncluster.addHelmChart('NginxIngress', {\n chart: 'nginx-ingress',\n repository: 'https://helm.nginx.com/stable',\n namespace: 'kube-system',\n});", "custom": { "exampleMetadata": "infused" } }, "fqn": "@aws-cdk/aws-eks.HelmChartProps", "interfaces": [ "@aws-cdk/aws-eks.HelmChartOptions" ], "kind": "interface", "locationInModule": { "filename": "lib/helm-chart.ts", "line": 85 }, "name": "HelmChartProps", "properties": [ { "abstract": true, "docs": { "remarks": "[disable-awslint:ref-via-interface]", "stability": "stable", "summary": "The EKS cluster to apply this configuration to." }, "immutable": true, "locationInModule": { "filename": "lib/helm-chart.ts", "line": 91 }, "name": "cluster", "type": { "fqn": "@aws-cdk/aws-eks.ICluster" } } ], "symbolId": "lib/helm-chart:HelmChartProps" }, "@aws-cdk/aws-eks.ICluster": { "assembly": "@aws-cdk/aws-eks", "docs": { "stability": "stable", "summary": "An EKS cluster." }, "fqn": "@aws-cdk/aws-eks.ICluster", "interfaces": [ "@aws-cdk/core.IResource", "@aws-cdk/aws-ec2.IConnectable" ], "kind": "interface", "locationInModule": { "filename": "lib/cluster.ts", "line": 39 }, "methods": [ { "abstract": true, "docs": { "returns": "a `KubernetesManifest` construct representing the chart.", "stability": "stable", "summary": "Defines a CDK8s chart in this cluster." }, "locationInModule": { "filename": "lib/cluster.ts", "line": 210 }, "name": "addCdk8sChart", "parameters": [ { "docs": { "summary": "logical id of this chart." }, "name": "id", "type": { "primitive": "string" } }, { "docs": { "summary": "the cdk8s chart." }, "name": "chart", "type": { "fqn": "constructs.Construct" } }, { "name": "options", "optional": true, "type": { "fqn": "@aws-cdk/aws-eks.KubernetesManifestOptions" } } ], "returns": { "type": { "fqn": "@aws-cdk/aws-eks.KubernetesManifest" } } }, { "abstract": true, "docs": { "returns": "a `HelmChart` construct", "stability": "stable", "summary": "Defines a Helm chart in this cluster." }, "locationInModule": { "filename": "lib/cluster.ts", "line": 201 }, "name": "addHelmChart", "parameters": [ { "docs": { "summary": "logical id of this chart." }, "name": "id", "type": { "primitive": "string" } }, { "docs": { "summary": "options of this chart." }, "name": "options", "type": { "fqn": "@aws-cdk/aws-eks.HelmChartOptions" } } ], "returns": { "type": { "fqn": "@aws-cdk/aws-eks.HelmChart" } } }, { "abstract": true, "docs": { "remarks": "The manifest will be applied/deleted using kubectl as needed.", "returns": "a `KubernetesManifest` object.", "stability": "stable", "summary": "Defines a Kubernetes resource in this cluster." }, "locationInModule": { "filename": "lib/cluster.ts", "line": 192 }, "name": "addManifest", "parameters": [ { "docs": { "summary": "logical id of this manifest." }, "name": "id", "type": { "primitive": "string" } }, { "docs": { "summary": "a list of Kubernetes resource specifications." }, "name": "manifest", "type": { "collection": { "elementtype": { "primitive": "any" }, "kind": "map" } }, "variadic": true } ], "returns": { "type": { "fqn": "@aws-cdk/aws-eks.KubernetesManifest" } }, "variadic": true }, { "abstract": true, "docs": { "stability": "stable", "summary": "Creates a new service account with corresponding IAM Role (IRSA)." }, "locationInModule": { "filename": "lib/cluster.ts", "line": 181 }, "name": "addServiceAccount", "parameters": [ { "docs": { "summary": "logical id of service account." }, "name": "id", "type": { "primitive": "string" } }, { "docs": { "summary": "service account options." }, "name": "options", "optional": true, "type": { "fqn": "@aws-cdk/aws-eks.ServiceAccountOptions" } } ], "returns": { "type": { "fqn": "@aws-cdk/aws-eks.ServiceAccount" } } }, { "abstract": true, "docs": { "remarks": "The AutoScalingGroup must be running an EKS-optimized AMI containing the\n/etc/eks/bootstrap.sh script. This method will configure Security Groups,\nadd the right policies to the instance role, apply the right tags, and add\nthe required user data to the instance's launch configuration.\n\nSpot instances will be labeled `lifecycle=Ec2Spot` and tainted with `PreferNoSchedule`.\nIf kubectl is enabled, the\n[spot interrupt handler](https://github.com/awslabs/ec2-spot-labs/tree/master/ec2-spot-eks-solution/spot-termination-handler)\ndaemon will be installed on all spot instances to handle\n[EC2 Spot Instance Termination Notices](https://aws.amazon.com/blogs/aws/new-ec2-spot-instance-termination-notices/).\n\nPrefer to use `addAutoScalingGroupCapacity` if possible.", "see": "https://docs.aws.amazon.com/eks/latest/userguide/launch-workers.html", "stability": "stable", "summary": "Connect capacity in the form of an existing AutoScalingGroup to the EKS cluster." }, "locationInModule": { "filename": "lib/cluster.ts", "line": 232 }, "name": "connectAutoScalingGroupCapacity", "parameters": [ { "docs": { "summary": "[disable-awslint:ref-via-interface]." }, "name": "autoScalingGroup", "type": { "fqn": "@aws-cdk/aws-autoscaling.AutoScalingGroup" } }, { "docs": { "summary": "options for adding auto scaling groups, like customizing the bootstrap script." }, "name": "options", "type": { "fqn": "@aws-cdk/aws-eks.AutoScalingGroupOptions" } } ] } ], "name": "ICluster", "properties": [ { "abstract": true, "docs": { "custom": { "attribute": "true" }, "stability": "stable", "summary": "The unique ARN assigned to the service by AWS in the form of arn:aws:eks:." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 56 }, "name": "clusterArn", "type": { "primitive": "string" } }, { "abstract": true, "docs": { "custom": { "attribute": "true" }, "stability": "stable", "summary": "The certificate-authority-data for your cluster." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 68 }, "name": "clusterCertificateAuthorityData", "type": { "primitive": "string" } }, { "abstract": true, "docs": { "custom": { "attribute": "true" }, "stability": "stable", "summary": "Amazon Resource Name (ARN) or alias of the customer master key (CMK)." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 86 }, "name": "clusterEncryptionConfigKeyArn", "type": { "primitive": "string" } }, { "abstract": true, "docs": { "custom": { "attribute": "true" }, "stability": "stable", "summary": "The API Server endpoint URL." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 62 }, "name": "clusterEndpoint", "type": { "primitive": "string" } }, { "abstract": true, "docs": { "custom": { "attribute": "true" }, "stability": "stable", "summary": "The physical name of the Cluster." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 49 }, "name": "clusterName", "type": { "primitive": "string" } }, { "abstract": true, "docs": { "custom": { "attribute": "true" }, "stability": "stable", "summary": "The cluster security group that was created by Amazon EKS for the cluster." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 80 }, "name": "clusterSecurityGroup", "type": { "fqn": "@aws-cdk/aws-ec2.ISecurityGroup" } }, { "abstract": true, "docs": { "custom": { "attribute": "true" }, "stability": "stable", "summary": "The id of the cluster security group that was created by Amazon EKS for the cluster." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 74 }, "name": "clusterSecurityGroupId", "type": { "primitive": "string" } }, { "abstract": true, "docs": { "stability": "stable", "summary": "The Open ID Connect Provider of the cluster used to configure Service Accounts." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 91 }, "name": "openIdConnectProvider", "type": { "fqn": "@aws-cdk/aws-iam.IOpenIdConnectProvider" } }, { "abstract": true, "docs": { "remarks": "When\nthis is enabled (default), prune labels will be allocated and injected to\neach resource. These labels will then be used when issuing the `kubectl\napply` operation with the `--prune` switch.", "stability": "stable", "summary": "Indicates whether Kubernetes resources can be automatically pruned." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 173 }, "name": "prune", "type": { "primitive": "boolean" } }, { "abstract": true, "docs": { "stability": "stable", "summary": "The VPC in which this Cluster was created." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 43 }, "name": "vpc", "type": { "fqn": "@aws-cdk/aws-ec2.IVpc" } }, { "abstract": true, "docs": { "custom": { "attribute": "true" }, "default": "- No security group.", "remarks": "The Cluster Handler's Lambdas are responsible for calling AWS's EKS API.\n\nRequires `placeClusterHandlerInVpc` to be set to true.", "stability": "stable", "summary": "A security group to associate with the Cluster Handler's Lambdas." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 158 }, "name": "clusterHandlerSecurityGroup", "optional": true, "type": { "fqn": "@aws-cdk/aws-ec2.ISecurityGroup" } }, { "abstract": true, "docs": { "stability": "stable", "summary": "Custom environment variables when running `kubectl` against this cluster." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 103 }, "name": "kubectlEnvironment", "optional": true, "type": { "collection": { "elementtype": { "primitive": "string" }, "kind": "map" } } }, { "abstract": true, "docs": { "remarks": "The role should be mapped to the `system:masters` Kubernetes RBAC role.\n\nThis role is directly passed to the lambda handler that sends Kube Ctl commands to the cluster.", "stability": "stable", "summary": "An IAM role that can perform kubectl operations against this cluster." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 128 }, "name": "kubectlLambdaRole", "optional": true, "type": { "fqn": "@aws-cdk/aws-iam.IRole" } }, { "abstract": true, "docs": { "remarks": "If not defined, a default layer will be used.", "stability": "stable", "summary": "An AWS Lambda layer that includes `kubectl`, `helm` and the `aws` CLI." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 135 }, "name": "kubectlLayer", "optional": true, "type": { "fqn": "@aws-cdk/aws-lambda.ILayerVersion" } }, { "abstract": true, "docs": { "stability": "stable", "summary": "Amount of memory to allocate to the provider's lambda function." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 147 }, "name": "kubectlMemory", "optional": true, "type": { "fqn": "@aws-cdk/core.Size" } }, { "abstract": true, "docs": { "remarks": "If this is undefined, the k8s endpoint is expected to be accessible\npublicly.", "stability": "stable", "summary": "Subnets to host the `kubectl` compute resources." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 119 }, "name": "kubectlPrivateSubnets", "optional": true, "type": { "collection": { "elementtype": { "fqn": "@aws-cdk/aws-ec2.ISubnet" }, "kind": "array" } } }, { "abstract": true, "docs": { "remarks": "If not defined, a default provider will be used", "stability": "stable", "summary": "Kubectl Provider for issuing kubectl commands against it." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 142 }, "name": "kubectlProvider", "optional": true, "type": { "fqn": "@aws-cdk/aws-eks.IKubectlProvider" } }, { "abstract": true, "docs": { "remarks": "The role should be mapped to the `system:masters` Kubernetes RBAC role.", "stability": "stable", "summary": "An IAM role that can perform kubectl operations against this cluster." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 98 }, "name": "kubectlRole", "optional": true, "type": { "fqn": "@aws-cdk/aws-iam.IRole" } }, { "abstract": true, "docs": { "remarks": "If this is undefined, the k8s endpoint is expected to be accessible\npublicly.", "stability": "stable", "summary": "A security group to use for `kubectl` execution." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 111 }, "name": "kubectlSecurityGroup", "optional": true, "type": { "fqn": "@aws-cdk/aws-ec2.ISecurityGroup" } }, { "abstract": true, "docs": { "remarks": "If not defined, a default layer will be used.", "stability": "stable", "summary": "An AWS Lambda layer that includes the NPM dependency `proxy-agent`." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 165 }, "name": "onEventLayer", "optional": true, "type": { "fqn": "@aws-cdk/aws-lambda.ILayerVersion" } } ], "symbolId": "lib/cluster:ICluster" }, "@aws-cdk/aws-eks.IKubectlProvider": { "assembly": "@aws-cdk/aws-eks", "docs": { "stability": "stable", "summary": "Imported KubectlProvider that can be used in place of the default one created by CDK." }, "fqn": "@aws-cdk/aws-eks.IKubectlProvider", "interfaces": [ "@aws-cdk/core.IConstruct" ], "kind": "interface", "locationInModule": { "filename": "lib/kubectl-provider.ts", "line": 48 }, "name": "IKubectlProvider", "properties": [ { "abstract": true, "docs": { "stability": "stable", "summary": "The IAM execution role of the handler." }, "immutable": true, "locationInModule": { "filename": "lib/kubectl-provider.ts", "line": 62 }, "name": "handlerRole", "type": { "fqn": "@aws-cdk/aws-iam.IRole" } }, { "abstract": true, "docs": { "stability": "stable", "summary": "The IAM role to assume in order to perform kubectl operations against this cluster." }, "immutable": true, "locationInModule": { "filename": "lib/kubectl-provider.ts", "line": 57 }, "name": "roleArn", "type": { "primitive": "string" } }, { "abstract": true, "docs": { "stability": "stable", "summary": "The custom resource provider's service token." }, "immutable": true, "locationInModule": { "filename": "lib/kubectl-provider.ts", "line": 52 }, "name": "serviceToken", "type": { "primitive": "string" } } ], "symbolId": "lib/kubectl-provider:IKubectlProvider" }, "@aws-cdk/aws-eks.INodegroup": { "assembly": "@aws-cdk/aws-eks", "docs": { "stability": "stable", "summary": "NodeGroup interface." }, "fqn": "@aws-cdk/aws-eks.INodegroup", "interfaces": [ "@aws-cdk/core.IResource" ], "kind": "interface", "locationInModule": { "filename": "lib/managed-nodegroup.ts", "line": 11 }, "name": "INodegroup", "properties": [ { "abstract": true, "docs": { "custom": { "attribute": "true" }, "stability": "stable", "summary": "Name of the nodegroup." }, "immutable": true, "locationInModule": { "filename": "lib/managed-nodegroup.ts", "line": 16 }, "name": "nodegroupName", "type": { "primitive": "string" } } ], "symbolId": "lib/managed-nodegroup:INodegroup" }, "@aws-cdk/aws-eks.IngressLoadBalancerAddressOptions": { "assembly": "@aws-cdk/aws-eks", "datatype": true, "docs": { "stability": "stable", "summary": "Options for fetching an IngressLoadBalancerAddress.", "example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as eks from '@aws-cdk/aws-eks';\nimport * as cdk from '@aws-cdk/core';\nconst ingressLoadBalancerAddressOptions: eks.IngressLoadBalancerAddressOptions = {\n namespace: 'namespace',\n timeout: cdk.Duration.minutes(30),\n};", "custom": { "exampleMetadata": "fixture=_generated" } }, "fqn": "@aws-cdk/aws-eks.IngressLoadBalancerAddressOptions", "interfaces": [ "@aws-cdk/aws-eks.ServiceLoadBalancerAddressOptions" ], "kind": "interface", "locationInModule": { "filename": "lib/cluster.ts", "line": 1090 }, "name": "IngressLoadBalancerAddressOptions", "symbolId": "lib/cluster:IngressLoadBalancerAddressOptions" }, "@aws-cdk/aws-eks.KubectlProvider": { "assembly": "@aws-cdk/aws-eks", "base": "@aws-cdk/core.NestedStack", "docs": { "stability": "stable", "summary": "Implementation of Kubectl Lambda.", "example": "const handlerRole = iam.Role.fromRoleArn(this, 'HandlerRole', 'arn:aws:iam::123456789012:role/lambda-role');\nconst kubectlProvider = eks.KubectlProvider.fromKubectlProviderAttributes(this, 'KubectlProvider', {\n functionArn: 'arn:aws:lambda:us-east-2:123456789012:function:my-function:1',\n kubectlRoleArn: 'arn:aws:iam::123456789012:role/kubectl-role',\n handlerRole,\n});\n\nconst cluster = eks.Cluster.fromClusterAttributes(this, 'Cluster', {\n clusterName: 'cluster',\n kubectlProvider,\n});", "custom": { "exampleMetadata": "infused" } }, "fqn": "@aws-cdk/aws-eks.KubectlProvider", "initializer": { "docs": { "stability": "stable" }, "locationInModule": { "filename": "lib/kubectl-provider.ts", "line": 125 }, "parameters": [ { "name": "scope", "type": { "fqn": "constructs.Construct" } }, { "name": "id", "type": { "primitive": "string" } }, { "name": "props", "type": { "fqn": "@aws-cdk/aws-eks.KubectlProviderProps" } } ] }, "interfaces": [ "@aws-cdk/aws-eks.IKubectlProvider" ], "kind": "class", "locationInModule": { "filename": "lib/kubectl-provider.ts", "line": 68 }, "methods": [ { "docs": { "stability": "stable", "summary": "Import an existing provider." }, "locationInModule": { "filename": "lib/kubectl-provider.ts", "line": 106 }, "name": "fromKubectlProviderAttributes", "parameters": [ { "docs": { "summary": "Construct." }, "name": "scope", "type": { "fqn": "constructs.Construct" } }, { "docs": { "summary": "an id of resource." }, "name": "id", "type": { "primitive": "string" } }, { "docs": { "summary": "attributes for the provider." }, "name": "attrs", "type": { "fqn": "@aws-cdk/aws-eks.KubectlProviderAttributes" } } ], "returns": { "type": { "fqn": "@aws-cdk/aws-eks.IKubectlProvider" } }, "static": true }, { "docs": { "stability": "stable", "summary": "Take existing provider or create new based on cluster." }, "locationInModule": { "filename": "lib/kubectl-provider.ts", "line": 76 }, "name": "getOrCreate", "parameters": [ { "docs": { "summary": "Construct." }, "name": "scope", "type": { "fqn": "constructs.Construct" } }, { "docs": { "summary": "k8s cluster." }, "name": "cluster", "type": { "fqn": "@aws-cdk/aws-eks.ICluster" } } ], "returns": { "type": { "fqn": "@aws-cdk/aws-eks.IKubectlProvider" } }, "static": true } ], "name": "KubectlProvider", "properties": [ { "docs": { "stability": "stable", "summary": "The IAM execution role of the handler." }, "immutable": true, "locationInModule": { "filename": "lib/kubectl-provider.ts", "line": 123 }, "name": "handlerRole", "overrides": "@aws-cdk/aws-eks.IKubectlProvider", "type": { "fqn": "@aws-cdk/aws-iam.IRole" } }, { "docs": { "stability": "stable", "summary": "The IAM role to assume in order to perform kubectl operations against this cluster." }, "immutable": true, "locationInModule": { "filename": "lib/kubectl-provider.ts", "line": 118 }, "name": "roleArn", "overrides": "@aws-cdk/aws-eks.IKubectlProvider", "type": { "primitive": "string" } }, { "docs": { "stability": "stable", "summary": "The custom resource provider's service token." }, "immutable": true, "locationInModule": { "filename": "lib/kubectl-provider.ts", "line": 113 }, "name": "serviceToken", "overrides": "@aws-cdk/aws-eks.IKubectlProvider", "type": { "primitive": "string" } } ], "symbolId": "lib/kubectl-provider:KubectlProvider" }, "@aws-cdk/aws-eks.KubectlProviderAttributes": { "assembly": "@aws-cdk/aws-eks", "datatype": true, "docs": { "stability": "stable", "summary": "Kubectl Provider Attributes.", "example": "const handlerRole = iam.Role.fromRoleArn(this, 'HandlerRole', 'arn:aws:iam::123456789012:role/lambda-role');\nconst kubectlProvider = eks.KubectlProvider.fromKubectlProviderAttributes(this, 'KubectlProvider', {\n functionArn: 'arn:aws:lambda:us-east-2:123456789012:function:my-function:1',\n kubectlRoleArn: 'arn:aws:iam::123456789012:role/kubectl-role',\n handlerRole,\n});\n\nconst cluster = eks.Cluster.fromClusterAttributes(this, 'Cluster', {\n clusterName: 'cluster',\n kubectlProvider,\n});", "custom": { "exampleMetadata": "infused" } }, "fqn": "@aws-cdk/aws-eks.KubectlProviderAttributes", "kind": "interface", "locationInModule": { "filename": "lib/kubectl-provider.ts", "line": 28 }, "name": "KubectlProviderAttributes", "properties": [ { "abstract": true, "docs": { "stability": "stable", "summary": "The kubectl provider lambda arn." }, "immutable": true, "locationInModule": { "filename": "lib/kubectl-provider.ts", "line": 32 }, "name": "functionArn", "type": { "primitive": "string" } }, { "abstract": true, "docs": { "remarks": "This role must be able to assume kubectlRoleArn", "stability": "stable", "summary": "The IAM execution role of the handler." }, "immutable": true, "locationInModule": { "filename": "lib/kubectl-provider.ts", "line": 42 }, "name": "handlerRole", "type": { "fqn": "@aws-cdk/aws-iam.IRole" } }, { "abstract": true, "docs": { "stability": "stable", "summary": "The IAM role to assume in order to perform kubectl operations against this cluster." }, "immutable": true, "locationInModule": { "filename": "lib/kubectl-provider.ts", "line": 37 }, "name": "kubectlRoleArn", "type": { "primitive": "string" } } ], "symbolId": "lib/kubectl-provider:KubectlProviderAttributes" }, "@aws-cdk/aws-eks.KubectlProviderProps": { "assembly": "@aws-cdk/aws-eks", "datatype": true, "docs": { "stability": "stable", "summary": "Kubectl Provider Properties.", "example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as eks from '@aws-cdk/aws-eks';\n\ndeclare const cluster: eks.Cluster;\nconst kubectlProviderProps: eks.KubectlProviderProps = {\n cluster: cluster,\n};", "custom": { "exampleMetadata": "fixture=_generated" } }, "fqn": "@aws-cdk/aws-eks.KubectlProviderProps", "kind": "interface", "locationInModule": { "filename": "lib/kubectl-provider.ts", "line": 18 }, "name": "KubectlProviderProps", "properties": [ { "abstract": true, "docs": { "stability": "stable", "summary": "The cluster to control." }, "immutable": true, "locationInModule": { "filename": "lib/kubectl-provider.ts", "line": 22 }, "name": "cluster", "type": { "fqn": "@aws-cdk/aws-eks.ICluster" } } ], "symbolId": "lib/kubectl-provider:KubectlProviderProps" }, "@aws-cdk/aws-eks.KubernetesManifest": { "assembly": "@aws-cdk/aws-eks", "base": "@aws-cdk/core.Construct", "docs": { "remarks": "Alternatively, you can use `cluster.addManifest(resource[, resource, ...])`\nto define resources on this cluster.\n\nApplies/deletes the manifest using `kubectl`.", "stability": "stable", "summary": "Represents a manifest within the Kubernetes system.", "example": "declare const cluster: eks.Cluster;\nconst namespace = cluster.addManifest('my-namespace', {\n apiVersion: 'v1',\n kind: 'Namespace',\n metadata: { name: 'my-app' },\n});\n\nconst service = cluster.addManifest('my-service', {\n metadata: {\n name: 'myservice',\n namespace: 'my-app',\n },\n spec: { }, // ...\n});\n\nservice.node.addDependency(namespace); // will apply `my-namespace` before `my-service`.", "custom": { "exampleMetadata": "infused" } }, "fqn": "@aws-cdk/aws-eks.KubernetesManifest", "initializer": { "docs": { "stability": "stable" }, "locationInModule": { "filename": "lib/k8s-manifest.ts", "line": 127 }, "parameters": [ { "name": "scope", "type": { "fqn": "constructs.Construct" } }, { "name": "id", "type": { "primitive": "string" } }, { "name": "props", "type": { "fqn": "@aws-cdk/aws-eks.KubernetesManifestProps" } } ] }, "kind": "class", "locationInModule": { "filename": "lib/k8s-manifest.ts", "line": 121 }, "name": "KubernetesManifest", "properties": [ { "const": true, "docs": { "stability": "stable", "summary": "The CloudFormation reosurce type." }, "immutable": true, "locationInModule": { "filename": "lib/k8s-manifest.ts", "line": 125 }, "name": "RESOURCE_TYPE", "static": true, "type": { "primitive": "string" } } ], "symbolId": "lib/k8s-manifest:KubernetesManifest" }, "@aws-cdk/aws-eks.KubernetesManifestOptions": { "assembly": "@aws-cdk/aws-eks", "datatype": true, "docs": { "stability": "stable", "summary": "Options for `KubernetesManifest`.", "example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as eks from '@aws-cdk/aws-eks';\nconst kubernetesManifestOptions: eks.KubernetesManifestOptions = {\n ingressAlb: false,\n ingressAlbScheme: eks.AlbScheme.INTERNAL,\n prune: false,\n skipValidation: false,\n};", "custom": { "exampleMetadata": "fixture=_generated" } }, "fqn": "@aws-cdk/aws-eks.KubernetesManifestOptions", "kind": "interface", "locationInModule": { "filename": "lib/k8s-manifest.ts", "line": 16 }, "name": "KubernetesManifestOptions", "properties": [ { "abstract": true, "docs": { "default": "false", "stability": "stable", "summary": "Automatically detect `Ingress` resources in the manifest and annotate them so they are picked up by an ALB Ingress Controller." }, "immutable": true, "locationInModule": { "filename": "lib/k8s-manifest.ts", "line": 55 }, "name": "ingressAlb", "optional": true, "type": { "primitive": "boolean" } }, { "abstract": true, "docs": { "default": "AlbScheme.INTERNAL", "remarks": "Only applicable if `ingressAlb` is set to `true`.", "stability": "stable", "summary": "Specify the ALB scheme that should be applied to `Ingress` resources." }, "immutable": true, "locationInModule": { "filename": "lib/k8s-manifest.ts", "line": 63 }, "name": "ingressAlbScheme", "optional": true, "type": { "fqn": "@aws-cdk/aws-eks.AlbScheme" } }, { "abstract": true, "docs": { "default": "- based on the prune option of the cluster, which is `true` unless\notherwise specified.", "remarks": "To address this, `kubectl apply` has a `--prune` option which will\nquery the cluster for all resources with a specific label and will remove\nall the labeld resources that are not part of the applied manifest. If this\noption is disabled and a resource is removed, it will become \"orphaned\" and\nwill not be deleted from the cluster.\n\nWhen this option is enabled (default), the construct will inject a label to\nall Kubernetes resources included in this manifest which will be used to\nprune resources when the manifest changes via `kubectl apply --prune`.\n\nThe label name will be `aws.cdk.eks/prune-` where `` is the\n42-char unique address of this construct in the construct tree. Value is\nempty.", "see": "https://kubernetes.io/docs/tasks/manage-kubernetes-objects/declarative-config/#alternative-kubectl-apply-f-directory-prune-l-your-label", "stability": "stable", "summary": "When a resource is removed from a Kubernetes manifest, it no longer appears in the manifest, and there is no way to know that this resource needs to be deleted." }, "immutable": true, "locationInModule": { "filename": "lib/k8s-manifest.ts", "line": 40 }, "name": "prune", "optional": true, "type": { "primitive": "boolean" } }, { "abstract": true, "docs": { "default": "false", "stability": "stable", "summary": "A flag to signify if the manifest validation should be skipped." }, "immutable": true, "locationInModule": { "filename": "lib/k8s-manifest.ts", "line": 47 }, "name": "skipValidation", "optional": true, "type": { "primitive": "boolean" } } ], "symbolId": "lib/k8s-manifest:KubernetesManifestOptions" }, "@aws-cdk/aws-eks.KubernetesManifestProps": { "assembly": "@aws-cdk/aws-eks", "datatype": true, "docs": { "stability": "stable", "summary": "Properties for KubernetesManifest.", "example": "declare const cluster: eks.Cluster;\nconst appLabel = { app: \"hello-kubernetes\" };\n\nconst deployment = {\n apiVersion: \"apps/v1\",\n kind: \"Deployment\",\n metadata: { name: \"hello-kubernetes\" },\n spec: {\n replicas: 3,\n selector: { matchLabels: appLabel },\n template: {\n metadata: { labels: appLabel },\n spec: {\n containers: [\n {\n name: \"hello-kubernetes\",\n image: \"paulbouwer/hello-kubernetes:1.5\",\n ports: [ { containerPort: 8080 } ],\n },\n ],\n },\n },\n },\n};\n\nconst service = {\n apiVersion: \"v1\",\n kind: \"Service\",\n metadata: { name: \"hello-kubernetes\" },\n spec: {\n type: \"LoadBalancer\",\n ports: [ { port: 80, targetPort: 8080 } ],\n selector: appLabel,\n }\n};\n\n// option 1: use a construct\nnew eks.KubernetesManifest(this, 'hello-kub', {\n cluster,\n manifest: [ deployment, service ],\n});\n\n// or, option2: use `addManifest`\ncluster.addManifest('hello-kub', service, deployment);", "custom": { "exampleMetadata": "infused" } }, "fqn": "@aws-cdk/aws-eks.KubernetesManifestProps", "interfaces": [ "@aws-cdk/aws-eks.KubernetesManifestOptions" ], "kind": "interface", "locationInModule": { "filename": "lib/k8s-manifest.ts", "line": 70 }, "name": "KubernetesManifestProps", "properties": [ { "abstract": true, "docs": { "remarks": "[disable-awslint:ref-via-interface]", "stability": "stable", "summary": "The EKS cluster to apply this manifest to." }, "immutable": true, "locationInModule": { "filename": "lib/k8s-manifest.ts", "line": 76 }, "name": "cluster", "type": { "fqn": "@aws-cdk/aws-eks.ICluster" } }, { "abstract": true, "docs": { "example": "[{\n apiVersion: 'v1',\n kind: 'Pod',\n metadata: { name: 'mypod' },\n spec: {\n containers: [ { name: 'hello', image: 'paulbouwer/hello-kubernetes:1.5', ports: [ { containerPort: 8080 } ] } ]\n }\n}]", "remarks": "Consists of any number of child resources.\n\nWhen the resources are created/updated, this manifest will be applied to the\ncluster through `kubectl apply` and when the resources or the stack is\ndeleted, the resources in the manifest will be deleted through `kubectl delete`.", "stability": "stable", "summary": "The manifest to apply." }, "immutable": true, "locationInModule": { "filename": "lib/k8s-manifest.ts", "line": 99 }, "name": "manifest", "type": { "collection": { "elementtype": { "collection": { "elementtype": { "primitive": "any" }, "kind": "map" } }, "kind": "array" } } }, { "abstract": true, "docs": { "default": "false", "remarks": "If this is set, we will use `kubectl apply` instead of `kubectl create`\nwhen the resource is created. Otherwise, if there is already a resource\nin the cluster with the same name, the operation will fail.", "stability": "stable", "summary": "Overwrite any existing resources." }, "immutable": true, "locationInModule": { "filename": "lib/k8s-manifest.ts", "line": 110 }, "name": "overwrite", "optional": true, "type": { "primitive": "boolean" } } ], "symbolId": "lib/k8s-manifest:KubernetesManifestProps" }, "@aws-cdk/aws-eks.KubernetesObjectValue": { "assembly": "@aws-cdk/aws-eks", "base": "@aws-cdk/core.Construct", "docs": { "remarks": "Use this to fetch any information available by the `kubectl get` command.", "stability": "stable", "summary": "Represents a value of a specific object deployed in the cluster.", "example": "declare const cluster: eks.Cluster;\n// query the load balancer address\nconst myServiceAddress = new eks.KubernetesObjectValue(this, 'LoadBalancerAttribute', {\n cluster: cluster,\n objectType: 'service',\n objectName: 'my-service',\n jsonPath: '.status.loadBalancer.ingress[0].hostname', // https://kubernetes.io/docs/reference/kubectl/jsonpath/\n});\n\n// pass the address to a lambda function\nconst proxyFunction = new lambda.Function(this, 'ProxyFunction', {\n handler: 'index.handler',\n code: lambda.Code.fromInline('my-code'),\n runtime: lambda.Runtime.NODEJS_14_X,\n environment: {\n myServiceAddress: myServiceAddress.value,\n },\n})", "custom": { "exampleMetadata": "infused" } }, "fqn": "@aws-cdk/aws-eks.KubernetesObjectValue", "initializer": { "docs": { "stability": "stable" }, "locationInModule": { "filename": "lib/k8s-object-value.ts", "line": 66 }, "parameters": [ { "name": "scope", "type": { "fqn": "constructs.Construct" } }, { "name": "id", "type": { "primitive": "string" } }, { "name": "props", "type": { "fqn": "@aws-cdk/aws-eks.KubernetesObjectValueProps" } } ] }, "kind": "class", "locationInModule": { "filename": "lib/k8s-object-value.ts", "line": 58 }, "name": "KubernetesObjectValue", "properties": [ { "const": true, "docs": { "stability": "stable", "summary": "The CloudFormation reosurce type." }, "immutable": true, "locationInModule": { "filename": "lib/k8s-object-value.ts", "line": 62 }, "name": "RESOURCE_TYPE", "static": true, "type": { "primitive": "string" } }, { "docs": { "stability": "stable", "summary": "The value as a string token." }, "immutable": true, "locationInModule": { "filename": "lib/k8s-object-value.ts", "line": 90 }, "name": "value", "type": { "primitive": "string" } } ], "symbolId": "lib/k8s-object-value:KubernetesObjectValue" }, "@aws-cdk/aws-eks.KubernetesObjectValueProps": { "assembly": "@aws-cdk/aws-eks", "datatype": true, "docs": { "stability": "stable", "summary": "Properties for KubernetesObjectValue.", "example": "declare const cluster: eks.Cluster;\n// query the load balancer address\nconst myServiceAddress = new eks.KubernetesObjectValue(this, 'LoadBalancerAttribute', {\n cluster: cluster,\n objectType: 'service',\n objectName: 'my-service',\n jsonPath: '.status.loadBalancer.ingress[0].hostname', // https://kubernetes.io/docs/reference/kubectl/jsonpath/\n});\n\n// pass the address to a lambda function\nconst proxyFunction = new lambda.Function(this, 'ProxyFunction', {\n handler: 'index.handler',\n code: lambda.Code.fromInline('my-code'),\n runtime: lambda.Runtime.NODEJS_14_X,\n environment: {\n myServiceAddress: myServiceAddress.value,\n },\n})", "custom": { "exampleMetadata": "infused" } }, "fqn": "@aws-cdk/aws-eks.KubernetesObjectValueProps", "kind": "interface", "locationInModule": { "filename": "lib/k8s-object-value.ts", "line": 13 }, "name": "KubernetesObjectValueProps", "properties": [ { "abstract": true, "docs": { "remarks": "[disable-awslint:ref-via-interface]", "stability": "stable", "summary": "The EKS cluster to fetch attributes from." }, "immutable": true, "locationInModule": { "filename": "lib/k8s-object-value.ts", "line": 19 }, "name": "cluster", "type": { "fqn": "@aws-cdk/aws-eks.ICluster" } }, { "abstract": true, "docs": { "see": "https://kubernetes.io/docs/reference/kubectl/jsonpath/", "stability": "stable", "summary": "JSONPath to the specific value." }, "immutable": true, "locationInModule": { "filename": "lib/k8s-object-value.ts", "line": 43 }, "name": "jsonPath", "type": { "primitive": "string" } }, { "abstract": true, "docs": { "stability": "stable", "summary": "The name of the object to query." }, "immutable": true, "locationInModule": { "filename": "lib/k8s-object-value.ts", "line": 29 }, "name": "objectName", "type": { "primitive": "string" } }, { "abstract": true, "docs": { "remarks": "(e.g 'service', 'pod'...)", "stability": "stable", "summary": "The object type to query." }, "immutable": true, "locationInModule": { "filename": "lib/k8s-object-value.ts", "line": 24 }, "name": "objectType", "type": { "primitive": "string" } }, { "abstract": true, "docs": { "default": "'default'", "stability": "stable", "summary": "The namespace the object belongs to." }, "immutable": true, "locationInModule": { "filename": "lib/k8s-object-value.ts", "line": 36 }, "name": "objectNamespace", "optional": true, "type": { "primitive": "string" } }, { "abstract": true, "docs": { "default": "Duration.minutes(5)", "stability": "stable", "summary": "Timeout for waiting on a value." }, "immutable": true, "locationInModule": { "filename": "lib/k8s-object-value.ts", "line": 50 }, "name": "timeout", "optional": true, "type": { "fqn": "@aws-cdk/core.Duration" } } ], "symbolId": "lib/k8s-object-value:KubernetesObjectValueProps" }, "@aws-cdk/aws-eks.KubernetesPatch": { "assembly": "@aws-cdk/aws-eks", "base": "@aws-cdk/core.Construct", "docs": { "see": "https://kubernetes.io/docs/tasks/run-application/update-api-object-kubectl-patch/", "stability": "stable", "summary": "A CloudFormation resource which applies/restores a JSON patch into a Kubernetes resource.", "example": "declare const cluster: eks.Cluster;\nnew eks.KubernetesPatch(this, 'hello-kub-deployment-label', {\n cluster,\n resourceName: \"deployment/hello-kubernetes\",\n applyPatch: { spec: { replicas: 5 } },\n restorePatch: { spec: { replicas: 3 } },\n})", "custom": { "exampleMetadata": "infused" } }, "fqn": "@aws-cdk/aws-eks.KubernetesPatch", "initializer": { "docs": { "stability": "stable" }, "locationInModule": { "filename": "lib/k8s-patch.ts", "line": 75 }, "parameters": [ { "name": "scope", "type": { "fqn": "constructs.Construct" } }, { "name": "id", "type": { "primitive": "string" } }, { "name": "props", "type": { "fqn": "@aws-cdk/aws-eks.KubernetesPatchProps" } } ] }, "kind": "class", "locationInModule": { "filename": "lib/k8s-patch.ts", "line": 74 }, "name": "KubernetesPatch", "symbolId": "lib/k8s-patch:KubernetesPatch" }, "@aws-cdk/aws-eks.KubernetesPatchProps": { "assembly": "@aws-cdk/aws-eks", "datatype": true, "docs": { "stability": "stable", "summary": "Properties for KubernetesPatch.", "example": "declare const cluster: eks.Cluster;\nnew eks.KubernetesPatch(this, 'hello-kub-deployment-label', {\n cluster,\n resourceName: \"deployment/hello-kubernetes\",\n applyPatch: { spec: { replicas: 5 } },\n restorePatch: { spec: { replicas: 3 } },\n})", "custom": { "exampleMetadata": "infused" } }, "fqn": "@aws-cdk/aws-eks.KubernetesPatchProps", "kind": "interface", "locationInModule": { "filename": "lib/k8s-patch.ts", "line": 13 }, "name": "KubernetesPatchProps", "properties": [ { "abstract": true, "docs": { "stability": "stable", "summary": "The JSON object to pass to `kubectl patch` when the resource is created/updated." }, "immutable": true, "locationInModule": { "filename": "lib/k8s-patch.ts", "line": 23 }, "name": "applyPatch", "type": { "collection": { "elementtype": { "primitive": "any" }, "kind": "map" } } }, { "abstract": true, "docs": { "remarks": "[disable-awslint:ref-via-interface]", "stability": "stable", "summary": "The cluster to apply the patch to." }, "immutable": true, "locationInModule": { "filename": "lib/k8s-patch.ts", "line": 18 }, "name": "cluster", "type": { "fqn": "@aws-cdk/aws-eks.ICluster" } }, { "abstract": true, "docs": { "stability": "stable", "summary": "The full name of the resource to patch (e.g. `deployment/coredns`)." }, "immutable": true, "locationInModule": { "filename": "lib/k8s-patch.ts", "line": 33 }, "name": "resourceName", "type": { "primitive": "string" } }, { "abstract": true, "docs": { "stability": "stable", "summary": "The JSON object to pass to `kubectl patch` when the resource is removed." }, "immutable": true, "locationInModule": { "filename": "lib/k8s-patch.ts", "line": 28 }, "name": "restorePatch", "type": { "collection": { "elementtype": { "primitive": "any" }, "kind": "map" } } }, { "abstract": true, "docs": { "default": "PatchType.STRATEGIC", "remarks": "The default type used by `kubectl patch` is \"strategic\".", "stability": "stable", "summary": "The patch type to pass to `kubectl patch`." }, "immutable": true, "locationInModule": { "filename": "lib/k8s-patch.ts", "line": 48 }, "name": "patchType", "optional": true, "type": { "fqn": "@aws-cdk/aws-eks.PatchType" } }, { "abstract": true, "docs": { "default": "\"default\"", "stability": "stable", "summary": "The kubernetes API namespace." }, "immutable": true, "locationInModule": { "filename": "lib/k8s-patch.ts", "line": 40 }, "name": "resourceNamespace", "optional": true, "type": { "primitive": "string" } } ], "symbolId": "lib/k8s-patch:KubernetesPatchProps" }, "@aws-cdk/aws-eks.KubernetesVersion": { "assembly": "@aws-cdk/aws-eks", "docs": { "stability": "stable", "summary": "Kubernetes cluster version.", "example": "const cluster = new eks.Cluster(this, 'HelloEKS', {\n version: eks.KubernetesVersion.V1_21,\n defaultCapacityType: eks.DefaultCapacityType.EC2,\n});", "custom": { "exampleMetadata": "infused" } }, "fqn": "@aws-cdk/aws-eks.KubernetesVersion", "kind": "class", "locationInModule": { "filename": "lib/cluster.ts", "line": 772 }, "methods": [ { "docs": { "stability": "stable", "summary": "Custom cluster version." }, "locationInModule": { "filename": "lib/cluster.ts", "line": 821 }, "name": "of", "parameters": [ { "docs": { "summary": "custom version number." }, "name": "version", "type": { "primitive": "string" } } ], "returns": { "type": { "fqn": "@aws-cdk/aws-eks.KubernetesVersion" } }, "static": true } ], "name": "KubernetesVersion", "properties": [ { "const": true, "docs": { "deprecated": "Use newer version of EKS", "stability": "deprecated", "summary": "Kubernetes version 1.14." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 777 }, "name": "V1_14", "static": true, "type": { "fqn": "@aws-cdk/aws-eks.KubernetesVersion" } }, { "const": true, "docs": { "deprecated": "Use newer version of EKS", "stability": "deprecated", "summary": "Kubernetes version 1.15." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 783 }, "name": "V1_15", "static": true, "type": { "fqn": "@aws-cdk/aws-eks.KubernetesVersion" } }, { "const": true, "docs": { "deprecated": "Use newer version of EKS", "stability": "deprecated", "summary": "Kubernetes version 1.16." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 789 }, "name": "V1_16", "static": true, "type": { "fqn": "@aws-cdk/aws-eks.KubernetesVersion" } }, { "const": true, "docs": { "deprecated": "Use newer version of EKS", "stability": "deprecated", "summary": "Kubernetes version 1.17." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 795 }, "name": "V1_17", "static": true, "type": { "fqn": "@aws-cdk/aws-eks.KubernetesVersion" } }, { "const": true, "docs": { "stability": "stable", "summary": "Kubernetes version 1.18." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 800 }, "name": "V1_18", "static": true, "type": { "fqn": "@aws-cdk/aws-eks.KubernetesVersion" } }, { "const": true, "docs": { "stability": "stable", "summary": "Kubernetes version 1.19." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 805 }, "name": "V1_19", "static": true, "type": { "fqn": "@aws-cdk/aws-eks.KubernetesVersion" } }, { "const": true, "docs": { "stability": "stable", "summary": "Kubernetes version 1.20." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 810 }, "name": "V1_20", "static": true, "type": { "fqn": "@aws-cdk/aws-eks.KubernetesVersion" } }, { "const": true, "docs": { "stability": "stable", "summary": "Kubernetes version 1.21." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 815 }, "name": "V1_21", "static": true, "type": { "fqn": "@aws-cdk/aws-eks.KubernetesVersion" } }, { "docs": { "stability": "stable", "summary": "cluster version number." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 826 }, "name": "version", "type": { "primitive": "string" } } ], "symbolId": "lib/cluster:KubernetesVersion" }, "@aws-cdk/aws-eks.LaunchTemplateSpec": { "assembly": "@aws-cdk/aws-eks", "datatype": true, "docs": { "stability": "stable", "summary": "Launch template property specification.", "example": "declare const cluster: eks.Cluster;\n\nconst userData = `MIME-Version: 1.0\nContent-Type: multipart/mixed; boundary=\"==MYBOUNDARY==\"\n\n--==MYBOUNDARY==\nContent-Type: text/x-shellscript; charset=\"us-ascii\"\n\n#!/bin/bash\necho \"Running custom user data script\"\n\n--==MYBOUNDARY==--\\\\\n`;\nconst lt = new ec2.CfnLaunchTemplate(this, 'LaunchTemplate', {\n launchTemplateData: {\n instanceType: 't3.small',\n userData: Fn.base64(userData),\n },\n});\n\ncluster.addNodegroupCapacity('extra-ng', {\n launchTemplateSpec: {\n id: lt.ref,\n version: lt.attrLatestVersionNumber,\n },\n});", "custom": { "exampleMetadata": "infused" } }, "fqn": "@aws-cdk/aws-eks.LaunchTemplateSpec", "kind": "interface", "locationInModule": { "filename": "lib/managed-nodegroup.ts", "line": 84 }, "name": "LaunchTemplateSpec", "properties": [ { "abstract": true, "docs": { "stability": "stable", "summary": "The Launch template ID." }, "immutable": true, "locationInModule": { "filename": "lib/managed-nodegroup.ts", "line": 88 }, "name": "id", "type": { "primitive": "string" } }, { "abstract": true, "docs": { "default": "- the default version of the launch template", "stability": "stable", "summary": "The launch template version to be used (optional)." }, "immutable": true, "locationInModule": { "filename": "lib/managed-nodegroup.ts", "line": 94 }, "name": "version", "optional": true, "type": { "primitive": "string" } } ], "symbolId": "lib/managed-nodegroup:LaunchTemplateSpec" }, "@aws-cdk/aws-eks.MachineImageType": { "assembly": "@aws-cdk/aws-eks", "docs": { "stability": "stable", "summary": "The machine image type.", "example": "declare const cluster: eks.Cluster;\ncluster.addAutoScalingGroupCapacity('BottlerocketNodes', {\n instanceType: new ec2.InstanceType('t3.small'),\n minCapacity: 2,\n machineImageType: eks.MachineImageType.BOTTLEROCKET,\n});", "custom": { "exampleMetadata": "infused" } }, "fqn": "@aws-cdk/aws-eks.MachineImageType", "kind": "enum", "locationInModule": { "filename": "lib/cluster.ts", "line": 2278 }, "members": [ { "docs": { "stability": "stable", "summary": "Amazon EKS-optimized Linux AMI." }, "name": "AMAZON_LINUX_2" }, { "docs": { "stability": "stable", "summary": "Bottlerocket AMI." }, "name": "BOTTLEROCKET" } ], "name": "MachineImageType", "symbolId": "lib/cluster:MachineImageType" }, "@aws-cdk/aws-eks.NodeType": { "assembly": "@aws-cdk/aws-eks", "docs": { "stability": "stable", "summary": "Whether the worker nodes should support GPU or just standard instances." }, "fqn": "@aws-cdk/aws-eks.NodeType", "kind": "enum", "locationInModule": { "filename": "lib/cluster.ts", "line": 2214 }, "members": [ { "docs": { "stability": "stable", "summary": "Standard instances." }, "name": "STANDARD" }, { "docs": { "stability": "stable", "summary": "GPU instances." }, "name": "GPU" }, { "docs": { "stability": "stable", "summary": "Inferentia instances." }, "name": "INFERENTIA" } ], "name": "NodeType", "symbolId": "lib/cluster:NodeType" }, "@aws-cdk/aws-eks.Nodegroup": { "assembly": "@aws-cdk/aws-eks", "base": "@aws-cdk/core.Resource", "docs": { "stability": "stable", "summary": "The Nodegroup resource class.", "example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as ec2 from '@aws-cdk/aws-ec2';\nimport * as eks from '@aws-cdk/aws-eks';\nimport * as iam from '@aws-cdk/aws-iam';\n\ndeclare const cluster: eks.Cluster;\ndeclare const instanceType: ec2.InstanceType;\ndeclare const role: iam.Role;\ndeclare const securityGroup: ec2.SecurityGroup;\ndeclare const subnet: ec2.Subnet;\ndeclare const subnetFilter: ec2.SubnetFilter;\nconst nodegroup = new eks.Nodegroup(this, 'MyNodegroup', {\n cluster: cluster,\n\n // the properties below are optional\n amiType: eks.NodegroupAmiType.AL2_X86_64,\n capacityType: eks.CapacityType.SPOT,\n desiredSize: 123,\n diskSize: 123,\n forceUpdate: false,\n instanceType: instanceType,\n instanceTypes: [instanceType],\n labels: {\n labelsKey: 'labels',\n },\n launchTemplateSpec: {\n id: 'id',\n\n // the properties below are optional\n version: 'version',\n },\n maxSize: 123,\n minSize: 123,\n nodegroupName: 'nodegroupName',\n nodeRole: role,\n releaseVersion: 'releaseVersion',\n remoteAccess: {\n sshKeyName: 'sshKeyName',\n\n // the properties below are optional\n sourceSecurityGroups: [securityGroup],\n },\n subnets: {\n availabilityZones: ['availabilityZones'],\n onePerAz: false,\n subnetFilters: [subnetFilter],\n subnetGroupName: 'subnetGroupName',\n subnetName: 'subnetName',\n subnets: [subnet],\n subnetType: ec2.SubnetType.ISOLATED,\n },\n tags: {\n tagsKey: 'tags',\n },\n taints: [{\n effect: eks.TaintEffect.NO_SCHEDULE,\n key: 'key',\n value: 'value',\n }],\n});", "custom": { "exampleMetadata": "fixture=_generated" } }, "fqn": "@aws-cdk/aws-eks.Nodegroup", "initializer": { "docs": { "stability": "stable" }, "locationInModule": { "filename": "lib/managed-nodegroup.ts", "line": 321 }, "parameters": [ { "name": "scope", "type": { "fqn": "constructs.Construct" } }, { "name": "id", "type": { "primitive": "string" } }, { "name": "props", "type": { "fqn": "@aws-cdk/aws-eks.NodegroupProps" } } ] }, "interfaces": [ "@aws-cdk/aws-eks.INodegroup" ], "kind": "class", "locationInModule": { "filename": "lib/managed-nodegroup.ts", "line": 284 }, "methods": [ { "docs": { "stability": "stable", "summary": "Import the Nodegroup from attributes." }, "locationInModule": { "filename": "lib/managed-nodegroup.ts", "line": 288 }, "name": "fromNodegroupName", "parameters": [ { "name": "scope", "type": { "fqn": "constructs.Construct" } }, { "name": "id", "type": { "primitive": "string" } }, { "name": "nodegroupName", "type": { "primitive": "string" } } ], "returns": { "type": { "fqn": "@aws-cdk/aws-eks.INodegroup" } }, "static": true } ], "name": "Nodegroup", "properties": [ { "docs": { "custom": { "attribute": "ClusterName" }, "stability": "stable", "summary": "the Amazon EKS cluster resource." }, "immutable": true, "locationInModule": { "filename": "lib/managed-nodegroup.ts", "line": 311 }, "name": "cluster", "type": { "fqn": "@aws-cdk/aws-eks.ICluster" } }, { "docs": { "custom": { "attribute": "true" }, "stability": "stable", "summary": "ARN of the nodegroup." }, "immutable": true, "locationInModule": { "filename": "lib/managed-nodegroup.ts", "line": 299 }, "name": "nodegroupArn", "type": { "primitive": "string" } }, { "docs": { "custom": { "attribute": "true" }, "stability": "stable", "summary": "Nodegroup name." }, "immutable": true, "locationInModule": { "filename": "lib/managed-nodegroup.ts", "line": 305 }, "name": "nodegroupName", "overrides": "@aws-cdk/aws-eks.INodegroup", "type": { "primitive": "string" } }, { "docs": { "stability": "stable", "summary": "IAM role of the instance profile for the nodegroup." }, "immutable": true, "locationInModule": { "filename": "lib/managed-nodegroup.ts", "line": 315 }, "name": "role", "type": { "fqn": "@aws-cdk/aws-iam.IRole" } } ], "symbolId": "lib/managed-nodegroup:Nodegroup" }, "@aws-cdk/aws-eks.NodegroupAmiType": { "assembly": "@aws-cdk/aws-eks", "docs": { "remarks": "GPU instance types should use the `AL2_x86_64_GPU` AMI type, which uses the\nAmazon EKS-optimized Linux AMI with GPU support. Non-GPU instances should use the `AL2_x86_64` AMI type, which\nuses the Amazon EKS-optimized Linux AMI.", "stability": "stable", "summary": "The AMI type for your node group.", "example": "const cluster = new eks.Cluster(this, 'HelloEKS', {\n version: eks.KubernetesVersion.V1_21,\n defaultCapacity: 0,\n});\n\ncluster.addNodegroupCapacity('custom-node-group', {\n instanceTypes: [new ec2.InstanceType('m5.large')],\n minSize: 4,\n diskSize: 100,\n amiType: eks.NodegroupAmiType.AL2_X86_64_GPU,\n});", "custom": { "exampleMetadata": "infused" } }, "fqn": "@aws-cdk/aws-eks.NodegroupAmiType", "kind": "enum", "locationInModule": { "filename": "lib/managed-nodegroup.ts", "line": 24 }, "members": [ { "docs": { "stability": "stable", "summary": "Amazon Linux 2 (x86-64)." }, "name": "AL2_X86_64" }, { "docs": { "stability": "stable", "summary": "Amazon Linux 2 with GPU support." }, "name": "AL2_X86_64_GPU" }, { "docs": { "stability": "stable", "summary": "Amazon Linux 2 (ARM-64)." }, "name": "AL2_ARM_64" }, { "docs": { "stability": "stable", "summary": "Bottlerocket Linux(ARM-64)." }, "name": "BOTTLEROCKET_ARM_64" }, { "docs": { "stability": "stable", "summary": "Bottlerocket(x86-64)." }, "name": "BOTTLEROCKET_X86_64" } ], "name": "NodegroupAmiType", "symbolId": "lib/managed-nodegroup:NodegroupAmiType" }, "@aws-cdk/aws-eks.NodegroupOptions": { "assembly": "@aws-cdk/aws-eks", "datatype": true, "docs": { "stability": "stable", "summary": "The Nodegroup Options for addNodeGroup() method.", "example": "declare const cluster: eks.Cluster;\ncluster.addNodegroupCapacity('extra-ng-spot', {\n instanceTypes: [\n new ec2.InstanceType('c5.large'),\n new ec2.InstanceType('c5a.large'),\n new ec2.InstanceType('c5d.large'),\n ],\n minSize: 3,\n capacityType: eks.CapacityType.SPOT,\n});", "custom": { "exampleMetadata": "infused" } }, "fqn": "@aws-cdk/aws-eks.NodegroupOptions", "kind": "interface", "locationInModule": { "filename": "lib/managed-nodegroup.ts", "line": 142 }, "name": "NodegroupOptions", "properties": [ { "abstract": true, "docs": { "default": "- auto-determined from the instanceTypes property when launchTemplateSpec property is not specified", "remarks": "If you explicitly specify the launchTemplate with custom AMI, do not specify this property, or\nthe node group deployment will fail. In other cases, you will need to specify correct amiType for the nodegroup.", "stability": "stable", "summary": "The AMI type for your node group." }, "immutable": true, "locationInModule": { "filename": "lib/managed-nodegroup.ts", "line": 164 }, "name": "amiType", "optional": true, "type": { "fqn": "@aws-cdk/aws-eks.NodegroupAmiType" } }, { "abstract": true, "docs": { "default": "- ON_DEMAND", "stability": "stable", "summary": "The capacity type of the nodegroup." }, "immutable": true, "locationInModule": { "filename": "lib/managed-nodegroup.ts", "line": 268 }, "name": "capacityType", "optional": true, "type": { "fqn": "@aws-cdk/aws-eks.CapacityType" } }, { "abstract": true, "docs": { "default": "2", "remarks": "If not specified,\nthe nodewgroup will initially create `minSize` instances.", "stability": "stable", "summary": "The current number of worker nodes that the managed node group should maintain." }, "immutable": true, "locationInModule": { "filename": "lib/managed-nodegroup.ts", "line": 177 }, "name": "desiredSize", "optional": true, "type": { "primitive": "number" } }, { "abstract": true, "docs": { "default": "20", "stability": "stable", "summary": "The root device disk size (in GiB) for your node group instances." }, "immutable": true, "locationInModule": { "filename": "lib/managed-nodegroup.ts", "line": 170 }, "name": "diskSize", "optional": true, "type": { "primitive": "number" } }, { "abstract": true, "docs": { "default": "true", "remarks": "If an update fails because pods could not be drained, you can force the update after it fails to terminate the old\nnode whether or not any pods are\nrunning on the node.", "stability": "stable", "summary": "Force the update if the existing node group's pods are unable to be drained due to a pod disruption budget issue." }, "immutable": true, "locationInModule": { "filename": "lib/managed-nodegroup.ts", "line": 198 }, "name": "forceUpdate", "optional": true, "type": { "primitive": "boolean" } }, { "abstract": true, "docs": { "default": "t3.medium", "deprecated": "Use `instanceTypes` instead.", "remarks": "Currently, you can specify a single instance type for a node group.\nThe default value for this parameter is `t3.medium`. If you choose a GPU instance type, be sure to specify the\n`AL2_x86_64_GPU` with the amiType parameter.", "stability": "deprecated", "summary": "The instance type to use for your node group." }, "immutable": true, "locationInModule": { "filename": "lib/managed-nodegroup.ts", "line": 207 }, "name": "instanceType", "optional": true, "type": { "fqn": "@aws-cdk/aws-ec2.InstanceType" } }, { "abstract": true, "docs": { "default": "t3.medium will be used according to the cloudformation document.", "see": "- https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-nodegroup.html#cfn-eks-nodegroup-instancetypes", "stability": "stable", "summary": "The instance types to use for your node group." }, "immutable": true, "locationInModule": { "filename": "lib/managed-nodegroup.ts", "line": 213 }, "name": "instanceTypes", "optional": true, "type": { "collection": { "elementtype": { "fqn": "@aws-cdk/aws-ec2.InstanceType" }, "kind": "array" } } }, { "abstract": true, "docs": { "default": "- None", "stability": "stable", "summary": "The Kubernetes labels to be applied to the nodes in the node group when they are created." }, "immutable": true, "locationInModule": { "filename": "lib/managed-nodegroup.ts", "line": 219 }, "name": "labels", "optional": true, "type": { "collection": { "elementtype": { "primitive": "string" }, "kind": "map" } } }, { "abstract": true, "docs": { "default": "- no launch template", "see": "- https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html", "stability": "stable", "summary": "Launch template specification used for the nodegroup." }, "immutable": true, "locationInModule": { "filename": "lib/managed-nodegroup.ts", "line": 262 }, "name": "launchTemplateSpec", "optional": true, "type": { "fqn": "@aws-cdk/aws-eks.LaunchTemplateSpec" } }, { "abstract": true, "docs": { "default": "- desiredSize", "remarks": "Managed node groups can support up to 100 nodes by default.", "stability": "stable", "summary": "The maximum number of worker nodes that the managed node group can scale out to." }, "immutable": true, "locationInModule": { "filename": "lib/managed-nodegroup.ts", "line": 183 }, "name": "maxSize", "optional": true, "type": { "primitive": "number" } }, { "abstract": true, "docs": { "default": "1", "remarks": "This number must be greater than or equal to zero.", "stability": "stable", "summary": "The minimum number of worker nodes that the managed node group can scale in to." }, "immutable": true, "locationInModule": { "filename": "lib/managed-nodegroup.ts", "line": 189 }, "name": "minSize", "optional": true, "type": { "primitive": "number" } }, { "abstract": true, "docs": { "default": "- resource ID", "stability": "stable", "summary": "Name of the Nodegroup." }, "immutable": true, "locationInModule": { "filename": "lib/managed-nodegroup.ts", "line": 148 }, "name": "nodegroupName", "optional": true, "type": { "primitive": "string" } }, { "abstract": true, "docs": { "default": "- None. Auto-generated if not specified.", "remarks": "The Amazon EKS worker node kubelet daemon\nmakes calls to AWS APIs on your behalf. Worker nodes receive permissions for these API calls through\nan IAM instance profile and associated policies. Before you can launch worker nodes and register them\ninto a cluster, you must create an IAM role for those worker nodes to use when they are launched.", "stability": "stable", "summary": "The IAM role to associate with your node group." }, "immutable": true, "locationInModule": { "filename": "lib/managed-nodegroup.ts", "line": 234 }, "name": "nodeRole", "optional": true, "type": { "fqn": "@aws-cdk/aws-iam.IRole" } }, { "abstract": true, "docs": { "default": "- The latest available AMI version for the node group's current Kubernetes version is used.", "stability": "stable", "summary": "The AMI version of the Amazon EKS-optimized AMI to use with your node group (for example, `1.14.7-YYYYMMDD`)." }, "immutable": true, "locationInModule": { "filename": "lib/managed-nodegroup.ts", "line": 240 }, "name": "releaseVersion", "optional": true, "type": { "primitive": "string" } }, { "abstract": true, "docs": { "default": "- disabled", "remarks": "Disabled by default, however, if you\nspecify an Amazon EC2 SSH key but do not specify a source security group when you create a managed node group,\nthen port 22 on the worker nodes is opened to the internet (0.0.0.0/0)", "stability": "stable", "summary": "The remote access (SSH) configuration to use with your node group." }, "immutable": true, "locationInModule": { "filename": "lib/managed-nodegroup.ts", "line": 248 }, "name": "remoteAccess", "optional": true, "type": { "fqn": "@aws-cdk/aws-eks.NodegroupRemoteAccess" } }, { "abstract": true, "docs": { "default": "- private subnets", "remarks": "By specifying the\nSubnetSelection, the selected subnets will automatically apply required tags i.e.\n`kubernetes.io/cluster/CLUSTER_NAME` with a value of `shared`, where `CLUSTER_NAME` is replaced with\nthe name of your cluster.", "stability": "stable", "summary": "The subnets to use for the Auto Scaling group that is created for your node group." }, "immutable": true, "locationInModule": { "filename": "lib/managed-nodegroup.ts", "line": 157 }, "name": "subnets", "optional": true, "type": { "fqn": "@aws-cdk/aws-ec2.SubnetSelection" } }, { "abstract": true, "docs": { "default": "- None", "remarks": "Each tag consists of\na key and an optional value, both of which you define. Node group tags do not propagate to any other resources\nassociated with the node group, such as the Amazon EC2 instances or subnets.", "stability": "stable", "summary": "The metadata to apply to the node group to assist with categorization and organization." }, "immutable": true, "locationInModule": { "filename": "lib/managed-nodegroup.ts", "line": 256 }, "name": "tags", "optional": true, "type": { "collection": { "elementtype": { "primitive": "string" }, "kind": "map" } } }, { "abstract": true, "docs": { "default": "- None", "stability": "stable", "summary": "The Kubernetes taints to be applied to the nodes in the node group when they are created." }, "immutable": true, "locationInModule": { "filename": "lib/managed-nodegroup.ts", "line": 225 }, "name": "taints", "optional": true, "type": { "collection": { "elementtype": { "fqn": "@aws-cdk/aws-eks.TaintSpec" }, "kind": "array" } } } ], "symbolId": "lib/managed-nodegroup:NodegroupOptions" }, "@aws-cdk/aws-eks.NodegroupProps": { "assembly": "@aws-cdk/aws-eks", "datatype": true, "docs": { "stability": "stable", "summary": "NodeGroup properties interface.", "example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as ec2 from '@aws-cdk/aws-ec2';\nimport * as eks from '@aws-cdk/aws-eks';\nimport * as iam from '@aws-cdk/aws-iam';\n\ndeclare const cluster: eks.Cluster;\ndeclare const instanceType: ec2.InstanceType;\ndeclare const role: iam.Role;\ndeclare const securityGroup: ec2.SecurityGroup;\ndeclare const subnet: ec2.Subnet;\ndeclare const subnetFilter: ec2.SubnetFilter;\nconst nodegroupProps: eks.NodegroupProps = {\n cluster: cluster,\n\n // the properties below are optional\n amiType: eks.NodegroupAmiType.AL2_X86_64,\n capacityType: eks.CapacityType.SPOT,\n desiredSize: 123,\n diskSize: 123,\n forceUpdate: false,\n instanceType: instanceType,\n instanceTypes: [instanceType],\n labels: {\n labelsKey: 'labels',\n },\n launchTemplateSpec: {\n id: 'id',\n\n // the properties below are optional\n version: 'version',\n },\n maxSize: 123,\n minSize: 123,\n nodegroupName: 'nodegroupName',\n nodeRole: role,\n releaseVersion: 'releaseVersion',\n remoteAccess: {\n sshKeyName: 'sshKeyName',\n\n // the properties below are optional\n sourceSecurityGroups: [securityGroup],\n },\n subnets: {\n availabilityZones: ['availabilityZones'],\n onePerAz: false,\n subnetFilters: [subnetFilter],\n subnetGroupName: 'subnetGroupName',\n subnetName: 'subnetName',\n subnets: [subnet],\n subnetType: ec2.SubnetType.ISOLATED,\n },\n tags: {\n tagsKey: 'tags',\n },\n taints: [{\n effect: eks.TaintEffect.NO_SCHEDULE,\n key: 'key',\n value: 'value',\n }],\n};", "custom": { "exampleMetadata": "fixture=_generated" } }, "fqn": "@aws-cdk/aws-eks.NodegroupProps", "interfaces": [ "@aws-cdk/aws-eks.NodegroupOptions" ], "kind": "interface", "locationInModule": { "filename": "lib/managed-nodegroup.ts", "line": 274 }, "name": "NodegroupProps", "properties": [ { "abstract": true, "docs": { "stability": "stable", "summary": "Cluster resource." }, "immutable": true, "locationInModule": { "filename": "lib/managed-nodegroup.ts", "line": 278 }, "name": "cluster", "type": { "fqn": "@aws-cdk/aws-eks.ICluster" } } ], "symbolId": "lib/managed-nodegroup:NodegroupProps" }, "@aws-cdk/aws-eks.NodegroupRemoteAccess": { "assembly": "@aws-cdk/aws-eks", "datatype": true, "docs": { "see": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-eks-nodegroup-remoteaccess.html", "stability": "stable", "summary": "The remote access (SSH) configuration to use with your node group.", "example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as ec2 from '@aws-cdk/aws-ec2';\nimport * as eks from '@aws-cdk/aws-eks';\n\ndeclare const securityGroup: ec2.SecurityGroup;\nconst nodegroupRemoteAccess: eks.NodegroupRemoteAccess = {\n sshKeyName: 'sshKeyName',\n\n // the properties below are optional\n sourceSecurityGroups: [securityGroup],\n};", "custom": { "exampleMetadata": "fixture=_generated" } }, "fqn": "@aws-cdk/aws-eks.NodegroupRemoteAccess", "kind": "interface", "locationInModule": { "filename": "lib/managed-nodegroup.ts", "line": 66 }, "name": "NodegroupRemoteAccess", "properties": [ { "abstract": true, "docs": { "stability": "stable", "summary": "The Amazon EC2 SSH key that provides access for SSH communication with the worker nodes in the managed node group." }, "immutable": true, "locationInModule": { "filename": "lib/managed-nodegroup.ts", "line": 70 }, "name": "sshKeyName", "type": { "primitive": "string" } }, { "abstract": true, "docs": { "default": "- port 22 on the worker nodes is opened to the internet (0.0.0.0/0)", "remarks": "If you specify an Amazon EC2 SSH\nkey but do not specify a source security group when you create a managed node group, then port 22 on the worker\nnodes is opened to the internet (0.0.0.0/0).", "stability": "stable", "summary": "The security groups that are allowed SSH access (port 22) to the worker nodes." }, "immutable": true, "locationInModule": { "filename": "lib/managed-nodegroup.ts", "line": 78 }, "name": "sourceSecurityGroups", "optional": true, "type": { "collection": { "elementtype": { "fqn": "@aws-cdk/aws-ec2.ISecurityGroup" }, "kind": "array" } } } ], "symbolId": "lib/managed-nodegroup:NodegroupRemoteAccess" }, "@aws-cdk/aws-eks.OpenIdConnectProvider": { "assembly": "@aws-cdk/aws-eks", "base": "@aws-cdk/aws-iam.OpenIdConnectProvider", "docs": { "custom": { "resource": "AWS::CloudFormation::CustomResource", "exampleMetadata": "infused" }, "remarks": "You use an IAM OIDC identity provider\nwhen you want to establish trust between an OIDC-compatible IdP and your AWS\naccount.\n\nThis implementation has default values for thumbprints and clientIds props\nthat will be compatible with the eks cluster", "see": "https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_oidc.html", "stability": "stable", "summary": "IAM OIDC identity providers are entities in IAM that describe an external identity provider (IdP) service that supports the OpenID Connect (OIDC) standard, such as Google or Salesforce.", "example": "// you can import an existing provider\nconst provider = eks.OpenIdConnectProvider.fromOpenIdConnectProviderArn(this, 'Provider', 'arn:aws:iam::123456:oidc-provider/oidc.eks.eu-west-1.amazonaws.com/id/AB123456ABC');\n\n// or create a new one using an existing issuer url\ndeclare const issuerUrl: string;\nconst provider2 = new eks.OpenIdConnectProvider(this, 'Provider', {\n url: issuerUrl,\n});\n\nconst cluster = eks.Cluster.fromClusterAttributes(this, 'MyCluster', {\n clusterName: 'Cluster',\n openIdConnectProvider: provider,\n kubectlRoleArn: 'arn:aws:iam::123456:role/service-role/k8sservicerole',\n});\n\nconst serviceAccount = cluster.addServiceAccount('MyServiceAccount');\n\nconst bucket = new s3.Bucket(this, 'Bucket');\nbucket.grantReadWrite(serviceAccount);" }, "fqn": "@aws-cdk/aws-eks.OpenIdConnectProvider", "initializer": { "docs": { "stability": "stable", "summary": "Defines an OpenID Connect provider." }, "locationInModule": { "filename": "lib/oidc-provider.ts", "line": 43 }, "parameters": [ { "docs": { "summary": "The definition scope." }, "name": "scope", "type": { "fqn": "constructs.Construct" } }, { "docs": { "summary": "Construct ID." }, "name": "id", "type": { "primitive": "string" } }, { "docs": { "summary": "Initialization properties." }, "name": "props", "type": { "fqn": "@aws-cdk/aws-eks.OpenIdConnectProviderProps" } } ] }, "kind": "class", "locationInModule": { "filename": "lib/oidc-provider.ts", "line": 36 }, "name": "OpenIdConnectProvider", "symbolId": "lib/oidc-provider:OpenIdConnectProvider" }, "@aws-cdk/aws-eks.OpenIdConnectProviderProps": { "assembly": "@aws-cdk/aws-eks", "datatype": true, "docs": { "stability": "stable", "summary": "Initialization properties for `OpenIdConnectProvider`.", "example": "// you can import an existing provider\nconst provider = eks.OpenIdConnectProvider.fromOpenIdConnectProviderArn(this, 'Provider', 'arn:aws:iam::123456:oidc-provider/oidc.eks.eu-west-1.amazonaws.com/id/AB123456ABC');\n\n// or create a new one using an existing issuer url\ndeclare const issuerUrl: string;\nconst provider2 = new eks.OpenIdConnectProvider(this, 'Provider', {\n url: issuerUrl,\n});\n\nconst cluster = eks.Cluster.fromClusterAttributes(this, 'MyCluster', {\n clusterName: 'Cluster',\n openIdConnectProvider: provider,\n kubectlRoleArn: 'arn:aws:iam::123456:role/service-role/k8sservicerole',\n});\n\nconst serviceAccount = cluster.addServiceAccount('MyServiceAccount');\n\nconst bucket = new s3.Bucket(this, 'Bucket');\nbucket.grantReadWrite(serviceAccount);", "custom": { "exampleMetadata": "infused" } }, "fqn": "@aws-cdk/aws-eks.OpenIdConnectProviderProps", "kind": "interface", "locationInModule": { "filename": "lib/oidc-provider.ts", "line": 7 }, "name": "OpenIdConnectProviderProps", "properties": [ { "abstract": true, "docs": { "remarks": "The URL must begin with https:// and\nshould correspond to the iss claim in the provider's OpenID Connect ID\ntokens. Per the OIDC standard, path components are allowed but query\nparameters are not. Typically the URL consists of only a hostname, like\nhttps://server.example.org or https://example.com.\n\nYou can find your OIDC Issuer URL by:\naws eks describe-cluster --name %cluster_name% --query \"cluster.identity.oidc.issuer\" --output text", "stability": "stable", "summary": "The URL of the identity provider." }, "immutable": true, "locationInModule": { "filename": "lib/oidc-provider.ts", "line": 18 }, "name": "url", "type": { "primitive": "string" } } ], "symbolId": "lib/oidc-provider:OpenIdConnectProviderProps" }, "@aws-cdk/aws-eks.PatchType": { "assembly": "@aws-cdk/aws-eks", "docs": { "stability": "stable", "summary": "Values for `kubectl patch` --type argument." }, "fqn": "@aws-cdk/aws-eks.PatchType", "kind": "enum", "locationInModule": { "filename": "lib/k8s-patch.ts", "line": 54 }, "members": [ { "docs": { "stability": "stable", "summary": "JSON Patch, RFC 6902." }, "name": "JSON" }, { "docs": { "stability": "stable", "summary": "JSON Merge patch." }, "name": "MERGE" }, { "docs": { "stability": "stable", "summary": "Strategic merge patch." }, "name": "STRATEGIC" } ], "name": "PatchType", "symbolId": "lib/k8s-patch:PatchType" }, "@aws-cdk/aws-eks.Selector": { "assembly": "@aws-cdk/aws-eks", "datatype": true, "docs": { "stability": "stable", "summary": "Fargate profile selector.", "example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as eks from '@aws-cdk/aws-eks';\nconst selector: eks.Selector = {\n namespace: 'namespace',\n\n // the properties below are optional\n labels: {\n labelsKey: 'labels',\n },\n};", "custom": { "exampleMetadata": "fixture=_generated" } }, "fqn": "@aws-cdk/aws-eks.Selector", "kind": "interface", "locationInModule": { "filename": "lib/fargate-profile.ts", "line": 79 }, "name": "Selector", "properties": [ { "abstract": true, "docs": { "remarks": "You must specify a namespace for a selector. The selector only matches pods\nthat are created in this namespace, but you can create multiple selectors\nto target multiple namespaces.", "stability": "stable", "summary": "The Kubernetes namespace that the selector should match." }, "immutable": true, "locationInModule": { "filename": "lib/fargate-profile.ts", "line": 87 }, "name": "namespace", "type": { "primitive": "string" } }, { "abstract": true, "docs": { "default": "- all pods within the namespace will be selected.", "remarks": "A pod must contain\nall of the labels that are specified in the selector for it to be\nconsidered a match.", "stability": "stable", "summary": "The Kubernetes labels that the selector should match." }, "immutable": true, "locationInModule": { "filename": "lib/fargate-profile.ts", "line": 96 }, "name": "labels", "optional": true, "type": { "collection": { "elementtype": { "primitive": "string" }, "kind": "map" } } } ], "symbolId": "lib/fargate-profile:Selector" }, "@aws-cdk/aws-eks.ServiceAccount": { "assembly": "@aws-cdk/aws-eks", "base": "@aws-cdk/core.Construct", "docs": { "stability": "stable", "summary": "Service Account.", "example": "// you can import an existing provider\nconst provider = eks.OpenIdConnectProvider.fromOpenIdConnectProviderArn(this, 'Provider', 'arn:aws:iam::123456:oidc-provider/oidc.eks.eu-west-1.amazonaws.com/id/AB123456ABC');\n\n// or create a new one using an existing issuer url\ndeclare const issuerUrl: string;\nconst provider2 = new eks.OpenIdConnectProvider(this, 'Provider', {\n url: issuerUrl,\n});\n\nconst cluster = eks.Cluster.fromClusterAttributes(this, 'MyCluster', {\n clusterName: 'Cluster',\n openIdConnectProvider: provider,\n kubectlRoleArn: 'arn:aws:iam::123456:role/service-role/k8sservicerole',\n});\n\nconst serviceAccount = cluster.addServiceAccount('MyServiceAccount');\n\nconst bucket = new s3.Bucket(this, 'Bucket');\nbucket.grantReadWrite(serviceAccount);", "custom": { "exampleMetadata": "infused" } }, "fqn": "@aws-cdk/aws-eks.ServiceAccount", "initializer": { "docs": { "stability": "stable" }, "locationInModule": { "filename": "lib/service-account.ts", "line": 81 }, "parameters": [ { "name": "scope", "type": { "fqn": "constructs.Construct" } }, { "name": "id", "type": { "primitive": "string" } }, { "name": "props", "type": { "fqn": "@aws-cdk/aws-eks.ServiceAccountProps" } } ] }, "interfaces": [ "@aws-cdk/aws-iam.IPrincipal" ], "kind": "class", "locationInModule": { "filename": "lib/service-account.ts", "line": 61 }, "methods": [ { "docs": { "deprecated": "use `addToPrincipalPolicy()`", "stability": "deprecated", "summary": "Add to the policy of this principal." }, "locationInModule": { "filename": "lib/service-account.ts", "line": 145 }, "name": "addToPolicy", "overrides": "@aws-cdk/aws-iam.IPrincipal", "parameters": [ { "name": "statement", "type": { "fqn": "@aws-cdk/aws-iam.PolicyStatement" } } ], "returns": { "type": { "primitive": "boolean" } } }, { "docs": { "stability": "stable", "summary": "Add to the policy of this principal." }, "locationInModule": { "filename": "lib/service-account.ts", "line": 149 }, "name": "addToPrincipalPolicy", "overrides": "@aws-cdk/aws-iam.IPrincipal", "parameters": [ { "name": "statement", "type": { "fqn": "@aws-cdk/aws-iam.PolicyStatement" } } ], "returns": { "type": { "fqn": "@aws-cdk/aws-iam.AddToPrincipalPolicyResult" } } } ], "name": "ServiceAccount", "properties": [ { "docs": { "stability": "stable", "summary": "When this Principal is used in an AssumeRole policy, the action to use." }, "immutable": true, "locationInModule": { "filename": "lib/service-account.ts", "line": 67 }, "name": "assumeRoleAction", "overrides": "@aws-cdk/aws-iam.IPrincipal", "type": { "primitive": "string" } }, { "docs": { "stability": "stable", "summary": "The principal to grant permissions to." }, "immutable": true, "locationInModule": { "filename": "lib/service-account.ts", "line": 68 }, "name": "grantPrincipal", "overrides": "@aws-cdk/aws-iam.IGrantable", "type": { "fqn": "@aws-cdk/aws-iam.IPrincipal" } }, { "docs": { "stability": "stable", "summary": "Return the policy fragment that identifies this principal in a Policy." }, "immutable": true, "locationInModule": { "filename": "lib/service-account.ts", "line": 69 }, "name": "policyFragment", "overrides": "@aws-cdk/aws-iam.IPrincipal", "type": { "fqn": "@aws-cdk/aws-iam.PrincipalPolicyFragment" } }, { "docs": { "stability": "stable", "summary": "The role which is linked to the service account." }, "immutable": true, "locationInModule": { "filename": "lib/service-account.ts", "line": 65 }, "name": "role", "type": { "fqn": "@aws-cdk/aws-iam.IRole" } }, { "docs": { "stability": "stable", "summary": "The name of the service account." }, "immutable": true, "locationInModule": { "filename": "lib/service-account.ts", "line": 74 }, "name": "serviceAccountName", "type": { "primitive": "string" } }, { "docs": { "stability": "stable", "summary": "The namespace where the service account is located in." }, "immutable": true, "locationInModule": { "filename": "lib/service-account.ts", "line": 79 }, "name": "serviceAccountNamespace", "type": { "primitive": "string" } } ], "symbolId": "lib/service-account:ServiceAccount" }, "@aws-cdk/aws-eks.ServiceAccountOptions": { "assembly": "@aws-cdk/aws-eks", "datatype": true, "docs": { "stability": "stable", "summary": "Options for `ServiceAccount`.", "example": "declare const cluster: eks.Cluster;\n// add service account with annotations and labels\nconst serviceAccount = cluster.addServiceAccount('MyServiceAccount', {\n annotations: {\n 'eks.amazonaws.com/sts-regional-endpoints': 'false',\n },\n labels: {\n 'some-label': 'with-some-value',\n },\n});", "custom": { "exampleMetadata": "infused" } }, "fqn": "@aws-cdk/aws-eks.ServiceAccountOptions", "kind": "interface", "locationInModule": { "filename": "lib/service-account.ts", "line": 14 }, "name": "ServiceAccountOptions", "properties": [ { "abstract": true, "docs": { "default": "- no additional annotations", "stability": "stable", "summary": "Additional annotations of the service account." }, "immutable": true, "locationInModule": { "filename": "lib/service-account.ts", "line": 38 }, "name": "annotations", "optional": true, "type": { "collection": { "elementtype": { "primitive": "string" }, "kind": "map" } } }, { "abstract": true, "docs": { "default": "- no additional labels", "stability": "stable", "summary": "Additional labels of the service account." }, "immutable": true, "locationInModule": { "filename": "lib/service-account.ts", "line": 45 }, "name": "labels", "optional": true, "type": { "collection": { "elementtype": { "primitive": "string" }, "kind": "map" } } }, { "abstract": true, "docs": { "default": "- If no name is given, it will use the id of the resource.", "remarks": "The name of a ServiceAccount object must be a valid DNS subdomain name.\nhttps://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/", "stability": "stable", "summary": "The name of the service account." }, "immutable": true, "locationInModule": { "filename": "lib/service-account.ts", "line": 22 }, "name": "name", "optional": true, "type": { "primitive": "string" } }, { "abstract": true, "docs": { "default": "\"default\"", "remarks": "All namespace names must be valid RFC 1123 DNS labels.\nhttps://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/#namespaces-and-dns", "stability": "stable", "summary": "The namespace of the service account." }, "immutable": true, "locationInModule": { "filename": "lib/service-account.ts", "line": 31 }, "name": "namespace", "optional": true, "type": { "primitive": "string" } } ], "symbolId": "lib/service-account:ServiceAccountOptions" }, "@aws-cdk/aws-eks.ServiceAccountProps": { "assembly": "@aws-cdk/aws-eks", "datatype": true, "docs": { "stability": "stable", "summary": "Properties for defining service accounts.", "example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as eks from '@aws-cdk/aws-eks';\n\ndeclare const cluster: eks.Cluster;\nconst serviceAccountProps: eks.ServiceAccountProps = {\n cluster: cluster,\n\n // the properties below are optional\n annotations: {\n annotationsKey: 'annotations',\n },\n labels: {\n labelsKey: 'labels',\n },\n name: 'name',\n namespace: 'namespace',\n};", "custom": { "exampleMetadata": "fixture=_generated" } }, "fqn": "@aws-cdk/aws-eks.ServiceAccountProps", "interfaces": [ "@aws-cdk/aws-eks.ServiceAccountOptions" ], "kind": "interface", "locationInModule": { "filename": "lib/service-account.ts", "line": 51 }, "name": "ServiceAccountProps", "properties": [ { "abstract": true, "docs": { "stability": "stable", "summary": "The cluster to apply the patch to." }, "immutable": true, "locationInModule": { "filename": "lib/service-account.ts", "line": 55 }, "name": "cluster", "type": { "fqn": "@aws-cdk/aws-eks.ICluster" } } ], "symbolId": "lib/service-account:ServiceAccountProps" }, "@aws-cdk/aws-eks.ServiceLoadBalancerAddressOptions": { "assembly": "@aws-cdk/aws-eks", "datatype": true, "docs": { "stability": "stable", "summary": "Options for fetching a ServiceLoadBalancerAddress.", "example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as eks from '@aws-cdk/aws-eks';\nimport * as cdk from '@aws-cdk/core';\nconst serviceLoadBalancerAddressOptions: eks.ServiceLoadBalancerAddressOptions = {\n namespace: 'namespace',\n timeout: cdk.Duration.minutes(30),\n};", "custom": { "exampleMetadata": "fixture=_generated" } }, "fqn": "@aws-cdk/aws-eks.ServiceLoadBalancerAddressOptions", "kind": "interface", "locationInModule": { "filename": "lib/cluster.ts", "line": 1069 }, "name": "ServiceLoadBalancerAddressOptions", "properties": [ { "abstract": true, "docs": { "default": "'default'", "stability": "stable", "summary": "The namespace the service belongs to." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 1083 }, "name": "namespace", "optional": true, "type": { "primitive": "string" } }, { "abstract": true, "docs": { "default": "Duration.minutes(5)", "stability": "stable", "summary": "Timeout for waiting on the load balancer address." }, "immutable": true, "locationInModule": { "filename": "lib/cluster.ts", "line": 1076 }, "name": "timeout", "optional": true, "type": { "fqn": "@aws-cdk/core.Duration" } } ], "symbolId": "lib/cluster:ServiceLoadBalancerAddressOptions" }, "@aws-cdk/aws-eks.TaintEffect": { "assembly": "@aws-cdk/aws-eks", "docs": { "stability": "stable", "summary": "Effect types of kubernetes node taint.", "example": "declare const cluster: eks.Cluster;\ncluster.addNodegroupCapacity('custom-node-group', {\n instanceTypes: [new ec2.InstanceType('m5.large')],\n taints: [\n {\n effect: eks.TaintEffect.NO_SCHEDULE,\n key: 'foo',\n value: 'bar',\n },\n ],\n});", "custom": { "exampleMetadata": "infused" } }, "fqn": "@aws-cdk/aws-eks.TaintEffect", "kind": "enum", "locationInModule": { "filename": "lib/managed-nodegroup.ts", "line": 100 }, "members": [ { "docs": { "stability": "stable", "summary": "NoSchedule." }, "name": "NO_SCHEDULE" }, { "docs": { "stability": "stable", "summary": "PreferNoSchedule." }, "name": "PREFER_NO_SCHEDULE" }, { "docs": { "stability": "stable", "summary": "NoExecute." }, "name": "NO_EXECUTE" } ], "name": "TaintEffect", "symbolId": "lib/managed-nodegroup:TaintEffect" }, "@aws-cdk/aws-eks.TaintSpec": { "assembly": "@aws-cdk/aws-eks", "datatype": true, "docs": { "stability": "stable", "summary": "Taint interface.", "example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as eks from '@aws-cdk/aws-eks';\nconst taintSpec: eks.TaintSpec = {\n effect: eks.TaintEffect.NO_SCHEDULE,\n key: 'key',\n value: 'value',\n};", "custom": { "exampleMetadata": "fixture=_generated" } }, "fqn": "@aws-cdk/aws-eks.TaintSpec", "kind": "interface", "locationInModule": { "filename": "lib/managed-nodegroup.ts", "line": 118 }, "name": "TaintSpec", "properties": [ { "abstract": true, "docs": { "default": "- None", "stability": "stable", "summary": "Effect type." }, "immutable": true, "locationInModule": { "filename": "lib/managed-nodegroup.ts", "line": 124 }, "name": "effect", "optional": true, "type": { "fqn": "@aws-cdk/aws-eks.TaintEffect" } }, { "abstract": true, "docs": { "default": "- None", "stability": "stable", "summary": "Taint key." }, "immutable": true, "locationInModule": { "filename": "lib/managed-nodegroup.ts", "line": 130 }, "name": "key", "optional": true, "type": { "primitive": "string" } }, { "abstract": true, "docs": { "default": "- None", "stability": "stable", "summary": "Taint value." }, "immutable": true, "locationInModule": { "filename": "lib/managed-nodegroup.ts", "line": 136 }, "name": "value", "optional": true, "type": { "primitive": "string" } } ], "symbolId": "lib/managed-nodegroup:TaintSpec" } }, "version": "1.204.0", "fingerprint": "**********" }