diff --git a/.github/workflows/lint-test.yaml b/.github/workflows/lint-test.yaml index 3db24619..e4fa3c9b 100644 --- a/.github/workflows/lint-test.yaml +++ b/.github/workflows/lint-test.yaml @@ -123,7 +123,7 @@ jobs: fi - name: Create kind cluster - uses: helm/kind-action@v1.12.0 + uses: helm/kind-action@v1.13.0 if: steps.list-changed.outputs.changed == 'true' - name: Install MinIO for testing S3 as Primary Storage diff --git a/charts/nextcloud/Chart.yaml b/charts/nextcloud/Chart.yaml index d8e1b48c..81b664c0 100644 --- a/charts/nextcloud/Chart.yaml +++ b/charts/nextcloud/Chart.yaml @@ -1,8 +1,8 @@ apiVersion: v2 name: nextcloud -version: 8.2.0 +version: 8.5.2 # renovate: image=docker.io/library/nextcloud -appVersion: 32.0.0 +appVersion: 32.0.1 description: A file sharing server that puts the control and security of your own data back into your hands. keywords: - nextcloud diff --git a/charts/nextcloud/README.md b/charts/nextcloud/README.md index dd289e80..a4dbb6d3 100644 --- a/charts/nextcloud/README.md +++ b/charts/nextcloud/README.md @@ -226,7 +226,7 @@ The following table lists the configurable parameters of the nextcloud chart and | `service.annotations` | Annotations for service type | `{}` | | `service.nodePort` | NodePort for service type NodePort | `nil` | | `service.ipFamilies` | Set ipFamilies as in k8s service objects | `nil` | -| `service.ipFamyPolicy` | define IP protocol bindings as in k8s service objects | `nil` | +| `service.ipFamilyPolicy` | define IP protocol bindings as in k8s service objects | `nil` | | `service.sessionAffinity` | Kubernetes service Session Affinity | `nil` | | `service.sessionAffinityConfig` | Kubernetes service Session Affinity configuration | `{}` | | `phpClientHttpsFix.enabled` | Sets OVERWRITEPROTOCOL for https ingress redirect | `false` | @@ -245,6 +245,7 @@ The following table lists the configurable parameters of the nextcloud chart and | `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 | `{}` | +| `topologySpreadConstraints` | TopologySpreadConstraints for nextcloud pod and cronjob pod | `{}` | ### Ingress #### Ingress Sticky-Sessions @@ -391,12 +392,14 @@ Nextcloud will *not* delete the PVCs when uninstalling the helm chart. | ----------------------------------------- | ---------------------------------------------------- | --------------- | | `persistence.enabled` | Enable persistence using PVC | `false` | | `persistence.annotations` | PVC annotations | `{}` | +| `persistence.labels` | PVC labels | `{}` | | `persistence.storageClass` | PVC Storage Class for nextcloud volume | `nil` | | `persistence.existingClaim` | An Existing PVC name for nextcloud volume | `nil` | | `persistence.accessMode` | PVC Access Mode for nextcloud volume | `ReadWriteOnce` | | `persistence.size` | PVC Storage Request for nextcloud volume | `8Gi` | | `persistence.nextcloudData.enabled` | Create a second PVC for the data folder in nextcloud | `false` | | `persistence.nextcloudData.annotations` | see `persistence.annotations` | `{}` | +| `persistence.nextcloudData.labels` | see `persistence.labels` | `{}` | | `persistence.nextcloudData.storageClass` | see `persistence.storageClass` | `nil` | | `persistence.nextcloudData.existingClaim` | see `persistence.existingClaim` | `nil` | | `persistence.nextcloudData.accessMode` | see `persistence.accessMode` | `ReadWriteOnce` | @@ -561,27 +564,28 @@ This section provides options to enable and configure the Collabora Online serve We include an optional external preview provider from [h2non/imaginary](https://github.com/h2non/imaginary). -| Parameter | Description | Default | -| ---------------------------------- | -------------------------------------------------------------------------------------- | ----------------- | -| `imaginary.enabled` | Start Imaginary | `false` | -| `imaginary.replicaCount` | Number of imaginary pod replicas to deploy | `1` | -| `imaginary.image.registry` | Imaginary image name | `docker.io` | -| `imaginary.image.repository` | Imaginary image name | `h2non/imaginary` | -| `imaginary.image.tag` | Imaginary image tag | `1.2.4` | -| `imaginary.image.pullPolicy` | Imaginary image pull policy | `IfNotPresent` | -| `imaginary.image.pullSecrets` | Imaginary image pull secrets | `nil` | -| `imaginary.podAnnotations` | Additional annotations for imaginary | `{}` | -| `imaginary.podLabels` | Additional labels for imaginary | `{}` | -| `imaginary.nodeSelector` | Imaginary pod nodeSelector | `{}` | -| `imaginary.tolerations` | Imaginary pod tolerations | `[]` | -| `imaginary.resources` | imaginary resources | `{}` | -| `imaginary.securityContext` | Optional security context for the Imaginary container | `nil` | -| `imaginary.podSecurityContext` | Optional security context for the Imaginary pod (applies to all containers in the pod) | `nil` | -| `imaginary.service.type` | Imaginary: Kubernetes Service type | `ClusterIP` | -| `imaginary.service.loadBalancerIP` | Imaginary: LoadBalancerIp for service type LoadBalancer | `nil` | -| `imaginary.service.nodePort` | Imaginary: NodePort for service type NodePort | `nil` | -| `imaginary.service.annotations` | Additional annotations for service imaginary | `{}` | -| `imaginary.service.labels` | Additional labels for service imaginary | `{}` | +| Parameter | Description | Default | +| ------------------------------------- | -------------------------------------------------------------------------------------- | ----------------- | +| `imaginary.enabled` | Start Imaginary | `false` | +| `imaginary.replicaCount` | Number of imaginary pod replicas to deploy | `1` | +| `imaginary.image.registry` | Imaginary image name | `docker.io` | +| `imaginary.image.repository` | Imaginary image name | `h2non/imaginary` | +| `imaginary.image.tag` | Imaginary image tag | `1.2.4` | +| `imaginary.image.pullPolicy` | Imaginary image pull policy | `IfNotPresent` | +| `imaginary.image.pullSecrets` | Imaginary image pull secrets | `nil` | +| `imaginary.podAnnotations` | Additional annotations for imaginary | `{}` | +| `imaginary.podLabels` | Additional labels for imaginary | `{}` | +| `imaginary.nodeSelector` | Imaginary pod nodeSelector | `{}` | +| `imaginary.tolerations` | Imaginary pod tolerations | `[]` | +| `imaginary.topologySpreadConstraints` | Imaginary pod topologySpreadConstraints | `[]` | +| `imaginary.resources` | imaginary resources | `{}` | +| `imaginary.securityContext` | Optional security context for the Imaginary container | `nil` | +| `imaginary.podSecurityContext` | Optional security context for the Imaginary pod (applies to all containers in the pod) | `nil` | +| `imaginary.service.type` | Imaginary: Kubernetes Service type | `ClusterIP` | +| `imaginary.service.loadBalancerIP` | Imaginary: LoadBalancerIp for service type LoadBalancer | `nil` | +| `imaginary.service.nodePort` | Imaginary: NodePort for service type NodePort | `nil` | +| `imaginary.service.annotations` | Additional annotations for service imaginary | `{}` | +| `imaginary.service.labels` | Additional labels for service imaginary | `{}` | > [!Note] diff --git a/charts/nextcloud/templates/cronjob.yaml b/charts/nextcloud/templates/cronjob.yaml index fabee569..9393475a 100644 --- a/charts/nextcloud/templates/cronjob.yaml +++ b/charts/nextcloud/templates/cronjob.yaml @@ -35,6 +35,12 @@ spec: {{- toYaml . | nindent 12 }} {{- end }} spec: + {{- with $.Values.image.pullSecrets }} + imagePullSecrets: + {{- range . }} + - name: {{ . }} + {{- end}} + {{- end }} restartPolicy: Never containers: - name: {{ $.Chart.Name }}-cron @@ -64,6 +70,10 @@ spec: tolerations: {{- toYaml . | nindent 12 }} {{- end }} + {{- with $.Values.topologySpreadConstraints }} + topologySpreadConstraints: + {{- toYaml . | nindent 12 }} + {{- end }} {{- end }}{{/* end with cronjob */}} volumes: - name: nextcloud-main diff --git a/charts/nextcloud/templates/deployment.yaml b/charts/nextcloud/templates/deployment.yaml index 87cac6ad..18aadb50 100644 --- a/charts/nextcloud/templates/deployment.yaml +++ b/charts/nextcloud/templates/deployment.yaml @@ -341,6 +341,10 @@ spec: tolerations: {{- toYaml . | nindent 8 }} {{- end }} + {{- with .Values.topologySpreadConstraints }} + topologySpreadConstraints: + {{- toYaml . | nindent 8 }} + {{- end }} volumes: - name: nextcloud-main {{- if .Values.persistence.enabled }} diff --git a/charts/nextcloud/templates/imaginary/deployment.yaml b/charts/nextcloud/templates/imaginary/deployment.yaml index 6e8fc510..8ccca252 100644 --- a/charts/nextcloud/templates/imaginary/deployment.yaml +++ b/charts/nextcloud/templates/imaginary/deployment.yaml @@ -85,4 +85,8 @@ spec: tolerations: {{- toYaml . | nindent 8 }} {{- end }} + {{- with .Values.imaginary.topologySpreadConstraints }} + topologySpreadConstraints: + {{- toYaml . | nindent 8 }} + {{- end }} {{- end }} diff --git a/charts/nextcloud/templates/metrics/prometheus-rules.yaml b/charts/nextcloud/templates/metrics/prometheus-rules.yaml index deb56439..3eaa8946 100644 --- a/charts/nextcloud/templates/metrics/prometheus-rules.yaml +++ b/charts/nextcloud/templates/metrics/prometheus-rules.yaml @@ -42,7 +42,7 @@ spec: - alert: "nextcloud: outdated apps" expr: 'sum(nextcloud_apps_updates_available_total{ {{ $filter }} }) without(endpoint,container,pod,instance) > 0' labels: - severity: "warning" + severity: "info" {{- with .labels }} {{- toYaml . | nindent 12 }} {{- end }} diff --git a/charts/nextcloud/templates/nextcloud-data-pvc.yaml b/charts/nextcloud/templates/nextcloud-data-pvc.yaml index 46f7f33d..38779155 100644 --- a/charts/nextcloud/templates/nextcloud-data-pvc.yaml +++ b/charts/nextcloud/templates/nextcloud-data-pvc.yaml @@ -6,6 +6,9 @@ metadata: name: {{ template "nextcloud.fullname" . }}-nextcloud-data labels: {{- include "nextcloud.labels" ( dict "component" "app" "rootContext" $ ) | nindent 4 }} + {{- with .Values.persistence.nextcloudData.labels }} + {{- toYaml . | nindent 4 }} + {{- end }} annotations: helm.sh/resource-policy: keep {{- with .Values.persistence.nextcloudData.annotations }} diff --git a/charts/nextcloud/templates/nextcloud-pvc.yaml b/charts/nextcloud/templates/nextcloud-pvc.yaml index 18b936e5..d38ad807 100644 --- a/charts/nextcloud/templates/nextcloud-pvc.yaml +++ b/charts/nextcloud/templates/nextcloud-pvc.yaml @@ -5,6 +5,9 @@ metadata: name: {{ template "nextcloud.fullname" . }}-nextcloud labels: {{- include "nextcloud.labels" ( dict "component" "app" "rootContext" $ ) | nindent 4 }} + {{- with .Values.persistence.labels }} + {{- toYaml . | nindent 4 }} + {{- end }} annotations: helm.sh/resource-policy: keep {{- with .Values.persistence.annotations }} diff --git a/charts/nextcloud/values.yaml b/charts/nextcloud/values.yaml index 991efb9f..c6d80df2 100644 --- a/charts/nextcloud/values.yaml +++ b/charts/nextcloud/values.yaml @@ -12,6 +12,7 @@ image: nameOverride: "" fullnameOverride: "" podAnnotations: {} +podLabels: {} deploymentAnnotations: {} deploymentLabels: {} @@ -702,6 +703,7 @@ persistence: # Nextcloud Data (/var/www/html) enabled: false annotations: {} + labels: {} ## nextcloud data Persistent Volume Storage Class ## If defined, storageClassName: ## If set to "-", storageClassName: "", which disables dynamic provisioning @@ -724,6 +726,7 @@ persistence: nextcloudData: enabled: false subPath: + labels: {} annotations: {} # storageClass: "-" # existingClaim: @@ -781,6 +784,9 @@ nodeSelector: {} tolerations: [] +# -- Nextcloud pod topologySpreadConstraints +topologySpreadConstraints: [] + affinity: {} dnsConfig: {} @@ -816,6 +822,8 @@ imaginary: nodeSelector: {} # -- Imaginary pod tolerations tolerations: [] + # -- Imaginary pod topologySpreadConstraints + topologySpreadConstraints: [] # -- imaginary resources resources: {}