- Lower `nextcloud.resources.requests.memory` from `1Gi` to `256Mi` - Lower `nextcloud.resources.limits.memory` from `2Gi` to `512Mi` - Update `README.md` documentation to reflect new resource defaults
113 lines
7.6 KiB
Markdown
113 lines
7.6 KiB
Markdown
# Mint System Nextcloud
|
|
|
|
This Helm chart deploys Nextcloud with PostgreSQL.
|
|
|
|
This chart is a wrapper for the official Nextcloud chart: https://github.com/nextcloud/helm/blob/main/charts/nextcloud/README.md#configuration
|
|
|
|
|
|
## Secrets
|
|
|
|
Setup a `nextcloud-creds` secret with any additional environment variables you want to pass to Nextcloud.
|
|
|
|
```bash
|
|
kubectl create secret generic nextcloud-creds \
|
|
--from-literal=nextcloud-username="$nextcloud_admin_user" \
|
|
--from-literal=nextcloud-password="$nextcloud_admin_password" \
|
|
--from-literal=smtp-host="$smtp_host" \
|
|
--from-literal=smtp-username="$smtp_username" \
|
|
--from-literal=smtp-password="$smtp_password" \
|
|
-n $namespace
|
|
```
|
|
|
|
The K8up backup requires a `s3-credentials` and a `backup-repo` secret. Here is an example for Exoscale SOS:
|
|
|
|
```bash
|
|
kubectl create secret generic s3-credentials \
|
|
--from-literal=username="$exoscale_iam_key" \
|
|
--from-literal=password="$exoscale_iam_secret" \
|
|
-n $namespace
|
|
```
|
|
|
|
## Parameters
|
|
|
|
### Ingress parameters
|
|
|
|
| Name | Description | Value |
|
|
| -------------------------- | -------------------------------------------- | ------ |
|
|
| `ingress.enabled` | Enable or disable the ingress | `true` |
|
|
| `ingress.className` | The class name for the ingress | `""` |
|
|
| `ingress.clusterIssuerRef` | The cluster issuer reference for the ingress | `nil` |
|
|
| `ingress.host` | The host for the ingress | `""` |
|
|
|
|
### Nextcloud parameters
|
|
|
|
| Name | Description | Value |
|
|
| ------------------------------------------------------- | ------------------------------------------------------------------- | -------------------------- |
|
|
| `nextcloud.enabled` | Enable or disable Nextcloud | `true` |
|
|
| `nextcloud.ingress.enabled` | Enable or disable the Nextcloud subchart ingress | `false` |
|
|
| `nextcloud.nextcloud.host` | The host for Nextcloud and Ingress | `""` |
|
|
| `nextcloud.nextcloud.existingSecret.enabled` | Use an existing secret for credentials | `true` |
|
|
| `nextcloud.nextcloud.existingSecret.enabled` | Enable or disable using an existing secret | `true` |
|
|
| `nextcloud.nextcloud.existingSecret.secretName` | Name of the existing Kubernetes secret | `nextcloud-creds` |
|
|
| `nextcloud.nextcloud.mail.enabled` | Whether to enable/disable email settings | `true` |
|
|
| `nextcloud.persistence.enabled` | Enable persistence using PVC | `true` |
|
|
| `nextcloud.phpClientHttpsFix.enabled` | Fix HTTPS protocol detection behind reverse proxy | `true` |
|
|
| `nextcloud.internalDatabase.enabled` | Enable or disable the internal SQLite database | `false` |
|
|
| `nextcloud.redis.enabled` | Enable or disable the bitnami Redis subchart | `false` |
|
|
| `nextcloud.redis.auth.enabled` | Enable or disable Redis authentication | `false` |
|
|
| `nextcloud.externalRedis.enabled` | Enable or disable external Redis | `true` |
|
|
| `nextcloud.externalRedis.host` | Hostname or service name of the external Redis | `nextcloud-redis` |
|
|
| `nextcloud.externalDatabase.enabled` | Enable or disable external database usage | `true` |
|
|
| `nextcloud.externalDatabase.type` | Type of external database (e.g., postgresql, mysql) | `postgresql` |
|
|
| `nextcloud.externalDatabase.host` | Hostname or service name of the external database | `nextcloud-postgresql-rw` |
|
|
| `nextcloud.externalDatabase.database` | Name of the database to use | `nextcloud` |
|
|
| `nextcloud.externalDatabase.existingSecret.enabled` | Enable or disable using an existing secret for database credentials | `true` |
|
|
| `nextcloud.externalDatabase.existingSecret.secretName` | Name of the existing Kubernetes secret | `nextcloud-postgresql-app` |
|
|
| `nextcloud.externalDatabase.existingSecret.usernameKey` | Key in the secret containing the database username | `username` |
|
|
| `nextcloud.externalDatabase.existingSecret.passwordKey` | Key in the secret containing the database password | `password` |
|
|
| `nextcloud.resources.requests.memory` | Memory request for the container | `256Mi` |
|
|
| `nextcloud.resources.requests.cpu` | CPU request for the container | `250m` |
|
|
| `nextcloud.resources.limits.memory` | Memory limit for the container | `512Mi` |
|
|
|
|
### Redis parameters
|
|
|
|
| Name | Description | Value |
|
|
| --------------- | ----------------------- | -------------- |
|
|
| `redis.enabled` | Enable or disable Redis | `true` |
|
|
| `redis.image` | The image for Redis | `redis:alpine` |
|
|
|
|
### CloudNativePG parameters
|
|
|
|
| Name | Description | Value |
|
|
| ------------------- | ------------------------------------------------------------ | ---------------------------------------- |
|
|
| `cnpg.enabled` | Enable or disable CloudNativePG | `true` |
|
|
| `cnpg.instances` | Number of instances (1 for single, 2+ for high availability) | `1` |
|
|
| `cnpg.imageName` | PostgreSQL image to use | `ghcr.io/cloudnative-pg/postgresql:16.0` |
|
|
| `cnpg.storage.size` | Persistent volume size for each instance | `8Gi` |
|
|
| `cnpg.database` | Name of the CloudNativePG database to create | `nextcloud` |
|
|
| `cnpg.owner` | Name of the database user | `app` |
|
|
|
|
### K8up parameters
|
|
|
|
| Name | Description | Value |
|
|
| --------------- | ---------------------- | ------- |
|
|
| `k8up.enabled` | Enable or disable K8up | `false` |
|
|
| `k8up.endpoint` | S3 endpoint | `""` |
|
|
| `k8up.bucket` | S3 bucket name | `""` |
|
|
|
|
## Troubleshooting
|
|
|
|
### The config.php is not updated
|
|
|
|
**Problem**
|
|
|
|
The `config.php` of Nextcloud is not updated with new env values.
|
|
|
|
**Solution**
|
|
|
|
Delete the `config.php` file and the pods.
|
|
|
|
```bash
|
|
kubectl exec <pod> -- rm /var/www/html/config/config.php
|
|
kubectl delete pod <pod>
|
|
``` |