Skip to content

Commit

Permalink
Merge branch 'main' into feature/client_push
Browse files Browse the repository at this point in the history
  • Loading branch information
jessebot authored Jul 24, 2024
2 parents a2627db + 34fc2df commit fcf5f5b
Show file tree
Hide file tree
Showing 6 changed files with 73 additions and 49 deletions.
5 changes: 2 additions & 3 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
# Pull Request

## Description of the change

<!-- Describe the scope of your change - i.e. what the change does. -->
Expand All @@ -23,6 +21,7 @@

## Checklist <!-- [Place an '[X]' (no spaces) in all applicable fields. Please remove unrelated fields.] -->

- [ ] I have read the [CONTRIBUTING.md](https://github.com/nextcloud/helm/blob/main/CONTRIBUTING.md#pull-requests) doc.
- [ ] DCO has been [signed off on the commit](https://docs.github.com/en/github/authenticating-to-github/signing-commits).
- [ ] Chart version bumped in `Chart.yaml` according to [semver](http://semver.org/).
- [ ] (optional) Variables are documented in the README.md
- [ ] (optional) Parameters are documented in the README.md
75 changes: 32 additions & 43 deletions .github/workflows/lint-test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ jobs:
- 'charts/nextcloud/templates/**'
lint:
runs-on: ubuntu-22.04
runs-on: ubuntu-latest-low
needs: changes
if: needs.changes.outputs.src != 'false'
steps:
Expand Down Expand Up @@ -56,10 +56,32 @@ jobs:
if: steps.list-changed.outputs.changed == 'true'
run: ct lint --target-branch ${{ github.event.repository.default_branch }}

test-internal-database:
run-tests:
runs-on: ubuntu-22.04
needs: [changes, lint]
# only run this job if there are helm chart file changes
if: needs.changes.outputs.src != 'false'
strategy:
# continue with all the other jobs even if one fails
fail-fast: false
matrix:
# each item in this list is a job with an isolated test VM
test_cases:
# test the plain helm chart with nothing changed
- name: 'Default - no custom values'

# test the helm chart with postgresql subchart enabled
- name: PostgreSQL Enabled
helm_args: '--helm-extra-set-args "--set=postgresql.enabled=true --set=postgresql.global.postgresql.auth.password=testing123456 --set=internalDatabase.enabled=false --set=externalDatabase.enabled=True --set=externalDatabase.type=postgresql --set=externalDatabase.password=testing12345"'

# test the helm chart with nginx container enabled
- name: Nginx Enabled
helm_args: '--helm-extra-set-args "--set=image.flavor=fpm --set=nginx.enabled=true"'

# test the helm chart with horizontal pod autoscaling enabled
- name: Horizontal Pod Autoscaling Enabled
helm_args: '--helm-extra-set-args "--set=hpa.enabled=true --set=hpa.minPods=2 --set=hpa.maxPods=3 --set=hpa.targetCPUUtilizationPercentage=75"'

steps:
- name: Checkout
uses: actions/checkout@v4
Expand Down Expand Up @@ -90,48 +112,15 @@ jobs:
uses: helm/[email protected]
if: steps.list-changed.outputs.changed == 'true'

- name: Run chart-testing (install)
- name: Run chart-testing (install ${{ matrix.test_cases.name }})
id: install
if: steps.list-changed.outputs.changed == 'true'
run: ct install --target-branch ${{ github.event.repository.default_branch }}
run: ct install --target-branch ${{ github.event.repository.default_branch }} ${{ matrix.test_cases.helm_args }}

test-postgresql-database:
runs-on: ubuntu-22.04
needs: [changes, lint]
if: needs.changes.outputs.src != 'false'
summary:
runs-on: ubuntu-latest-low
needs: [changes, run-tests]
if: always()
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Install Helm
uses: azure/setup-helm@v4
with:
version: v3.14.4

- name: Add dependency chart repos
run: |
helm repo add bitnami https://charts.bitnami.com/bitnami
- name: Set up chart-testing
uses: helm/[email protected]

- name: Run chart-testing (list-changed)
id: list-changed
run: |
changed=$(ct list-changed --target-branch ${{ github.event.repository.default_branch }})
if [[ -n "$changed" ]]; then
echo "changed=true" >> "$GITHUB_OUTPUT"
fi
- name: Create kind cluster
uses: helm/[email protected]
if: steps.list-changed.outputs.changed == 'true'

- name: Run chart-testing (install)
id: install
if: steps.list-changed.outputs.changed == 'true'
run: |
ct install --target-branch ${{ github.event.repository.default_branch }} \
--helm-extra-set-args "--set=postgresql.enabled=true --set=postgresql.global.postgresql.auth.password=testing123456 --set=internalDatabase.enabled=false --set=externalDatabase.enabled=True --set=externalDatabase.type=postgresql --set=externalDatabase.password=testing123456"
- name: Summary
run: if ${{ needs.changes.outputs.src != 'false' && needs.run-tests.result != 'success' }}; then exit 1; fi
4 changes: 2 additions & 2 deletions charts/nextcloud/Chart.yaml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
apiVersion: v2
name: nextcloud
version: 5.2.2
appVersion: 29.0.3
version: 5.3.1
appVersion: 29.0.4
description: A file sharing server that puts the control and security of your own data back into your hands.
keywords:
- nextcloud
Expand Down
26 changes: 25 additions & 1 deletion charts/nextcloud/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,15 +22,24 @@ helm install my-release nextcloud/nextcloud
* [Cron jobs](#cron-jobs)
* [Multiple config.php file](#multiple-configphp-file)
* [Using nginx](#using-nginx)
* [Service discovery with nginx and ingress](#service-discovery-with-nginx-and-ingress)
* [Preserving Source IP](#preserving-source-ip)
* [Hugepages](#hugepages)
* [HPA (Clustering)](#hpa-clustering)
* [Adjusting PHP ini values](#adjusting-php-ini-values)
* [Running `occ` commands](#running-occ-commands)
* [Putting Nextcloud into maintanence mode](#putting-nextcloud-into-maintanence-mode)
* [Downloading models for recognize](#downloading-models-for-recognize)
* [Backups](#backups)
* [Upgrades](#upgrades)
* [Troubleshooting](#troubleshooting)
* [Logging](#logging)
* [Changing the logging behavior](#changing-the-logging-behavior)
* [Viewing the logs](#viewing-the-logs)
* [Exec into the kubernetes pod:](#exec-into-the-kubernetes-pod)
* [Then look for the `nextcloud.log` file with tail or cat:](#then-look-for-the-nextcloudlog-file-with-tail-or-cat)
* [Copy the log file to your local machine:](#copy-the-log-file-to-your-local-machine)
* [Sharing the logs](#sharing-the-logs)

## Introduction

Expand Down Expand Up @@ -194,14 +203,15 @@ The following table lists the configurable parameters of the nextcloud chart and
| `startupProbe.timeoutSeconds` | When the probe times out | `5` |
| `startupProbe.failureThreshold` | Minimum consecutive failures for the probe | `30` |
| `startupProbe.successThreshold` | Minimum consecutive successes for the probe | `1` |
| `hpa.enabled` | Boolean to create a HorizontalPodAutoscaler | `false` |
| `hpa.enabled` | Boolean to create a HorizontalPodAutoscaler. If set to `true`, ignores `replicaCount`. | `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` |
| `deploymentLabels` | Labels to be added at 'deployment' level | not set |
| `deploymentAnnotations` | Annotations to be added at 'deployment' level | not set |
| `podLabels` | Labels to be added at 'pod' level | not set |
| `podAnnotations` | Annotations to be added at 'pod' level | not set |
| `dnsConfig` | Custom dnsConfig for nextcloud containers | `{}` |


### Database Configurations
Expand Down Expand Up @@ -494,6 +504,20 @@ persistence:
accessMode: ReadWriteMany
```
## Adjusting PHP ini values
Sometimes you may need special [`php.ini`](https://www.php.net/manual/en/ini.list.php) values. For instance, perhaps your setup requires a bit more memory. You can add additional `php.ini` files in the values.yaml by providing `nextcloud.phpConfigs.NAME_OF_FILE`. Here's an examples:
```yaml
nextcloud:
phpConfigs:
zz-memory_limit.ini: |-
memory_limit=512M
```
> [!Note]
> Be sure to prefix your file name with `zz` to ensure it is loaded at the end.
## Running `occ` commands
Sometimes you need to run an [occ](https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/occ_command.html) command on the Nextcloud container directly. You can do that by running commands as the user `www-data` via the `kubectl exec` command.
Expand Down
6 changes: 6 additions & 0 deletions charts/nextcloud/templates/deployment.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,9 @@ metadata:
{{- toYaml . | nindent 4 }}
{{- end }}
spec:
{{- if not .Values.hpa.enabled }}
replicas: {{ .Values.replicaCount }}
{{- end }}
strategy:
{{- toYaml .Values.nextcloud.strategy | nindent 4 }}
selector:
Expand Down Expand Up @@ -415,3 +417,7 @@ spec:
{{- if .Values.rbac.enabled }}
serviceAccountName: {{ .Values.rbac.serviceaccount.name }}
{{- end }}
{{- with .Values.dnsConfig }}
dnsConfig:
{{- toYaml . | nindent 8 }}
{{- end }}
6 changes: 6 additions & 0 deletions charts/nextcloud/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -502,6 +502,12 @@ tolerations: []

affinity: {}

dnsConfig: {}
# Custom dns config for Nextcloud containers.
# You can for example configure ndots. This may be needed in some clusters with alpine images.
# options:
# - name: ndots
# value: "1"

## Prometheus Exporter / Metrics
##
Expand Down

0 comments on commit fcf5f5b

Please sign in to comment.