我有以下 .tf 文件
provider "kubernetes" {
config_context_cluster = "minikube"
}
resource "kubernetes_namespace" "user-namespace" {
metadata {
name = "user-namespace"
}
}
provider "helm" {
kubernetes {
config_context_cluster = "minikube"
}
}
resource "helm_release" "local" {
name = "user-server-chart"
chart = "./user-server"
}
运行 terraform apply
时出现以下错误
kubernetes_namespace.brw-user-namespace:正在创建... helm_release.local:正在创建...
错误代码解释:501 = 服务器不支持此操作。\n") 已阻止请求成功(发布命名空间) │ │ 与 kubernetes_namespace.user-namespace, │ 在 main.tf 第 5 行,在资源“kubernetes_namespace”“user-namespace”中: │ 5: 资源 "kubernetes_namespace" "user-namespace" { │ ╵
Kubernetes 集群无法访问:无效配置:未提供任何配置,请尝试设置 KUBERNETES_MASTER 环境变量 │ │ 与 helm_release.local, │ 在 main.tf 第 17 行,在资源“helm_release”“local”中: │ 17:资源“helm_release”“本地”{
答案 0 :(得分:0)
第 1 步:kubeconfig 没有正确的上下文,并在您的 ~/.bashrc 文件中添加一行 kubeconfig
kubectl config set-context ~/.kube/kubeconfig1.yml
kubectl config use-context ~/.kube/kubeconfig1.yml
或 导出 KUBECONFIG=~/.kube/
第 2 步:可以使用其命名空间和名称导入 Helm Release 资源 例如terraform import helm_release.example default/example-name 由于存储库属性不会被 helm 继续作为元数据,因此默认情况下不会将其设置为任何值。所有其他提供者特定属性将设置为其默认值,并且可以在使用资源定义配置运行 apply 后覆盖它们。
您可以参考文档 [1] [2] 了解更多信息。 [1] https://registry.terraform.io/providers/hashicorp/helm/latest/docs/resources/release [2] https://registry.terraform.io/providers/hashicorp/kubernetes/latest/docs