Skip to content

Nextcloud Operator

A Kubernetes operator that manages Nextcloud instances declaratively via Custom Resource Definitions (CRDs). Deploy, configure, and scale Nextcloud with a single YAML manifest.

What You Can Do

  • Deploy Nextcloud instances with a single kubectl apply using production-ready defaults
  • Pool-based provisioning for fast tenant onboarding (~30s assignment vs ~2min fresh creation)
  • Managed PostgreSQL with automatic HA, backups, and connection pooling via Percona PG Operator
  • Configuration profiles (production, testing, development) and custom profiles via CRD
  • Secure credential management via credentialsSecret pattern, compatible with External Secrets, Sealed Secrets, and Vault
  • Declarative app management for Nextcloud Office (Collabora), Talk, Calendar, Contacts, and more
  • OIDC/SSO single sign-on, Mail/SMTP, S3 storage, Redis caching, automated data backups
  • Prometheus metrics with ServiceMonitor and Grafana dashboard

CRD Overview

CRD Scope Purpose
Nextcloud (nc) Namespaced Tenant-facing resource. References a pool or instance.
NextcloudInstance (nci) Namespaced Physical runtime. Creates HelmReleases, secrets, managed databases.
NextcloudPool (ncp) Cluster Maintains pre-provisioned unassigned instances for fast assignment.
NextcloudProfile (ncprofile) Cluster Reusable configuration templates.
SignalingServer (ss) Cluster HPB signaling server for Nextcloud Talk.
RecordingServer (rs) Cluster Talk recording server backend registration.

API Version: k8s.bnerd.com/v1alpha1

Prerequisites

  • Kubernetes 1.24+
  • Flux CD v2 installed and configured
  • (Optional) Percona PG Operator for managed databases