Kubernetes AWS CDK:标记现有子网
我正在尝试用Java中的AWS cdk构建一个AWS EKS集群 我们有一个现有的VPC和子网,需要获得一些Kubernetes标签,如Kubernetes.io/role/internal elb=1等 我可以通过以下方式获取vpc来获取iSubnet:Kubernetes AWS CDK:标记现有子网,kubernetes,aws-cdk,amazon-eks,Kubernetes,Aws Cdk,Amazon Eks,我正在尝试用Java中的AWS cdk构建一个AWS EKS集群 我们有一个现有的VPC和子网,需要获得一些Kubernetes标签,如Kubernetes.io/role/internal elb=1等 我可以通过以下方式获取vpc来获取iSubnet: IVpc-vpc=vpc.fromVpcAttributes(这是“我的vpc”,vpcAttributes); List subnets=vpc.getPrivateSubnets(); 子网forEach(iSubnet->Tag.add
IVpc-vpc=vpc.fromVpcAttributes(这是“我的vpc”,vpcAttributes);
List subnets=vpc.getPrivateSubnets();
子网forEach(iSubnet->Tag.add(iSubnet,“kubernetes.io/role/internalelb”,“1”);
但是awscdk.core.Tag.add()
需要一个构造,我没有创建它,因为子网已经存在
还尝试了以下示例:
private void addtag到所有VPC子网(Tag-Tag){
TagProps includeOnlySubnets=TagProps.builder()
.includeResourceTypes(单例列表(“AWS::EC2::子网”))
.build();
add(这个,Tag.getKey(),Tag.getValue(),包括onlysubnets);
}
。。。但我仍然无法在cdk-synth
的CF-yaml中看到任何新标签
任何帮助都将不胜感激 这似乎是目前CDK的一个限制。这是CDK中EKS构造应该解决的问题,但目前还不可能解决,因为CDK部署期间出现警告:
[Warning at /stack/some-project-EKS-cluster] Could not auto-tag private subnets with "kubernetes.io/role/internal-elb=1", please remember to do this manually
出于无法自动完成此操作的相同原因,您不能使用Tag.add()
来完成此操作
由于CDK中的EKS模块仍然是实验/开发预览版,您现在有三个选项:
一个好主意可能是在AWS CDK Github上创建一个问题,并请求将现有子网(以及其他现有结构)标记为一个功能。我在他们的Github上找不到与此相关的其他问题。您可以使用lambda支持的自定义资源自动执行此操作。我不确定CloudFormation是否可以执行此操作?我想这是一个CF问题,而不是CDK。我最后用aws cli作为脚本标记子网。1和2仍然不是我们的选择。