Terraform kubectl提供程序清单到特定命名空间



我正在学习如何将kubectl部署转换为地形。我目前面临的问题是,一旦我指定了一个命名空间,就可以让服务按预期与地形提供程序kubectl一起工作。

我已经确认,在对默认的namespace执行等效的kubectl apply时,地形脚本可以工作。

在地形中,使用kubectl提供程序到apply -n namespace的正确方法是什么?

我尝试过的两种不同方法是:

resource "kubectl_manifest" "example" {
override_namespace = kubernetes_namespace_v1.namespace.metadata[0].name
yaml_body = file("${path.cwd},deploy.yaml")
}

还有:

resource "kubectl_manifest" "example" {
yaml_body = file("${path.cwd},deploy.yaml")
}

将名称空间添加到deploy.yaml:

apiVersion: apps/v1
kind: Deployment
metadata:
name: example
namespace: namespace
...
---
apiVersion: v1
kind: Service
metadata:
name: example
namespace: namespace

然后,当我试图通过确认服务按预期运行时

kubectl logs example-6878fd468-9vgkm

来自服务器的错误(NotFound(:pods"示例-6878fd468-9vgkm";未找到

您的地形描述很好。您还需要为kubectl logs命令指定-n开关,以便在正确的命名空间中检测pod。

kubectl logs example-6878fd468-9vgkm -nexample

相关内容

  • 没有找到相关文章

最新更新