为什么我的Terraform无法与minikube一起使用?

时间:2020-06-18 08:13:20

标签: terraform

我正在尝试在minikube中使用Terraform来启动Pod。运行terraform Error Image时,出现错误,“ zip:无效的zip文件”。

provider "kubernetes" {
  config_context_cluster = "minikube"
}
resource "kubernetes_pod" "echo" {
  metadata {
    name = "echo-example"
    labels {
      App = "echo"
  } }
  spec {
    container {
      image = "hashicorp/http-echo:0.2.1"
      name  = "example2"
      args = ["-listen=:80", "-text='Hello World'"]
      port {
        container_port = 80
} 
}
}
}

1 个答案:

答案 0 :(得分:0)

有很多类似的情况。例如this问题 您需要将各个tf文件移动到它们自己的目录中,然后可以将terraform指向该目录。

plan命令仅接受目录,apply命令将仅获取整个目录或计划输出文件(在计划中使用-out)。我认为此限制是由于terraform每个计划都需要一个状态文件这一事实造成的。这是我设置terraform项目的方式,请注意secrets.tfvars和terraform.tfvars在这两个terraform计划之间很常见。

$ tree
.
├── 1-base
│   ├── provider.tf
│   ├── backend.tf
│   └── core.tf
├── 2-k8s
│   ├── 1-k8s.tf
│   ├── 2-helm.tf
│   ├── apps
│   ├── provider.tf
│   ├── backend.tf
│   ├── chart-builds
│   └── charts
├── secrets.tfvars
├── terraform.tfvars
└── todo.md

#From here you can run:

$ terraform init -var-file=secrets.tfvars ./1-base
$ terraform plan -var-file=secrets.tfvars ./1-base