使用terraform kubernetes提供程序创建命名空间时出错

使用terraform kubernetes提供程序创建命名空间时出错,kubernetes,terraform,provider,Kubernetes,Terraform,Provider,我正在努力用kubernetes提供者创建名称空间 这是我正在使用的简单地形代码: provider "kubernetes" { host = "https://ocp-test-1.srv.xxxx.it:8443" username = "admin" password = "admin" load_config_file = "false" # when

我正在努力用kubernetes提供者创建名称空间

这是我正在使用的简单地形代码:

provider "kubernetes" {
  host = "https://ocp-test-1.srv.xxxx.it:8443"

  username = "admin"
  password =  "admin"
  


  load_config_file = "false"    # when you wish not to load the local config file
}
resource "kubernetes_namespace" "gfexample" {
  metadata {
    annotations = {
      name = "exampleannotation"
    }

    labels = {
      mylabel = "labelvalue"
    }

    name = "terraformspace"
  }
}
下面是错误:

kubernetes_namespace.gfexample: Creating...

Error: namespaces is forbidden: User "system:anonymous" cannot create namespaces at the cluster scope: no RBAC policy matched

  on create_nm.tf line 14, in resource "kubernetes_namespace" "gfexample":
  14: resource "kubernetes_namespace" "gfexample" {
欢迎提出任何建议

吉安·菲利波


最后我找到了解决办法:

客户端证书=文件(“/terraform/certificates/admin.crt”) 客户机密钥=文件(“/terraform/certificates/admin.key”) 群集证书=文件(“/terraform/certificates/ca.crt”)


这很有效。我在/etc/origin/master(我正在运行Openshift 3.11)下找到了上面提到的证书。

查看kubernetes terraform provider(),您似乎试图通过设置用户名和密码字段来使用HTTP Basic Auth。您确定您的集群使用了该身份验证方法吗?否则,您需要设置证书字段。我通过浏览器导出了连接到URL的证书,并尝试了:provider“kubernetes”{host=”“client_certificate=file(“/terraform/certificates/certificato.cer”)
code
现在错误是:kubernetes_namespace.gfexample2:创建…错误:服务器当前无法处理create_nm.tf第13行上的请求(post namespace),在资源“kubernetes_namespace”gfexample2:13:资源“kubernetes_namespace”gfexample2{查看kubernetes terraform提供程序(),您似乎试图通过设置用户名和密码字段来使用HTTP Basic Auth。您确定群集使用该Auth方法吗?否则,您需要设置证书字段。我已通过浏览器将证书导出到URL,并尝试:提供程序“kubernetes”{host=”“client_certificate=file(“/terraform/certificates/certificato.cer”)
code
现在错误是:kubernetes_namespace.gfexample2:创建…错误:服务器当前无法处理资源“kubernetes_namespace”gfexample2中create_nm.tf行13上的请求(后命名空间){