123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484 |
- # helm repo add nextcloud https://nextcloud.github.io/helm/
- # helm upgrade --install nextcloud nextcloud/nextcloud -n nextcloud -f values.yaml --version 2.14.4
- ## Official nextcloud image version
- ## ref: https://hub.docker.com/r/library/nextcloud/tags/
- ##
- image:
- repository: nextcloud
- tag: 24.0.1-apache
- pullPolicy: IfNotPresent
- # pullSecrets:
- # - myRegistrKeySecretName
- nameOverride: ""
- fullnameOverride: ""
- podAnnotations: {}
- deploymentAnnotations: {}
- # 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
- # className: nginx
- annotations: {}
- # nginx.ingress.kubernetes.io/proxy-body-size: 4G
- # kubernetes.io/tls-acme: "true"
- # cert-manager.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: {}
- path: /
- pathType: Prefix
- # Allow configuration of lifecycle hooks
- # ref: https://kubernetes.io/docs/tasks/configure-pod-container/attach-handler-lifecycle-event/
- lifecycle: {}
- # postStartCommand: []
- # preStopCommand: []
- phpClientHttpsFix:
- enabled: true
- protocol: https
- nextcloud:
- host: nextcloud.jibby.org
- username: josh
- password: ""
- ## Use an existing secret
- existingSecret:
- enabled: false
- # secretName: nameofsecret
- # usernameKey: username
- # passwordKey: password
- # tokenKey: serverinfo_token
- # smtpUsernameKey: smtp_username
- # smtpPasswordKey: smtp_password
- update: 0
- # If web server is not binding default port, you can define it
- # containerPort: 8080
- datadir: /var/www/html/data
- 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 for apache image and in /usr/local/etc/php-fpm.d when nginx.enabled: true
- 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: REDIS_HOST
- valueFrom:
- secretKeyRef:
- name: redis-client-secret
- key: REDIS_HOST
- - name: REDIS_HOST_PASSWORD
- valueFrom:
- secretKeyRef:
- name: redis-client-secret
- key: REDIS_HOST_PASSWORD
- # This will only set apache's RemoteIPTrustedProxy, not
- # RemoteIPInternalProxy. Local IPs will not be passed through.
- - name: TRUSTED_PROXIES
- value: "10.42.0.0/16,127.0.0.1"
- # Extra init containers that runs before pods start.
- extraInitContainers: []
- # - name: do-something
- # image: busybox
- # command: ['do', 'something']
- # 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"
- # Extra secuurityContext parameters. For example you may need to define runAsNonRoot directive
- # extraSecurityContext:
- # runAsUser: "33"
- # runAsGroup: "33"
- # runAsNonRoot: true
- # readOnlyRootFilesystem: true
- 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: false
- name: nextcloud
- ##
- ## External database configuration
- ##
- externalDatabase:
- enabled: true
- ## Supported database engines: mysql or postgresql
- type: postgresql
- ## Database host
- host: postgres-postgresql.postgres.svc.cluster.local:5432
- ## Database user
- user: nextcloud
- ## Database password
- password:
- ## Database name
- database: nextcloud
- ## Use a existing secret
- existingSecret:
- enabled: true
- secretName: postgres-secret
- 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
- auth:
- database: nextcloud
- username: nextcloud
- password: changeme
- architecture: standalone
- ## Enable persistence using Persistent Volume Claims
- ## ref: http://kubernetes.io/docs/user-guide/persistent-volumes/
- ##
- primary:
- persistence:
- enabled: false
- # storageClass: ""
- accessMode: ReadWriteOnce
- size: 8Gi
- ##
- ## PostgreSQL chart configuration
- ## for more options see https://github.com/bitnami/charts/tree/master/bitnami/postgresql
- ##
- postgresql:
- enabled: false
- global:
- postgresql:
- auth:
- username: nextcloud
- password: changeme
- database: nextcloud
- primary:
- persistence:
- enabled: false
- # storageClass: ""
- ##
- ## Redis chart configuration
- ## for more options see https://github.com/bitnami/charts/tree/master/bitnami/redis
- ##
- redis:
- enabled: false
- auth:
- enabled: true
- password: 'changeme'
- ## Cronjob to execute Nextcloud background tasks
- ## ref: https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/background_jobs_configuration.html#webcron
- ##
- cronjob:
- enabled: true
- # 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: true
- 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: "ceph-block"
- ## A manually managed Persistent Volume and Claim
- ## Requires persistence.enabled: true
- ## If defined, PVC must be created manually before volume will be bound
- existingClaim: nextcloud-pvc
- accessMode: ReadWriteOnce
- size: 8Gi
- ## Use an additional pvc for the data directory rather than a subpath of the default PVC
- ## Useful to store data on a different storageClass (e.g. on slower disks)
- nextcloudData:
- enabled: true
- subPath:
- annotations: {}
- storageClass: "ceph-block"
- existingClaim: nextcloud-data-pvc
- accessMode: ReadWriteOnce
- size: 200Gi
- 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: 10
- periodSeconds: 10
- timeoutSeconds: 5
- failureThreshold: 3
- successThreshold: 1
- readinessProbe:
- enabled: true
- initialDelaySeconds: 10
- periodSeconds: 10
- timeoutSeconds: 5
- failureThreshold: 3
- successThreshold: 1
- startupProbe:
- enabled: false
- initialDelaySeconds: 30
- periodSeconds: 10
- timeoutSeconds: 5
- failureThreshold: 30
- 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
- # Use API token if set, otherwise fall back to password authentication
- # https://github.com/xperimental/nextcloud-exporter#token-authentication
- # Currently you still need to set the token manually in your nextcloud install
- token: ""
- timeout: 5s
- image:
- repository: xperimental/nextcloud-exporter
- tag: 0.5.1
- 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: {}
- rbac:
- enabled: false
- serviceaccount:
- create: false
- name: nextcloud-serviceaccount
|