使用EKS在Terraform中配置Kubernetes提供程序时,configmap失败

3
我已经按照使用Terraform在AWS创建EKS集群的指南进行了操作。

https://www.terraform.io/docs/providers/aws/guides/eks-getting-started.html

我还将连接到集群的输出复制到了~/.kube/config-eks文件中。我已经验证过这个成功工作,因为我能够连接到集群并手动部署容器。然而,现在我正在尝试使用Terraform Kubernetes提供程序连接到集群,但似乎无法正确配置提供程序。
我已经配置了提供程序使用我的kubectl配置,但是当尝试推送一个简单的configmap时,我会收到以下错误消息:
configmaps被禁止:用户“system:anonymous”不能在名称空间“kube-system”中创建configmaps
我知道提供程序正在获取部分配置,但我似乎无法进行身份验证。我怀疑这是因为EKS使用heptio进行身份验证,而我不确定Terraform使用的K8s Go客户端是否支持heptio。然而,考虑到Terraform在EKS正式发布时发布了他们的AWS EKS支持,我怀疑他们也会更新他们的Terraform提供程序以使其与之配合工作。
现在甚至可能做到这一点吗?有替代方案吗?
1个回答

5

谢谢您的迅速回复。这正是我正在寻找并尝试做的事情。我会尝试一下。 - loesak
我认为这可能会让我朝着正确的方向前进。我看到提出的解决方法唯一的问题是,提供程序不等待集群创建完成,因此在初始执行时失败,因为无法获取令牌。我可能需要将我的配置分开一点,以逐步使其工作。就我目前所看到的情况而言,当资源创建的输出是另一个提供程序的依赖项时,Terraform 没有办法创建所有内容。更多信息请参见:https://github.com/hashicorp/terraform/issues/2430 - loesak
1
也许 depends_on 可以帮助您解决增量配置问题。首先创建第一个资源,然后获取令牌。这只是一个想法,没有测试过。 - Bastian

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接