397 lines
16 KiB
Smarty
397 lines
16 KiB
Smarty
{{/*
|
|
Expand the name of the chart.
|
|
*/}}
|
|
{{- define "nextcloud.name" -}}
|
|
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
|
|
{{- end -}}
|
|
|
|
{{/*
|
|
Create a default fully qualified app name.
|
|
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
|
|
If release name contains chart name it will be used as a full name.
|
|
*/}}
|
|
{{- define "nextcloud.fullname" -}}
|
|
{{- if .Values.fullnameOverride -}}
|
|
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
|
|
{{- else -}}
|
|
{{- $name := default .Chart.Name .Values.nameOverride -}}
|
|
{{- if contains $name .Release.Name -}}
|
|
{{- .Release.Name | trunc 63 | trimSuffix "-" -}}
|
|
{{- else -}}
|
|
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
|
|
{{- end -}}
|
|
{{- end -}}
|
|
{{- end -}}
|
|
|
|
{{/*
|
|
Create a default fully qualified redis app name.
|
|
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
|
|
*/}}
|
|
{{- define "nextcloud.redis.fullname" -}}
|
|
{{- printf "%s-redis" .Release.Name | trunc 63 | trimSuffix "-" -}}
|
|
{{- end -}}
|
|
|
|
{{/*
|
|
Create chart name and version as used by the chart label.
|
|
*/}}
|
|
{{- define "nextcloud.chart" -}}
|
|
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
|
|
{{- end -}}
|
|
|
|
{{/*
|
|
Create image name that is used in the deployment
|
|
*/}}
|
|
{{- define "nextcloud.image" -}}
|
|
{{- if .Values.image.tag -}}
|
|
{{- printf "%s:%s" .Values.image.repository .Values.image.tag -}}
|
|
{{- else -}}
|
|
{{- printf "%s:%s-%s" .Values.image.repository .Chart.AppVersion .Values.image.flavor -}}
|
|
{{- end -}}
|
|
{{- end -}}
|
|
|
|
|
|
{{- define "nextcloud.ingress.apiVersion" -}}
|
|
{{- if semverCompare "<1.14-0" .Capabilities.KubeVersion.GitVersion -}}
|
|
{{- print "extensions/v1beta1" -}}
|
|
{{- else if semverCompare "<1.19-0" .Capabilities.KubeVersion.GitVersion -}}
|
|
{{- print "networking.k8s.io/v1beta1" -}}
|
|
{{- else -}}
|
|
{{- print "networking.k8s.io/v1" -}}
|
|
{{- end }}
|
|
{{- end -}}
|
|
|
|
|
|
{{/*
|
|
Create environment variables used to configure the nextcloud container as well as the cron sidecar container.
|
|
*/}}
|
|
{{- define "nextcloud.env" -}}
|
|
{{- if .Values.phpClientHttpsFix.enabled }}
|
|
- name: OVERWRITEPROTOCOL
|
|
value: {{ .Values.phpClientHttpsFix.protocol | quote }}
|
|
{{- end }}
|
|
{{- if .Values.internalDatabase.enabled }}
|
|
- name: SQLITE_DATABASE
|
|
value: {{ .Values.internalDatabase.name | quote }}
|
|
{{- else if .Values.mariadb.enabled }}
|
|
- name: MYSQL_HOST
|
|
value: {{ template "mariadb.primary.fullname" .Subcharts.mariadb }}
|
|
- name: MYSQL_DATABASE
|
|
value: {{ .Values.mariadb.auth.database | quote }}
|
|
- name: MYSQL_USER
|
|
valueFrom:
|
|
secretKeyRef:
|
|
name: {{ .Values.externalDatabase.existingSecret.secretName | default (printf "%s-db" .Release.Name) }}
|
|
key: {{ .Values.externalDatabase.existingSecret.usernameKey }}
|
|
- name: MYSQL_PASSWORD
|
|
valueFrom:
|
|
secretKeyRef:
|
|
name: {{ .Values.externalDatabase.existingSecret.secretName | default (printf "%s-db" .Release.Name) }}
|
|
key: {{ .Values.externalDatabase.existingSecret.passwordKey }}
|
|
{{- else if .Values.postgresql.enabled }}
|
|
- name: POSTGRES_HOST
|
|
value: {{ template "postgresql.v1.primary.fullname" .Subcharts.postgresql }}
|
|
- name: POSTGRES_DB
|
|
{{- if .Values.postgresql.auth.database }}
|
|
value: {{ .Values.postgresql.auth.database | quote }}
|
|
{{ else }}
|
|
value: {{ .Values.postgresql.global.postgresql.auth.database | quote }}
|
|
{{- end }}
|
|
- name: POSTGRES_USER
|
|
valueFrom:
|
|
secretKeyRef:
|
|
name: {{ .Values.externalDatabase.existingSecret.secretName | default (printf "%s-db" .Release.Name) }}
|
|
key: {{ .Values.externalDatabase.existingSecret.usernameKey }}
|
|
- name: POSTGRES_PASSWORD
|
|
valueFrom:
|
|
secretKeyRef:
|
|
name: {{ .Values.externalDatabase.existingSecret.secretName | default (printf "%s-db" .Release.Name) }}
|
|
key: {{ .Values.externalDatabase.existingSecret.passwordKey }}
|
|
{{- else }}
|
|
{{- if eq .Values.externalDatabase.type "postgresql" }}
|
|
- name: POSTGRES_HOST
|
|
{{- if .Values.externalDatabase.existingSecret.hostKey }}
|
|
valueFrom:
|
|
secretKeyRef:
|
|
name: {{ .Values.externalDatabase.existingSecret.secretName | default (printf "%s-db" .Release.Name) }}
|
|
key: {{ .Values.externalDatabase.existingSecret.hostKey }}
|
|
{{- else }}
|
|
value: {{ .Values.externalDatabase.host | quote }}
|
|
{{- end }}
|
|
- name: POSTGRES_DB
|
|
{{- if .Values.externalDatabase.existingSecret.databaseKey }}
|
|
valueFrom:
|
|
secretKeyRef:
|
|
name: {{ .Values.externalDatabase.existingSecret.secretName | default (printf "%s-db" .Release.Name) }}
|
|
key: {{ .Values.externalDatabase.existingSecret.databaseKey }}
|
|
{{- else }}
|
|
value: {{ .Values.externalDatabase.database | quote }}
|
|
{{- end }}
|
|
- name: POSTGRES_USER
|
|
valueFrom:
|
|
secretKeyRef:
|
|
name: {{ .Values.externalDatabase.existingSecret.secretName | default (printf "%s-db" .Release.Name) }}
|
|
key: {{ .Values.externalDatabase.existingSecret.usernameKey }}
|
|
- name: POSTGRES_PASSWORD
|
|
valueFrom:
|
|
secretKeyRef:
|
|
name: {{ .Values.externalDatabase.existingSecret.secretName | default (printf "%s-db" .Release.Name) }}
|
|
key: {{ .Values.externalDatabase.existingSecret.passwordKey }}
|
|
{{- else }}
|
|
- name: MYSQL_HOST
|
|
{{- if .Values.externalDatabase.existingSecret.hostKey }}
|
|
valueFrom:
|
|
secretKeyRef:
|
|
name: {{ .Values.externalDatabase.existingSecret.secretName | default (printf "%s-db" .Release.Name) }}
|
|
key: {{ .Values.externalDatabase.existingSecret.hostKey }}
|
|
{{- else }}
|
|
value: {{ .Values.externalDatabase.host | quote }}
|
|
{{- end }}
|
|
- name: MYSQL_DATABASE
|
|
{{- if .Values.externalDatabase.existingSecret.databaseKey }}
|
|
valueFrom:
|
|
secretKeyRef:
|
|
name: {{ .Values.externalDatabase.existingSecret.secretName | default (printf "%s-db" .Release.Name) }}
|
|
key: {{ .Values.externalDatabase.existingSecret.databaseKey }}
|
|
{{- else }}
|
|
value: {{ .Values.externalDatabase.database | quote }}
|
|
{{- end }}
|
|
- name: MYSQL_USER
|
|
valueFrom:
|
|
secretKeyRef:
|
|
name: {{ .Values.externalDatabase.existingSecret.secretName | default (printf "%s-db" .Release.Name) }}
|
|
key: {{ .Values.externalDatabase.existingSecret.usernameKey }}
|
|
- name: MYSQL_PASSWORD
|
|
valueFrom:
|
|
secretKeyRef:
|
|
name: {{ .Values.externalDatabase.existingSecret.secretName | default (printf "%s-db" .Release.Name) }}
|
|
key: {{ .Values.externalDatabase.existingSecret.passwordKey }}
|
|
{{- end }}
|
|
{{- end }}
|
|
- name: NEXTCLOUD_ADMIN_USER
|
|
valueFrom:
|
|
secretKeyRef:
|
|
name: {{ .Values.nextcloud.existingSecret.secretName | default (include "nextcloud.fullname" .) }}
|
|
key: {{ .Values.nextcloud.existingSecret.usernameKey }}
|
|
- name: NEXTCLOUD_ADMIN_PASSWORD
|
|
valueFrom:
|
|
secretKeyRef:
|
|
name: {{ .Values.nextcloud.existingSecret.secretName | default (include "nextcloud.fullname" .) }}
|
|
key: {{ .Values.nextcloud.existingSecret.passwordKey }}
|
|
- name: NEXTCLOUD_TRUSTED_DOMAINS
|
|
{{- if .Values.nextcloud.trustedDomains }}
|
|
value: {{ join " " .Values.nextcloud.trustedDomains | quote }}
|
|
{{- else }}
|
|
value: {{ .Values.nextcloud.host }}{{ if .Values.metrics.enabled }} {{ template "nextcloud.fullname" . }}.{{ .Release.Namespace }}.svc.cluster.local{{ end }}
|
|
{{- end }}
|
|
- name: NEXTCLOUD_DATA_DIR
|
|
value: {{ .Values.nextcloud.datadir | quote }}
|
|
{{- if .Values.nextcloud.mail.enabled }}
|
|
- name: MAIL_FROM_ADDRESS
|
|
value: {{ .Values.nextcloud.mail.fromAddress | quote }}
|
|
- name: MAIL_DOMAIN
|
|
value: {{ .Values.nextcloud.mail.domain | quote }}
|
|
- name: SMTP_SECURE
|
|
value: {{ .Values.nextcloud.mail.smtp.secure | quote }}
|
|
- name: SMTP_PORT
|
|
value: {{ .Values.nextcloud.mail.smtp.port | quote }}
|
|
- name: SMTP_AUTHTYPE
|
|
value: {{ .Values.nextcloud.mail.smtp.authtype | quote }}
|
|
- name: SMTP_HOST
|
|
valueFrom:
|
|
secretKeyRef:
|
|
name: {{ .Values.nextcloud.existingSecret.secretName | default (include "nextcloud.fullname" .) }}
|
|
key: {{ .Values.nextcloud.existingSecret.smtpHostKey }}
|
|
- name: SMTP_NAME
|
|
valueFrom:
|
|
secretKeyRef:
|
|
name: {{ .Values.nextcloud.existingSecret.secretName | default (include "nextcloud.fullname" .) }}
|
|
key: {{ .Values.nextcloud.existingSecret.smtpUsernameKey }}
|
|
- name: SMTP_PASSWORD
|
|
valueFrom:
|
|
secretKeyRef:
|
|
name: {{ .Values.nextcloud.existingSecret.secretName | default (include "nextcloud.fullname" .) }}
|
|
key: {{ .Values.nextcloud.existingSecret.smtpPasswordKey }}
|
|
{{- end }}
|
|
{{/*
|
|
Redis env vars
|
|
*/}}
|
|
{{- if .Values.redis.enabled }}
|
|
- name: REDIS_HOST
|
|
value: {{ template "nextcloud.redis.fullname" . }}-master
|
|
- name: REDIS_HOST_PORT
|
|
value: {{ .Values.redis.master.service.ports.redis | quote }}
|
|
{{- if .Values.redis.auth.enabled }}
|
|
{{- if and .Values.redis.auth.existingSecret .Values.redis.auth.existingSecretPasswordKey }}
|
|
- name: REDIS_HOST_PASSWORD
|
|
valueFrom:
|
|
secretKeyRef:
|
|
name: {{ .Values.redis.auth.existingSecret }}
|
|
key: {{ .Values.redis.auth.existingSecretPasswordKey }}
|
|
{{- else }}
|
|
- name: REDIS_HOST_PASSWORD
|
|
value: {{ .Values.redis.auth.password }}
|
|
{{- end }}
|
|
{{- end }}
|
|
{{- end }}{{/* end if redis.enabled */}}
|
|
{{/*
|
|
S3 as primary object store env vars
|
|
*/}}
|
|
{{- if .Values.nextcloud.objectStore.s3.enabled }}
|
|
- name: OBJECTSTORE_S3_SSL
|
|
value: {{ .Values.nextcloud.objectStore.s3.ssl | quote }}
|
|
- name: OBJECTSTORE_S3_USEPATH_STYLE
|
|
value: {{ .Values.nextcloud.objectStore.s3.usePathStyle | quote }}
|
|
{{- with .Values.nextcloud.objectStore.s3.legacyAuth }}
|
|
- name: OBJECTSTORE_S3_LEGACYAUTH
|
|
value: {{ . | quote }}
|
|
{{- end }}
|
|
- name: OBJECTSTORE_S3_AUTOCREATE
|
|
value: {{ .Values.nextcloud.objectStore.s3.autoCreate | quote }}
|
|
- name: OBJECTSTORE_S3_REGION
|
|
value: {{ .Values.nextcloud.objectStore.s3.region | quote }}
|
|
- name: OBJECTSTORE_S3_PORT
|
|
value: {{ .Values.nextcloud.objectStore.s3.port | quote }}
|
|
- name: OBJECTSTORE_S3_STORAGE_CLASS
|
|
value: {{ .Values.nextcloud.objectStore.s3.storageClass | quote }}
|
|
{{- with .Values.nextcloud.objectStore.s3.prefix }}
|
|
- name: OBJECTSTORE_S3_OBJECT_PREFIX
|
|
value: {{ . | quote }}
|
|
{{- end }}
|
|
{{- if and .Values.nextcloud.objectStore.s3.existingSecret .Values.nextcloud.objectStore.s3.secretKeys.host }}
|
|
- name: OBJECTSTORE_S3_HOST
|
|
valueFrom:
|
|
secretKeyRef:
|
|
name: {{ .Values.nextcloud.objectStore.s3.existingSecret }}
|
|
key: {{ .Values.nextcloud.objectStore.s3.secretKeys.host }}
|
|
{{- else }}
|
|
- name: OBJECTSTORE_S3_HOST
|
|
value: {{ .Values.nextcloud.objectStore.s3.host | quote }}
|
|
{{- end }}
|
|
{{- if and .Values.nextcloud.objectStore.s3.existingSecret .Values.nextcloud.objectStore.s3.secretKeys.bucket }}
|
|
- name: OBJECTSTORE_S3_BUCKET
|
|
valueFrom:
|
|
secretKeyRef:
|
|
name: {{ .Values.nextcloud.objectStore.s3.existingSecret }}
|
|
key: {{ .Values.nextcloud.objectStore.s3.secretKeys.bucket }}
|
|
{{- else }}
|
|
- name: OBJECTSTORE_S3_BUCKET
|
|
value: {{ .Values.nextcloud.objectStore.s3.bucket | quote }}
|
|
{{- end }}
|
|
{{- if and .Values.nextcloud.objectStore.s3.existingSecret .Values.nextcloud.objectStore.s3.secretKeys.accessKey }}
|
|
- name: OBJECTSTORE_S3_KEY
|
|
valueFrom:
|
|
secretKeyRef:
|
|
name: {{ .Values.nextcloud.objectStore.s3.existingSecret }}
|
|
key: {{ .Values.nextcloud.objectStore.s3.secretKeys.accessKey }}
|
|
{{- else }}
|
|
- name: OBJECTSTORE_S3_KEY
|
|
value: {{ .Values.nextcloud.objectStore.s3.accessKey | quote }}
|
|
{{- end }}
|
|
{{- if and .Values.nextcloud.objectStore.s3.existingSecret .Values.nextcloud.objectStore.s3.secretKeys.secretKey }}
|
|
- name: OBJECTSTORE_S3_SECRET
|
|
valueFrom:
|
|
secretKeyRef:
|
|
name: {{ .Values.nextcloud.objectStore.s3.existingSecret }}
|
|
key: {{ .Values.nextcloud.objectStore.s3.secretKeys.secretKey }}
|
|
{{- else }}
|
|
- name: OBJECTSTORE_S3_SECRET
|
|
value: {{ .Values.nextcloud.objectStore.s3.secretKey | quote }}
|
|
{{- end }}
|
|
{{- if and .Values.nextcloud.objectStore.s3.existingSecret .Values.nextcloud.objectStore.s3.secretKeys.sse_c_key }}
|
|
- name: OBJECTSTORE_S3_SSE_C_KEY
|
|
valueFrom:
|
|
secretKeyRef:
|
|
name: {{ .Values.nextcloud.objectStore.s3.existingSecret }}
|
|
key: {{ .Values.nextcloud.objectStore.s3.secretKeys.sse_c_key }}
|
|
{{- else }}
|
|
- name: OBJECTSTORE_S3_SSE_C_KEY
|
|
value: {{ .Values.nextcloud.objectStore.s3.sse_c_key | quote }}
|
|
{{- end }}
|
|
{{- end }}{{/* end if nextcloud.objectStore.s3.enabled */}}
|
|
{{/*
|
|
Swift as primary object store env vars
|
|
*/}}
|
|
{{- if .Values.nextcloud.objectStore.swift.enabled }}
|
|
- name: OBJECTSTORE_SWIFT_AUTOCREATE
|
|
value: {{ .Values.nextcloud.objectStore.swift.autoCreate | quote }}
|
|
- name: OBJECTSTORE_SWIFT_USER_NAME
|
|
value: {{ .Values.nextcloud.objectStore.swift.user.name | quote }}
|
|
- name: OBJECTSTORE_SWIFT_USER_PASSWORD
|
|
value: {{ .Values.nextcloud.objectStore.swift.user.password | quote }}
|
|
- name: OBJECTSTORE_SWIFT_USER_DOMAIN
|
|
value: {{ .Values.nextcloud.objectStore.swift.user.domain | quote }}
|
|
- name: OBJECTSTORE_SWIFT_PROJECT_NAME
|
|
value: {{ .Values.nextcloud.objectStore.swift.project.name | quote }}
|
|
- name: OBJECTSTORE_SWIFT_PROJECT_DOMAIN
|
|
value: {{ .Values.nextcloud.objectStore.swift.project.domain | quote }}
|
|
- name: OBJECTSTORE_SWIFT_SERVICE_NAME
|
|
value: {{ .Values.nextcloud.objectStore.swift.service | quote }}
|
|
- name: OBJECTSTORE_SWIFT_REGION
|
|
value: {{ .Values.nextcloud.objectStore.swift.region | quote }}
|
|
- name: OBJECTSTORE_SWIFT_URL
|
|
value: {{ .Values.nextcloud.objectStore.swift.url | quote }}
|
|
- name: OBJECTSTORE_SWIFT_CONTAINER_NAME
|
|
value: {{ .Values.nextcloud.objectStore.swift.container | quote }}
|
|
{{- end }}{{/* end if nextcloud.objectStore.s3.enabled */}}
|
|
{{- if .Values.nextcloud.extraEnv }}
|
|
{{ toYaml .Values.nextcloud.extraEnv }}
|
|
{{- end }}
|
|
{{- end -}}
|
|
|
|
|
|
{{/*
|
|
Create volume mounts for the nextcloud container as well as the cron sidecar container.
|
|
*/}}
|
|
{{- define "nextcloud.volumeMounts" -}}
|
|
- name: nextcloud-main
|
|
mountPath: /var/www/
|
|
subPath: {{ ternary "root" (printf "%s/root" .Values.nextcloud.persistence.subPath) (empty .Values.nextcloud.persistence.subPath) }}
|
|
- name: nextcloud-main
|
|
mountPath: /var/www/html
|
|
subPath: {{ ternary "html" (printf "%s/html" .Values.nextcloud.persistence.subPath) (empty .Values.nextcloud.persistence.subPath) }}
|
|
{{- if and .Values.persistence.nextcloudData.enabled .Values.persistence.enabled }}
|
|
- name: nextcloud-data
|
|
mountPath: {{ .Values.nextcloud.datadir }}
|
|
subPath: {{ ternary "data" (printf "%s/data" .Values.persistence.nextcloudData.subPath) (empty .Values.persistence.nextcloudData.subPath) }}
|
|
{{- else }}
|
|
- name: nextcloud-main
|
|
mountPath: {{ .Values.nextcloud.datadir }}
|
|
subPath: {{ ternary "data" (printf "%s/data" .Values.persistence.subPath) (empty .Values.persistence.subPath) }}
|
|
{{- end }}
|
|
- name: nextcloud-main
|
|
mountPath: /var/www/html/config
|
|
subPath: {{ ternary "config" (printf "%s/config" .Values.nextcloud.persistence.subPath) (empty .Values.nextcloud.persistence.subPath) }}
|
|
- name: nextcloud-main
|
|
mountPath: /var/www/html/custom_apps
|
|
subPath: {{ ternary "custom_apps" (printf "%s/custom_apps" .Values.nextcloud.persistence.subPath) (empty .Values.nextcloud.persistence.subPath) }}
|
|
- name: nextcloud-main
|
|
mountPath: /var/www/tmp
|
|
subPath: {{ ternary "tmp" (printf "%s/tmp" .Values.nextcloud.persistence.subPath) (empty .Values.nextcloud.persistence.subPath) }}
|
|
- name: nextcloud-main
|
|
mountPath: /var/www/html/themes
|
|
subPath: {{ ternary "themes" (printf "%s/themes" .Values.nextcloud.persistence.subPath) (empty .Values.nextcloud.persistence.subPath) }}
|
|
{{- range $key, $value := .Values.nextcloud.configs }}
|
|
- name: nextcloud-config
|
|
mountPath: /var/www/html/config/{{ $key }}
|
|
subPath: {{ $key }}
|
|
{{- end }}
|
|
{{- if .Values.nextcloud.configs }}
|
|
{{- range $key, $value := .Values.nextcloud.defaultConfigs }}
|
|
{{- if $value }}
|
|
- name: nextcloud-config
|
|
mountPath: /var/www/html/config/{{ $key }}
|
|
subPath: {{ $key }}
|
|
{{- end }}
|
|
{{- end }}
|
|
{{- end }}
|
|
{{- if .Values.nextcloud.extraVolumeMounts }}
|
|
{{ toYaml .Values.nextcloud.extraVolumeMounts }}
|
|
{{- end }}
|
|
{{- $nginxEnabled := .Values.nginx.enabled -}}
|
|
{{- range $key, $value := .Values.nextcloud.phpConfigs }}
|
|
- name: nextcloud-phpconfig
|
|
mountPath: {{ $nginxEnabled | ternary (printf "/usr/local/etc/php-fpm.d/%s" $key | quote) (printf "/usr/local/etc/php/conf.d/%s" $key | quote) }}
|
|
subPath: {{ $key }}
|
|
{{- end }}
|
|
{{- end -}}
|