使用Terraform在 null_resource 下使用local-exec配置程序运行kubectl
时出现以下错误:
退出状态1.输出:错误:打开/Users/myuser/.kube/config.lock:文件存在
因为我正在运行带有计数的 null_resource ,所以看起来Terraforms并行生成了几个kubectl
命令,kubectl
不喜欢这样。
您是否熟悉在local-exec中序列化命令以防止此问题的方法?还有其他想法吗?
答案 0 :(得分:0)
与其运行带有计数的null_resource
,而是使用https://www.terraform.io/docs/providers/template/index.html在var中构建文档或命令,然后执行一次kubectl
。
使用YAML的Kubectl可以一次吃掉多个文档,如果您仅指定资源ID,它们可以在kubectl
后用空格列出。
答案 1 :(得分:0)
将local-exec提供器与null_resource一起使用时,我们发现您可以通过以下方式序列化命令;
function doSomething(value) {
console.log('should be:', value);
const _value = value || Math.random() > 0.5 ? 'foo' : 'bar';
console.log('actually is:', _value);
}
let values = ['foo', 'bar'];
const first = doSomething(values[0]);
const second = doSomething(values[1]);