如何为EKS配置Terraform Kubernetes提供程序

时间:2018-07-05 17:56:40

标签: kubernetes terraform amazon-eks

我正在尝试在Terraform中配置kubernetes提供程序,但是到目前为止,我还无法做到这一点。 EKS使用heptio身份验证器,因此我没有可以提供给Kubernetes提供者的证书路径。什么是完成此任务的正确方法?

我已经尝试过这样的事情:

provider "kubernetes" {
  config_context_auth_info = "context1"
  config_context_cluster   = "kubernetes"
}

获取结果:

Error: Error applying plan:

1 error(s) occurred:

* kubernetes_namespace.example: 1 error(s) occurred:

* kubernetes_namespace.example: Post http://localhost/api/v1/namespaces: dial tcp [::1]:80: getsockopt: connection refused

我有一个〜/ .kube / config,我会丢失什么?

2 个答案:

答案 0 :(得分:1)

这种行为可能是由已知的核心错误引起的:core: No interpolation for cross-provider dependencies #12393

Terraform Github上存在一个问题,该问题描述了具有相同错误的类似情况-#12869
它与GKE有关,但我想它也可能会影响EKS。

这里是一个link的要点,并提供了一个使用kubernetes_provider的示例。
它也与GKE有关,但我相信只要稍作更改,它就可以应用于EKS。

请考虑在StackOverflow上检查与您的问题相关的另一个不错的answer
简而言之,解决方案是在第一阶段创建Kubernetes集群,然后在第二阶段创建Kubernetes对象。

答案 1 :(得分:0)

对于使用Terraform的EKS提供程序。

data "aws_region" "current" {}

data "aws_availability_zones" "available" {}

provider "kubernetes" {
  config_context = "aws-test-terraform"
}