从terraform运行kubernetes构建

rad*_*led 7 kubernetes terraform

我正在尝试进行一个简单的测试,从terraform在kubernetes上构建一个简单的nginx.这是第一次使用terraform.

这是基本的terraform文件:

provider "kubernetes" {
  host = "https://xxx.xxx.xxx.xxx:8443"

  client_certificate     = "${file("~/.kube/master.server.crt")}"
  client_key             = "${file("~/.kube/master.server.key")}"
  cluster_ca_certificate = "${file("~/.kube/ca.crt")}"

  username = "xxxxxx"
  password = "xxxxxx"

}

resource "kubernetes_service" "nginx" {
  metadata {
    name = "nginx-example"
  }
  spec {
    selector {
      App = "${kubernetes_pod.nginx.metadata.0.labels.App}"
    }
    port {
      port = 80
      target_port = 80
    }

    type = "LoadBalancer"
  }
}

resource "kubernetes_pod" "nginx" {
  metadata {
    name = "nginx-example"
    labels {
      App = "nginx"
    }
  }

  spec {
    container {
      image = "nginx:1.7.8"
      name  = "example"

      port {
        container_port = 80
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

运行terraform apply后,我收到以下错误.

错误:应用计划时出错:

发生1个错误:

  • kubernetes_pod.nginx:发生了1个错误:

  • kubernetes_pod.nginx:服务器要求客户端提供凭据(post pods)

Terraform在面对错误时不会自动回滚.相反,您的Terraform状态文件已使用已成功完成的任何资源进行部分更新.请解决上述错误并再次应用以逐步更改您的基础架构.

我对kubernetes拥有管理员权限,一切正常.但由于某种原因,我收到了这个错误.

我做错了什么?

谢谢

关于@ matthew-l-daniel问题

当我只使用用户名/密码时,我收到此错误:

错误:应用计划时出错:

发生1个错误:

Terraform在面对错误时不会自动回滚.相反,您的Terraform状态文件已使用已成功完成的任何资源进行部分更新.请解决上述错误并再次应用以逐步更改您的基础架构.

我尝试使用服务器名称或服务器IP,每次都得到相同的错误.

使用证书时,我收到了原始帖子中的错误,关于"凭据"

我忘了提到这是一个openshift安装.我不相信它最终会产生任何影响,但我想我应该提一下.

rad*_*led 1

解决方案相当简单,我使用的是 terraform 上 openshift 的主 crt 和密钥。然后我使用 admin crt 和 openshift 的密钥对其进行了测试,它起作用了。