Home  >  Article  >  Backend Development  >  How to evaluate a field within a scope?

How to evaluate a field within a scope?

王林
王林forward
2024-02-09 08:30:191084browse

How to evaluate a field within a scope?

In project management, assessing the scope of the project is a critical task that helps determine the project's feasibility and likelihood of success. Evaluating in-scope sites requires consideration of several factors, including project goals, resource availability, time constraints, cost budgets, and more. During the evaluation process, the project manager needs to conduct detailed analysis and investigation in order to develop reasonable plans and strategies. This article will introduce some methods and techniques for evaluating in-scope fields to help project managers better complete this task.

Question content

I'm trying to create a default template for many similar applications where I need to share the same pvc with two or more pods and need to modify the diagram to create instead of pvc( if already exists).

This is the section I have in values.yml regarding volumes:

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

This is my 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 }}

I think I should add the field create to the scope of volumes to manage the creation of pvc (assuming in this case pvc vol2 already exists in in other helm charts).

If possible, I would like helm to read the create field within the range, so that I would get the error: evaluate fields are created in type interface {}

If you have any other ideas, please feel free to submit them, thank you!

Solution

volumes is an array and it has no create field.

The volume's

element has this field. So .values.volumes.create doesn't make any sense. Within a range you can use .create to check the element's create field, e.g.

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

The above is the detailed content of How to evaluate a field within a scope?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:stackoverflow.com. If there is any infringement, please contact admin@php.cn delete