VSHN Managed Nextcloud on Kubernetes

Problem

We need to provide Nextcloud on Kubernetes with the following features:

  • Possibility to Single Sign-On with Keycloak

  • Nextcloud Office with Collabora on backend

  • PostgreSQL as database

  • Extensions management

  • Full lifecycle of an application: deploy, update, backup, restore, monitoring, scaling, etc.

Solutions

Analysis - Helm Chart

The Nextcloud Helm Chart is a good starting point. It is actively maintained and has the needed features. Additionally, it is the official Helm Chart for Nextcloud.

Nextcloud provides: github.com/nextcloud/all-in-one docker image, which contains a lot of features including Office package.

k8up or similar solution needs to be used for backup and restore management. A custom solution needs to be provided for extension management. A not-official helm chart exists for Office extension: open.greenhost.net/stackspin/nextcloud

Advantages
  • Official Helm Chart

  • Actively maintained

  • Supports various databases, metrics, persistance, ingress, some basic rbac

Disadvantages
  • Several topics need to be handled manually:

    • Maintenance

    • Backup and restore

    • Extension management

    • Office package deployment and integration

Analysis - Custom Provider

Writing our own provider gives the most flexibility. All the needed features could be directly implemented and integrated into the existing solutions. Potentially more features could be handled than the official Helm Chart supports.

Advantages
  • Full Flexibility over deployment, backup, restore, monitoring, scaling, etc.

  • VSHN would be the first to offer a Nextcloud provider for Kubernetes - unique marketing opportunity

Disadvantages
  • High development effort

  • Time consuming

  • High risk of introducing bugs

Decision

We use the Nextcloud Helm Chart.

Rationale

The official Nextcloud Helm Chart is a good starting point for the offering. It is actively maintained and has useful features already present. By utilizing composition-functions more features can be added top of it, such as backup and restore, extension management, etc.