我在deployment.yaml中使用下面的模板
apiVersion: v1
kind: Service
metadata:
name: httpbin-diffy
labels:
app: httpbin-diffy
namespace: {{ Values.namespace.name }}和使用单独的values.yaml
namespace:
name: diffy当我运行kubectl apply -f Deployment.yaml时
我得到了以下错误。
error: error parsing Deployment.yaml: error converting YAML to JSON: yaml: invalid map key: map[interface {}]interface {}{"Values.namespace.name":interface {}(nil)}
我哪里出问题了?
发布于 2022-05-20 20:36:48
将Go模板语言与values.yaml一起使用是掌舵的一个特性,它不是Kubernetes固有的。如果您想要创建一个模板化的deployment.yaml文件,您可以在发送到kubectl之前使用sed这样的本地工具进行查找和替换,或者可以使用yq进行更易于识别的替换工具。
$ cat deployment.yml
apiVersion: v1
kind: Service
metadata:
name: httpbin-diffy
labels:
app: httpbin-diffy
namespace: PLACEHOLDER
$ yq '.metadata.namespace = "NAMESPACE_VALUE"' deployment.yml
apiVersion: v1
kind: Service
metadata:
name: httpbin-diffy
labels:
app: httpbin-diffy
namespace: NAMESPACE_VALUE该文件既可以写入文件系统并与kubectl apply -f一起应用,也可以从stdin读取。
$ yq '.metadata.namespace = "NAMESPACE_VALUE"' deployment.yml | kubectl apply -f -
https://stackoverflow.com/questions/72322737
复制相似问题