Kubectl 缺少 Terraform Cloud 形式
Kubectl missing form Terraform Cloud
我正在使用 Terraform Cloud 提供一些 k8s 基础设施。
我面临的问题是 kubernetes 的 terraform 提供程序没有 yaml 文件的灵活性。我需要使用 kubectl apply
运行 一些 yaml 文件 当我们从本地机器 运行 时这没问题,但是当它来自 Terraform 云时它会出错
kubectl is not installed
有办法解决吗?
可能在 terraform cloud 上安装 kubectl
提前致谢
您可以使用带有 local_exec
配置器的 null_resource
下载 kubectl
二进制文件:
resource "null_resource" "custom" {
# change trigger to run every time
triggers = {
build_number = "${timestamp()}"
}
# download kubectl
provisioner "local-exec" {
command = "curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl && chmod +x kubectl"
}
# run kubectl
provisioner "local-exec" {
command = "./kubectl apply -f deployment.yaml"
}
}
当然您还必须为 kubectl
提供目标 settings/credentials,但这取决于您的集群提供商,例如在 AKS 上您会 运行 az aks get-credentials
在使用 kubectl
.
之前
我正在使用 Terraform Cloud 提供一些 k8s 基础设施。
我面临的问题是 kubernetes 的 terraform 提供程序没有 yaml 文件的灵活性。我需要使用 kubectl apply
运行 一些 yaml 文件 当我们从本地机器 运行 时这没问题,但是当它来自 Terraform 云时它会出错
kubectl is not installed
有办法解决吗?
可能在 terraform cloud 上安装 kubectl
提前致谢
您可以使用带有 local_exec
配置器的 null_resource
下载 kubectl
二进制文件:
resource "null_resource" "custom" {
# change trigger to run every time
triggers = {
build_number = "${timestamp()}"
}
# download kubectl
provisioner "local-exec" {
command = "curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl && chmod +x kubectl"
}
# run kubectl
provisioner "local-exec" {
command = "./kubectl apply -f deployment.yaml"
}
}
当然您还必须为 kubectl
提供目标 settings/credentials,但这取决于您的集群提供商,例如在 AKS 上您会 运行 az aks get-credentials
在使用 kubectl
.