I'm trying to define and import an EksCluster using AWS CDK for Java. Here's my code:
EksStack.java:
var mycluster = Cluster.Builder.create(this.scope, "mycluster")
.kubectlLayer(new KubectlLayer(this.scope, "kubectlLayer"))
.version(KubernetesVersion.V1_29)
.build();
App.java:
new EksStack(app, "EksStack", stackProps, clusterRole, nodeGroupRole);
I trigger the import with:
cdk import EksStack
If I skip through all the resources for which AWS CDK asks for ARNs and IDs, I eventually get to this message:
EksStack/mycluster/Resource/Resource/Default: unsupported resource type Custom::AWSCDK-EKS-Cluster, skipping import.
Why is this resource type unsupported when it comes from the CDK library itself? It's mentioned here in the docs: .html#quick-start-heading.
I've specified this in dependencies.gradle
aws-cdk = "software.amazon.awscdk:aws-cdk-lib:2.177.0"
And I'm running the same cdk cli version:
% cdk --version
2.177.0 (build b396961)
EDIT: Here are full logs:
% cdk import EksStack
> Task :ns:migrated:compileJava
Note: /Users/s.zarrinkoub/IdeaProjects/com/cip/ns/migrated/src/main/java/comde/cip/ns/eks/EksStack.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
> Task :ns:migrated:runnsMigrated
[Incubating] Problems report is available at: file:///Users/s.zarrinkoub/IdeaProjects/com/cip/build/reports/problems/problems-report.html
Deprecated Gradle features were used in this build, making it incompatible with Gradle 9.0.
You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins.
For more on this, please refer to .11.1/userguide/command_line_interface.html#sec:command_line_warnings in the Gradle documentation.
BUILD SUCCESSFUL in 2s
10 actionable tasks: 2 executed, 8 up-to-date
EksStack
start: Building 3b5a4026b9b00368ad96fd7a955c0611a23ca4e100c29c8d01496144c8cd6d3f:accnr-region
success: Built 3b5a4026b9b00368ad96fd7a955c0611a23ca4e100c29c8d01496144c8cd6d3f:accnr-region
start: Publishing 3b5a4026b9b00368ad96fd7a955c0611a23ca4e100c29c8d01496144c8cd6d3f:accnr-region
success: Published 3b5a4026b9b00368ad96fd7a955c0611a23ca4e100c29c8d01496144c8cd6d3f:accnr-region
start: Building 87435b23a3599547eadc4e3957bb73490b3cee54b4c18500e76370374cbe862f:accnr-region
success: Built 87435b23a3599547eadc4e3957bb73490b3cee54b4c18500e76370374cbe862f:accnr-region
start: Publishing 87435b23a3599547eadc4e3957bb73490b3cee54b4c18500e76370374cbe862f:accnr-region
success: Published 87435b23a3599547eadc4e3957bb73490b3cee54b4c18500e76370374cbe862f:accnr-region
start: Building 3e862c82ba14ac41f207d27827fd28bf9dc7f1d9e114327879bc580c5238c81a:accnr-region
success: Built 3e862c82ba14ac41f207d27827fd28bf9dc7f1d9e114327879bc580c5238c81a:accnr-region
start: Publishing 3e862c82ba14ac41f207d27827fd28bf9dc7f1d9e114327879bc580c5238c81a:accnr-region
success: Published 3e862c82ba14ac41f207d27827fd28bf9dc7f1d9e114327879bc580c5238c81a:accnr-region
EksStack/kubectlLayer/Resource (AWS::Lambda::LayerVersion): enter LayerVersionArn (empty to skip):
Skipping import of EksStack/kubectlLayer/Resource
EksStack/mycluster/DefaultVpc/Resource (AWS::EC2::VPC): enter VpcId (empty to skip):
Skipping import of EksStack/mycluster/DefaultVpc/Resource
EksStack/mycluster/DefaultVpc/PublicSubnet1/Subnet (AWS::EC2::Subnet): enter SubnetId (empty to skip):
Skipping import of EksStack/mycluster/DefaultVpc/PublicSubnet1/Subnet
EksStack/mycluster/DefaultVpc/PublicSubnet1/RouteTable (AWS::EC2::RouteTable): enter RouteTableId (empty to skip):
Skipping import of EksStack/mycluster/DefaultVpc/PublicSubnet1/RouteTable
EksStack/mycluster/DefaultVpc/PublicSubnet1/RouteTableAssociation (AWS::EC2::SubnetRouteTableAssociation): enter Id (empty to skip):
Skipping import of EksStack/mycluster/DefaultVpc/PublicSubnet1/RouteTableAssociation
EksStack/mycluster/DefaultVpc/PublicSubnet1/DefaultRoute (AWS::EC2::Route): enter RouteTableId (empty to skip):
Skipping import of EksStack/mycluster/DefaultVpc/PublicSubnet1/DefaultRoute
EksStack/mycluster/DefaultVpc/PublicSubnet1/EIP (AWS::EC2::EIP): enter PublicIp (empty to skip):
Skipping import of EksStack/mycluster/DefaultVpc/PublicSubnet1/EIP
EksStack/mycluster/DefaultVpc/PublicSubnet1/NATGateway (AWS::EC2::NatGateway): enter NatGatewayId (empty to skip):
Skipping import of EksStack/mycluster/DefaultVpc/PublicSubnet1/NATGateway
EksStack/mycluster/DefaultVpc/PublicSubnet2/Subnet (AWS::EC2::Subnet): enter SubnetId (empty to skip):
Skipping import of EksStack/mycluster/DefaultVpc/PublicSubnet2/Subnet
EksStack/mycluster/DefaultVpc/PublicSubnet2/RouteTable (AWS::EC2::RouteTable): enter RouteTableId (empty to skip):
Skipping import of EksStack/mycluster/DefaultVpc/PublicSubnet2/RouteTable
EksStack/mycluster/DefaultVpc/PublicSubnet2/RouteTableAssociation (AWS::EC2::SubnetRouteTableAssociation): enter Id (empty to skip):
Skipping import of EksStack/mycluster/DefaultVpc/PublicSubnet2/RouteTableAssociation
EksStack/mycluster/DefaultVpc/PublicSubnet2/DefaultRoute (AWS::EC2::Route): enter RouteTableId (empty to skip):
Skipping import of EksStack/mycluster/DefaultVpc/PublicSubnet2/DefaultRoute
EksStack/mycluster/DefaultVpc/PublicSubnet2/EIP (AWS::EC2::EIP): enter PublicIp (empty to skip):
Skipping import of EksStack/mycluster/DefaultVpc/PublicSubnet2/EIP
EksStack/mycluster/DefaultVpc/PublicSubnet2/NATGateway (AWS::EC2::NatGateway): enter NatGatewayId (empty to skip):
Skipping import of EksStack/mycluster/DefaultVpc/PublicSubnet2/NATGateway
EksStack/mycluster/DefaultVpc/PublicSubnet3/Subnet (AWS::EC2::Subnet): enter SubnetId (empty to skip):
Skipping import of EksStack/mycluster/DefaultVpc/PublicSubnet3/Subnet
EksStack/mycluster/DefaultVpc/PublicSubnet3/RouteTable (AWS::EC2::RouteTable): enter RouteTableId (empty to skip):
Skipping import of EksStack/mycluster/DefaultVpc/PublicSubnet3/RouteTable
EksStack/mycluster/DefaultVpc/PublicSubnet3/RouteTableAssociation (AWS::EC2::SubnetRouteTableAssociation): enter Id (empty to skip):
Skipping import of EksStack/mycluster/DefaultVpc/PublicSubnet3/RouteTableAssociation
EksStack/mycluster/DefaultVpc/PublicSubnet3/DefaultRoute (AWS::EC2::Route): enter RouteTableId (empty to skip):
Skipping import of EksStack/mycluster/DefaultVpc/PublicSubnet3/DefaultRoute
EksStack/mycluster/DefaultVpc/PublicSubnet3/EIP (AWS::EC2::EIP): enter PublicIp (empty to skip):
Skipping import of EksStack/mycluster/DefaultVpc/PublicSubnet3/EIP
EksStack/mycluster/DefaultVpc/PublicSubnet3/NATGateway (AWS::EC2::NatGateway): enter NatGatewayId (empty to skip):
Skipping import of EksStack/mycluster/DefaultVpc/PublicSubnet3/NATGateway
EksStack/mycluster/DefaultVpc/PrivateSubnet1/Subnet (AWS::EC2::Subnet): enter SubnetId (empty to skip):
Skipping import of EksStack/mycluster/DefaultVpc/PrivateSubnet1/Subnet
EksStack/mycluster/DefaultVpc/PrivateSubnet1/RouteTable (AWS::EC2::RouteTable): enter RouteTableId (empty to skip):
Skipping import of EksStack/mycluster/DefaultVpc/PrivateSubnet1/RouteTable
EksStack/mycluster/DefaultVpc/PrivateSubnet1/RouteTableAssociation (AWS::EC2::SubnetRouteTableAssociation): enter Id (empty to skip):
Skipping import of EksStack/mycluster/DefaultVpc/PrivateSubnet1/RouteTableAssociation
EksStack/mycluster/DefaultVpc/PrivateSubnet1/DefaultRoute (AWS::EC2::Route): enter RouteTableId (empty to skip):
Skipping import of EksStack/mycluster/DefaultVpc/PrivateSubnet1/DefaultRoute
EksStack/mycluster/DefaultVpc/PrivateSubnet2/Subnet (AWS::EC2::Subnet): enter SubnetId (empty to skip):
Skipping import of EksStack/mycluster/DefaultVpc/PrivateSubnet2/Subnet
EksStack/mycluster/DefaultVpc/PrivateSubnet2/RouteTable (AWS::EC2::RouteTable): enter RouteTableId (empty to skip):
Skipping import of EksStack/mycluster/DefaultVpc/PrivateSubnet2/RouteTable
EksStack/mycluster/DefaultVpc/PrivateSubnet2/RouteTableAssociation (AWS::EC2::SubnetRouteTableAssociation): enter Id (empty to skip):
Skipping import of EksStack/mycluster/DefaultVpc/PrivateSubnet2/RouteTableAssociation
EksStack/mycluster/DefaultVpc/PrivateSubnet2/DefaultRoute (AWS::EC2::Route): enter RouteTableId (empty to skip):
Skipping import of EksStack/mycluster/DefaultVpc/PrivateSubnet2/DefaultRoute
EksStack/mycluster/DefaultVpc/PrivateSubnet3/Subnet (AWS::EC2::Subnet): enter SubnetId (empty to skip):
Skipping import of EksStack/mycluster/DefaultVpc/PrivateSubnet3/Subnet
EksStack/mycluster/DefaultVpc/PrivateSubnet3/RouteTable (AWS::EC2::RouteTable): enter RouteTableId (empty to skip):
Skipping import of EksStack/mycluster/DefaultVpc/PrivateSubnet3/RouteTable
EksStack/mycluster/DefaultVpc/PrivateSubnet3/RouteTableAssociation (AWS::EC2::SubnetRouteTableAssociation): enter Id (empty to skip):
Skipping import of EksStack/mycluster/DefaultVpc/PrivateSubnet3/RouteTableAssociation
EksStack/mycluster/DefaultVpc/PrivateSubnet3/DefaultRoute (AWS::EC2::Route): enter RouteTableId (empty to skip):
Skipping import of EksStack/mycluster/DefaultVpc/PrivateSubnet3/DefaultRoute
EksStack/mycluster/DefaultVpc/IGW (AWS::EC2::InternetGateway): enter InternetGatewayId (empty to skip):
Skipping import of EksStack/mycluster/DefaultVpc/IGW
EksStack/mycluster/DefaultVpc/VPCGW (AWS::EC2::VPCGatewayAttachment): enter AttachmentType (empty to skip):
Skipping import of EksStack/mycluster/DefaultVpc/VPCGW
EksStack/mycluster/DefaultVpc/RestrictDefaultSecurityGroupCustomResource/Default: unsupported resource type Custom::VpcRestrictDefaultSG, skipping import.
EksStack/mycluster/KubectlHandlerRole/Resource (AWS::IAM::Role): enter RoleName (empty to skip):
Skipping import of EksStack/mycluster/KubectlHandlerRole/Resource
EksStack/mycluster/KubectlHandlerRole/DefaultPolicy/Resource (AWS::IAM::Policy): enter Id (empty to skip):
Skipping import of EksStack/mycluster/KubectlHandlerRole/DefaultPolicy/Resource
EksStack/mycluster/Role/Resource (AWS::IAM::Role): enter RoleName (empty to skip):
Skipping import of EksStack/mycluster/Role/Resource
EksStack/mycluster/ControlPlaneSecurityGroup/Resource (AWS::EC2::SecurityGroup): enter Id (empty to skip):
Skipping import of EksStack/mycluster/ControlPlaneSecurityGroup/Resource
EksStack/mycluster/Resource/CreationRole/Resource (AWS::IAM::Role): enter RoleName (empty to skip):
Skipping import of EksStack/mycluster/Resource/CreationRole/Resource
EksStack/mycluster/Resource/CreationRole/DefaultPolicy/Resource (AWS::IAM::Policy): enter Id (empty to skip):
Skipping import of EksStack/mycluster/Resource/CreationRole/DefaultPolicy/Resource
EksStack/mycluster/Resource/Resource/Default: unsupported resource type Custom::AWSCDK-EKS-Cluster, skipping import.
EksStack/mycluster/KubectlReadyBarrier (AWS::SSM::Parameter): enter Name (empty to skip):
Skipping import of EksStack/mycluster/KubectlReadyBarrier
EksStack/mycluster/NodegroupDefaultCapacity/NodeGroupRole/Resource (AWS::IAM::Role): enter RoleName (empty to skip):
Skipping import of EksStack/mycluster/NodegroupDefaultCapacity/NodeGroupRole/Resource
EksStack/mycluster/NodegroupDefaultCapacity/Resource (AWS::EKS::Nodegroup): enter Id (empty to skip):
Skipping import of EksStack/mycluster/NodegroupDefaultCapacity/Resource
EksStack/mycluster/AwsAuth/manifest/Resource/Default: unsupported resource type Custom::AWSCDK-EKS-KubernetesResource, skipping import.
EksStack/Custom::VpcRestrictDefaultSGCustomResourceProvider/Role (AWS::IAM::Role): enter RoleName (empty to skip):
Skipping import of EksStack/Custom::VpcRestrictDefaultSGCustomResourceProvider/Role
EksStack/Custom::VpcRestrictDefaultSGCustomResourceProvider/Handler (AWS::Lambda::Function): enter FunctionName (empty to skip):
Skipping import of EksStack/Custom::VpcRestrictDefaultSGCustomResourceProvider/Handler
EksStack/@aws-cdk--aws-eks.ClusterResourceProvider.NestedStack/@aws-cdk--aws-eks.ClusterResourceProvider.NestedStackResource (AWS::CloudFormation::Stack): enter StackId (empty to skip):
Skipping import of EksStack/@aws-cdk--aws-eks.ClusterResourceProvider.NestedStack/@aws-cdk--aws-eks.ClusterResourceProvider.NestedStackResource
EksStack/@aws-cdk--aws-eks.KubectlProvider.NestedStack/@aws-cdk--aws-eks.KubectlProvider.NestedStackResource (AWS::CloudFormation::Stack): enter StackId (empty to skip):
Skipping import of EksStack/@aws-cdk--aws-eks.KubectlProvider.NestedStack/@aws-cdk--aws-eks.KubectlProvider.NestedStackResource
No resources selected for import.
I'm trying to define and import an EksCluster using AWS CDK for Java. Here's my code:
EksStack.java:
var mycluster = Cluster.Builder.create(this.scope, "mycluster")
.kubectlLayer(new KubectlLayer(this.scope, "kubectlLayer"))
.version(KubernetesVersion.V1_29)
.build();
App.java:
new EksStack(app, "EksStack", stackProps, clusterRole, nodeGroupRole);
I trigger the import with:
cdk import EksStack
If I skip through all the resources for which AWS CDK asks for ARNs and IDs, I eventually get to this message:
EksStack/mycluster/Resource/Resource/Default: unsupported resource type Custom::AWSCDK-EKS-Cluster, skipping import.
Why is this resource type unsupported when it comes from the CDK library itself? It's mentioned here in the docs: https://docs.aws.amazon.com/cdk/api/v2/java/software/amazon/awscdk/services/eks/package-summary.html#quick-start-heading.
I've specified this in dependencies.gradle
aws-cdk = "software.amazon.awscdk:aws-cdk-lib:2.177.0"
And I'm running the same cdk cli version:
% cdk --version
2.177.0 (build b396961)
EDIT: Here are full logs:
% cdk import EksStack
> Task :ns:migrated:compileJava
Note: /Users/s.zarrinkoub/IdeaProjects/com/cip/ns/migrated/src/main/java/comde/cip/ns/eks/EksStack.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
> Task :ns:migrated:runnsMigrated
[Incubating] Problems report is available at: file:///Users/s.zarrinkoub/IdeaProjects/com/cip/build/reports/problems/problems-report.html
Deprecated Gradle features were used in this build, making it incompatible with Gradle 9.0.
You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins.
For more on this, please refer to https://docs.gradle.org/8.11.1/userguide/command_line_interface.html#sec:command_line_warnings in the Gradle documentation.
BUILD SUCCESSFUL in 2s
10 actionable tasks: 2 executed, 8 up-to-date
EksStack
start: Building 3b5a4026b9b00368ad96fd7a955c0611a23ca4e100c29c8d01496144c8cd6d3f:accnr-region
success: Built 3b5a4026b9b00368ad96fd7a955c0611a23ca4e100c29c8d01496144c8cd6d3f:accnr-region
start: Publishing 3b5a4026b9b00368ad96fd7a955c0611a23ca4e100c29c8d01496144c8cd6d3f:accnr-region
success: Published 3b5a4026b9b00368ad96fd7a955c0611a23ca4e100c29c8d01496144c8cd6d3f:accnr-region
start: Building 87435b23a3599547eadc4e3957bb73490b3cee54b4c18500e76370374cbe862f:accnr-region
success: Built 87435b23a3599547eadc4e3957bb73490b3cee54b4c18500e76370374cbe862f:accnr-region
start: Publishing 87435b23a3599547eadc4e3957bb73490b3cee54b4c18500e76370374cbe862f:accnr-region
success: Published 87435b23a3599547eadc4e3957bb73490b3cee54b4c18500e76370374cbe862f:accnr-region
start: Building 3e862c82ba14ac41f207d27827fd28bf9dc7f1d9e114327879bc580c5238c81a:accnr-region
success: Built 3e862c82ba14ac41f207d27827fd28bf9dc7f1d9e114327879bc580c5238c81a:accnr-region
start: Publishing 3e862c82ba14ac41f207d27827fd28bf9dc7f1d9e114327879bc580c5238c81a:accnr-region
success: Published 3e862c82ba14ac41f207d27827fd28bf9dc7f1d9e114327879bc580c5238c81a:accnr-region
EksStack/kubectlLayer/Resource (AWS::Lambda::LayerVersion): enter LayerVersionArn (empty to skip):
Skipping import of EksStack/kubectlLayer/Resource
EksStack/mycluster/DefaultVpc/Resource (AWS::EC2::VPC): enter VpcId (empty to skip):
Skipping import of EksStack/mycluster/DefaultVpc/Resource
EksStack/mycluster/DefaultVpc/PublicSubnet1/Subnet (AWS::EC2::Subnet): enter SubnetId (empty to skip):
Skipping import of EksStack/mycluster/DefaultVpc/PublicSubnet1/Subnet
EksStack/mycluster/DefaultVpc/PublicSubnet1/RouteTable (AWS::EC2::RouteTable): enter RouteTableId (empty to skip):
Skipping import of EksStack/mycluster/DefaultVpc/PublicSubnet1/RouteTable
EksStack/mycluster/DefaultVpc/PublicSubnet1/RouteTableAssociation (AWS::EC2::SubnetRouteTableAssociation): enter Id (empty to skip):
Skipping import of EksStack/mycluster/DefaultVpc/PublicSubnet1/RouteTableAssociation
EksStack/mycluster/DefaultVpc/PublicSubnet1/DefaultRoute (AWS::EC2::Route): enter RouteTableId (empty to skip):
Skipping import of EksStack/mycluster/DefaultVpc/PublicSubnet1/DefaultRoute
EksStack/mycluster/DefaultVpc/PublicSubnet1/EIP (AWS::EC2::EIP): enter PublicIp (empty to skip):
Skipping import of EksStack/mycluster/DefaultVpc/PublicSubnet1/EIP
EksStack/mycluster/DefaultVpc/PublicSubnet1/NATGateway (AWS::EC2::NatGateway): enter NatGatewayId (empty to skip):
Skipping import of EksStack/mycluster/DefaultVpc/PublicSubnet1/NATGateway
EksStack/mycluster/DefaultVpc/PublicSubnet2/Subnet (AWS::EC2::Subnet): enter SubnetId (empty to skip):
Skipping import of EksStack/mycluster/DefaultVpc/PublicSubnet2/Subnet
EksStack/mycluster/DefaultVpc/PublicSubnet2/RouteTable (AWS::EC2::RouteTable): enter RouteTableId (empty to skip):
Skipping import of EksStack/mycluster/DefaultVpc/PublicSubnet2/RouteTable
EksStack/mycluster/DefaultVpc/PublicSubnet2/RouteTableAssociation (AWS::EC2::SubnetRouteTableAssociation): enter Id (empty to skip):
Skipping import of EksStack/mycluster/DefaultVpc/PublicSubnet2/RouteTableAssociation
EksStack/mycluster/DefaultVpc/PublicSubnet2/DefaultRoute (AWS::EC2::Route): enter RouteTableId (empty to skip):
Skipping import of EksStack/mycluster/DefaultVpc/PublicSubnet2/DefaultRoute
EksStack/mycluster/DefaultVpc/PublicSubnet2/EIP (AWS::EC2::EIP): enter PublicIp (empty to skip):
Skipping import of EksStack/mycluster/DefaultVpc/PublicSubnet2/EIP
EksStack/mycluster/DefaultVpc/PublicSubnet2/NATGateway (AWS::EC2::NatGateway): enter NatGatewayId (empty to skip):
Skipping import of EksStack/mycluster/DefaultVpc/PublicSubnet2/NATGateway
EksStack/mycluster/DefaultVpc/PublicSubnet3/Subnet (AWS::EC2::Subnet): enter SubnetId (empty to skip):
Skipping import of EksStack/mycluster/DefaultVpc/PublicSubnet3/Subnet
EksStack/mycluster/DefaultVpc/PublicSubnet3/RouteTable (AWS::EC2::RouteTable): enter RouteTableId (empty to skip):
Skipping import of EksStack/mycluster/DefaultVpc/PublicSubnet3/RouteTable
EksStack/mycluster/DefaultVpc/PublicSubnet3/RouteTableAssociation (AWS::EC2::SubnetRouteTableAssociation): enter Id (empty to skip):
Skipping import of EksStack/mycluster/DefaultVpc/PublicSubnet3/RouteTableAssociation
EksStack/mycluster/DefaultVpc/PublicSubnet3/DefaultRoute (AWS::EC2::Route): enter RouteTableId (empty to skip):
Skipping import of EksStack/mycluster/DefaultVpc/PublicSubnet3/DefaultRoute
EksStack/mycluster/DefaultVpc/PublicSubnet3/EIP (AWS::EC2::EIP): enter PublicIp (empty to skip):
Skipping import of EksStack/mycluster/DefaultVpc/PublicSubnet3/EIP
EksStack/mycluster/DefaultVpc/PublicSubnet3/NATGateway (AWS::EC2::NatGateway): enter NatGatewayId (empty to skip):
Skipping import of EksStack/mycluster/DefaultVpc/PublicSubnet3/NATGateway
EksStack/mycluster/DefaultVpc/PrivateSubnet1/Subnet (AWS::EC2::Subnet): enter SubnetId (empty to skip):
Skipping import of EksStack/mycluster/DefaultVpc/PrivateSubnet1/Subnet
EksStack/mycluster/DefaultVpc/PrivateSubnet1/RouteTable (AWS::EC2::RouteTable): enter RouteTableId (empty to skip):
Skipping import of EksStack/mycluster/DefaultVpc/PrivateSubnet1/RouteTable
EksStack/mycluster/DefaultVpc/PrivateSubnet1/RouteTableAssociation (AWS::EC2::SubnetRouteTableAssociation): enter Id (empty to skip):
Skipping import of EksStack/mycluster/DefaultVpc/PrivateSubnet1/RouteTableAssociation
EksStack/mycluster/DefaultVpc/PrivateSubnet1/DefaultRoute (AWS::EC2::Route): enter RouteTableId (empty to skip):
Skipping import of EksStack/mycluster/DefaultVpc/PrivateSubnet1/DefaultRoute
EksStack/mycluster/DefaultVpc/PrivateSubnet2/Subnet (AWS::EC2::Subnet): enter SubnetId (empty to skip):
Skipping import of EksStack/mycluster/DefaultVpc/PrivateSubnet2/Subnet
EksStack/mycluster/DefaultVpc/PrivateSubnet2/RouteTable (AWS::EC2::RouteTable): enter RouteTableId (empty to skip):
Skipping import of EksStack/mycluster/DefaultVpc/PrivateSubnet2/RouteTable
EksStack/mycluster/DefaultVpc/PrivateSubnet2/RouteTableAssociation (AWS::EC2::SubnetRouteTableAssociation): enter Id (empty to skip):
Skipping import of EksStack/mycluster/DefaultVpc/PrivateSubnet2/RouteTableAssociation
EksStack/mycluster/DefaultVpc/PrivateSubnet2/DefaultRoute (AWS::EC2::Route): enter RouteTableId (empty to skip):
Skipping import of EksStack/mycluster/DefaultVpc/PrivateSubnet2/DefaultRoute
EksStack/mycluster/DefaultVpc/PrivateSubnet3/Subnet (AWS::EC2::Subnet): enter SubnetId (empty to skip):
Skipping import of EksStack/mycluster/DefaultVpc/PrivateSubnet3/Subnet
EksStack/mycluster/DefaultVpc/PrivateSubnet3/RouteTable (AWS::EC2::RouteTable): enter RouteTableId (empty to skip):
Skipping import of EksStack/mycluster/DefaultVpc/PrivateSubnet3/RouteTable
EksStack/mycluster/DefaultVpc/PrivateSubnet3/RouteTableAssociation (AWS::EC2::SubnetRouteTableAssociation): enter Id (empty to skip):
Skipping import of EksStack/mycluster/DefaultVpc/PrivateSubnet3/RouteTableAssociation
EksStack/mycluster/DefaultVpc/PrivateSubnet3/DefaultRoute (AWS::EC2::Route): enter RouteTableId (empty to skip):
Skipping import of EksStack/mycluster/DefaultVpc/PrivateSubnet3/DefaultRoute
EksStack/mycluster/DefaultVpc/IGW (AWS::EC2::InternetGateway): enter InternetGatewayId (empty to skip):
Skipping import of EksStack/mycluster/DefaultVpc/IGW
EksStack/mycluster/DefaultVpc/VPCGW (AWS::EC2::VPCGatewayAttachment): enter AttachmentType (empty to skip):
Skipping import of EksStack/mycluster/DefaultVpc/VPCGW
EksStack/mycluster/DefaultVpc/RestrictDefaultSecurityGroupCustomResource/Default: unsupported resource type Custom::VpcRestrictDefaultSG, skipping import.
EksStack/mycluster/KubectlHandlerRole/Resource (AWS::IAM::Role): enter RoleName (empty to skip):
Skipping import of EksStack/mycluster/KubectlHandlerRole/Resource
EksStack/mycluster/KubectlHandlerRole/DefaultPolicy/Resource (AWS::IAM::Policy): enter Id (empty to skip):
Skipping import of EksStack/mycluster/KubectlHandlerRole/DefaultPolicy/Resource
EksStack/mycluster/Role/Resource (AWS::IAM::Role): enter RoleName (empty to skip):
Skipping import of EksStack/mycluster/Role/Resource
EksStack/mycluster/ControlPlaneSecurityGroup/Resource (AWS::EC2::SecurityGroup): enter Id (empty to skip):
Skipping import of EksStack/mycluster/ControlPlaneSecurityGroup/Resource
EksStack/mycluster/Resource/CreationRole/Resource (AWS::IAM::Role): enter RoleName (empty to skip):
Skipping import of EksStack/mycluster/Resource/CreationRole/Resource
EksStack/mycluster/Resource/CreationRole/DefaultPolicy/Resource (AWS::IAM::Policy): enter Id (empty to skip):
Skipping import of EksStack/mycluster/Resource/CreationRole/DefaultPolicy/Resource
EksStack/mycluster/Resource/Resource/Default: unsupported resource type Custom::AWSCDK-EKS-Cluster, skipping import.
EksStack/mycluster/KubectlReadyBarrier (AWS::SSM::Parameter): enter Name (empty to skip):
Skipping import of EksStack/mycluster/KubectlReadyBarrier
EksStack/mycluster/NodegroupDefaultCapacity/NodeGroupRole/Resource (AWS::IAM::Role): enter RoleName (empty to skip):
Skipping import of EksStack/mycluster/NodegroupDefaultCapacity/NodeGroupRole/Resource
EksStack/mycluster/NodegroupDefaultCapacity/Resource (AWS::EKS::Nodegroup): enter Id (empty to skip):
Skipping import of EksStack/mycluster/NodegroupDefaultCapacity/Resource
EksStack/mycluster/AwsAuth/manifest/Resource/Default: unsupported resource type Custom::AWSCDK-EKS-KubernetesResource, skipping import.
EksStack/Custom::VpcRestrictDefaultSGCustomResourceProvider/Role (AWS::IAM::Role): enter RoleName (empty to skip):
Skipping import of EksStack/Custom::VpcRestrictDefaultSGCustomResourceProvider/Role
EksStack/Custom::VpcRestrictDefaultSGCustomResourceProvider/Handler (AWS::Lambda::Function): enter FunctionName (empty to skip):
Skipping import of EksStack/Custom::VpcRestrictDefaultSGCustomResourceProvider/Handler
EksStack/@aws-cdk--aws-eks.ClusterResourceProvider.NestedStack/@aws-cdk--aws-eks.ClusterResourceProvider.NestedStackResource (AWS::CloudFormation::Stack): enter StackId (empty to skip):
Skipping import of EksStack/@aws-cdk--aws-eks.ClusterResourceProvider.NestedStack/@aws-cdk--aws-eks.ClusterResourceProvider.NestedStackResource
EksStack/@aws-cdk--aws-eks.KubectlProvider.NestedStack/@aws-cdk--aws-eks.KubectlProvider.NestedStackResource (AWS::CloudFormation::Stack): enter StackId (empty to skip):
Skipping import of EksStack/@aws-cdk--aws-eks.KubectlProvider.NestedStack/@aws-cdk--aws-eks.KubectlProvider.NestedStackResource
No resources selected for import.
Unfortunately, the CDK construct for EKS clusters uses a custom resource, i.e. a lambda that uses AWS API calls to create the cluster, as opposed to the cloudformation AWS::EKS::Cluster
resource.
Here`s the issue about moving to a native cloudformation resource: https://github.com/aws/aws-cdk/issues/18620, which was closed due to inactivity.
Moving to the native cloudformation resource is planned, though: https://github.com/aws/aws-cdk/issues/32364#issuecomment-2623305717
This means that an existing cluster cannot be imported using CDK import if you want to use the eks.Cluster
L2 construct.
You will have to resort to the L1 eks.CfnCluster
resource instead.
I don't think the CDK stack implementation has this.scope
as its property. You should also make sure that the stack implementation has the infrastructure created in its constructor and assign to a local variable (cluster
in the below case) instead of a class property
public class EksPrivateClusterStack extends Stack {
public EksPrivateClusterStack(final Construct scope, final String id) {
this(scope, id, null);
}
public EksPrivateClusterStack(final Construct scope, final String id, final StackProps props) {
super(scope, id, props);
Cluster cluster = createEksCluster();
}
private Cluster createEksCluster() {
return Cluster.Builder.create(this, "mycluster")
.kubectlLayer(new KubectlLayer(this.scope, "kubectlLayer"))
.version(KubernetesVersion.V1_29)
.build();
}
}