fix(nextcloud): spread the variants that ran out of time

Three rounds of run 31823845576 died at 356 minutes against the 355-minute cap
in call-test-deploy-swarm.yml: variants 0, 2 and 3, with 214.9, 214.0 and 202.5
minutes in the sync pass alone and no async pass reached. The role-runtimes
artifacts put the boundary between 183 sync (variant 4, 303 total, survived) and
202.5 (cancelled), so a round has to come in under roughly 185.

Each of the three carried more than it could finish. Variant 0 is the baseline
and had bigbluebutton on top of every tightly-coupled service; variant 2 paired
openwebui with flowise; variant 3 carried openproject, mattermost and matrix.
Splitting them leaves one partner each, and the freed partners fill three new
rounds.

bigbluebutton is the lever for variant 0 because f1dff50fb already prepared it:
that commit dropped its bond to 0.5 and noted "bigbluebutton stays in variant 0
for now, by explicit request; its bond change only makes the move possible
later." Everything else in variant 0 is bond >= 1 and would need redeclaring
first.

The xwiki split 6fcbffe08 merged away comes back here without costing a variant
of its own: xwiki takes flowise along, which variant 2 had just given up. sso and
tor stay on everywhere except variant 1, the minimal round, and variant 8, which
pairs the clearnet-only PeerTube.

Verified: tests/integration/roles/meta/variants plus the role-meta lints, 39
passed. Every variant resolves between 18.26GB and 27.77GB reservation against
the 32GB cap. The planner confirms the split is clean - round 2 pulls
web-app-openwebui without web-app-flowise, round 9 pulls flowise and xwiki
without openwebui, and neither role references the other in meta/services.yml.

Costs three more jobs in compose and in swarm, measured 9 -> 12 each. The slot
pool is fixed, so they displace three lower-priority rows per mode rather than
growing the run. host is unaffected: test_host is false for this role because it
ships a stack.

