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 applyusing 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
credentialsSecretpattern, 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
Quick Links¶
- Installation — Install the operator via Helm or kubectl
- Quick Start — Deploy your first Nextcloud instance
- API Reference — Full CRD field reference
- OpenAPI Spec — Interactive Swagger UI