首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >具有kubectl的YAML占位符

具有kubectl的YAML占位符
EN

Stack Overflow用户
提问于 2022-05-20 17:30:19
回答 1查看 234关注 0票数 0

我在deployment.yaml中使用下面的模板

代码语言:javascript
复制
apiVersion: v1
kind: Service
metadata:
  name: httpbin-diffy
  labels:
    app: httpbin-diffy
  namespace: {{ Values.namespace.name }}

和使用单独的values.yaml

代码语言:javascript
复制
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)}

我哪里出问题了?

EN

回答 1

Stack Overflow用户

发布于 2022-05-20 20:36:48

Go模板语言values.yaml一起使用是掌舵的一个特性,它不是Kubernetes固有的。如果您想要创建一个模板化的deployment.yaml文件,您可以在发送到kubectl之前使用sed这样的本地工具进行查找和替换,或者可以使用yq进行更易于识别的替换工具。

代码语言:javascript
复制
$ 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 -

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72322737

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档