mirror of
https://github.com/helm/charts.git
synced 2026-08-23 22:37:45 +00:00
[stable/nextcloud] Add flexibility and more configurations (#16205)
* [stable/nextcloud] Allow to inject custom php configuration files Signed-off-by: Alexandre Havrileck <alexandre.havrileck@easymile.com> * [stable/nextcloud] Add annotations and labels on PVC Signed-off-by: Alexandre Havrileck <alexandre.havrileck@easymile.com> * [stable/nextcloud] Add fs group of www-data for mounted files Signed-off-by: Alexandre Havrileck <alexandre.havrileck@easymile.com> * [stable/nextcloud] Change mount path of PVC Signed-off-by: Alexandre Havrileck <alexandre.havrileck@easymile.com> * [stable/nextcloud] Add tmp directory in volume This directory can be used for uploads as temporary directory Signed-off-by: Alexandre Havrileck <alexandre.havrileck@easymile.com> * [stable/nextcloud] Fix cronjob job template labels for new helm spec Signed-off-by: Alexandre Havrileck <alexandre.havrileck@easymile.com> * [stable/nextcloud] Allow change of cronjob image and add pull secrets Signed-off-by: Alexandre Havrileck <alexandre.havrileck@easymile.com> * [stable/nextcloud] Allow change cronjob resources,tolerations,affinity Signed-off-by: Alexandre Havrileck <alexandre.havrileck@easymile.com> * [stable/nextcloud] Cronjob (curl) follow redirect Signed-off-by: Alexandre Havrileck <alexandre.havrileck@easymile.com> * [stable/nextcloud] Add default values for persistence annotations Signed-off-by: Alexandre Havrileck <alexandre.havrileck@easymile.com> * [stable/nextcloud] Add all default nextcloud configurations Signed-off-by: Alexandre Havrileck <alexandre.havrileck@easymile.com> * [stable/nextcloud] Update documentation with new values and indent Signed-off-by: Alexandre Havrileck <alexandre.havrileck@easymile.com> * [stable/nextcloud] Upgrade chart version Signed-off-by: Alexandre Havrileck <alexandre.havrileck@easymile.com> * [stable/nextcloud] Fix trailing spaces in default values Signed-off-by: Alexandre Havrileck <alexandre.havrileck@easymile.com> * [stable/nextcloud] Fix default values for cronjob image declaration Signed-off-by: Alexandre Havrileck <alexandre.havrileck@easymile.com> * [stable/nextcloud] Fix default configs not mounted Signed-off-by: Alexandre Havrileck <alexandre.havrileck@easymile.com> * [stable/nextcloud] Mount default configs only if extra configs exists Signed-off-by: Havrileck Alexandre <havrileckalexandre@gmail.com>
This commit is contained in:
committed by
Kubernetes Prow Robot
parent
db491b02ca
commit
9f1db2d47d
@@ -1,6 +1,6 @@
|
||||
apiVersion: v1
|
||||
name: nextcloud
|
||||
version: 1.6.2
|
||||
version: 1.7.0
|
||||
appVersion: 16.0.3
|
||||
description: A file sharing server that puts the control and security of your own data back into your hands.
|
||||
keywords:
|
||||
|
||||
+81
-68
@@ -45,71 +45,84 @@ The command removes all the Kubernetes components associated with the chart and
|
||||
|
||||
The following table lists the configurable parameters of the nextcloud chart and their default values.
|
||||
|
||||
| Parameter | Description | Default |
|
||||
|-------------------------------------|-----------------------------------------------|-------------------------------------------------------- |
|
||||
| `image.repository` | nextcloud Image name | `nextcloud` |
|
||||
| `image.tag` | nextcloud Image tag | `{VERSION}` |
|
||||
| `image.pullPolicy` | Image pull policy | `Always` if `imageTag` is `latest`, else `IfNotPresent` |
|
||||
| `image.pullSecrets` | Specify image pull secrets | `nil` |
|
||||
| `ingress.enabled` | Enable use of ingress controllers | `false` |
|
||||
| `ingress.servicePort` | Ingress' backend servicePort | `http` |
|
||||
| `ingress.annotations` | An array of service annotations | `nil` |
|
||||
| `ingress.tls` | Ingress TLS configuration | `[]` |
|
||||
| `nextcloud.host` | nextcloud host to create application URLs | `nextcloud.kube.home` |
|
||||
| `nextcloud.username` | User of the application | `admin` |
|
||||
| `nextcloud.password` | Application password | `changeme` |
|
||||
| `nextcloud.update` | Trigger update if custom command is used | `0` |
|
||||
| `nextcloud.datadir` | nextcloud data dir location | `/var/www/html/data` |
|
||||
| `nextcloud.tableprefix` | nextcloud db table prefix | `''` |
|
||||
| `nextcloud.mail.enabled` | Whether to enable/disable email settings | `false` |
|
||||
| `nextcloud.mail.fromAddress` | nextcloud mail send from field | `nil` |
|
||||
| `nextcloud.mail.domain` | nextcloud mail domain | `nil` |
|
||||
| `nextcloud.mail.smtp.host` | SMTP hostname | `nil` |
|
||||
| `nextcloud.mail.smtp.secure` | SMTP connection `ssl` or empty | `''` |
|
||||
| `nextcloud.mail.smtp.port` | Optional SMTP port | `nil` |
|
||||
| `nextcloud.mail.smtp.authtype` | SMTP authentication method | `LOGIN` |
|
||||
| `nextcloud.mail.smtp.name` | SMTP username | `''` |
|
||||
| `nextcloud.mail.smtp.password` | SMTP password | `''` |
|
||||
| `nextcloud.configs` | Config files created in `/var/www/html/config`| `{}` |
|
||||
| `internalDatabase.enabled` | Whether to use internal sqlite database | `true` |
|
||||
| `internalDatabase.database` | Name of the existing database | `nextcloud` |
|
||||
| `externalDatabase.enabled` | Whether to use external database | `false` |
|
||||
| `externalDatabase.type` | External database type: `mysql`, `postgresql` | `mysql` |
|
||||
| `externalDatabase.host` | Host of the external database | `nil` |
|
||||
| `externalDatabase.database` | Name of the existing database | `nextcloud` |
|
||||
| `externalDatabase.user` | Existing username in the external db | `nextcloud` |
|
||||
| `externalDatabase.password` | Password for the above username | `nil` |
|
||||
| `mariadb.enabled` | Whether to use the MariaDB chart | `false` |
|
||||
| `mariadb.db.name` | Database name to create | `nextcloud` |
|
||||
| `mariadb.db.password` | Password for the database | `changeme` |
|
||||
| `mariadb.db.user` | Database user to create | `nextcloud` |
|
||||
| `mariadb.rootUser.password` | MariaDB admin password | `nil` |
|
||||
| `redis.enabled` | Whether to install/use redis for locking | `false` |
|
||||
| `cronjob.enabled` | Whether to enable/disable cronjob | `false` |
|
||||
| `cronjob.schedule` | Schedule for the CronJob | `*/15 * * * *` |
|
||||
| `cronjob.annotations` | Annotations to add to the cronjob | {} |
|
||||
| `cronjob.failedJobsHistoryLimit` | Specify the number of failed Jobs to keep | `5` |
|
||||
| `cronjob.successfulJobsHistoryLimit`| Specify the number of completed Jobs to keep | `2` |
|
||||
| `service.type` | Kubernetes Service type | `ClusterIp` |
|
||||
| `service.loadBalancerIP` | LoadBalancerIp for service type LoadBalancer | `nil` |
|
||||
| `persistence.enabled` | Enable persistence using PVC | `false` |
|
||||
| `persistence.storageClass` | PVC Storage Class for nextcloud volume | `nil` (uses alpha storage class annotation) |
|
||||
| `persistence.existingClaim` | An Existing PVC name for nextcloud volume | `nil` (uses alpha storage class annotation) |
|
||||
| `persistence.accessMode` | PVC Access Mode for nextcloud volume | `ReadWriteOnce` |
|
||||
| `persistence.size` | PVC Storage Request for nextcloud volume | `8Gi` |
|
||||
| `resources` | CPU/Memory resource requests/limits | `{}` |
|
||||
| `livenessProbe.enabled` | Turn on and off liveness probe | `true` |
|
||||
| `livenessProbe.initialDelaySeconds` | Delay before liveness probe is initiated | `30` |
|
||||
| `livenessProbe.periodSeconds` | How often to perform the probe | `15` |
|
||||
| `livenessProbe.timeoutSeconds` | When the probe times out | `5` |
|
||||
| `livenessProbe.failureThreshold` | Minimum consecutive failures for the probe | `3` |
|
||||
| `livenessProbe.successThreshold` | Minimum consecutive successes for the probe | `1` |
|
||||
| `readinessProbe.enabled` | Turn on and off readiness probe | `true` |
|
||||
| `readinessProbe.initialDelaySeconds`| Delay before readiness probe is initiated | `30` |
|
||||
| `readinessProbe.periodSeconds` | How often to perform the probe | `15` |
|
||||
| `readinessProbe.timeoutSeconds` | When the probe times out | `5` |
|
||||
| `readinessProbe.failureThreshold` | Minimum consecutive failures for the probe | `3` |
|
||||
| `readinessProbe.successThreshold` | Minimum consecutive successes for the probe | `1` |
|
||||
| Parameter | Description | Default |
|
||||
| ------------------------------------------------------------ | ------------------------------------------------------- | ------------------------------------------------------- |
|
||||
| `image.repository` | nextcloud Image name | `nextcloud` |
|
||||
| `image.tag` | nextcloud Image tag | `{VERSION}` |
|
||||
| `image.pullPolicy` | Image pull policy | `Always` if `imageTag` is `latest`, else `IfNotPresent` |
|
||||
| `image.pullSecrets` | Specify image pull secrets | `nil` |
|
||||
| `ingress.enabled` | Enable use of ingress controllers | `false` |
|
||||
| `ingress.servicePort` | Ingress' backend servicePort | `http` |
|
||||
| `ingress.annotations` | An array of service annotations | `nil` |
|
||||
| `ingress.tls` | Ingress TLS configuration | `[]` |
|
||||
| `nextcloud.host` | nextcloud host to create application URLs | `nextcloud.kube.home` |
|
||||
| `nextcloud.username` | User of the application | `admin` |
|
||||
| `nextcloud.password` | Application password | `changeme` |
|
||||
| `nextcloud.update` | Trigger update if custom command is used | `0` |
|
||||
| `nextcloud.datadir` | nextcloud data dir location | `/var/www/html/data` |
|
||||
| `nextcloud.tableprefix` | nextcloud db table prefix | `''` |
|
||||
| `nextcloud.mail.enabled` | Whether to enable/disable email settings | `false` |
|
||||
| `nextcloud.mail.fromAddress` | nextcloud mail send from field | `nil` |
|
||||
| `nextcloud.mail.domain` | nextcloud mail domain | `nil` |
|
||||
| `nextcloud.mail.smtp.host` | SMTP hostname | `nil` |
|
||||
| `nextcloud.mail.smtp.secure` | SMTP connection `ssl` or empty | `''` |
|
||||
| `nextcloud.mail.smtp.port` | Optional SMTP port | `nil` |
|
||||
| `nextcloud.mail.smtp.authtype` | SMTP authentication method | `LOGIN` |
|
||||
| `nextcloud.mail.smtp.name` | SMTP username | `''` |
|
||||
| `nextcloud.mail.smtp.password` | SMTP password | `''` |
|
||||
| `nextcloud.configs` | Config files created in `/var/www/html/config` | `{}` |
|
||||
| `nextcloud.phpConfigs` | PHP Config files created in `/usr/local/etc/php/conf.d` | `{}` |
|
||||
| `nextcloud.defaultConfigs.\.htaccess` | Default .htaccess to protect `/var/www/html/config` | `true` |
|
||||
| `nextcloud.defaultConfigs.\.redis\.config\.php` | Default Redis configuration | `true` |
|
||||
| `nextcloud.defaultConfigs.\.apache-pretty-urls\.config\.php` | Default Apache configuration for rewrite urls | `true` |
|
||||
| `nextcloud.defaultConfigs.\.apcu\.config\.php` | Default configuration to define APCu as local cache | `true` |
|
||||
| `nextcloud.defaultConfigs.\.apps\.config\.php` | Default configuration for apps | `true` |
|
||||
| `nextcloud.defaultConfigs.\.autoconfig\.php` | Default auto-configuration for databases | `true` |
|
||||
| `nextcloud.defaultConfigs.\.smtp\.config\.php` | Default configuration for smtp | `true` |
|
||||
| `internalDatabase.enabled` | Whether to use internal sqlite database | `true` |
|
||||
| `internalDatabase.database` | Name of the existing database | `nextcloud` |
|
||||
| `externalDatabase.enabled` | Whether to use external database | `false` |
|
||||
| `externalDatabase.type` | External database type: `mysql`, `postgresql` | `mysql` |
|
||||
| `externalDatabase.host` | Host of the external database | `nil` |
|
||||
| `externalDatabase.database` | Name of the existing database | `nextcloud` |
|
||||
| `externalDatabase.user` | Existing username in the external db | `nextcloud` |
|
||||
| `externalDatabase.password` | Password for the above username | `nil` |
|
||||
| `mariadb.enabled` | Whether to use the MariaDB chart | `false` |
|
||||
| `mariadb.db.name` | Database name to create | `nextcloud` |
|
||||
| `mariadb.db.password` | Password for the database | `changeme` |
|
||||
| `mariadb.db.user` | Database user to create | `nextcloud` |
|
||||
| `mariadb.rootUser.password` | MariaDB admin password | `nil` |
|
||||
| `redis.enabled` | Whether to install/use redis for locking | `false` |
|
||||
| `cronjob.enabled` | Whether to enable/disable cronjob | `false` |
|
||||
| `cronjob.schedule` | Schedule for the CronJob | `*/15 * * * *` |
|
||||
| `cronjob.annotations` | Annotations to add to the cronjob | {} |
|
||||
| `cronjob.failedJobsHistoryLimit` | Specify the number of failed Jobs to keep | `5` |
|
||||
| `cronjob.successfulJobsHistoryLimit` | Specify the number of completed Jobs to keep | `2` |
|
||||
| `cronjob.resources` | Cronjob Resources | `nil` |
|
||||
| `cronjob.nodeSelector` | Cronjob Node selector | `nil` |
|
||||
| `cronjob.tolerations` | Cronjob tolerations | `nil` |
|
||||
| `cronjob.affinity` | Cronjob affinity | `nil` |
|
||||
| `service.type` | Kubernetes Service type | `ClusterIp` |
|
||||
| `service.loadBalancerIP` | LoadBalancerIp for service type LoadBalancer | `nil` |
|
||||
| `persistence.enabled` | Enable persistence using PVC | `false` |
|
||||
| `persistence.annotations` | PVC annotations | `{}` |
|
||||
| `persistence.storageClass` | PVC Storage Class for nextcloud volume | `nil` (uses alpha storage class annotation) |
|
||||
| `persistence.existingClaim` | An Existing PVC name for nextcloud volume | `nil` (uses alpha storage class annotation) |
|
||||
| `persistence.accessMode` | PVC Access Mode for nextcloud volume | `ReadWriteOnce` |
|
||||
| `persistence.size` | PVC Storage Request for nextcloud volume | `8Gi` |
|
||||
| `resources` | CPU/Memory resource requests/limits | `{}` |
|
||||
| `livenessProbe.enabled` | Turn on and off liveness probe | `true` |
|
||||
| `livenessProbe.initialDelaySeconds` | Delay before liveness probe is initiated | `30` |
|
||||
| `livenessProbe.periodSeconds` | How often to perform the probe | `15` |
|
||||
| `livenessProbe.timeoutSeconds` | When the probe times out | `5` |
|
||||
| `livenessProbe.failureThreshold` | Minimum consecutive failures for the probe | `3` |
|
||||
| `livenessProbe.successThreshold` | Minimum consecutive successes for the probe | `1` |
|
||||
| `readinessProbe.enabled` | Turn on and off readiness probe | `true` |
|
||||
| `readinessProbe.initialDelaySeconds` | Delay before readiness probe is initiated | `30` |
|
||||
| `readinessProbe.periodSeconds` | How often to perform the probe | `15` |
|
||||
| `readinessProbe.timeoutSeconds` | When the probe times out | `5` |
|
||||
| `readinessProbe.failureThreshold` | Minimum consecutive failures for the probe | `3` |
|
||||
| `readinessProbe.successThreshold` | Minimum consecutive successes for the probe | `1` |
|
||||
|
||||
> **Note**:
|
||||
>
|
||||
@@ -161,11 +174,11 @@ See the [Configuration](#configuration) section for further configuration of the
|
||||
|
||||
## Multiple config.php file
|
||||
|
||||
Nextcloud supports loading configuration parameters from multiple files.
|
||||
You can add arbitrary files ending with `.config.php` in the `config/` directory.
|
||||
Nextcloud supports loading configuration parameters from multiple files.
|
||||
You can add arbitrary files ending with `.config.php` in the `config/` directory.
|
||||
See [documentation](https://docs.nextcloud.com/server/15/admin_manual/configuration_server/config_sample_php_parameters.html#multiple-config-php-file).
|
||||
|
||||
For example, following config will configure Nextcloud with [S3 as primary storage](https://docs.nextcloud.com/server/13/admin_manual/configuration_files/primary_storage.html#simple-storage-service-s3) by creating file `/var/www/html/config/s3.config.php`:
|
||||
For example, following config will configure Nextcloud with [S3 as primary storage](https://docs.nextcloud.com/server/13/admin_manual/configuration_files/primary_storage.html#simple-storage-service-s3) by creating file `/var/www/html/config/s3.config.php`:
|
||||
|
||||
```yaml
|
||||
nextcloud:
|
||||
|
||||
@@ -13,4 +13,115 @@ data:
|
||||
{{ $key }}: |-
|
||||
{{ $value | indent 4 }}
|
||||
{{- end }}
|
||||
{{- if .Values.nextcloud.defaultConfigs }}
|
||||
{{- if index .Values.nextcloud.defaultConfigs ".htaccess" }}
|
||||
.htaccess: |-
|
||||
# line below if for Apache 2.4
|
||||
<ifModule mod_authz_core.c>
|
||||
Require all denied
|
||||
</ifModule>
|
||||
# line below if for Apache 2.2
|
||||
<ifModule !mod_authz_core.c>
|
||||
deny from all
|
||||
</ifModule>
|
||||
# section for Apache 2.2 and 2.4
|
||||
<ifModule mod_autoindex.c>
|
||||
IndexIgnore *
|
||||
</ifModule>
|
||||
{{- end }}
|
||||
{{- if index .Values.nextcloud.defaultConfigs "redis.config.php" }}
|
||||
redis.config.php: |-
|
||||
<?php
|
||||
if (getenv('REDIS_HOST')) {
|
||||
$CONFIG = array (
|
||||
'memcache.distributed' => '\OC\Memcache\Redis',
|
||||
'memcache.locking' => '\OC\Memcache\Redis',
|
||||
'redis' => array(
|
||||
'host' => getenv('REDIS_HOST'),
|
||||
'port' => getenv('REDIS_HOST_PORT') ?: 6379,
|
||||
),
|
||||
);
|
||||
}
|
||||
{{- end }}
|
||||
{{- if index .Values.nextcloud.defaultConfigs "apache-pretty-urls.config.php" }}
|
||||
apache-pretty-urls.config.php: |-
|
||||
<?php
|
||||
$CONFIG = array (
|
||||
'htaccess.RewriteBase' => '/',
|
||||
);
|
||||
{{- end }}
|
||||
{{- if index .Values.nextcloud.defaultConfigs "apcu.config.php" }}
|
||||
apcu.config.php: |-
|
||||
<?php
|
||||
$CONFIG = array (
|
||||
'memcache.local' => '\OC\Memcache\APCu',
|
||||
);
|
||||
{{- end }}
|
||||
{{- if index .Values.nextcloud.defaultConfigs "apps.config.php" }}
|
||||
apps.config.php: |-
|
||||
<?php
|
||||
$CONFIG = array (
|
||||
"apps_paths" => array (
|
||||
0 => array (
|
||||
"path" => OC::$SERVERROOT."/apps",
|
||||
"url" => "/apps",
|
||||
"writable" => false,
|
||||
),
|
||||
1 => array (
|
||||
"path" => OC::$SERVERROOT."/custom_apps",
|
||||
"url" => "/custom_apps",
|
||||
"writable" => true,
|
||||
),
|
||||
),
|
||||
);
|
||||
{{- end }}
|
||||
{{- if index .Values.nextcloud.defaultConfigs "autoconfig.php" }}
|
||||
autoconfig.php: |-
|
||||
<?php
|
||||
$autoconfig_enabled = false;
|
||||
if (getenv('SQLITE_DATABASE')) {
|
||||
$AUTOCONFIG["dbtype"] = "sqlite";
|
||||
$AUTOCONFIG["dbname"] = getenv('SQLITE_DATABASE');
|
||||
$autoconfig_enabled = true;
|
||||
} elseif (getenv('MYSQL_DATABASE') && getenv('MYSQL_USER') && getenv('MYSQL_PASSWORD') && getenv('MYSQL_HOST')) {
|
||||
$AUTOCONFIG["dbtype"] = "mysql";
|
||||
$AUTOCONFIG["dbname"] = getenv('MYSQL_DATABASE');
|
||||
$AUTOCONFIG["dbuser"] = getenv('MYSQL_USER');
|
||||
$AUTOCONFIG["dbpass"] = getenv('MYSQL_PASSWORD');
|
||||
$AUTOCONFIG["dbhost"] = getenv('MYSQL_HOST');
|
||||
$autoconfig_enabled = true;
|
||||
} elseif (getenv('POSTGRES_DB') && getenv('POSTGRES_USER') && getenv('POSTGRES_PASSWORD') && getenv('POSTGRES_HOST')) {
|
||||
$AUTOCONFIG["dbtype"] = "pgsql";
|
||||
$AUTOCONFIG["dbname"] = getenv('POSTGRES_DB');
|
||||
$AUTOCONFIG["dbuser"] = getenv('POSTGRES_USER');
|
||||
$AUTOCONFIG["dbpass"] = getenv('POSTGRES_PASSWORD');
|
||||
$AUTOCONFIG["dbhost"] = getenv('POSTGRES_HOST');
|
||||
$autoconfig_enabled = true;
|
||||
}
|
||||
if ($autoconfig_enabled) {
|
||||
if (getenv('NEXTCLOUD_TABLE_PREFIX')) {
|
||||
$AUTOCONFIG["dbtableprefix"] = getenv('NEXTCLOUD_TABLE_PREFIX');
|
||||
}
|
||||
$AUTOCONFIG["directory"] = getenv('NEXTCLOUD_DATA_DIR') ?: "/var/www/html/data";
|
||||
}
|
||||
{{- end }}
|
||||
{{- if index .Values.nextcloud.defaultConfigs "smtp.config.php" }}
|
||||
smtp.config.php: |-
|
||||
<?php
|
||||
if (getenv('SMTP_HOST') && getenv('MAIL_FROM_ADDRESS') && getenv('MAIL_DOMAIN')) {
|
||||
$CONFIG = array (
|
||||
'mail_smtpmode' => 'smtp',
|
||||
'mail_smtphost' => getenv('SMTP_HOST'),
|
||||
'mail_smtpport' => getenv('SMTP_PORT') ?: (getenv('SMTP_SECURE') ? 465 : 25),
|
||||
'mail_smtpsecure' => getenv('SMTP_SECURE') ?: '',
|
||||
'mail_smtpauth' => getenv('SMTP_NAME') && getenv('SMTP_PASSWORD'),
|
||||
'mail_smtpauthtype' => getenv('SMTP_AUTHTYPE') ?: 'LOGIN',
|
||||
'mail_smtpname' => getenv('SMTP_NAME') ?: '',
|
||||
'mail_smtppassword' => getenv('SMTP_PASSWORD') ?: '',
|
||||
'mail_from_address' => getenv('MAIL_FROM_ADDRESS'),
|
||||
'mail_domain' => getenv('MAIL_DOMAIN'),
|
||||
);
|
||||
}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
@@ -22,8 +22,8 @@ spec:
|
||||
jobTemplate:
|
||||
metadata:
|
||||
labels:
|
||||
app: {{ include "nextcloud.name" . }}
|
||||
release: {{ .Release.Name }}
|
||||
app.kubernetes.io/name: {{ include "nextcloud.name" . }}
|
||||
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
||||
spec:
|
||||
template:
|
||||
metadata:
|
||||
@@ -32,29 +32,36 @@ spec:
|
||||
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
||||
spec:
|
||||
restartPolicy: Never
|
||||
{{- if (default .Values.image.pullSecrets .Values.cronjob.image.pullSecrets) }}
|
||||
imagePullSecrets:
|
||||
{{- range (default .Values.image.pullSecrets .Values.cronjob.image.pullSecrets) }}
|
||||
- name: {{ . }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
containers:
|
||||
- name: {{ .Chart.Name }}
|
||||
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
|
||||
imagePullPolicy: {{ .Values.image.pullPolicy }}
|
||||
image: "{{ default .Values.image.repository .Values.cronjob.image.repository }}:{{ default .Values.image.tag .Values.cronjob.image.tag }}"
|
||||
imagePullPolicy: {{ default .Values.image.pullPolicy .Values.cronjob.image.pullPolicy }}
|
||||
command: [ "curl" ]
|
||||
args:
|
||||
- "--fail"
|
||||
- "-L"
|
||||
{{- if .Values.ingress.tls }}
|
||||
- "https://{{ .Values.nextcloud.host }}/cron.php"
|
||||
{{- else }}
|
||||
- "http://{{ .Values.nextcloud.host }}/cron.php"
|
||||
{{- end }}
|
||||
resources:
|
||||
{{ toYaml .Values.resources | indent 16 }}
|
||||
{{- with .Values.nodeSelector }}
|
||||
{{ toYaml (default .Values.resources .Values.cronjob.resources) | indent 16 }}
|
||||
{{- with (default .Values.nodeSelector .Values.cronjob.nodeSelector) }}
|
||||
nodeSelector:
|
||||
{{ toYaml . | indent 12 }}
|
||||
{{- end }}
|
||||
{{- with .Values.affinity }}
|
||||
{{- with (default .Values.affinity .Values.cronjob.affinity) }}
|
||||
affinity:
|
||||
{{ toYaml . | indent 12 }}
|
||||
{{- end }}
|
||||
{{- with .Values.tolerations }}
|
||||
{{- with (default .Values.tolerations .Values.cronjob.tolerations) }}
|
||||
tolerations:
|
||||
{{ toYaml . | indent 12 }}:
|
||||
{{- end }}
|
||||
|
||||
@@ -174,8 +174,11 @@ spec:
|
||||
{{ toYaml .Values.resources | indent 10 }}
|
||||
volumeMounts:
|
||||
- name: nextcloud-data
|
||||
mountPath: /var/www/html/
|
||||
mountPath: /var/www/
|
||||
subPath: root
|
||||
- name: nextcloud-data
|
||||
mountPath: /var/www/html
|
||||
subPath: html
|
||||
- name: nextcloud-data
|
||||
mountPath: {{ .Values.nextcloud.datadir }}
|
||||
subPath: data
|
||||
@@ -185,6 +188,9 @@ spec:
|
||||
- name: nextcloud-data
|
||||
mountPath: /var/www/html/custom_apps
|
||||
subPath: custom_apps
|
||||
- name: nextcloud-data
|
||||
mountPath: /var/www/tmp
|
||||
subPath: tmp
|
||||
- name: nextcloud-data
|
||||
mountPath: /var/www/html/themes
|
||||
subPath: themes
|
||||
@@ -193,6 +199,20 @@ spec:
|
||||
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 }}
|
||||
{{- range $key, $value := .Values.nextcloud.phpConfigs }}
|
||||
- name: nextcloud-phpconfig
|
||||
mountPath: /usr/local/etc/php/conf.d/{{ $key }}
|
||||
subPath: {{ $key }}
|
||||
{{- end }}
|
||||
{{- with .Values.nodeSelector }}
|
||||
nodeSelector:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
@@ -218,3 +238,11 @@ spec:
|
||||
configMap:
|
||||
name: {{ template "nextcloud.fullname" . }}-config
|
||||
{{- end }}
|
||||
{{- if .Values.nextcloud.phpConfigs }}
|
||||
- name: nextcloud-phpconfig
|
||||
configMap:
|
||||
name: {{ template "nextcloud.fullname" . }}-phpconfig
|
||||
{{- end }}
|
||||
# Will mount configuration files as www-data (id: 33) for nextcloud
|
||||
securityContext:
|
||||
fsGroup: 33
|
||||
|
||||
@@ -4,6 +4,15 @@ kind: PersistentVolumeClaim
|
||||
apiVersion: v1
|
||||
metadata:
|
||||
name: {{ template "nextcloud.fullname" . }}-nextcloud
|
||||
labels:
|
||||
app.kubernetes.io/name: {{ include "nextcloud.name" . }}
|
||||
helm.sh/chart: {{ include "nextcloud.chart" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
||||
{{- if .Values.persistence.annotations }}
|
||||
annotations:
|
||||
{{ toYaml .Values.persistence.annotations | indent 4 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
accessModes:
|
||||
- {{ .Values.persistence.accessMode | quote }}
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
{{- if .Values.nextcloud.phpConfigs -}}
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: {{ template "nextcloud.fullname" . }}-phpconfig
|
||||
labels:
|
||||
app.kubernetes.io/name: {{ include "nextcloud.name" . }}
|
||||
helm.sh/chart: {{ include "nextcloud.chart" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
||||
data:
|
||||
{{- range $key, $value := .Values.nextcloud.phpConfigs }}
|
||||
{{ $key }}: |-
|
||||
{{ $value | indent 4 }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
@@ -75,6 +75,27 @@ nextcloud:
|
||||
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: {}
|
||||
@@ -153,6 +174,13 @@ redis:
|
||||
##
|
||||
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 15 minutes
|
||||
# Note: Setting this to any any other value than 15 minutes might
|
||||
# cause issues with how nextcloud background jobs are executed
|
||||
@@ -160,6 +188,27 @@ cronjob:
|
||||
annotations: {}
|
||||
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
|
||||
@@ -170,7 +219,9 @@ service:
|
||||
## 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
|
||||
|
||||
Reference in New Issue
Block a user