首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >防止Terraform模块使用默认kubeconfig

防止Terraform模块使用默认kubeconfig
EN

Stack Overflow用户
提问于 2019-11-14 16:01:26
回答 1查看 161关注 0票数 0

我正在尝试创建一些可重用的Terraform模块,这些模块在集群上提供Kubernetes资源。我的模块没有显式配置Kubernetes提供程序,期望由"root“模块创建已配置的提供程序。我相信这与Terraform最佳实践是一致的。

但是,如果根模块“忘记”提供已配置的Kubernetes提供程序,那么Terraform在默认情况下将提供一个,并且使用当前在执行用户的kubeconfig中配置的任何上下文的默认行为。如果用户没有注意到,他们可能会无意中修改错误集群上的资源。

是否有办法防止这种行为,并有效地说“您必须显式地传入提供程序才能使用此模块”?

EN

回答 1

Stack Overflow用户

发布于 2019-11-14 16:01:26

我提出的最佳选择是在模块中创建一个Kubernetes提供程序,如下所示:

代码语言:javascript
复制
# Prevents this module from loading a default context from local kubeconfig when calling module forgets to define a Kubernetes provider
provider "kubernetes" {
  load_config_file = false
}

然后,只要调用模块提供不同的实例,例如:

代码语言:javascript
复制
provider "kubernetes" {
  # properly configure stuff here
}

module "my-module" {
  source              = "blah"
  providers = {
    kubernetes = kubernetes
  }
  etc.
}

您可以避免意外地使用默认提供程序。

这很好,但在你习惯了这种模式之前,有些不明显。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58860996

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档