Clean nextcloud chart stripping to basics
This commit is contained in:
parent
f85006a283
commit
af0148456d
|
@ -10,225 +10,4 @@ It also packages the [Bitnami MariaDB chart](https://github.com/kubernetes/chart
|
|||
|
||||
## Configuration
|
||||
|
||||
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 | `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.labels` | An array of service labels | `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.persistence.subPath` | Set the subPath for nextcloud to use in volume | `nil` |
|
||||
| `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` |
|
||||
| `nextcloud.strategy` | specifies the strategy used to replace old Pods by new ones | `type: Recreate` |
|
||||
| `nextcloud.extraEnv` | specify additional environment variables | `{}` |
|
||||
| `nextcloud.extraVolumes` | specify additional volumes for the NextCloud pod | `{}` |
|
||||
| `nextcloud.extraVolumeMounts` | specify additional volume mounts for the NextCloud pod | `{}` |
|
||||
| `nginx.enabled` | Enable nginx (requires you use php-fpm image) | `false` |
|
||||
| `nginx.image.repository` | nginx Image name | `nginx` |
|
||||
| `nginx.image.tag` | nginx Image tag | `alpine` |
|
||||
| `nginx.image.pullPolicy` | nginx Image pull policy | `IfNotPresent` |
|
||||
| `nginx.config.default` | Whether to use nextclouds recommended nginx config | `true` |
|
||||
| `nginx.config.custom` | Specify a custom config for nginx | `{}` |
|
||||
| `nginx.resources` | nginx resources | `{}` |
|
||||
| `lifecycle.postStartCommand` | Specify deployment lifecycle hook postStartCommand | `nil` |
|
||||
| `lifecycle.preStopCommand` | Specify deployment lifecycle hook preStopCommand | `nil` |
|
||||
| `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` |
|
||||
| `externalDatabase.existingSecret.enabled` | Whether to use a existing secret or not | `false` |
|
||||
| `externalDatabase.existingSecret.secretName` | Name of the existing secret | `nil` |
|
||||
| `externalDatabase.existingSecret.usernameKey` | Name of the key that contains the username | `nil` |
|
||||
| `externalDatabase.existingSecret.passwordKey` | Name of the key that contains the password | `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.curlInsecure` | Set insecure (-k) option to curl | false |
|
||||
| `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` |
|
||||
| `service.nodePort` | NodePort for service type NodePort | `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` |
|
||||
| `hpa.enabled` | Boolean to create a HorizontalPodAutoscaler | `false` |
|
||||
| `hpa.cputhreshold` | CPU threshold percent for the HorizontalPodAutoscale | `60` |
|
||||
| `hpa.minPods` | Min. pods for the Nextcloud HorizontalPodAutoscaler | `1` |
|
||||
| `hpa.maxPods` | Max. pods for the Nextcloud HorizontalPodAutoscaler | `10` |
|
||||
| `deploymentAnnotations` | Annotations to be added at 'deployment' level | not set |
|
||||
| `podAnnotations` | Annotations to be added at 'pod' level | not set |
|
||||
| `metrics.enabled` | Start Prometheus metrics exporter | `false` |
|
||||
| `metrics.https` | Defines if https is used to connect to nextcloud | `false` (uses http) |
|
||||
| `metrics.timeout` | When the scrape times out | `5s` |
|
||||
| `metrics.image.repository` | Nextcloud metrics exporter image name | `xperimental/nextcloud-exporter` |
|
||||
| `metrics.image.tag` | Nextcloud metrics exporter image tag | `v0.3.0` |
|
||||
| `metrics.image.pullPolicy` | Nextcloud metrics exporter image pull policy | `IfNotPresent` |
|
||||
| `metrics.podAnnotations` | Additional annotations for metrics exporter | not set |
|
||||
| `metrics.podLabels` | Additional labels for metrics exporter | not set |
|
||||
| `metrics.service.type` | Metrics: Kubernetes Service type | `ClusterIP` |
|
||||
| `metrics.service.loadBalancerIP` | Metrics: LoadBalancerIp for service type LoadBalancer | `nil` |
|
||||
| `metrics.service.nodePort` | Metrics: NodePort for service type NodePort | `nil` |
|
||||
| `metrics.service.annotations` | Additional annotations for service metrics exporter | `{prometheus.io/scrape: "true", prometheus.io/port: "9205"}` |
|
||||
| `metrics.service.labels` | Additional labels for service metrics exporter | `{}` |
|
||||
|
||||
> **Note**:
|
||||
>
|
||||
> For nextcloud to function correctly, you should specify the `nextcloud.host` parameter to specify the FQDN (recommended) or the public IP address of the nextcloud service.
|
||||
>
|
||||
> Optionally, you can specify the `service.loadBalancerIP` parameter to assign a reserved IP address to the nextcloud service of the chart. However please note that this feature is only available on a few cloud providers (f.e. GKE).
|
||||
>
|
||||
> To reserve a public IP address on GKE:
|
||||
>
|
||||
> ```bash
|
||||
> gcloud compute addresses create nextcloud-public-ip
|
||||
> ```
|
||||
>
|
||||
> The reserved IP address can be associated to the nextcloud service by specifying it as the value of the `service.loadBalancerIP` parameter while installing the chart.
|
||||
|
||||
Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. For example,
|
||||
|
||||
```console
|
||||
helm install --name my-release \
|
||||
--set nextcloud.username=admin,nextcloud.password=password,mariadb.rootUser.password=secretpassword \
|
||||
nextcloud/nextcloud
|
||||
```
|
||||
|
||||
The above command sets the nextcloud administrator account username and password to `admin` and `password` respectively. Additionally, it sets the MariaDB `root` user password to `secretpassword`.
|
||||
|
||||
Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart. For example,
|
||||
|
||||
```console
|
||||
helm install --name my-release -f values.yaml nextcloud/nextcloud
|
||||
```
|
||||
|
||||
> **Tip**: You can use the default [values.yaml](values.yaml)
|
||||
|
||||
## Persistence
|
||||
|
||||
The [Nextcloud](https://hub.docker.com/_/nextcloud/) image stores the nextcloud data and configurations at the `/var/www/html` paths of the container.
|
||||
|
||||
Persistent Volume Claims are used to keep the data across deployments. This is known to work in GCE, AWS, and minikube.
|
||||
See the [Configuration](#configuration) section to enable persistence and configuration of the PVC.
|
||||
|
||||
## Cronjob
|
||||
|
||||
This chart can utilize Kubernetes `CronJob` resource to execute [background tasks](https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/background_jobs_configuration.html).
|
||||
|
||||
To use this functionality, set `cronjob.enabled` parameter to `true` and switch background mode to Webcron in your nextcloud settings page.
|
||||
See the [Configuration](#configuration) section for further configuration of the cronjob resource.
|
||||
|
||||
> **Note**: For the cronjobs to work correctly, ingress must be also enabled (set `ingress.enabled` to `true`) and `nextcloud.host` has to be publicly resolvable.
|
||||
|
||||
## 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.
|
||||
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`:
|
||||
|
||||
```yaml
|
||||
nextcloud:
|
||||
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
|
||||
)
|
||||
)
|
||||
);
|
||||
```
|
||||
|
||||
## Hugepages
|
||||
|
||||
If your node has hugepages enabled, but you do not map any into the container, it could fail to start with a bus error in Apache. This is due
|
||||
to Apache attempting to memory map a file and use hugepages. The fix is to either disable huge pages on the node or map hugepages into the container:
|
||||
|
||||
```yaml
|
||||
nextcloud:
|
||||
extraVolumes:
|
||||
- name: hugepages
|
||||
emptyDir:
|
||||
medium: HugePages-2Mi
|
||||
extraVolumeMounts:
|
||||
- name: hugepages
|
||||
mountPath: /dev/hugepages
|
||||
resources:
|
||||
requests:
|
||||
hugepages-2Mi: 500Mi
|
||||
# note that Kubernetes currently requires cpu or memory requests and limits before hugepages are allowed.
|
||||
memory: 500Mi
|
||||
limits:
|
||||
# limit and request must be the same for hugepages. They are a fixed resource.
|
||||
hugepages-2Mi: 500Mi
|
||||
# note that Kubernetes currently requires cpu or memory requests and limits before hugepages are allowed.
|
||||
memory: 1Gi
|
||||
```
|
||||
Please refer to questions.yaml for a detailed overview on supported configurable values.
|
||||
|
|
|
@ -1,127 +0,0 @@
|
|||
{{- if .Values.nextcloud.configs -}}
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: {{ template "nextcloud.fullname" . }}-config
|
||||
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.configs }}
|
||||
{{ $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 }}
|
|
@ -82,44 +82,25 @@ spec:
|
|||
volumeMounts:
|
||||
- name: nextcloud-data
|
||||
mountPath: /var/www/
|
||||
subPath: {{ ternary "root" (printf "%s/%s" .Values.nextcloud.persistence.subPath "root") (empty .Values.nextcloud.persistence.subPath) }}
|
||||
subPath: "root"
|
||||
- name: nextcloud-data
|
||||
mountPath: /var/www/html
|
||||
subPath: {{ ternary "html" (printf "%s/%s" .Values.nextcloud.persistence.subPath "html") (empty .Values.nextcloud.persistence.subPath) }}
|
||||
subPath: "html"
|
||||
- name: nextcloud-data
|
||||
mountPath: {{ .Values.nextcloud.datadir }}
|
||||
subPath: {{ ternary "data" (printf "%s/%s" .Values.nextcloud.persistence.subPath "data") (empty .Values.nextcloud.persistence.subPath) }}
|
||||
subPath: "data"
|
||||
- name: nextcloud-data
|
||||
mountPath: /var/www/html/config
|
||||
subPath: {{ ternary "config" (printf "%s/%s" .Values.nextcloud.persistence.subPath "config") (empty .Values.nextcloud.persistence.subPath) }}
|
||||
subPath: "config"
|
||||
- name: nextcloud-data
|
||||
mountPath: /var/www/html/custom_apps
|
||||
subPath: {{ ternary "custom_apps" (printf "%s/%s" .Values.nextcloud.persistence.subPath "custom_apps") (empty .Values.nextcloud.persistence.subPath) }}
|
||||
subPath: "custom_apps"
|
||||
- name: nextcloud-data
|
||||
mountPath: /var/www/tmp
|
||||
subPath: {{ ternary "tmp" (printf "%s/%s" .Values.nextcloud.persistence.subPath "tmp") (empty .Values.nextcloud.persistence.subPath) }}
|
||||
subPath: "tmp"
|
||||
- name: nextcloud-data
|
||||
mountPath: /var/www/html/themes
|
||||
subPath: {{ ternary "themes" (printf "%s/%s" .Values.nextcloud.persistence.subPath "themes") (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 }}
|
||||
{{- range $key, $value := .Values.nextcloud.phpConfigs }}
|
||||
- name: nextcloud-phpconfig
|
||||
mountPath: /usr/local/etc/php/conf.d/{{ $key }}
|
||||
subPath: {{ $key }}
|
||||
{{- end }}
|
||||
subPath: "themes"
|
||||
volumes:
|
||||
- name: nextcloud-data
|
||||
{{- if ne (include "configuredHostPath" .) "" }}
|
||||
|
@ -128,16 +109,6 @@ spec:
|
|||
{{- else }}
|
||||
emptyDir: {}
|
||||
{{- end }}
|
||||
{{- if .Values.nextcloud.configs }}
|
||||
- name: nextcloud-config
|
||||
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
|
||||
|
|
|
@ -1,16 +0,0 @@
|
|||
{{- 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 }}
|
|
@ -11,56 +11,6 @@ nextcloud:
|
|||
username: admin
|
||||
password: changeme
|
||||
datadir: /var/www/html/data
|
||||
persistence:
|
||||
subPath:
|
||||
# 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: "Recreate"
|
||||
|
||||
postgresql:
|
||||
|
@ -72,4 +22,4 @@ postgresql:
|
|||
datasetName: "ix-postgres_data"
|
||||
|
||||
service:
|
||||
nodePort: 9000
|
||||
nodePort: 9000
|
||||
|
|
Loading…
Reference in New Issue