Terragrunt部署Kubernetes-addons模块时EKS数据源报错问题
解决Terragrunt部署Kubernetes-addons模块时的EKS数据源报错问题
问题根源
你的dependency "eks"块中配置了mock_outputs,其中eks_cluster_id设为了假值something。而kubernetes-addons模块内的data.aws_eks_cluster.eks_cluster会尝试调用AWS API查询这个不存在的集群,因此触发"couldn't find resource"错误。
解决方案
移除mock_outputs配置
既然你已经成功创建了EKS集群,无需再用假的mock值占位。修改后的dependency块如下:dependency "eks" { config_path = "../eks" }Terragrunt会自动从
../eks目录的EKS模块读取真实的输出值。验证EKS模块的输出配置
确保../eks目录的Terraform代码(或Terragrunt关联的模块)正确输出了所需字段,示例outputs.tf配置:output "cluster_id" { value = module.eks.cluster_id } output "eks_cluster_endpoint" { value = module.eks.cluster_endpoint } output "eks_oidc_provider" { value = module.eks.oidc_provider }按顺序重新部署
- 先确认
../eks目录已执行terragrunt apply完成EKS集群部署 - 切换到kubernetes-addons目录,执行
terragrunt plan或terragrunt apply,此时数据源会使用EKS集群的真实信息,成功完成查询。
- 先确认
补充说明
如果是首次全链路部署(未预先创建EKS集群),Terragrunt会根据dependency配置自动先部署EKS模块,再部署addons模块,无需设置mock_outputs——mock仅适用于不需要真实资源存在的临时场景,而addons模块依赖真实的EKS集群资源,因此不能用假值mock。
内容的提问来源于stack exchange,提问作者Tomer Leibovich
相关产品推荐
相关产品推荐

