Skip to content

Resource nubes_nextcloud · v2.1.0 · Service ID: 50 · Service Name: Nextcloud

Manual · Create params · Modify params · Output params · Operations · Example

Сервис Nextcloud (nubes_nextcloud). См. Create params для списка параметров.

Справка (MAN)

Инструкция по развертыванию Nextcloud через платформу

1. Общая информация

Nextcloud — платформа для хранения и совместной работы с файлами. Разворачивается в K8s через Helm-чарт nextcloud/nextcloud.

Сервис не самодостаточен — для создания необходимы заранее развёрнутые в той же ресурсной платформе:

  • PostgreSQL (k8s) — база данных Nextcloud. У СУБД должен быть выставлен параметр sslRequired: false.
  • Redis (k8s) — используется как memcache/locking backend.

Резервное копирование выполняется через Velero (бэкапятся под и PVC с данными), а не штатным S3-бэкапом СУБД.

Доступные операции с сервисом

  • create — создание сервиса
  • delete — удаление сервиса
  • suspend — остановка сервиса (масштабирование реплик в 0)
  • resume — запуск сервиса
  • restart — перезапуск (kubectl rollout restart)
  • modify — изменение настроек сервиса
  • reconcile — служебная операция синхронизации версии (запускается платформой автоматически)
  • create_backup — создание резервной копии вручную (через Velero)
  • recovery — восстановление из резервной копии в новый инстанс

Примечание: операций работы с пользователями Nextcloud (create_user/modify_user/delete_user) на уровне платформы нет — пользователи приложения администрируются внутри самого Nextcloud.


2. Параметры создания сервиса

Платформа для развертывания

Ресурсная платформа (resourceRealm), в которой будет развёрнут сервис. PostgreSQL и Redis, указанные ниже, обязаны находиться в той же ресурсной платформе.

СУБД PostgreSQL (psqlUid)

UID инстанса PostgreSQL (k8s), в котором будет создана база и пользователь nextcloud.

  • У выбранной СУБД должна отсутствовать база nextcloud и пользователь nextcloud.
  • У СУБД обязан быть выключен sslMode (false).

СУБД Redis (redisUid)

UID инстанса Redis (k8s), который будет использоваться как memcache/locking backend.

Количество реплик

Количество реплик Nextcloud (clusterConfiguration.replicas).

Квота памяти пода (MB)

Объём памяти для пода Nextcloud в мегабайтах. Пример: 2048

Квота CPU пода (mCPU)

CPU-квота для пода Nextcloud в миликорах (1000 mCPU = 1 vCPU). Пример: 1000

Размер диска для данных (GB)

Объём диска под данные Nextcloud (/var/www/html/data) в гигабайтах. Пример: 20

Домен

Домен, на котором будет доступен Nextcloud (accessConfiguration.domain).

  • Если указано полное доменное имя (содержит точку, например cloud.company.ru) — домен считается клиентским. Перед созданием клиент обязан сам настроить DNS-запись, указывающую на адрес Ingress платформы, иначе создание завершится ошибкой.
  • Если указано короткое имя (без точки, например mycloud) — платформа сама создаёт DNS-запись вида <domain>.nextcloudk8s и настраивает сертификат.

Версия

Версия приложения Nextcloud (appConfiguration.version, поле appVersion Helm-чарта). По ней автоматически подбирается последняя подходящая версия Helm-чарта.

Document Server

Параметр appConfiguration.documentServer. Если указать collabora — в кластер дополнительно разворачивается Collabora Online (совместное редактирование офисных документов), доступный по пути /collabora на том же домене. Оставьте пустым, если Document Server не нужен.

Уровень логирования

Параметр appConfiguration.logLevel. Одно из значений: DEBUG, INFO, WARN, ERROR, FATAL, либо NONE — чтобы не переопределять логирование Nextcloud.


3. Параметры модификации сервиса

Изменению подлежат ресурсы, версия и часть appConfiguration. Параметры psqlUid/redisUid менять после создания не рекомендуется.

Количество реплик

См. раздел 2.