Not measured, and the reason to expect less than the arithmetic suggests: the
round closures sit at 21-24 roles before and after, because the shared base -
keycloak, mailu, matomo, dashboard, prometheus, the database engines, tor -
dominates the partner. Whether dropping one partner moves 214 sync under 185 is
open, and every measurement here predates 8f98e1648, which put the onion stack
into every round.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
kevinveenbirkenbachandClaude Opus 5 committed 2026-08-15 06:09:03 +02:00
1 parent e16eb5728d
commit a34cb44ad8
1 file changed
+281 -14
+281 -14
View File
@@ -2,7 +2,7 @@
# Matrix-deploy variant overrides for web-app-nextcloud.
# See docs/contributing/artefact/files/role/variants.md for the file format.
#
# nocheck: comments-valid: nine variants of ~90 near-identical service lines are
# nocheck: comments-valid: twelve variants of ~90 near-identical service lines are
# unreadable without a heading naming what each one adds.
#
# nocheck: variant-limit: the loosely-coupled (bond<1) bridge partners are too heavy
@@ -56,8 +56,8 @@
enabled: true
shared: true
bigbluebutton:
enabled: true
shared: true
enabled: false
shared: false # nocheck: variants-static-override backup shared stays literally true
xwiki:
enabled: false
shared: false # nocheck: variants-static-override backup shared stays literally true
@@ -235,7 +235,7 @@
enabled: false
tasks:
enabled: false
# Variant 2: openwebui + flowise
# Variant 2: openwebui
- services:
container_backup:
enabled: false
@@ -313,8 +313,8 @@
enabled: true
shared: true
flowise:
enabled: true
shared: true
enabled: false
shared: false # nocheck: variants-static-override backup shared stays literally true
mastodon:
enabled: false
shared: false # nocheck: variants-static-override backup shared stays literally true
@@ -324,7 +324,7 @@
tor:
enabled: true
addons: *addons_static_off
# Variant 3: openproject + mattermost + matrix
# Variant 3: openproject
- services:
container_backup:
enabled: false
@@ -390,11 +390,11 @@
enabled: false
shared: false # nocheck: variants-static-override backup shared stays literally true
mattermost:
enabled: true
shared: true
enabled: false
shared: false # nocheck: variants-static-override backup shared stays literally true
matrix:
enabled: true
shared: true
enabled: false
shared: false # nocheck: variants-static-override backup shared stays literally true
zammad:
enabled: false
shared: false # nocheck: variants-static-override backup shared stays literally true
@@ -680,7 +680,7 @@
tor:
enabled: true
addons: *addons_static_off
# Variant 7: discourse + xwiki
# Variant 7: discourse
- services:
container_backup:
enabled: false
@@ -725,8 +725,8 @@
enabled: false
shared: false # nocheck: variants-static-override backup shared stays literally true
xwiki:
enabled: true
shared: true
enabled: false
shared: false # nocheck: variants-static-override backup shared stays literally true
seaweedfs:
enabled: false
shared: false # nocheck: variants-static-override backup shared stays literally true
@@ -858,3 +858,270 @@
tor:
enabled: false
addons: *addons_static_off
# Variant 9: xwiki + flowise
- services:
container_backup:
enabled: false
shared: false # nocheck: variants-static-override backup shared stays literally true
sso:
enabled: true
shared: true
coturn:
enabled: false
shared: false # nocheck: variants-static-override backup shared stays literally true
logout:
enabled: false
shared: false # nocheck: variants-static-override backup shared stays literally true
ldap:
enabled: true
shared: true
dashboard:
enabled: false
shared: false # nocheck: variants-static-override backup shared stays literally true
matomo:
enabled: false
shared: false # nocheck: variants-static-override backup shared stays literally true
email:
enabled: false
shared: false # nocheck: variants-static-override backup shared stays literally true
mariadb:
shared: true
redis:
shared: true
talk:
enabled: false
shared: false # nocheck: variants-static-override backup shared stays literally true
talk_recording:
enabled: false
onlyoffice:
enabled: false
shared: false # nocheck: variants-static-override backup shared stays literally true
collabora:
enabled: false
shared: false # nocheck: variants-static-override backup shared stays literally true
bigbluebutton:
enabled: false
shared: false # nocheck: variants-static-override backup shared stays literally true
xwiki:
enabled: true
shared: true
seaweedfs:
enabled: false
shared: false # nocheck: variants-static-override backup shared stays literally true
css:
enabled: false
shared: false # nocheck: variants-static-override backup shared stays literally true
prometheus:
enabled: false
shared: false # nocheck: variants-static-override backup shared stays literally true
openproject:
enabled: false
shared: false # nocheck: variants-static-override backup shared stays literally true
gitlab:
enabled: false
shared: false # nocheck: variants-static-override backup shared stays literally true
discourse:
enabled: false
shared: false # nocheck: variants-static-override backup shared stays literally true
mattermost:
enabled: false
shared: false # nocheck: variants-static-override backup shared stays literally true
matrix:
enabled: false
shared: false # nocheck: variants-static-override backup shared stays literally true
zammad:
enabled: false
shared: false # nocheck: variants-static-override backup shared stays literally true
openwebui:
enabled: false
shared: false # nocheck: variants-static-override backup shared stays literally true
flowise:
enabled: true
shared: true
mastodon:
enabled: false
shared: false # nocheck: variants-static-override backup shared stays literally true
peertube:
enabled: false
shared: false # nocheck: variants-static-override backup shared stays literally true
tor:
enabled: true
addons: *addons_static_off
# Variant 10: mattermost + matrix
- services:
container_backup:
enabled: false
shared: false # nocheck: variants-static-override backup shared stays literally true
sso:
enabled: true
shared: true
coturn:
enabled: false
shared: false # nocheck: variants-static-override backup shared stays literally true
logout:
enabled: false
shared: false # nocheck: variants-static-override backup shared stays literally true
ldap:
enabled: true
shared: true
dashboard:
enabled: false
shared: false # nocheck: variants-static-override backup shared stays literally true
matomo:
enabled: false
shared: false # nocheck: variants-static-override backup shared stays literally true
email:
enabled: false
shared: false # nocheck: variants-static-override backup shared stays literally true
mariadb:
shared: true
redis:
shared: true
talk:
enabled: false
shared: false # nocheck: variants-static-override backup shared stays literally true
talk_recording:
enabled: false
onlyoffice:
enabled: false
shared: false # nocheck: variants-static-override backup shared stays literally true
collabora:
enabled: false
shared: false # nocheck: variants-static-override backup shared stays literally true
bigbluebutton:
enabled: false
shared: false # nocheck: variants-static-override backup shared stays literally true
xwiki:
enabled: false
shared: false # nocheck: variants-static-override backup shared stays literally true
seaweedfs:
enabled: false
shared: false # nocheck: variants-static-override backup shared stays literally true
css:
enabled: false
shared: false # nocheck: variants-static-override backup shared stays literally true
prometheus:
enabled: false
shared: false # nocheck: variants-static-override backup shared stays literally true
openproject:
enabled: false
shared: false # nocheck: variants-static-override backup shared stays literally true
gitlab:
enabled: false
shared: false # nocheck: variants-static-override backup shared stays literally true
discourse:
enabled: false
shared: false # nocheck: variants-static-override backup shared stays literally true
mattermost:
enabled: true
shared: true
matrix:
enabled: true
shared: true
zammad:
enabled: false
shared: false # nocheck: variants-static-override backup shared stays literally true
openwebui:
enabled: false
shared: false # nocheck: variants-static-override backup shared stays literally true
flowise:
enabled: false
shared: false # nocheck: variants-static-override backup shared stays literally true
mastodon:
enabled: false
shared: false # nocheck: variants-static-override backup shared stays literally true
peertube:
enabled: false
shared: false # nocheck: variants-static-override backup shared stays literally true
tor:
enabled: true
addons: *addons_static_off
# Variant 11: bigbluebutton
- services:
container_backup:
enabled: false
shared: false # nocheck: variants-static-override backup shared stays literally true
sso:
enabled: true
shared: true
coturn:
enabled: false
shared: false # nocheck: variants-static-override backup shared stays literally true
logout:
enabled: false
shared: false # nocheck: variants-static-override backup shared stays literally true
ldap:
enabled: true
shared: true
dashboard:
enabled: false
shared: false # nocheck: variants-static-override backup shared stays literally true
matomo:
enabled: false
shared: false # nocheck: variants-static-override backup shared stays literally true
email:
enabled: false
shared: false # nocheck: variants-static-override backup shared stays literally true
mariadb:
shared: true
redis:
shared: true
talk:
enabled: false
shared: false # nocheck: variants-static-override backup shared stays literally true
talk_recording:
enabled: false
onlyoffice:
enabled: false
shared: false # nocheck: variants-static-override backup shared stays literally true
collabora:
enabled: false
shared: false # nocheck: variants-static-override backup shared stays literally true
bigbluebutton:
enabled: true
shared: true
xwiki:
enabled: false
shared: false # nocheck: variants-static-override backup shared stays literally true
seaweedfs:
enabled: false
shared: false # nocheck: variants-static-override backup shared stays literally true
css:
enabled: false
shared: false # nocheck: variants-static-override backup shared stays literally true
prometheus:
enabled: false
shared: false # nocheck: variants-static-override backup shared stays literally true
openproject:
enabled: false
shared: false # nocheck: variants-static-override backup shared stays literally true
gitlab:
enabled: false
shared: false # nocheck: variants-static-override backup shared stays literally true
discourse:
enabled: false
shared: false # nocheck: variants-static-override backup shared stays literally true
mattermost:
enabled: false
shared: false # nocheck: variants-static-override backup shared stays literally true
matrix:
enabled: false
shared: false # nocheck: variants-static-override backup shared stays literally true
zammad:
enabled: false
shared: false # nocheck: variants-static-override backup shared stays literally true
openwebui:
enabled: false
shared: false # nocheck: variants-static-override backup shared stays literally true
flowise:
enabled: false
shared: false # nocheck: variants-static-override backup shared stays literally true
mastodon:
enabled: false
shared: false # nocheck: variants-static-override backup shared stays literally true
peertube:
enabled: false
shared: false # nocheck: variants-static-override backup shared stays literally true
tor:
enabled: true
addons: *addons_static_off