Files
Janik von Rotz 5a2317b379 fix(nextcloud): reduce memory requests and limits in values and README
- 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
2026-09-21 11:26:04 +02:00

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>
```