apiVersion: v1 kind: ConfigMap metadata: name: {{ .Release.Name }}-snapdrop annotations: "helm.sh/resource-policy": keep data: PUID: "1000" PGID: "1000" TZ: Etc/UTC --- apiVersion: apps/v1 kind: Deployment metadata: name: {{ .Release.Name }} spec: selector: matchLabels: app.kubernetes.io/name: snapdrop strategy: type: Recreate template: metadata: labels: app.kubernetes.io/name: snapdrop spec: containers: - name: snapdrop image: {{ .Values.snapdrop.image }} ports: - containerPort: 80 name: http envFrom: - configMapRef: name: {{ .Release.Name }}-snapdrop volumeMounts: - mountPath: /config name: config resources: requests: memory: "1Gi" cpu: "1m" limits: memory: "4Gi" cpu: "4" volumes: - name: config persistentVolumeClaim: claimName: {{ .Release.Name }}-config --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: {{ .Release.Name }}-config annotations: "helm.sh/resource-policy": keep spec: storageClassName: zfs-iscsi-enc0 accessModes: - ReadWriteOnce resources: requests: storage: 8Gi --- apiVersion: v1 kind: Service metadata: name: {{ .Release.Name }} spec: type: ClusterIP selector: app.kubernetes.io/name: snapdrop ports: - name: http protocol: TCP port: 80 targetPort: http --- apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: {{ .Release.Name }} annotations: cert-manager.io/cluster-issuer: letsencrypt kubernetes.io/ingress.class: nginx nginx.ingress.kubernetes.io/proxy-body-size: "0" nginx.org/client-max-body-size: "0" spec: rules: - host: {{ .Values.snapdrop.domain }} http: paths: - path: / pathType: Prefix backend: service: name: snapdrop port: name: http tls: - hosts: - {{ .Values.snapdrop.domain }} secretName: snapdrop-tls-cert