Files
docker_dev/nextcloud-aio/nextcloud-aio-helm-chart/templates/nextcloud-aio-nextcloud-deployment.yaml
2025-11-17 18:51:08 +01:00

242 lines
9.4 KiB
YAML
Executable File

apiVersion: apps/v1
kind: Deployment
metadata:
annotations:
kompose.version: 1.37.0 (fb0539e64)
labels:
io.kompose.service: nextcloud-aio-nextcloud
name: nextcloud-aio-nextcloud
namespace: "{{ .Values.NAMESPACE }}"
spec:
replicas: 1
selector:
matchLabels:
io.kompose.service: nextcloud-aio-nextcloud
strategy:
type: Recreate
template:
metadata:
annotations:
kompose.version: 1.37.0 (fb0539e64)
labels:
io.kompose.service: nextcloud-aio-nextcloud
spec:
{{- if eq (.Values.RPSS_ENABLED | default "no") "yes" }} # AIO-config - do not change this comment!
securityContext:
# The items below only work in pod context
fsGroup: 33
fsGroupChangePolicy: "OnRootMismatch"
# The items below work in both contexts
runAsUser: 33
runAsGroup: 33
runAsNonRoot: true
{{- if eq (.Values.RPSS_ENABLED | default "no") "yes" }}
seccompProfile:
type: RuntimeDefault
{{- end }}
{{- end }} # AIO-config - do not change this comment!
# AIO settings start # Do not remove or change this line!
initContainers:
- name: init-volumes
image: ghcr.io/nextcloud-releases/aio-alpine:20250927_081431
command:
- chmod
- "777"
- /nextcloud-aio-nextcloud
- /nextcloud-aio-nextcloud-trusted-cacerts
volumeMounts:
- name: nextcloud-aio-nextcloud-trusted-cacerts
mountPath: /nextcloud-aio-nextcloud-trusted-cacerts
- name: nextcloud-aio-nextcloud
mountPath: /nextcloud-aio-nextcloud
# AIO settings end # Do not remove or change this line!
containers:
- env:
- name: SMTP_HOST
value: "{{ .Values.SMTP_HOST }}"
- name: SMTP_SECURE
value: "{{ .Values.SMTP_SECURE }}"
- name: SMTP_PORT
value: "{{ .Values.SMTP_PORT }}"
- name: SMTP_AUTHTYPE
value: "{{ .Values.SMTP_AUTHTYPE }}"
- name: SMTP_NAME
value: "{{ .Values.SMTP_NAME }}"
- name: SMTP_PASSWORD
value: "{{ .Values.SMTP_PASSWORD }}"
- name: MAIL_FROM_ADDRESS
value: "{{ .Values.MAIL_FROM_ADDRESS }}"
- name: MAIL_DOMAIN
value: "{{ .Values.MAIL_DOMAIN }}"
- name: SUBSCRIPTION_KEY
value: "{{ .Values.SUBSCRIPTION_KEY }}"
- name: APPS_ALLOWLIST
value: "{{ .Values.APPS_ALLOWLIST }}"
- name: ADDITIONAL_TRUSTED_PROXY
value: "{{ .Values.ADDITIONAL_TRUSTED_PROXY }}"
- name: ADDITIONAL_TRUSTED_DOMAIN
value: "{{ .Values.ADDITIONAL_TRUSTED_DOMAIN }}"
- name: SERVERINFO_TOKEN
value: "{{ .Values.SERVERINFO_TOKEN }}"
- name: NEXTCLOUD_DEFAULT_QUOTA
value: "{{ .Values.NEXTCLOUD_DEFAULT_QUOTA }}"
- name: NEXTCLOUD_SKELETON_DIRECTORY
value: "{{ .Values.NEXTCLOUD_SKELETON_DIRECTORY }}"
- name: NEXTCLOUD_MAINTENANCE_WINDOW
value: "{{ .Values.NEXTCLOUD_MAINTENANCE_WINDOW }}"
- name: ADDITIONAL_APKS
value: "{{ .Values.NEXTCLOUD_ADDITIONAL_APKS }}"
- name: ADDITIONAL_PHP_EXTENSIONS
value: "{{ .Values.NEXTCLOUD_ADDITIONAL_PHP_EXTENSIONS }}"
- name: ADMIN_PASSWORD
value: "{{ .Values.NEXTCLOUD_PASSWORD }}"
- name: ADMIN_USER
value: admin
- name: APACHE_HOST
value: nextcloud-aio-apache
- name: APACHE_PORT
value: "{{ .Values.APACHE_PORT }}"
- name: CLAMAV_ENABLED
value: "{{ .Values.CLAMAV_ENABLED }}"
- name: CLAMAV_HOST
value: nextcloud-aio-clamav
- name: CLAMAV_MAX_SIZE
value: "{{ .Values.APACHE_MAX_SIZE }}"
- name: COLLABORA_ENABLED
value: "{{ .Values.COLLABORA_ENABLED }}"
- name: COLLABORA_HOST
value: nextcloud-aio-collabora
- name: FULLTEXTSEARCH_ENABLED
value: "{{ .Values.FULLTEXTSEARCH_ENABLED }}"
- name: FULLTEXTSEARCH_HOST
value: nextcloud-aio-fulltextsearch
- name: FULLTEXTSEARCH_INDEX
value: nextcloud-aio
- name: FULLTEXTSEARCH_PASSWORD
value: "{{ .Values.FULLTEXTSEARCH_PASSWORD }}"
- name: FULLTEXTSEARCH_PORT
value: "9200"
- name: FULLTEXTSEARCH_USER
value: elastic
- name: IMAGINARY_ENABLED
value: "{{ .Values.IMAGINARY_ENABLED }}"
- name: IMAGINARY_HOST
value: nextcloud-aio-imaginary
- name: IMAGINARY_SECRET
value: "{{ .Values.IMAGINARY_SECRET }}"
- name: INSTALL_LATEST_MAJOR
value: "{{ .Values.INSTALL_LATEST_MAJOR }}"
- name: NC_DOMAIN
value: "{{ .Values.NC_DOMAIN }}"
- name: NEXTCLOUD_DATA_DIR
value: /mnt/ncdata
- name: NEXTCLOUD_HOST
value: nextcloud-aio-nextcloud
- name: ONLYOFFICE_ENABLED
value: "{{ .Values.ONLYOFFICE_ENABLED }}"
- name: ONLYOFFICE_HOST
value: nextcloud-aio-onlyoffice
- name: ONLYOFFICE_SECRET
value: "{{ .Values.ONLYOFFICE_SECRET }}"
- name: OVERWRITEPROTOCOL
value: https
- name: PHP_MAX_TIME
value: "{{ .Values.NEXTCLOUD_MAX_TIME }}"
- name: PHP_MEMORY_LIMIT
value: "{{ .Values.NEXTCLOUD_MEMORY_LIMIT }}"
- name: PHP_UPLOAD_LIMIT
value: "{{ .Values.NEXTCLOUD_UPLOAD_LIMIT }}"
- name: POSTGRES_DB
value: nextcloud_database
- name: POSTGRES_HOST
value: nextcloud-aio-database
- name: POSTGRES_PASSWORD
value: "{{ .Values.DATABASE_PASSWORD }}"
- name: POSTGRES_PORT
value: "5432"
- name: POSTGRES_USER
value: nextcloud
- name: RECORDING_SECRET
value: "{{ .Values.RECORDING_SECRET }}"
- name: REDIS_HOST
value: nextcloud-aio-redis
- name: REDIS_HOST_PASSWORD
value: "{{ .Values.REDIS_PASSWORD }}"
- name: REMOVE_DISABLED_APPS
value: "{{ .Values.REMOVE_DISABLED_APPS }}"
- name: SIGNALING_SECRET
value: "{{ .Values.SIGNALING_SECRET }}"
- name: STARTUP_APPS
value: "{{ .Values.NEXTCLOUD_STARTUP_APPS }}"
- name: TALK_ENABLED
value: "{{ .Values.TALK_ENABLED }}"
- name: TALK_PORT
value: "{{ .Values.TALK_PORT }}"
- name: TALK_RECORDING_ENABLED
value: "{{ .Values.TALK_RECORDING_ENABLED }}"
- name: TALK_RECORDING_HOST
value: nextcloud-aio-talk-recording
- name: TRUSTED_CACERTS_DIR
value: "{{ .Values.NEXTCLOUD_TRUSTED_CACERTS_DIR }}"
- name: TURN_SECRET
value: "{{ .Values.TURN_SECRET }}"
- name: TZ
value: "{{ .Values.TIMEZONE }}"
- name: UPDATE_NEXTCLOUD_APPS
value: "{{ .Values.UPDATE_NEXTCLOUD_APPS }}"
- name: WHITEBOARD_ENABLED
value: "{{ .Values.WHITEBOARD_ENABLED }}"
- name: WHITEBOARD_SECRET
value: "{{ .Values.WHITEBOARD_SECRET }}"
image: ghcr.io/nextcloud-releases/aio-nextcloud:20250927_081431
{{- if eq (.Values.RPSS_ENABLED | default "no") "yes" }} # AIO-config - do not change this comment!
securityContext:
# The items below only work in container context
allowPrivilegeEscalation: false
capabilities:
{{- if eq (.Values.RPSS_ENABLED | default "no") "yes" }}
drop: ["ALL"]
{{- else }}
drop: ["NET_RAW"]
{{- end }}
{{- end }} # AIO-config - do not change this comment!
readinessProbe:
exec:
command:
- /healthcheck.sh
failureThreshold: 3
periodSeconds: 30
timeoutSeconds: 30
livenessProbe:
exec:
command:
- /healthcheck.sh
failureThreshold: 3
periodSeconds: 30
timeoutSeconds: 30
name: nextcloud-aio-nextcloud
ports:
- containerPort: 9000
protocol: TCP
- containerPort: 9001
protocol: TCP
volumeMounts:
- mountPath: /var/www/html
name: nextcloud-aio-nextcloud
- mountPath: /mnt/ncdata
name: nextcloud-aio-nextcloud-data
- mountPath: /usr/local/share/ca-certificates
name: nextcloud-aio-nextcloud-trusted-cacerts
readOnly: true
terminationGracePeriodSeconds: 600
volumes:
- name: nextcloud-aio-nextcloud
persistentVolumeClaim:
claimName: nextcloud-aio-nextcloud
- name: nextcloud-aio-nextcloud-data
persistentVolumeClaim:
claimName: nextcloud-aio-nextcloud-data
- name: nextcloud-aio-nextcloud-trusted-cacerts
persistentVolumeClaim:
claimName: nextcloud-aio-nextcloud-trusted-cacerts