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

How to evaluate a field within a scope?

王林
Release: 2024-02-09 08:30:19
forward
1126 people have browsed it

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
Copy after login

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 }}
Copy after login

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}}
Copy after login

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!

source:stackoverflow.com
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template