Квота памяти пода (MB) / Квота CPU пода (mCPU) / Размер диска (GB)

См. раздел 2.

Примечание: уменьшить уже выделенный размер диска нельзя.

Версия

Обновление версии разрешено только на один патч либо на одну минорную версию вперёд (с patch=0). Прыжок сразу через несколько минорных версий или через несколько мажорных версий запрещён — обновляться нужно последовательно.

Примечание: перед обновлением на новую minor/major-версию необходимо сначала выполнить modify на текущей версии, обновившись до последнего релиза этой версии (иначе операция завершится ошибкой с описанием, до какой версии нужно обновиться сначала).

Document Server / Уровень логирования

См. раздел 2.


4. Параметры удаления сервиса

Специальных параметров нет — удаление сносит namespace целиком.

Примечание: резервные копии, созданные через create_backup, хранятся в Velero отдельно от инстанса и не удаляются вместе с сервисом — операции delete_backup для Nextcloud нет, копии нужно вычищать на стороне Velero отдельно.


5. Параметры создания бэкапа

Специальных пользовательских параметров нет — имя бэкапа генерируется автоматически в формате <дата>-<версия>-<namespace>.

Примечание: создать бэкап можно только если сервис предварительно приостановлен (suspend). Velero, в который создаётся бэкап, должен быть развёрнут в той же ресурсной платформе, что и Nextcloud, и не может быть сменён на другой Velero-инстанс в рамках одного сервиса.

Бэкапится под с данными вместе с PVC/PV (файлы), метаданные и БД PostgreSQL бэкапом не затрагиваются — версия схемы БД фиксируется отдельно (см. раздел 6).


6. Параметры восстановления из бэкапа (recovery)

В отличие от СУБД-сервисов, recovery у Nextcloud не восстанавливает данные в текущий инстанс, а создаёт новый инстанс сервиса (аналог create), в который переносятся файлы из указанной резервной копии.

Точка восстановления (recoveryPoint)

Имя резервной копии Velero, из которой будет выполнено восстановление.

Домен нового инстанса

Обязан отличаться от домена исходного (текущего) инстанса — восстановление на тот же домен не поддерживается.

СУБД PostgreSQL нового инстанса

Если версия Nextcloud в бэкапе отличается от текущей версии инстанса, для нового инстанса обязательно нужно указать другую СУБД PostgreSQL (нельзя восстанавливать бэкап со старой схемой БД поверх БД с более новой схемой).


7. Выходные параметры

После успешного создания сервиса платформа возвращает:

connectionUrl

Адрес для входа в Nextcloud: https://<домен>.

namespace

Namespace в K8s-кластере, в котором развёрнут сервис.

Учётные данные (Vault)

В Vault сохраняется пароль администратора (adminPass) под логином admin.


8. Пример подключения

Откройте connectionUrl в браузере и авторизуйтесь:

  • Логин: admin
  • Пароль: значение adminPass из блока «Учётные данные» в Vault

9. Дополнительная информация

Зависимости

Nextcloud нельзя создать без уже существующих в том же resourceRealm сервисов PostgreSQL (k8s, sslRequired: false) и Redis (k8s). При delete зависимые СУБД и Redis не трогаются — удаляется только сам Nextcloud.

suspend/resume

При suspend количество реплик Nextcloud, Collabora и exporter'а метрик принудительно выставляется в 0 через helm upgrade (реальное масштабирование, а не просто пауза cron). При resume реплики возвращаются к значению из clusterConfiguration.replicas.

Collabora

Собирается из отдельного image.repository: nexus-sa.tst.nubes.ru/collabora/code и включается только при appConfiguration.documentServer == 'collabora'. Доступен на том же домене и том же TLS-сертификате, что и сам Nextcloud, по пути /collabora.

Бэкап/восстановление через Velero

Бэкап/восстановление файлов идёт через Velero с селектором backup=<serviceName>-velero-backup и включает под, PVC и PV — то есть непосредственно файлы /var/www/html/data. Восстановление БД в новый инстанс выполняется штатным механизмом create с параметром instanceUidFrom, который проставляет recovery-джоба автоматически.