首页 > 解决方案 > 如何创建一个模板依赖于另一个模板的舵图

问题描述

我正在尝试创建一个基于此处给出的示例创建 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 >> 字段。

标签: kubernetes-helm

解决方案


推荐阅读