kubernetes-helm - 如何创建一个模板依赖于另一个模板的舵图
问题描述
我正在尝试创建一个基于此处给出的示例创建 nfs 的 kubernetes 图表:
https://medium.com/platformer-blog/nfs-persistent-volumes-with-kubernetes-a-case-study-ce1ed6e2c266
这样做的问题是它需要我们创建一个服务,然后我们创建一个引用服务的集群 ip 的持久卷(在服务部署之前我不会知道。
我最初认为我可以使用模板以某种方式调用 kubectl 来查询集群 ip,但据我所知,您不能从 helm 模板中运行 CLI?
如果是这种情况,我真的很难看到 helm 的用处,因为许多设置需要创建一个资源,然后从不同的资源引用它的动态属性?我知道我可以通过将图表一分为二来解决这个问题,但我对 helm 的理解是图表应该包含部署应用程序功能部分所需的一切?
这是我模板中的相关片段:
apiVersion: v1
kind: Service
metadata:
name: {{ .Values.prefix }}-{{ .Values.appName }}-nfs
spec:
ports:
- name: nfs
port: 2049
- name: mountd
port: 20048
- name: rpcbind
port: 111
selector:
role: {{ .Values.prefix }}-{{ .Values.appName }}-nfs
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: {{ .Values.prefix }}-{{ .Values.appName }}-nfs
spec:
capacity:
storage: 10Gi
accessModes:
- ReadWriteMany
nfs:
server: << nfs.clusterip >>
path: "/"
注意:持久卷末尾的 << nfs.clusterip >> 字段。
解决方案
推荐阅读
- c - 在C中打印每个元素具有相同数量字符的矩阵
- javascript - 如何在 HTML 中以断线显示输出?
- mysql - 未知的存储引擎“内存”
- java - java imageIO中的压缩质量和图像文件大小之间有什么关系吗?
- mfc - 销毁 CMFCMenuBar 和 CMFCToolBar 并重新创建它们的正确方法是什么?
- python - 基于分组列的多列之间具有相关性的DataFrame
- amazon-web-services - AWS Elastic Beanstalk,将默认环境转换为 https
- c# - 如何检查 int 是否在列表中出现 3 次?
- java - 动态 JPA 查询:“找不到属性”
- c# - winform应用程序设计界面打不开