Обязательное значение для persistentVolumeClaim - PullRequest
0 голосов
/ 18 октября 2018

hy folks

я создал файлы yaml для развертывания моего приложения, и теперь я работаю с helm для его автоматического развертывания. Однако, хотя все мои conf-файлы для kubernetes работали.У меня проблема с рулем и PVC.Я проверил в интернете, и я не вижу, где моя ошибка :(

pvc-helm.yaml

{{- if .Values.persistence.enabled }}
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: {{ .Values.persistence.name }}
  namespace: {{ .Values.persistence.namespace }}
  spec:
    accessModes:
    - {{ .Values.persistence.accessModes | quote }}
    resources:
      requests:
        storage: {{ .Values.persistence.size | quote }}
{{- end }}  

values.yaml

persistence:
  enabled: true
  name: ds-pvc
  namespace: ds-svc
  storageClassName: standard
  storageClass: standard
  accessModes:
    - ReadWriteOnce
  size: 20Mi

когда я запускаю команду helm install cas/ --tls я получаю ошибку ниже

Ошибка: сбой выпуска brawny-olm: PersistentVolumeClaim "ds-pvc" недопустим: [spec.accessModes: Обязательное значение: требуется как минимум 1 режим доступа, spec.resources [storage]: Обязательное значение]

Должен ли я также установить PersistentVolume?

Ответы [ 2 ]

0 голосов
/ 22 октября 2018

Если вы хотите иметь необязательные значения, вы должны проверить, были ли они определены

spec:
  {{- if .Values.persistence.accessModes }}
  accessModes:
  - {{ .Values.persistence.accessModes | quote }}
  {{- end }}

другой вариант - определить значение по умолчанию для values.yaml файла

0 голосов
/ 18 октября 2018

На вашем круговом графике есть две проблемы:

1. spec уровень не должен быть ниже уровня metadata.Он не имеет отношения к metadata, поэтому spec находится на том же уровне, что и metadata.

2. Значение persistence.accessModes должно быть определено как строка, а не каксписок.

Правильные файлы:

pvc-helm.yaml

{{- if .Values.persistence.enabled }}
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: {{ .Values.persistence.name }}
  namespace: {{ .Values.persistence.namespace }}
spec:
  accessModes:
  - {{ .Values.persistence.accessModes | quote }}
  resources:
    requests:
      storage: {{ .Values.persistence.size | quote }}
{{- end }}

values.yaml

persistence:
  enabled: true
  name: ds-pvc
  namespace: default
  storageClassName: standard
  storageClass: standard
  accessModes: ReadWriteOnce
  size: 20Mi
...