【问题标题】:Error while installing Helm chart using Terraform helm provider使用 Terraform helm 提供程序安装 Helm 图表时出错
【发布时间】:2019-11-13 11:41:38
【问题描述】:

我正在尝试使用以下 terraform 脚本通过 Terraform Helm Provider 安装 helm chart

我已经成功使用 Kubernetes 提供者部署了一些 k8s 资源,但它不适用于 Helm

terraform v0.11.13

provider.helm v0.10

provider.kubernetes v1.9

provider "helm" {
  alias           = "prdops"
  service_account = "${kubernetes_service_account.tiller.metadata.0.name}"
  namespace       = "${kubernetes_service_account.tiller.metadata.0.namespace}"

kubernetes {
 host                   = "${google_container_cluster.prdops.endpoint}"
 alias                  = "prdops"
 load_config_file       = false
 username = "${google_container_cluster.prdops.master_auth.0.username}"
 password = "${google_container_cluster.prdops.master_auth.0.password}"
 client_certificate     = "${base64decode(google_container_cluster.prdops.master_auth.0.client_certificate)}"
 client_key             = "${base64decode(google_container_cluster.prdops.master_auth.0.client_key)}"
 cluster_ca_certificate = "${base64decode(google_container_cluster.prdops.master_auth.0.cluster_ca_certificate)}"
}

}

resource "kubernetes_service_account" "tiller" {
  provider = "kubernetes.prdops"
  metadata {
    name      = "tiller"
    namespace = "kube-system"
  }
}


resource "kubernetes_cluster_role_binding" "tiller" {
  provider = "kubernetes.prdops"
  metadata {
    name = "tiller"
  }

  role_ref {
    api_group = "rbac.authorization.k8s.io"
    kind      = "ClusterRole"
    name      = "tiller"
 }
  subject {
    kind      = "ServiceAccount"
    name      = "${kubernetes_service_account.tiller.metadata.0.name}"
    namespace = "${kubernetes_service_account.tiller.metadata.0.namespace}"
    api_group = ""
  }
}


resource "helm_release" "jenkins" {
  provider = "helm.prdops"
  name      = "jenkins"
  chart     = "stable/jenkins"
}

但我收到以下错误

  1 error(s) occurred:

* helm_release.jenkins: 1 error(s) occurred:

* helm_release.jenkins: rpc error: code = Unknown desc = configmaps is forbidden: User "system:serviceaccount:kube-system:default" cannot list configmaps in the namespace "kube-system"

【问题讨论】:

    标签: terraform kubernetes-helm terraform-provider-gcp


    【解决方案1】:

    Helm 使用了一个称为 tiller 的服务器组件(在 Helm v2 中,他们在新的 Helm v3 中摆脱了它)。为了使 helm 运行,为 tiller 分配了一个服务帐户以与 Kubernetes API 进行交互。在这种情况下,tiller的服务帐户似乎没有足够的权限来执行操作。

    【讨论】:

      【解决方案2】:

      请检查 tiller pod 是否在 kube-system 命名空间中运行。如果不重新安装 helm 并执行 helm init 以使分蘖 pod 出现,我希望这个问题能够得到解决。

      【讨论】:

        猜你喜欢
        • 2020-05-06
        • 2020-04-21
        • 2020-01-25
        • 2020-12-04
        • 2019-08-13
        • 2021-10-08
        • 2022-06-28
        • 2020-02-19
        • 2021-09-10
        相关资源
        最近更新 更多