我有一个非常简单的用例,我正在尝试使用 terraform 的 HCP 运行 kubectl 命令
resource "null_resource" "meta_create_namespace_and_secret" {
provisioner "local-exec" {
command = "kubectl create namespace meta && kubectl create secret generic minio -n meta --from-literal=rootUser=ck_infra_admin --from-literal=rootPassword=f23ff2#DcejC:d"
}
# adding static trigger to run this only once
triggers = {
always_run = "true"
}
}
我收到以下错误
Executing: ["/bin/sh" "-c" "kubectl create namespace meta && kubectl create secret generic minio -n meta --from-literal=rootUser=ck_infra_admin --from-literal=rootPassword=f23ff2#DcejC:d"]
/bin/sh: 1: kubectl: not found
我知道我可以使用 kubectl manifest 提供程序来完成此操作,但是有没有办法仅使用命令来完成此操作?
kubectl
默认情况下未安装在 HashiCorp 云平台上,可以借助 terraform 添加null_resource
,或者terraform_data
(后者是首选)。或者
我可以向您展示两种使用 terraform 创建 kubernetes 组件的方法
第一种方法:
您可以使用此提供程序 kubectl terraform 提供程序
您需要将此块添加到您的providers.tf文件中
配置提供程序后,您只需创建一个名为 secret.yml 的文件,例如,我们将在其中填充以下内容:
为了部署到 secret.yml 文件,你只需要添加包含以下文件的文件名 secret.tf
最后运行:
第二种方法: 你可以使用此提供程序 kubernetes terraform 提供程序
您需要将此块添加到您的 provider.tf 文件中
创建一个名为 secret.tf 的文件并复制此配置,以防你想知道我在哪里找到这个配置
如果你想知道我在哪里找到这个配置 Kubernetes secret terraform