我正在学习如何将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