无法在通过Atlantis(terraform Pull Request Automation)工具运行的terrafo



我已经通过亚特兰蒂斯成功部署了使用Terragrunt的AKS,现在我想设置凭据来与Kubernetes API服务器通信。

为此,我正在设置KUBECONFIG环境变量以使用Kubernetes进行身份验证。

以下是将在亚特兰蒂斯容器中运行的代码,因此我们将在仅通过Terraform代码设置凭据后一键部署pod或helm。

resource "null_resource" "null" {
provisioner "local-exec" {
command = <<-EOT
echo "$(terraform output kube_config)" > ~/.kube/azurek8s # Storing kube config credential file for kube api server authentication
sed -i '1d;$d' ~/.kube/azurek8s # delete 1st and last line from output
EOT
}
provisioner "local-exec" {
command = "export KUBECONFIG=~/.kube/azurek8s" # setting up env variable for kubeconfig
}
provisioner "local-exec" {
command = "env"
}
}

在设置环境变量之后,我添加了env命令来检查是否实际设置了环境变量。

每个local-exec都将在自己的shell环境中执行,因此local-exec的第二次和第三次执行之间没有持久性。

要为local-exec设置环境变量,应该使用environment:

provisioner "local-exec" {
command = "env"
environment = {
KUBECONFIG = "~/.kube/azurek8s"
}

最新更新