2017-10-16 84 views
0

我为Google容器引擎配置了terraform,并且还使用了terraform Kubernetes提供程序。我有私人回购的一些码头图像,我喜欢使用kubernetes提供程序来拉,但我有一些困难,使用image_pull_secrets。Terraform GCE和kubernetes

resource "kubernetes_service_account" "example" { 
    metadata { 
    name = "terraform-example" 
    } 
    secret { 
    name = "${kubernetes_secret.example.metadata.0.name}" 
    } 
} 

resource "kubernetes_secret" "example" { 
    metadata { 
    name = "terraform-example" 
    } 
} 

我想知道我应该使用什么image_pull_secrets。

resource "kubernetes_replication_controller" "xxx-rest-client" { 
    metadata { 
     name = "xxx-rest-client" 
     labels { 
     app = "xxx-rest-client" 
     } 
    } 
    spec { 
     replicas = 2 
     selector { 
     name = "xxx-rest-client" 
     } 
     template { 
     image_pull_secrets = ["${kubernetes_service_account.example.UNKNOWN}"] 
     container { 
      image    = "test/xxx-rest-client" 
      name    = "xxx-rest-client" 
      //port = ["3128"] 

      resources{ 
      limits{ 
       cpu = "1.0" 
       memory = "512Mi" 
      } 
      requests{ 
       cpu = "250m" 
       memory = "50Mi" 
      } 
      } 
     } 
     } 
    } 
    depends_on = ["google_container_cluster.xxx"] 
    } 
+0

当我使用image_pull_secrets = “$ {} kubernetes_service_account.example.default_secret_name”]我会得到这个错误:1个错误发生了: * kubernetes_replication_controller.XXX:“spec.0.template.0.image_pull_secrets .0.name“:未设置必填字段 – benjaminbutton

回答

0

拉秘密列表的每个元素都需要是一个映射。

image_pull_secrets = [ 
    { 
    name = "${kubernetes_service_account.example.default_secret_name}" 
    } 
] 

给一个尝试,它应该为你工作。