我有一个Terraform配置,(以及其他资源)在Google Cloud上创建了一个Google Kubernetes Engine集群。我使用kubectl
提供程序为ManagedCertificate和FrontendConfig添加YAML清单,因为这些不是kubernetes或google提供程序的一部分。当从本地机器应用Terraform配置时,这与预期一样有效,但当我尝试在CI管道中执行时,对于两个kubectl_manifest
资源,我都得到以下错误:
Error: failed to create kubernetes rest client for read of resource: Get "http://localhost/api?timeout=32s": dial tcp 127.0.0.1:80: connect: connection refused
字符串
由于我只在CI期间遇到这个问题,我的第一个猜测是服务帐户缺少正确的作用域,但据我所知,所有作用域都存在。非常感谢您的任何建议和想法!
2条答案
按热度按时间sxissh061#
通过将
load_config_file = false
添加到kubectl
提供程序配置修复了该问题。我的提供程序配置现在看起来像这样:字符串
7hiiyaii2#
提供程序试图连接
localhost
,这意味着您需要提供适当的kube-config
文件或在terraform中动态设置它。虽然你没有提到如何设置auth,但这里有两种方法
糟糕的方式
字符串
正确的方式
型
如果群集在同一模块中,则提供程序应
型