我正在尝试在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
}
}
}
}
答案 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