登录
首页 >  Golang >  Go问答

评估特定范围内的场地的方法

来源:stackoverflow

时间:2024-03-24 08:48:36 103浏览 收藏

评估特定范围内的场地方法对于创建自定义 Helm 模板非常重要。本文重点介绍了在创建具有共享 PVC 的多个 Pod 的 Helm 图表时遇到的问题。通过在 values.yml 文件中使用 create 字段,用户可以指定是否为特定卷创建 PVC。本文提供了修改范围的示例,允许 Helm 读取 create 字段并根据其值执行相应的操作。

问题内容

我尝试为许多类似的应用程序创建默认模板,我需要与两个或多个 pod 共享相同的 pvc,并且需要修改图表以创建而不是 pvc(如果已经存在)。

这是我在values.yml中关于卷的部分:

persistence:
  enabled: true

volumemounts:
  - name: vol1
    mountpath: /opt/vol1
  - name: vol2
    mountpath: /opt/vol2

volumes:
  - name: vol1
    create: true
    claimname: claim-vol1
    storageclassname: gp2
    accessmodes: readwriteonce
    storage: 1gi
  - name: vol2
    create: false
    claimname: claim-vol2
    storageclassname: gp2
    accessmodes: readwriteonce
    storage: 1gi

这是我的 pvclaim.yml:

{{- if .Values.persistence.enabled }}
{{- if .Values.volumes.create }}
{{- range .Values.volumes }}
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: {{ .claimName }}
spec:
  storageClassName: {{ .storageClassName }}
  accessModes:
    - {{ .accessModes }}
  resources:
    requests:
      storage: {{ .storage }}
{{- end }}
{{- end }}
{{- end }}

我想我应该将字段 create 添加到 volumes 的范围中来管理 pvc 的创建(假设在本例中 pvc vol2 已经存在于其他 helm 图表中)。

如果可能的话,我希望 helm 读取范围内的 create 字段,这样我会收到错误: evaluate 字段在类型接口 {}

中创建

如果您有任何其他想法,欢迎提出,谢谢!


正确答案


volumes 是一个数组,它没有 create 字段。

卷的

元素具有该字段。所以 .values.volumes.create 没有任何意义。在 range 内,您可以使用 .create 检查元素的 create 字段,例如

{{- range .Values.volumes }}
    {{if .create}}do something here{{end}}
{{- end}}

文中关于的知识介绍,希望对你的学习有所帮助!若是受益匪浅,那就动动鼠标收藏这篇《评估特定范围内的场地的方法》文章吧,也可关注golang学习网公众号了解相关技术文章。

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>