400 lines
10 KiB
YAML
400 lines
10 KiB
YAML
## Official nextcloud image version
|
|
## ref: https://hub.docker.com/r/library/nextcloud/tags/
|
|
##
|
|
image:
|
|
repository: nextcloud
|
|
tag: 19.0.3-apache
|
|
pullPolicy: IfNotPresent
|
|
# pullSecrets:
|
|
# - myRegistrKeySecretName
|
|
|
|
nameOverride: ""
|
|
fullnameOverride: ""
|
|
|
|
# Number of replicas to be deployed
|
|
replicaCount: 1
|
|
|
|
## Allowing use of ingress controllers
|
|
## ref: https://kubernetes.io/docs/concepts/services-networking/ingress/
|
|
##
|
|
ingress:
|
|
enabled: false
|
|
annotations: {}
|
|
# nginx.ingress.kubernetes.io/proxy-body-size: 4G
|
|
# kubernetes.io/tls-acme: "true"
|
|
# certmanager.k8s.io/cluster-issuer: letsencrypt-prod
|
|
# nginx.ingress.kubernetes.io/server-snippet: |-
|
|
# server_tokens off;
|
|
# proxy_hide_header X-Powered-By;
|
|
|
|
# rewrite ^/.well-known/webfinger /public.php?service=webfinger last;
|
|
# rewrite ^/.well-known/host-meta /public.php?service=host-meta last;
|
|
# rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json;
|
|
# location = /.well-known/carddav {
|
|
# return 301 $scheme://$host/remote.php/dav;
|
|
# }
|
|
# location = /.well-known/caldav {
|
|
# return 301 $scheme://$host/remote.php/dav;
|
|
# }
|
|
# location = /robots.txt {
|
|
# allow all;
|
|
# log_not_found off;
|
|
# access_log off;
|
|
# }
|
|
# location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)/ {
|
|
# deny all;
|
|
# }
|
|
# location ~ ^/(?:autotest|occ|issue|indie|db_|console) {
|
|
# deny all;
|
|
# }
|
|
# tls:
|
|
# - secretName: nextcloud-tls
|
|
# hosts:
|
|
# - nextcloud.kube.home
|
|
labels: {}
|
|
|
|
|
|
# Allow configuration of lifecycle hooks
|
|
# ref: https://kubernetes.io/docs/tasks/configure-pod-container/attach-handler-lifecycle-event/
|
|
lifecycle: {}
|
|
# postStartCommand: []
|
|
# preStopCommand: []
|
|
|
|
nextcloud:
|
|
host: nextcloud.kube.home
|
|
username: admin
|
|
password: changeme
|
|
update: 0
|
|
datadir: /var/www/html/data
|
|
tableprefix:
|
|
persistence:
|
|
subPath:
|
|
mail:
|
|
enabled: false
|
|
fromAddress: user
|
|
domain: domain.com
|
|
smtp:
|
|
host: domain.com
|
|
secure: ssl
|
|
port: 465
|
|
authtype: LOGIN
|
|
name: user
|
|
password: pass
|
|
# PHP Configuration files
|
|
# Will be injected in /usr/local/etc/php/conf.d
|
|
phpConfigs: {}
|
|
# Default config files
|
|
# IMPORTANT: Will be used only if you put extra configs, otherwise default will come from nextcloud itself
|
|
# Default confgurations can be found here: https://github.com/nextcloud/docker/tree/master/16.0/apache/config
|
|
defaultConfigs:
|
|
# To protect /var/www/html/config
|
|
.htaccess: true
|
|
# Redis default configuration
|
|
redis.config.php: true
|
|
# Apache configuration for rewrite urls
|
|
apache-pretty-urls.config.php: true
|
|
# Define APCu as local cache
|
|
apcu.config.php: true
|
|
# Apps directory configs
|
|
apps.config.php: true
|
|
# Used for auto configure database
|
|
autoconfig.php: true
|
|
# SMTP default configuration
|
|
smtp.config.php: true
|
|
# Extra config files created in /var/www/html/config/
|
|
# ref: https://docs.nextcloud.com/server/15/admin_manual/configuration_server/config_sample_php_parameters.html#multiple-config-php-file
|
|
configs: {}
|
|
|
|
# For example, to use S3 as primary storage
|
|
# ref: https://docs.nextcloud.com/server/13/admin_manual/configuration_files/primary_storage.html#simple-storage-service-s3
|
|
#
|
|
# configs:
|
|
# s3.config.php: |-
|
|
# <?php
|
|
# $CONFIG = array (
|
|
# 'objectstore' => array(
|
|
# 'class' => '\\OC\\Files\\ObjectStore\\S3',
|
|
# 'arguments' => array(
|
|
# 'bucket' => 'my-bucket',
|
|
# 'autocreate' => true,
|
|
# 'key' => 'xxx',
|
|
# 'secret' => 'xxx',
|
|
# 'region' => 'us-east-1',
|
|
# 'use_ssl' => true
|
|
# )
|
|
# )
|
|
# );
|
|
|
|
## Strategy used to replace old pods
|
|
## IMPORTANT: use with care, it is suggested to leave as that for upgrade purposes
|
|
## ref: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#strategy
|
|
strategy:
|
|
type: Recreate
|
|
# type: RollingUpdate
|
|
# rollingUpdate:
|
|
# maxSurge: 1
|
|
# maxUnavailable: 0
|
|
|
|
##
|
|
## Extra environment variables
|
|
extraEnv:
|
|
# - name: SOME_SECRET_ENV
|
|
# valueFrom:
|
|
# secretKeyRef:
|
|
# name: nextcloud
|
|
# key: secret_key
|
|
|
|
# Extra mounts for the pods. Example shown is for connecting a legacy NFS volume
|
|
# to NextCloud pods in Kubernetes. This can then be configured in External Storage
|
|
extraVolumes:
|
|
# - name: nfs
|
|
# nfs:
|
|
# server: "10.0.0.1"
|
|
# path: "/nextcloud_data"
|
|
# readOnly: false
|
|
extraVolumeMounts:
|
|
# - name: nfs
|
|
# mountPath: "/legacy_data"
|
|
|
|
nginx:
|
|
## You need to set an fpm version of the image for nextcloud if you want to use nginx!
|
|
enabled: false
|
|
image:
|
|
repository: nginx
|
|
tag: alpine
|
|
pullPolicy: IfNotPresent
|
|
|
|
config:
|
|
# This generates the default nginx config as per the nextcloud documentation
|
|
default: true
|
|
# custom: |-
|
|
# worker_processes 1;..
|
|
|
|
resources: {}
|
|
|
|
internalDatabase:
|
|
enabled: true
|
|
name: nextcloud
|
|
|
|
##
|
|
## External database configuration
|
|
##
|
|
externalDatabase:
|
|
enabled: false
|
|
|
|
## Supported database engines: mysql or postgresql
|
|
type: mysql
|
|
|
|
## Database host
|
|
host:
|
|
|
|
## Database user
|
|
user: nextcloud
|
|
|
|
## Database password
|
|
password:
|
|
|
|
## Database name
|
|
database: nextcloud
|
|
|
|
## Use a existing secret
|
|
existingSecret:
|
|
enabled: false
|
|
# secretName: nameofsecret
|
|
# usernameKey: username
|
|
# passwordKey: password
|
|
|
|
##
|
|
## MariaDB chart configuration
|
|
##
|
|
mariadb:
|
|
## Whether to deploy a mariadb server to satisfy the applications database requirements. To use an external database set this to false and configure the externalDatabase parameters
|
|
enabled: false
|
|
|
|
db:
|
|
name: nextcloud
|
|
user: nextcloud
|
|
password: changeme
|
|
|
|
replication:
|
|
enabled: false
|
|
|
|
## Enable persistence using Persistent Volume Claims
|
|
## ref: http://kubernetes.io/docs/user-guide/persistent-volumes/
|
|
##
|
|
master:
|
|
persistence:
|
|
enabled: false
|
|
# storageClass: ""
|
|
accessMode: ReadWriteOnce
|
|
size: 8Gi
|
|
|
|
postgresql:
|
|
enabled: false
|
|
global:
|
|
postgresql:
|
|
postgresqlUsername: nextcloud
|
|
postgresqlPassword: changeme
|
|
postgresqlDatabase: nextcloud
|
|
persistence:
|
|
enabled: false
|
|
# storageClass: ""
|
|
|
|
redis:
|
|
enabled: false
|
|
usePassword: false
|
|
|
|
## Cronjob to execute Nextcloud background tasks
|
|
## ref: https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/background_jobs_configuration.html#webcron
|
|
##
|
|
cronjob:
|
|
enabled: false
|
|
# Nexcloud image is used as default but only curl is needed
|
|
image: {}
|
|
# repository: nextcloud
|
|
# tag: 16.0.3-apache
|
|
# pullPolicy: IfNotPresent
|
|
# pullSecrets:
|
|
# - myRegistrKeySecretName
|
|
# Every 5 minutes
|
|
# Note: Setting this to any any other value than 5 minutes might
|
|
# cause issues with how nextcloud background jobs are executed
|
|
schedule: "*/5 * * * *"
|
|
annotations: {}
|
|
# Set curl's insecure option if you use e.g. self-signed certificates
|
|
curlInsecure: false
|
|
failedJobsHistoryLimit: 5
|
|
successfulJobsHistoryLimit: 2
|
|
# If not set, nextcloud deployment one will be set
|
|
# resources:
|
|
# We usually recommend not to specify default resources and to leave this as a conscious
|
|
# choice for the user. This also increases chances charts run on environments with little
|
|
# resources, such as Minikube. If you do want to specify resources, uncomment the following
|
|
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
|
|
# limits:
|
|
# cpu: 100m
|
|
# memory: 128Mi
|
|
# requests:
|
|
# cpu: 100m
|
|
# memory: 128Mi
|
|
|
|
# If not set, nextcloud deployment one will be set
|
|
# nodeSelector: {}
|
|
|
|
# If not set, nextcloud deployment one will be set
|
|
# tolerations: []
|
|
|
|
# If not set, nextcloud deployment one will be set
|
|
# affinity: {}
|
|
|
|
service:
|
|
type: ClusterIP
|
|
port: 8080
|
|
loadBalancerIP: nil
|
|
nodePort: nil
|
|
|
|
## Enable persistence using Persistent Volume Claims
|
|
## ref: http://kubernetes.io/docs/user-guide/persistent-volumes/
|
|
##
|
|
persistence:
|
|
# Nextcloud Data (/var/www/html)
|
|
enabled: false
|
|
annotations: {}
|
|
## nextcloud data Persistent Volume Storage Class
|
|
## If defined, storageClassName: <storageClass>
|
|
## If set to "-", storageClassName: "", which disables dynamic provisioning
|
|
## If undefined (the default) or set to null, no storageClassName spec is
|
|
## set, choosing the default provisioner. (gp2 on AWS, standard on
|
|
## GKE, AWS & OpenStack)
|
|
##
|
|
# storageClass: "-"
|
|
|
|
## A manually managed Persistent Volume and Claim
|
|
## Requires persistence.enabled: true
|
|
## If defined, PVC must be created manually before volume will be bound
|
|
# existingClaim:
|
|
|
|
accessMode: ReadWriteOnce
|
|
size: 8Gi
|
|
|
|
resources: {}
|
|
# We usually recommend not to specify default resources and to leave this as a conscious
|
|
# choice for the user. This also increases chances charts run on environments with little
|
|
# resources, such as Minikube. If you do want to specify resources, uncomment the following
|
|
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
|
|
# limits:
|
|
# cpu: 100m
|
|
# memory: 128Mi
|
|
# requests:
|
|
# cpu: 100m
|
|
# memory: 128Mi
|
|
|
|
## Liveness and readiness probe values
|
|
## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes
|
|
##
|
|
livenessProbe:
|
|
enabled: true
|
|
initialDelaySeconds: 30
|
|
periodSeconds: 15
|
|
timeoutSeconds: 5
|
|
failureThreshold: 3
|
|
successThreshold: 1
|
|
readinessProbe:
|
|
enabled: true
|
|
initialDelaySeconds: 30
|
|
periodSeconds: 15
|
|
timeoutSeconds: 5
|
|
failureThreshold: 3
|
|
successThreshold: 1
|
|
|
|
## Enable pod autoscaling using HorizontalPodAutoscaler
|
|
## ref: https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/
|
|
##
|
|
hpa:
|
|
enabled: false
|
|
cputhreshold: 60
|
|
minPods: 1
|
|
maxPods: 10
|
|
|
|
nodeSelector: {}
|
|
|
|
tolerations: []
|
|
|
|
affinity: {}
|
|
|
|
|
|
## Prometheus Exporter / Metrics
|
|
##
|
|
metrics:
|
|
enabled: false
|
|
|
|
replicaCount: 1
|
|
# The metrics exporter needs to know how you serve Nextcloud either http or https
|
|
https: false
|
|
timeout: 5s
|
|
|
|
image:
|
|
repository: xperimental/nextcloud-exporter
|
|
tag: v0.3.0
|
|
pullPolicy: IfNotPresent
|
|
|
|
## Metrics exporter resource requests and limits
|
|
## ref: http://kubernetes.io/docs/user-guide/compute-resources/
|
|
##
|
|
# resources: {}
|
|
|
|
## Metrics exporter pod Annotation and Labels
|
|
# podAnnotations: {}
|
|
|
|
# podLabels: {}
|
|
|
|
service:
|
|
type: ClusterIP
|
|
## Use serviceLoadBalancerIP to request a specific static IP,
|
|
## otherwise leave blank
|
|
# loadBalancerIP:
|
|
annotations:
|
|
prometheus.io/scrape: "true"
|
|
prometheus.io/port: "9205"
|
|
labels: {}
|