Skip to content
This repository was archived by the owner on Jul 13, 2025. It is now read-only.

Commit 0647c98

Browse files
authored
Merge pull request #1 from k8sonlab/develop
Next Major Release: v7
2 parents 3f6a764 + 2109619 commit 0647c98

File tree

9 files changed

+174
-31
lines changed

9 files changed

+174
-31
lines changed

.github/workflows/lint-test.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ on:
55
paths:
66
jobs:
77
changes:
8-
runs-on: ubuntu-latest-low
8+
runs-on: ubuntu-latest
99

1010
outputs:
1111
src: ${{ steps.changes.outputs.src}}
@@ -22,7 +22,7 @@ jobs:
2222
- 'charts/nextcloud/templates/**'
2323
2424
lint:
25-
runs-on: ubuntu-latest-low
25+
runs-on: ubuntu-latest
2626
needs: changes
2727
if: needs.changes.outputs.src != 'false'
2828
steps:
@@ -162,7 +162,7 @@ jobs:
162162
exit $EXIT
163163
164164
summary:
165-
runs-on: ubuntu-latest-low
165+
runs-on: ubuntu-latest
166166
needs: [changes, test]
167167
if: always()
168168
steps:

charts/nextcloud/CHANGELOG.md

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
# Changelog
2+
3+
This Helm-Chart increase there major version on every breaking change (or major version of Nextcloud itself) inspired by semantic releases.
4+
5+
Here we list all major versions and their breaking changes for migration.
6+
7+
## v7
8+
9+
- update redis to v20 (see [CHANGELOG](https://github.com/bitnami/charts/blob/main/bitnami/redis/CHANGELOG.md#2000-2024-08-09))
10+
- update redis to v21 (see [CHANGELOG](https://github.com/bitnami/charts/blob/main/bitnami/redis/CHANGELOG.md#2100-2025-05-06)
11+
- update postgresql to v16 (see [CHANGELOG](https://github.com/bitnami/charts/blob/main/bitnami/postgresql/CHANGELOG.md#1600-2024-10-02))
12+
- maybe use [pgautoupgrade](https://github.com/pgautoupgrade/docker-pgautoupgrade) to update to v17 (helm v16), with:
13+
```yaml
14+
postgresql:
15+
primary:
16+
initContainers:
17+
- name: upgrade
18+
image: "pgautoupgrade/pgautoupgrade:17-alpine"
19+
env:
20+
- name: "PGAUTO_ONESHOT"
21+
value: "yes"
22+
volumeMounts:
23+
- mountPath: "/bitnami/postgresql"
24+
name: "data"
25+
```
26+
- update mariadb to v19 (see [CHANGELOG](https://github.com/bitnami/charts/blob/main/bitnami/mariadb/CHANGELOG.md#1900-2024-07-11))
27+
- update mariadb to v20 (see [CHANGELOG](https://github.com/bitnami/charts/blob/main/bitnami/mariadb/CHANGELOG.md#2000-2024-11-08))
28+
- update nextcloud to v31 (see [CHANGELOG](https://nextcloud.com/changelog/#31-0-0))

charts/nextcloud/Chart.lock

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
dependencies:
22
- name: postgresql
33
repository: oci://registry-1.docker.io/bitnamicharts
4-
version: 15.5.0
4+
version: 16.7.4
55
- name: mariadb
66
repository: oci://registry-1.docker.io/bitnamicharts
7-
version: 18.2.0
7+
version: 20.5.5
88
- name: redis
99
repository: oci://registry-1.docker.io/bitnamicharts
10-
version: 19.6.4
10+
version: 21.1.3
1111
- name: collabora-online
1212
repository: https://collaboraonline.github.io/online
1313
version: 1.1.20
14-
digest: sha256:00e8d82d28825fd3f46e7e7d888d1aac93ebdb5135f6a4d7e6ae0c3155881c27
15-
generated: "2024-12-15T19:47:53.357052+01:00"
14+
digest: sha256:47979e007ed8bb4a53ec00c5e457da110573a6e067f24da505144f475b26981c
15+
generated: "2025-05-18T15:22:37.968306345+02:00"

charts/nextcloud/Chart.yaml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
apiVersion: v2
22
name: nextcloud
3-
version: 6.6.10
3+
version: 7.0.1
44
# renovate: image=docker.io/library/nextcloud
5-
appVersion: 30.0.10
5+
appVersion: 31.0.7
66
description: A file sharing server that puts the control and security of your own data back into your hands.
77
keywords:
88
- nextcloud
@@ -28,15 +28,15 @@ maintainers:
2828
url: https://jessebot.work
2929
dependencies:
3030
- name: postgresql
31-
version: 15.5.0
31+
version: 16.7.4
3232
repository: oci://registry-1.docker.io/bitnamicharts
3333
condition: postgresql.enabled
3434
- name: mariadb
35-
version: 18.2.0
35+
version: 20.5.5
3636
repository: oci://registry-1.docker.io/bitnamicharts
3737
condition: mariadb.enabled
3838
- name: redis
39-
version: 19.6.4
39+
version: 21.1.3
4040
repository: oci://registry-1.docker.io/bitnamicharts
4141
condition: redis.enabled
4242
- name: collabora-online

charts/nextcloud/README.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ helm install my-release nextcloud/nextcloud
1515
* [Prerequisites](#prerequisites)
1616
* [Installing the Chart](#installing-the-chart)
1717
* [Uninstalling the Chart](#uninstalling-the-chart)
18+
* [Upgrade / Breaking Changes](#upgrade--breaking-changes)
1819
* [Configuration](#configuration)
1920
* [Ingress](#ingress)
2021
* [Ingress Sticky-Sessions](#ingress-sticky-sessions)
@@ -97,6 +98,11 @@ helm delete my-release
9798

9899
The command removes all the Kubernetes components associated with the chart and deletes the release.
99100

101+
## Upgrade / Breaking Changes
102+
103+
There is a Changelog of breaking changes here: [CHANGELOG.md](./CHANGELOG.md).
104+
You should read it bevore updating.
105+
100106
## Configuration
101107

102108
The following table lists the configurable parameters of the nextcloud chart and their default values.

charts/nextcloud/files/nginx.config.tpl

Lines changed: 41 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,15 @@
1+
# Version 2024-07-17
2+
13
upstream php-handler {
24
server 127.0.0.1:9000;
35
}
46

7+
# Set the `immutable` cache control options only for assets with a cache busting `v` argument
8+
map $arg_v $asset_immutable {
9+
"" "";
10+
default ", immutable";
11+
}
12+
513
server {
614
{{- if and (has "IPv4" .Values.nginx.ipFamilies) (has "IPv6" .Values.nginx.ipFamilies) }}
715
# Both IPv4 and IPv6 are enabled
@@ -14,6 +22,12 @@ server {
1422
listen {{ .Values.nginx.containerPort }};
1523
{{- end }}
1624

25+
# Path to the root of your installation
26+
root /var/www/html;
27+
28+
# Prevent nginx HTTP Server Detection
29+
server_tokens off;
30+
1731
# HSTS settings
1832
# WARNING: Only add the preload option once you read about
1933
# the consequences in https://hstspreload.org/. This option
@@ -26,8 +40,9 @@ server {
2640
{{- end }}
2741
{{- end }}
2842

29-
# set max upload size
30-
client_max_body_size 10G;
43+
# set max upload size and increase upload timeout:
44+
client_max_body_size 512M;
45+
client_body_timeout 300s;
3146
fastcgi_buffers 64 4K;
3247

3348
# Enable gzip but do not remove ETag headers
@@ -36,27 +51,30 @@ server {
3651
gzip_comp_level 4;
3752
gzip_min_length 256;
3853
gzip_proxied expired no-cache no-store private no_last_modified no_etag auth;
39-
gzip_types application/atom+xml application/javascript application/json application/ld+json application/manifest+json application/rss+xml application/vnd.geo+json application/vnd.ms-fontobject application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/bmp image/svg+xml image/x-icon text/cache-manifest text/css text/plain text/vcard text/vnd.rim.location.xloc text/vtt text/x-component text/x-cross-domain-policy;
54+
gzip_types application/atom+xml text/javascript application/javascript application/json application/ld+json application/manifest+json application/rss+xml application/vnd.geo+json application/vnd.ms-fontobject application/wasm application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/bmp image/svg+xml image/x-icon text/cache-manifest text/css text/plain text/vcard text/vnd.rim.location.xloc text/vtt text/x-component text/x-cross-domain-policy;
4055

4156
# Pagespeed is not supported by Nextcloud, so if your server is built
4257
# with the `ngx_pagespeed` module, uncomment this line to disable it.
4358
#pagespeed off;
4459

60+
# The settings allows you to optimize the HTTP2 bandwidth.
61+
# See https://blog.cloudflare.com/delivering-http-2-upload-speed-improvements/
62+
# for tuning hints
63+
client_body_buffer_size 512k;
64+
4565
# Remove X-Powered-By, which is an information leak
4666
fastcgi_hide_header X-Powered-By;
4767

48-
# Add .mjs as a file extension for javascript
68+
# Set .mjs and .wasm MIME types
4969
# Either include it in the default mime.types list
50-
# or include you can include that list explicitly and add the file extension
70+
# and include that list explicitly or add the file extension
5171
# only for Nextcloud like below:
5272
include mime.types;
5373
types {
5474
text/javascript js mjs;
75+
application/wasm wasm;
5576
}
5677

57-
# Path to the root of your installation
58-
root /var/www/html;
59-
6078
# Specify how to handle directories -- specifying `/index.php$request_uri`
6179
# here as the fallback means that Nginx always exhibits the desired behaviour
6280
# when a client requests a path that corresponds to a directory that exists
@@ -91,10 +109,10 @@ server {
91109

92110
location = /.well-known/carddav { return 301 /remote.php/dav/; }
93111
location = /.well-known/caldav { return 301 /remote.php/dav/; }
94-
# Anything else is dynamically handled by Nextcloud
95-
location ^~ /.well-known { return 301 /index.php$uri; }
96112

97-
try_files $uri $uri/ =404;
113+
# Let Nextcloud's API for `/.well-known` URIs handle all other
114+
# requests by passing them to the front-end controller.
115+
return 301 /index.php$request_uri;
98116
}
99117

100118
# Rules borrowed from `.htaccess` to hide certain paths from clients
@@ -106,8 +124,8 @@ server {
106124
# then Nginx will encounter an infinite rewriting loop when it prepends `/index.php`
107125
# to the URI, resulting in a HTTP 500 error response.
108126
location ~ \.php(?:$|/) {
109-
# Required for legacy support
110-
rewrite ^/(?!index|remote|public|cron|core\/ajax\/update|status|ocs\/v[12]|updater\/.+|oc[ms]-provider\/.+|.+\/richdocumentscode(_arm64)?\/proxy) /index.php$request_uri;
127+
# Required for legacy support
128+
rewrite ^/(?!index|remote|public|cron|core\/ajax\/update|status|ocs\/v[12]|updater\/.+|ocs-provider\/.+|.+\/richdocumentscode(_arm64)?\/proxy) /index.php$request_uri;
111129

112130
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
113131
set $path_info $fastcgi_path_info;
@@ -117,28 +135,35 @@ server {
117135
include fastcgi_params;
118136
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
119137
fastcgi_param PATH_INFO $path_info;
120-
#fastcgi_param HTTPS on;
138+
fastcgi_param HTTPS on;
121139

122140
fastcgi_param modHeadersAvailable true; # Avoid sending the security headers twice
123141
fastcgi_param front_controller_active true; # Enable pretty urls
124142
fastcgi_pass php-handler;
125143

126144
fastcgi_intercept_errors on;
127145
fastcgi_request_buffering off;
146+
147+
fastcgi_max_temp_file_size 0;
128148
}
129149

130-
location ~ \.(?:css|js|svg|gif)$ {
150+
location ~ \.(?:css|js|mjs|svg|gif|ico|jpg|png|webp|wasm|tflite|map|ogg|flac)$ {
131151
try_files $uri /index.php$request_uri;
132152
expires 6M; # Cache-Control policy borrowed from `.htaccess`
133153
access_log off; # Optional: Don't log access to assets
134154
}
135155

136-
location ~ \.woff2?$ {
156+
location ~ \.(otf|woff2?)$ {
137157
try_files $uri /index.php$request_uri;
138158
expires 7d; # Cache-Control policy borrowed from `.htaccess`
139159
access_log off; # Optional: Don't log access to assets
140160
}
141161

162+
# Rule borrowed from `.htaccess`
163+
location /remote {
164+
return 301 /remote.php$request_uri;
165+
}
166+
142167
location / {
143168
try_files $uri $uri/ /index.php$request_uri;
144169
}

charts/nextcloud/templates/metrics/deployment.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,8 @@ spec:
6464
value: {{ .Values.metrics.tlsSkipVerify | quote }}
6565
- name: NEXTCLOUD_INFO_APPS
6666
value: {{ .Values.metrics.info.apps | quote }}
67+
- name: NEXTCLOUD_INFO_UPDATE
68+
value: {{ .Values.metrics.info.update | quote }}
6769
ports:
6870
- name: metrics
6971
containerPort: 9205
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
{{- if .Values.metrics.rules.enabled }}
2+
{{- $fullname := include "nextcloud.fullname" . }}
3+
apiVersion: monitoring.coreos.com/v1
4+
kind: PrometheusRule
5+
metadata:
6+
name: {{ $fullname }}
7+
labels:
8+
{{- include "nextcloud.labels" ( dict "rootContext" $ ) | nindent 4 }}
9+
{{- with .Values.metrics.rules.labels }}
10+
{{- toYaml . | nindent 4 }}
11+
{{- end }}
12+
spec:
13+
groups:
14+
{{- with .Values.metrics.rules.defaults }}
15+
{{- if .enabled }}
16+
{{- $filter := .filter | default (printf `namespace="%s",job=~"^%s.*"` $.Release.Namespace $fullname) }}
17+
- name: {{ $fullname }}-Defaults
18+
rules:
19+
- alert: "nextcloud: not reachable"
20+
expr: 'avg(nextcloud_up{ {{ $filter }} }) without(endpoint,container,pod,instance) < 1'
21+
for: 5m
22+
labels:
23+
severity: "critical"
24+
{{- with .labels }}
25+
{{- toYaml . | nindent 12 }}
26+
{{- end }}
27+
annotations:
28+
{{`
29+
summary: "Nextcloud in {{ $labels.namespace }} is not reachable by exporter"
30+
`}}
31+
- alert: "nextcloud: outdated version"
32+
expr: 'sum(nextcloud_system_update_available{ {{ $filter }} }) without(endpoint,container,pod,instance) > 0'
33+
labels:
34+
severity: "warning"
35+
{{- with .labels }}
36+
{{- toYaml . | nindent 12 }}
37+
{{- end }}
38+
annotations:
39+
{{`
40+
summary: "Nextcloud in {{ $labels.namespace }} is outdated"
41+
`}}
42+
- alert: "nextcloud: outdated apps"
43+
expr: 'sum(nextcloud_apps_updates_available_total{ {{ $filter }} }) without(endpoint,container,pod,instance) > 0'
44+
labels:
45+
severity: "warning"
46+
{{- with .labels }}
47+
{{- toYaml . | nindent 12 }}
48+
{{- end }}
49+
annotations:
50+
{{`
51+
summary: "Nextcloud in {{ $labels.namespace }} has {{ $value }} outdated Apps"
52+
`}}
53+
{{- end }}
54+
{{- end }}{{/* end-with prometheus.rules.default */}}
55+
{{- with .Values.metrics.rules.additionalRules }}
56+
- name: {{ $fullname }}-Additional
57+
rules:
58+
{{- toYaml . | nindent 8 }}
59+
{{- end }}
60+
{{- end }}
61+

charts/nextcloud/values.yaml

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -347,7 +347,6 @@ nginx:
347347
"Strict-Transport-Security": ""
348348
"Referrer-Policy": "no-referrer"
349349
"X-Content-Type-Options": "nosniff"
350-
"X-Download-Options": "noopen"
351350
"X-Frame-Options": "SAMEORIGIN"
352351
"X-Permitted-Cross-Domain-Policies": "none"
353352
"X-Robots-Tag": "noindex, nofollow"
@@ -778,10 +777,11 @@ metrics:
778777
# Optional: becomes NEXTCLOUD_INFO_APPS env var in the nextcloud-exporter container.
779778
# Enables gathering of apps-related metrics. Defaults to false
780779
apps: false
780+
update: false
781781

782782
image:
783783
repository: xperimental/nextcloud-exporter
784-
tag: 0.6.2
784+
tag: 0.8.0
785785
pullPolicy: IfNotPresent
786786
# pullSecrets:
787787
# - myRegistrKeySecretName
@@ -863,6 +863,27 @@ metrics:
863863
##
864864
labels: {}
865865

866+
rules:
867+
# -- Deploy Prometheus Rules (Alerts) for the exporter
868+
# @section -- Metrics
869+
enabled: false
870+
# -- Label on Prometheus Rules CRD Manifest
871+
# @section -- Metrics
872+
labels: {}
873+
defaults:
874+
# -- Add Default Rules
875+
# @section -- Metrics
876+
enabled: true
877+
# -- Label on the rules (the severity is already set)
878+
# @section -- Metrics
879+
labels: {}
880+
# -- Filter on metrics on alerts (default just for this helm-chart)
881+
# @section -- Metrics
882+
filter: ""
883+
# -- Add own Rules to Prometheus Rules
884+
# @section -- Metrics
885+
additionalRules: []
886+
866887

867888
rbac:
868889
enabled: false

0 commit comments

Comments
 (0)