带有 EKS 的 Terraform Kubernetes 提供程序在 configmap 上失败
Terraform Kubernetes provider with EKS fails on configmap
我已按照说明使用 Terraform 在 AWS 中创建 EKS 集群。
https://www.terraform.io/docs/providers/aws/guides/eks-getting-started.html
我还将连接到集群的输出复制到 ~/.kube/config-eks。我已经验证这成功地工作,因为我已经能够连接到集群并手动部署容器。但是,现在我正在尝试使用 Terraform Kubernetes 提供程序连接到集群,但似乎无法正确配置提供程序。
我已将提供者配置为使用我的 kubectl 配置,但在尝试推送一个简单的 configmap 时,我收到一条错误消息,说明如下:
configmaps is forbidden: User "system:anonymous" cannot create configmaps in the namespace "kube-system"
我知道提供商正在获取部分配置,但我似乎无法对其进行身份验证。我怀疑这是因为 EKS 使用 heptio 进行身份验证,我不确定 Terraform 使用的 K8s Go 客户端是否支持 heptio。但是,考虑到 Terraform 在 EKS 正式发布时发布了他们的 AWS EKS 支持,我怀疑他们不会也更新他们的 Terraform 提供商来使用它。
现在甚至可以这样做吗?有其他选择吗?
此处添加了执行身份验证:https://github.com/kubernetes/client-go/commit/19c591bac28a94ca793a2f18a0cf0f2e800fad04
这是用于自定义身份验证插件的内容,已于 2 月 7 日发布。
现在,Terraform 不支持新的基于 exec 的身份验证提供程序,但是有一个解决方法未解决:https://github.com/terraform-providers/terraform-provider-kubernetes/issues/161
也就是说,如果我有空闲时间,我会进行 PR。
我已按照说明使用 Terraform 在 AWS 中创建 EKS 集群。
https://www.terraform.io/docs/providers/aws/guides/eks-getting-started.html
我还将连接到集群的输出复制到 ~/.kube/config-eks。我已经验证这成功地工作,因为我已经能够连接到集群并手动部署容器。但是,现在我正在尝试使用 Terraform Kubernetes 提供程序连接到集群,但似乎无法正确配置提供程序。
我已将提供者配置为使用我的 kubectl 配置,但在尝试推送一个简单的 configmap 时,我收到一条错误消息,说明如下:
configmaps is forbidden: User "system:anonymous" cannot create configmaps in the namespace "kube-system"
我知道提供商正在获取部分配置,但我似乎无法对其进行身份验证。我怀疑这是因为 EKS 使用 heptio 进行身份验证,我不确定 Terraform 使用的 K8s Go 客户端是否支持 heptio。但是,考虑到 Terraform 在 EKS 正式发布时发布了他们的 AWS EKS 支持,我怀疑他们不会也更新他们的 Terraform 提供商来使用它。
现在甚至可以这样做吗?有其他选择吗?
此处添加了执行身份验证:https://github.com/kubernetes/client-go/commit/19c591bac28a94ca793a2f18a0cf0f2e800fad04
这是用于自定义身份验证插件的内容,已于 2 月 7 日发布。
现在,Terraform 不支持新的基于 exec 的身份验证提供程序,但是有一个解决方法未解决:https://github.com/terraform-providers/terraform-provider-kubernetes/issues/161
也就是说,如果我有空闲时间,我会进行 PR。