Skip to content

Commit 75847a7

Browse files
MauAraujoGilad KGKestenbergd-g-townyosefmih
authored
persistent disk charts (#1606)
* fix * fix * oops * fix * Update values.yaml (#1599) * feat: adds a persistent disk helm chart to install efs persistent storage (#1578) * wip * save progress * add a pd chart * fix newlines --------- Co-authored-by: Mauricio Araujo <[email protected]> * Add helper to display volumeMounts (#1605) --------- Co-authored-by: Gilad K <[email protected]> Co-authored-by: Gilad <[email protected]> Co-authored-by: d-g-town <[email protected]> Co-authored-by: Yosef Mihretie <[email protected]>
1 parent e476bfa commit 75847a7

File tree

7 files changed

+89
-3
lines changed

7 files changed

+89
-3
lines changed

Tiltfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,7 @@ local_resource(
8484
helm cm-push addons/porter-agent local && \
8585
helm cm-push addons/karpenter local && \
8686
helm cm-push addons/tailscale-operator local && \
87+
helm cm-push addons/persistent-disk local && \
8788
helm repo update local
8889
''',
8990
deps=[

addons/persistent-disk/Chart.yaml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
apiVersion: v2
2+
name: persistent-disk
3+
description: A Helm chart for creating a persistent disk via a StorageClass, PV, and PVC, backed by Cloud Provider disks.
4+
type: application
5+
version: 0.1.0
6+
appVersion: "0.1.0"
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
{{- if .Values.storageClass.efs.enabled -}}
2+
apiVersion: v1
3+
kind: PersistentVolumeClaim
4+
metadata:
5+
name: {{ .Release.Name }}
6+
namespace: {{ .Release.Namespace }}
7+
labels:
8+
porter.run/addon-name: {{ .Release.Name }}
9+
porter.run/addon-type: persistent-disk
10+
{{- with .Values.labels }}
11+
{{- toYaml . | nindent 4 }}
12+
{{- end }}
13+
annotations:
14+
{{- with .Values.annotations }}
15+
{{- toYaml . | nindent 4 }}
16+
{{- end }}
17+
spec:
18+
accessModes:
19+
{{- toYaml .Values.persistentVolumeClaim.accessModes | nindent 4 }}
20+
resources:
21+
requests:
22+
storage: {{ .Values.persistentVolumeClaim.requestStorage }}
23+
storageClassName: {{ .Release.Name }}
24+
{{- end }}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
{{- $scName := .Values.storageClass.name | default (printf "pd-sc-%s" .Release.Name) -}}
2+
apiVersion: storage.k8s.io/v1
3+
kind: StorageClass
4+
metadata:
5+
name: {{ .Release.Name }}
6+
labels:
7+
porter.run/addon-name: {{ .Release.Name }}
8+
porter.run/addon-type: persistent-disk
9+
{{- with .Values.labels }}
10+
{{- toYaml . | nindent 4 }}
11+
{{- end }}
12+
annotations:
13+
{{- with .Values.annotations }}
14+
{{- toYaml . | nindent 4 }}
15+
{{- end }}
16+
{{- if .Values.storageClass.efs.enabled }}
17+
reclaimPolicy: {{ .Values.storageClass.reclaimPolicy }}
18+
volumeBindingMode: {{ .Values.storageClass.volumeBindingMode }}
19+
provisioner: {{ .Values.storageClass.efs.provisioner }}
20+
parameters:
21+
directoryPerms: {{ .Values.storageClass.directoryPerms | quote }}
22+
reuseAccessPoint: {{ .Values.storageClass.reuseAccessPoint | quote }}
23+
fileSystemId: {{ .Values.storageClass.efs.fileSystemId | quote }}
24+
provisioningMode: {{ .Values.storageClass.efs.provisioningMode | quote }}
25+
{{- end }}

addons/persistent-disk/values.yaml

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
labels: {}
2+
3+
annotations: {}
4+
5+
storageClass:
6+
reclaimPolicy: "Retain"
7+
volumeBindingMode: "Immediate"
8+
directoryPerms: "777"
9+
reuseAccessPoint: "true"
10+
efs:
11+
enabled: true
12+
fileSystemId: ""
13+
provisioningMode: "efs-ap"
14+
provisioner: efs.csi.aws.com
15+
16+
persistentVolumeClaim:
17+
requestStorage: "5Gi"
18+
accessModes:
19+
- ReadWriteMany

applications/job/templates/_helpers.tpl

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,4 +102,16 @@ For backwards compatibility, this concatenates targets from cloudsql.connectionN
102102
{{- end -}}
103103

104104
{{- end }}
105-
{{- end }}
105+
{{- end }}
106+
107+
{{/*
108+
Return true if volumeMounts should be rendered in the main container
109+
110+
*/}}
111+
{{- define "job.shouldRenderVolumeMounts" -}}
112+
{{- if or .Values.pvc.enabled .Values.multiplePvc.enabled (and .Values.fileSecretMounts .Values.fileSecretMounts.enabled) -}}
113+
true
114+
{{- else -}}
115+
false
116+
{{- end -}}
117+
{{- end -}}

applications/job/templates/cronjob.yaml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -169,7 +169,7 @@ spec:
169169
{{- end }}
170170
{{- end }}
171171
{{- end }}
172-
{{ if and .Values.fileSecretMounts .Values.fileSecretMounts.enabled }}
172+
{{- if include "job.shouldRenderVolumeMounts" . }}
173173
volumeMounts:
174174
{{ range .Values.fileSecretMounts.mounts }}
175175
- name: {{ .mountPath }}
@@ -178,7 +178,6 @@ spec:
178178
{{ end }}
179179
{{ end }}
180180
{{ if .Values.pvc.enabled }}
181-
volumeMounts:
182181
- name: "{{ include "docker-template.fullname" . }}-storage"
183182
mountPath: {{ .Values.pvc.mountPath }}
184183
{{ end }}

0 commit comments

Comments
 (0)