使用terraform kubernetes提供程序创建命名空间时出错
我正在努力用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
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上的请求(后命名空间){