@r8s/matrix 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import { type BucketProps } from '@r8s/recipes';
1
2
  export interface MatrixSSOProps {
2
3
  /** Keycloak/OIDC issuer URL (e.g. https://keycloak.example.com/realms/berget) */
3
4
  issuer: string;
@@ -22,22 +23,29 @@ export interface MatrixDatabaseProps {
22
23
  /** StorageClass name (default: cluster default) */
23
24
  storageClass?: string;
24
25
  /**
25
- * Backup configuration barman object store + scheduled full backups.
26
- * Set to false to disable. Defaults to off unless specified (explicit opt-in
27
- * so you can't forget: a disk-full WAL incident is exactly what this prevents).
26
+ * REQUIRED decision point (same contract as <Database backup>):
27
+ * - `<Bucket name="…"/>` descriptor scoped destination under the S3 provider
28
+ * - explicit object per-field gaps derive from the surrounding S3Provider
29
+ * - `true` — derive the whole target from the S3Provider
30
+ * - `false` — cluster without barman (explicit opt-out)
31
+ * Omitted → renderer throws with guidance.
28
32
  */
29
- backup?: {
30
- /** S3 destination path, e.g. s3://bucket/matrix-cnpg */
31
- destinationPath: string;
32
- /** S3 endpoint URL (e.g. https://s3.berget.cloud) */
33
- endpointURL: string;
34
- /** Existing Secret with keys `access-key-id` + `secret-access-key`. Provisioned by the secrets backend when not given. */
35
- credentialsSecret?: string;
36
- /** Retention policy (default: '30d') */
37
- retention?: string;
38
- /** Cron schedule for the daily full backup (default: '30 3 * * *') */
39
- schedule?: string;
40
- } | null;
33
+ backup?: MatrixBackupProps | true | false | {
34
+ type: unknown;
35
+ props: BucketProps;
36
+ };
37
+ }
38
+ export interface MatrixBackupProps {
39
+ /** S3 destination BASE path per database; e.g. s3://bucket/matrix_backup (synapse-cnpg / mas-cnpg appended) */
40
+ destinationPath?: string;
41
+ /** S3 endpoint URL (e.g. https://s3.berget.cloud) — derives from the S3 provider when omitted */
42
+ endpointURL?: string;
43
+ /** Existing Secret with keys `access-key-id` + `secret-access-key`. Provider/Secret-backend provide it when omitted. */
44
+ credentialsSecret?: string;
45
+ /** Retention policy (default: '30d') */
46
+ retention?: string;
47
+ /** Cron schedule for the daily full backup (default: '30 3 * * *') */
48
+ schedule?: string;
41
49
  }
42
50
  export interface MatrixRTCProps {
43
51
  /** Enable MatrixRTC / LiveKit SFU (default: true) */
@@ -118,34 +126,5 @@ export interface MatrixProps {
118
126
  /** Disable the URL-preview SSRF blacklist preset (default: enabled, hardened) */
119
127
  urlPreview?: boolean;
120
128
  }
121
- /**
122
- * Matrix — full Element Server Suite: Synapse homeserver, MAS with Keycloak
123
- * OIDC, Element Web + Admin, MatrixRTC/LiveKit SFU.
124
- *
125
- * @title Matrix (Element Server Suite)
126
- * @category Collaboration & Productivity
127
- *
128
- * Renders the whole suite with production HA defaults: two CNPG databases
129
- * (optional barman backups), 60s node-failure tolerations + topology spread
130
- * (learned from a real node-blip incident), SSRF-hardened URL previews, and
131
- * pinned component versions.
132
- *
133
- * Secrets arrive via the Platform secrets backend (openbao/vault) or the
134
- * `clientSecretRef`/`credentialsSecret` escape hatches — never inline.
135
- *
136
- * @example
137
- * import { Platform } from '@r8s/recipes'
138
- * import { Matrix } from '@r8s/matrix'
139
- *
140
- * export default (
141
- * <Platform secrets={{ backend: 'openbao', mount: 'kv', path: 'matrix' }}>
142
- * <Matrix
143
- * domain="example.com"
144
- * sso={{ issuer: 'https://keycloak.example.com/realms/berget', clientId: 'matrix' }}
145
- * database={{ backup: { destinationPath: 's3://backups/matrix-cnpg', endpointURL: 'https://s3.example.com' } }}
146
- * />
147
- * </Platform>
148
- * )
149
- */
150
129
  export declare function Matrix(props: MatrixProps): import("@r8s/core").r8sElement;
151
130
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -3,9 +3,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Matrix = Matrix;
4
4
  const core_1 = require("@r8s/core");
5
5
  const defaults_1 = require("@r8s/core/defaults");
6
- const crds_1 = require("@r8s/crds");
7
- const postgresql_1 = require("@r8s/crds/postgresql");
6
+ const operator_cnpg_1 = require("@r8s/operator-cnpg");
8
7
  const recipes_1 = require("@r8s/recipes");
8
+ const recipes_2 = require("@r8s/recipes");
9
9
  /** HA scheduling defaults learned from a production node-blip incident:
10
10
  * evict within 60s (instead of the 300s default) and spread replicas
11
11
  * across nodes so one node loss never takes an entire component down. */
@@ -89,184 +89,16 @@ const URL_PREVIEW_BLACKLIST = {
89
89
  * </Platform>
90
90
  * )
91
91
  */
92
- function Matrix(props) {
93
- const { name = 'matrix', namespace: namespaceProp, domain, hosts, replicas = 2, serverName, sso, database = {}, rtc = {}, appservices = [], version = {}, urlPreview = true, } = props;
94
- const contextNamespace = (0, core_1.useContext)(defaults_1.Namespace);
95
- const namespace = namespaceProp ?? (contextNamespace !== 'default' ? contextNamespace : undefined) ?? 'default';
96
- const secretProvider = (0, core_1.useContext)(defaults_1.SecretContext);
97
- const sharedOperators = (0, core_1.useContext)(defaults_1.OperatorContext);
98
- const baseDomain = domain;
99
- const server = serverName ?? baseDomain;
100
- const host = {
101
- web: hosts?.web ?? `element.${baseDomain}`,
102
- synapse: hosts?.synapse ?? `matrix.${baseDomain}`,
103
- admin: hosts?.admin ?? `element-admin.${baseDomain}`,
104
- account: hosts?.account ?? `matrix-account.${baseDomain}`,
105
- rtc: hosts?.rtc ?? `matrix-rtc.${baseDomain}`,
106
- };
107
- // --- secrets: backend or explicit refs ------------------------------------
108
- const backend = secretProvider?.backend;
109
- const hasBackend = backend === 'openbao' || backend === 'vault';
110
- if (sso && !sso.clientSecretRef && !hasBackend) {
111
- throw new Error(`Matrix "${name}": sso.clientSecretRef is required unless a secrets backend (openbao/vault) is configured on the surrounding Platform.\n\n` +
112
- `Fix: wrap in <Platform secrets={{ backend: 'openbao', mount: 'kv', path: 'matrix' }}>\n` +
113
- ` or pass sso={{ ..., clientSecretRef: '${name}-keycloak-oidc' }} (a pre-created Secret with key 'clientSecret')`);
114
- }
115
- if (database.backup && !database.backup.credentialsSecret && !hasBackend) {
116
- throw new Error(`Matrix "${name}": database.backup.credentialsSecret is required unless a secrets backend (openbao/vault) is configured.\n\n` +
117
- `Fix: wrap in <Platform secrets={{ backend: 'openbao', mount: 'kv', path: 'matrix' }}>\n` +
118
- ` or pass database={{ backup: { ..., credentialsSecret: '${name}-backup-credentials' } }}`);
119
- }
120
- const resources = [];
121
- // CNPG operator for the two databases
122
- if (!sharedOperators.some((op) => op.name === 'cnpg')) {
123
- resources.push((0, core_1.declareOperator)(crds_1.operators['cnpg']()));
124
- }
125
- // --- Secrets via backend (OpenBao/Vault static secret bundles) -------------
126
- const secretSecretDefs = [];
127
- if (hasBackend) {
128
- if (sso && !sso.clientSecretRef) {
129
- secretSecretDefs.push({
130
- name: `${name}-keycloak-oidc`,
131
- path: `${secretProvider.path ?? name}/${name}/keycloak-oidc`,
132
- keys: { clientSecret: 'clientSecret' },
133
- });
134
- }
135
- if (database.backup && !database.backup.credentialsSecret) {
136
- secretSecretDefs.push({
137
- name: `${name}-backup-credentials`,
138
- path: `${secretProvider.path ?? name}/${name}/backup`,
139
- keys: { 'access-key-id': 'access-key-id', 'secret-access-key': 'secret-access-key' },
140
- });
141
- }
142
- }
143
- const StaticSecretComponent = backend === 'openbao' ? 'OpenBaoStaticSecret' : 'VaultStaticSecret';
144
- const staticSecretApiVersion = backend === 'openbao' ? 'secrets.openbao.org/v1beta1' : 'secrets.hashicorp.com/v1beta1';
145
- for (const def of secretSecretDefs) {
146
- resources.push((0, core_1.jsx)(StaticSecretComponent, {
147
- apiVersion: staticSecretApiVersion,
148
- kind: StaticSecretComponent,
149
- metadata: { name: def.name, namespace },
150
- spec: {
151
- ...(backend === 'openbao'
152
- ? { openbaoAuthRef: secretProvider.authRef ?? 'openbao-auth' }
153
- : { vaultAuthRef: secretProvider.authRef ?? 'vault-auth' }),
154
- mount: secretProvider.mount ?? 'secret',
155
- type: 'kv-v2',
156
- path: def.path,
157
- refreshAfter: '3600s',
158
- destination: { create: true, name: def.name },
159
- },
160
- }));
161
- }
162
- const keycloakSecretName = sso?.clientSecretRef ?? (sso ? `${name}-keycloak-oidc` : undefined);
163
- const backupCredsSecret = database.backup?.credentialsSecret ??
164
- (database.backup ? `${name}-backup-credentials` : undefined);
165
- // --- CNPG databases --------------------------------------------------------
166
- const dbSpecs = [
167
- {
168
- id: 'synapse',
169
- roleComment: 'Synapse Matrix homeserver',
170
- params: {
171
- shared_buffers: '512MB',
172
- max_connections: '200',
173
- work_mem: '16MB',
174
- maintenance_work_mem: '256MB',
175
- effective_cache_size: '1536MB',
176
- },
177
- resources: {
178
- requests: { memory: '1Gi', cpu: '500m' },
179
- limits: { memory: '2Gi', cpu: '2000m' },
180
- },
181
- },
182
- {
183
- id: 'mas',
184
- roleComment: 'Matrix Authentication Service',
185
- params: {
186
- shared_buffers: '256MB',
187
- max_connections: '100',
188
- work_mem: '8MB',
189
- maintenance_work_mem: '128MB',
190
- effective_cache_size: '768MB',
191
- },
192
- resources: {
193
- requests: { memory: '512Mi', cpu: '250m' },
194
- limits: { memory: '1Gi', cpu: '1000m' },
195
- },
196
- },
197
- ];
198
- for (const db of dbSpecs) {
199
- const clusterName = `${name}-${db.id}-db`;
200
- const backup = database.backup
201
- ? {
202
- barmanObjectStore: {
203
- destinationPath: `${database.backup.destinationPath}/${db.id}-cnpg`,
204
- endpointURL: database.backup.endpointURL,
205
- s3Credentials: {
206
- accessKeyId: { name: backupCredsSecret, key: 'access-key-id' },
207
- secretAccessKey: { name: backupCredsSecret, key: 'secret-access-key' },
208
- },
209
- wal: { compression: 'gzip', encryption: 'AES256', maxParallel: 2 },
210
- data: { compression: 'gzip', encryption: 'AES256', jobs: 2 },
211
- },
212
- retentionPolicy: database.backup.retention ?? '30d',
213
- }
214
- : undefined;
215
- resources.push((0, core_1.jsx)(postgresql_1.ClusterComponent, {
216
- metadata: { name: clusterName, namespace },
217
- spec: {
218
- instances: database.replicas ?? 2,
219
- bootstrap: {
220
- initdb: {
221
- database: db.id,
222
- owner: db.id,
223
- encoding: 'UTF8',
224
- localeCollate: 'C',
225
- localeCType: 'C',
226
- },
227
- },
228
- managed: {
229
- roles: [
230
- {
231
- name: db.id,
232
- ensure: 'present',
233
- comment: db.roleComment,
234
- login: true,
235
- superuser: false,
236
- createdb: false,
237
- createrole: false,
238
- inherit: true,
239
- replication: false,
240
- bypassrls: false,
241
- },
242
- ],
243
- },
244
- monitoring: { enablePodMonitor: true },
245
- postgresql: { parameters: db.params },
246
- resources: db.resources,
247
- storage: {
248
- size: database.storage ?? '20Gi',
249
- ...(database.storageClass && { storageClass: database.storageClass }),
250
- },
251
- ...(backup && { backup }),
252
- },
253
- }));
254
- if (database.backup) {
255
- resources.push((0, core_1.jsx)(postgresql_1.ScheduledBackupComponent, {
256
- metadata: { name: `${clusterName}-backup`, namespace },
257
- spec: {
258
- cluster: { name: clusterName },
259
- schedule: database.backup.schedule ?? '30 3 * * *',
260
- backupOwnerReference: 'none',
261
- method: 'barmanObjectStore',
262
- },
263
- }));
264
- }
265
- }
266
- // --- Config Maps -----------------------------------------------------------
267
- const synapseConfig = {
92
+ // ---------------------------------------------------------------------------
93
+ // Pure config builders one per workload. The Matrix component composes
94
+ // them; keeping them pure (props in, plain object out) makes defaults easy
95
+ // to unit-test without rendering the whole tree.
96
+ // ---------------------------------------------------------------------------
97
+ function buildSynapseConfig(opts) {
98
+ const { name, server, synapseHost, urlPreview, rtcEnabled, appservices } = opts;
99
+ return {
268
100
  server_name: server,
269
- public_baseurl: `https://${host.synapse}/`,
101
+ public_baseurl: `https://${synapseHost}/`,
270
102
  pid_file: '/data/homeserver.pid',
271
103
  listeners: [
272
104
  {
@@ -295,7 +127,7 @@ function Matrix(props) {
295
127
  report_stats: false,
296
128
  enable_registration: false,
297
129
  ...(urlPreview ? { ...URL_PREVIEW_BLACKLIST } : { url_preview_enabled: false }),
298
- ...(rtc.enabled !== false && {
130
+ ...(rtcEnabled && {
299
131
  experimental_features: { msc4143_rtc_transports: true },
300
132
  matrix_rtc: {
301
133
  transports: [
@@ -308,15 +140,9 @@ function Matrix(props) {
308
140
  }),
309
141
  appservice_config_files: appservices.map((a) => `/appservices/${a.name}.yaml`),
310
142
  };
311
- resources.push((0, core_1.jsx)('ConfigMap', {
312
- apiVersion: 'v1',
313
- kind: 'ConfigMap',
314
- metadata: { name: `${name}-synapse-config`, namespace },
315
- data: {
316
- 'homeserver.yaml': '# Generated by @r8s/matrix\n' + toYaml(synapseConfig),
317
- },
318
- }));
319
- const masConfig = {
143
+ }
144
+ function buildMasConfig(name, sso) {
145
+ return {
320
146
  database: {
321
147
  uri: `postgresql://mas:$(MASPASSWORD)@${name}-mas-db-rw:5432/mas?sslmode=prefer`,
322
148
  },
@@ -357,94 +183,183 @@ function Matrix(props) {
357
183
  passwords: { enabled: false },
358
184
  }),
359
185
  };
360
- resources.push((0, core_1.jsx)('ConfigMap', {
361
- apiVersion: 'v1',
362
- kind: 'ConfigMap',
363
- metadata: { name: `${name}-mas-config`, namespace },
364
- data: {
365
- 'config.yaml': '# Generated by @r8s/matrix\n' + toYaml(masConfig),
366
- },
367
- }));
368
- const elementWebConfig = {
186
+ }
187
+ function buildElementWebConfig(server, hosts) {
188
+ return {
369
189
  default_server_config: {
370
190
  'm.homeserver': {
371
- base_url: `https://${host.synapse}`,
191
+ base_url: `https://${hosts.synapse}`,
372
192
  server_name: server,
373
193
  },
374
194
  'org.matrix.msc4143.rtc_session': {
375
- focused_element: { focus_url: `https://${host.rtc}` },
195
+ focused_element: { focus_url: `https://${hosts.rtc}` },
376
196
  },
377
197
  },
378
198
  brand: 'Element',
379
199
  default_country_code: 'SE',
380
200
  show_labs_settings: true,
381
201
  };
382
- resources.push((0, core_1.jsx)('ConfigMap', {
383
- apiVersion: 'v1',
384
- kind: 'ConfigMap',
385
- metadata: { name: `${name}-web-config`, namespace },
386
- data: { 'config.json': JSON.stringify(elementWebConfig, null, 2) },
387
- }));
388
- if (rtc.enabled !== false) {
389
- const rtcConfig = {
390
- port: 7880,
391
- log_level: 'info',
392
- rtc: {
393
- tcp_port: 30001,
394
- muxed_udp_port: 30002,
395
- ...(rtc.manualIP
396
- ? { node_ip: rtc.manualIP, use_external_ip: false }
397
- : { use_external_ip: true }),
398
- ...(rtc.stunServers?.length && { stun_servers: rtc.stunServers }),
399
- packet_buffer_size_video: 1000,
400
- packet_buffer_size_audio: 400,
401
- batch_io: { batch_size: 256, max_flush_interval: '1ms' },
202
+ }
203
+ function buildRtcConfig(rtc, rtcHost) {
204
+ return {
205
+ port: 7880,
206
+ log_level: 'info',
207
+ rtc: {
208
+ tcp_port: 30001,
209
+ muxed_udp_port: 30002,
210
+ ...(rtc.manualIP
211
+ ? { node_ip: rtc.manualIP, use_external_ip: false }
212
+ : { use_external_ip: true }),
213
+ ...(rtc.stunServers?.length && { stun_servers: rtc.stunServers }),
214
+ packet_buffer_size_video: 1000,
215
+ packet_buffer_size_audio: 400,
216
+ batch_io: { batch_size: 256, max_flush_interval: '1ms' },
217
+ },
218
+ audio: { active_red_encoding: true },
219
+ ...(rtc.turnPort !== 0 && {
220
+ turn: {
221
+ enabled: true,
222
+ domain: rtcHost,
223
+ tls_port: 0,
224
+ udp_port: rtc.turnPort ?? 30004,
402
225
  },
403
- audio: { active_red_encoding: true },
404
- ...(rtc.turnPort !== 0 && {
405
- turn: {
406
- enabled: true,
407
- domain: host.rtc,
408
- tls_port: 0,
409
- udp_port: rtc.turnPort ?? 30004,
226
+ }),
227
+ keys: 'livekit-key: $(LIVEKIT_API_SECRET)',
228
+ };
229
+ }
230
+ function buildMasEnv(name, keycloakSecretName) {
231
+ return [
232
+ {
233
+ name: 'MASPASSWORD',
234
+ valueFrom: { secretKeyRef: { name: `${name}-mas-db-app`, key: 'password' } },
235
+ },
236
+ ...(keycloakSecretName
237
+ ? [
238
+ {
239
+ name: 'MAS_OIDC_CLIENT_SECRET',
240
+ valueFrom: { secretKeyRef: { name: keycloakSecretName, key: 'clientSecret' } },
410
241
  },
411
- }),
412
- keys: 'livekit-key: $(LIVEKIT_API_SECRET)',
413
- };
414
- resources.push((0, core_1.jsx)('ConfigMap', {
415
- apiVersion: 'v1',
416
- kind: 'ConfigMap',
417
- metadata: { name: `${name}-sfu-config`, namespace },
418
- data: { 'livekit.yaml': '# Generated by @r8s/matrix\n' + toYaml(rtcConfig) },
242
+ ]
243
+ : []),
244
+ {
245
+ name: 'MAS_CONFIG_FILE',
246
+ value: '/config/config.yaml',
247
+ },
248
+ ];
249
+ }
250
+ // ---------------------------------------------------------------------------
251
+ // Workload/infra resource builders — pure JSX element factories used by Matrix.
252
+ // ---------------------------------------------------------------------------
253
+ function matrixDatabaseResources(opts) {
254
+ const { name, namespace, database, backup, backupCredsSecret } = opts;
255
+ const resources = [];
256
+ const dbSpecs = [
257
+ {
258
+ id: 'synapse',
259
+ roleComment: 'Synapse Matrix homeserver',
260
+ params: {
261
+ shared_buffers: '512MB',
262
+ max_connections: '200',
263
+ work_mem: '16MB',
264
+ maintenance_work_mem: '256MB',
265
+ effective_cache_size: '1536MB',
266
+ },
267
+ resources: {
268
+ requests: { memory: '1Gi', cpu: '500m' },
269
+ limits: { memory: '2Gi', cpu: '2000m' },
270
+ },
271
+ },
272
+ {
273
+ id: 'mas',
274
+ roleComment: 'Matrix Authentication Service',
275
+ params: {
276
+ shared_buffers: '256MB',
277
+ max_connections: '100',
278
+ work_mem: '8MB',
279
+ maintenance_work_mem: '128MB',
280
+ effective_cache_size: '768MB',
281
+ },
282
+ resources: {
283
+ requests: { memory: '512Mi', cpu: '250m' },
284
+ limits: { memory: '1Gi', cpu: '1000m' },
285
+ },
286
+ },
287
+ ];
288
+ const backupSpecVal = backup;
289
+ for (const db of dbSpecs) {
290
+ const clusterName = `${name}-${db.id}-db`;
291
+ const backup = backupSpecVal
292
+ ? {
293
+ barmanObjectStore: {
294
+ destinationPath: `${backupSpecVal.destinationPath}/${db.id}-cnpg`,
295
+ endpointURL: backupSpecVal.endpointURL,
296
+ s3Credentials: {
297
+ accessKeyId: { name: backupCredsSecret, key: 'access-key-id' },
298
+ secretAccessKey: { name: backupCredsSecret, key: 'secret-access-key' },
299
+ },
300
+ wal: { compression: 'gzip', encryption: 'AES256', maxParallel: 2 },
301
+ data: { compression: 'gzip', encryption: 'AES256', jobs: 2 },
302
+ },
303
+ retentionPolicy: backupSpecVal.retention ?? '30d',
304
+ }
305
+ : undefined;
306
+ resources.push((0, core_1.jsx)(operator_cnpg_1.ClusterComponent, {
307
+ metadata: { name: clusterName, namespace },
308
+ spec: {
309
+ instances: database.replicas ?? 2,
310
+ bootstrap: {
311
+ initdb: {
312
+ database: db.id,
313
+ owner: db.id,
314
+ encoding: 'UTF8',
315
+ localeCollate: 'C',
316
+ localeCType: 'C',
317
+ },
318
+ },
319
+ managed: {
320
+ roles: [
321
+ {
322
+ name: db.id,
323
+ ensure: 'present',
324
+ comment: db.roleComment,
325
+ login: true,
326
+ superuser: false,
327
+ createdb: false,
328
+ createrole: false,
329
+ inherit: true,
330
+ replication: false,
331
+ bypassrls: false,
332
+ },
333
+ ],
334
+ },
335
+ monitoring: { enablePodMonitor: true },
336
+ postgresql: { parameters: db.params },
337
+ resources: db.resources,
338
+ storage: {
339
+ size: database.storage ?? '20Gi',
340
+ ...(database.storageClass && { storageClass: database.storageClass }),
341
+ },
342
+ ...(backup && { backup }),
343
+ },
419
344
  }));
420
- }
421
- // --- Appservice registrations ---------------------------------------------
422
- // Registrations carry as_token/hs_token they render as Secrets, never
423
- // ConfigMaps. Prefer `secretRef` (existing Secret from the secrets backend)
424
- // or placeholders; the noPlaintextSecrets guardrail flags live token values.
425
- for (const appservice of appservices) {
426
- if (!appservice.secretRef) {
427
- resources.push((0, core_1.jsx)('Secret', {
428
- apiVersion: 'v1',
429
- kind: 'Secret',
430
- metadata: { name: `${name}-appservice-${appservice.name}`, namespace },
431
- stringData: { 'registration.yaml': toYaml(appservice.registration ?? {}) },
345
+ if (backupSpecVal) {
346
+ resources.push((0, core_1.jsx)(operator_cnpg_1.ScheduledBackupComponent, {
347
+ metadata: { name: `${clusterName}-backup`, namespace },
348
+ spec: {
349
+ cluster: { name: clusterName },
350
+ schedule: backupSpecVal.schedule ?? '30 3 * * *',
351
+ backupOwnerReference: 'none',
352
+ method: 'barmanObjectStore',
353
+ },
432
354
  }));
433
355
  }
434
356
  }
435
- // --- Deployments ------------------------------------------------------------
436
- const synapseVersion = version.synapse ?? 'v1.99.0';
437
- const masVersion = version.mas ?? 'latest';
438
- const webVersion = version.web ?? 'v1.12.15';
439
- const adminVersion = version.admin ?? 'latest';
440
- const sfuVersion = version.sfu ?? rtc.sfuVersion ?? 'v1.10.1';
441
- const synapseEnv = [
442
- {
443
- name: 'SYNAPSE_CONFIG_PATH',
444
- value: '/data/homeserver.yaml',
445
- },
446
- ];
447
- resources.push((0, core_1.jsx)('Deployment', {
357
+ return resources;
358
+ }
359
+ function synapseDeployment(opts) {
360
+ const { name, namespace, appservices, synapseVersion } = opts;
361
+ const synapseEnv = [{ name: 'SYNAPSE_CONFIG_PATH', value: '/data/homeserver.yaml' }];
362
+ return (0, core_1.jsx)('Deployment', {
448
363
  apiVersion: 'apps/v1',
449
364
  kind: 'Deployment',
450
365
  metadata: { name: `${name}-synapse`, namespace },
@@ -453,7 +368,7 @@ function Matrix(props) {
453
368
  strategy: { type: 'Recreate' },
454
369
  selector: { matchLabels: { app: `${name}-synapse` } },
455
370
  template: {
456
- metadata: { labels: { app: `-synapse` } },
371
+ metadata: { labels: { app: `${name}-synapse` } },
457
372
  spec: {
458
373
  tolerations: HA_TOLERATIONS,
459
374
  topologySpreadConstraints: haTopologySpread(`${name}-synapse`),
@@ -515,26 +430,12 @@ function Matrix(props) {
515
430
  },
516
431
  },
517
432
  },
518
- }));
519
- const masEnv = [
520
- {
521
- name: 'MASPASSWORD',
522
- valueFrom: { secretKeyRef: { name: `${name}-mas-db-app`, key: 'password' } },
523
- },
524
- ...(keycloakSecretName
525
- ? [
526
- {
527
- name: 'MAS_OIDC_CLIENT_SECRET',
528
- valueFrom: { secretKeyRef: { name: keycloakSecretName, key: 'clientSecret' } },
529
- },
530
- ]
531
- : []),
532
- {
533
- name: 'MAS_CONFIG_FILE',
534
- value: '/config/config.yaml',
535
- },
536
- ];
537
- resources.push((0, core_1.jsx)('Deployment', {
433
+ });
434
+ }
435
+ function masDeployment(opts) {
436
+ const { name, namespace, replicas, masVersion, keycloakSecretName } = opts;
437
+ const masEnv = buildMasEnv(name, keycloakSecretName);
438
+ return (0, core_1.jsx)('Deployment', {
538
439
  apiVersion: 'apps/v1',
539
440
  kind: 'Deployment',
540
441
  metadata: { name: `${name}-mas`, namespace },
@@ -543,7 +444,7 @@ function Matrix(props) {
543
444
  strategy: { type: 'RollingUpdate', rollingUpdate: { maxSurge: 1, maxUnavailable: 0 } },
544
445
  selector: { matchLabels: { app: `${name}-mas` } },
545
446
  template: {
546
- metadata: { labels: { app: `-mas` } },
447
+ metadata: { labels: { app: `${name}-mas` } },
547
448
  spec: {
548
449
  tolerations: HA_TOLERATIONS,
549
450
  topologySpreadConstraints: haTopologySpread(`${name}-mas`),
@@ -576,8 +477,11 @@ function Matrix(props) {
576
477
  },
577
478
  },
578
479
  },
579
- }));
580
- resources.push((0, core_1.jsx)('Deployment', {
480
+ });
481
+ }
482
+ function webDeployment(opts) {
483
+ const { name, namespace, replicas, webVersion } = opts;
484
+ return (0, core_1.jsx)('Deployment', {
581
485
  apiVersion: 'apps/v1',
582
486
  kind: 'Deployment',
583
487
  metadata: { name: `${name}-web`, namespace },
@@ -585,7 +489,7 @@ function Matrix(props) {
585
489
  replicas,
586
490
  selector: { matchLabels: { app: `${name}-web` } },
587
491
  template: {
588
- metadata: { labels: { app: `-web` } },
492
+ metadata: { labels: { app: `${name}-web` } },
589
493
  spec: {
590
494
  tolerations: HA_TOLERATIONS,
591
495
  topologySpreadConstraints: haTopologySpread(`${name}-web`),
@@ -615,8 +519,11 @@ function Matrix(props) {
615
519
  },
616
520
  },
617
521
  },
618
- }));
619
- resources.push((0, core_1.jsx)('Deployment', {
522
+ });
523
+ }
524
+ function adminDeployment(opts) {
525
+ const { name, namespace, replicas, adminVersion } = opts;
526
+ return (0, core_1.jsx)('Deployment', {
620
527
  apiVersion: 'apps/v1',
621
528
  kind: 'Deployment',
622
529
  metadata: { name: `${name}-admin`, namespace },
@@ -624,7 +531,7 @@ function Matrix(props) {
624
531
  replicas,
625
532
  selector: { matchLabels: { app: `${name}-admin` } },
626
533
  template: {
627
- metadata: { labels: { app: `-admin` } },
534
+ metadata: { labels: { app: `${name}-admin` } },
628
535
  spec: {
629
536
  tolerations: HA_TOLERATIONS,
630
537
  topologySpreadConstraints: haTopologySpread(`${name}-admin`),
@@ -645,90 +552,95 @@ function Matrix(props) {
645
552
  },
646
553
  },
647
554
  },
648
- }));
649
- if (rtc.enabled !== false) {
650
- resources.push((0, core_1.jsx)('Deployment', {
651
- apiVersion: 'apps/v1',
652
- kind: 'Deployment',
653
- metadata: { name: `${name}-sfu`, namespace },
654
- spec: {
655
- replicas: 1,
656
- strategy: { type: 'Recreate' },
657
- selector: { matchLabels: { app: `${name}-sfu` } },
658
- template: {
659
- metadata: { labels: { app: `${name}-sfu` } },
660
- spec: {
661
- tolerations: HA_TOLERATIONS,
662
- containers: [
663
- {
664
- name: 'sfu',
665
- image: `livekit/livekit-server:${sfuVersion}`,
666
- imagePullPolicy: 'IfNotPresent',
667
- args: ['--config', '/etc/livekit.yaml'],
668
- ports: [
669
- { containerPort: 7880, name: 'api' },
670
- { containerPort: 30001, name: 'rtc-tcp' },
671
- // LiveKit listens on UDP here even though some Helm charts
672
- // declare TCP the Service below routes numerically anyway
673
- { containerPort: 30002, name: 'rtc-muxed-udp', protocol: 'UDP' },
674
- { containerPort: rtc.turnPort ?? 30004, name: 'turn-udp', protocol: 'UDP' },
675
- ],
676
- env: [
677
- {
678
- name: 'LIVEKIT_API_SECRET',
679
- valueFrom: { secretKeyRef: { name: `${name}-rtc-auth`, key: 'secret' } },
680
- },
681
- ],
682
- volumeMounts: [{ name: 'config', mountPath: '/etc', readOnly: true }],
683
- livenessProbe: { httpGet: { path: '/', port: 7880 }, periodSeconds: 30 },
684
- readinessProbe: { httpGet: { path: '/', port: 7880 }, periodSeconds: 10 },
685
- resources: {
686
- requests: { memory: '512Mi', cpu: '500m' },
687
- limits: { memory: '2Gi', cpu: '2000m' },
555
+ });
556
+ }
557
+ function sfuResources(opts) {
558
+ const { name, namespace, rtc, sfuVersion } = opts;
559
+ const resources = [];
560
+ resources.push((0, core_1.jsx)('Deployment', {
561
+ apiVersion: 'apps/v1',
562
+ kind: 'Deployment',
563
+ metadata: { name: `${name}-sfu`, namespace },
564
+ spec: {
565
+ replicas: 1,
566
+ strategy: { type: 'Recreate' },
567
+ selector: { matchLabels: { app: `${name}-sfu` } },
568
+ template: {
569
+ metadata: { labels: { app: `${name}-sfu` } },
570
+ spec: {
571
+ tolerations: HA_TOLERATIONS,
572
+ containers: [
573
+ {
574
+ name: 'sfu',
575
+ image: `livekit/livekit-server:${sfuVersion}`,
576
+ imagePullPolicy: 'IfNotPresent',
577
+ args: ['--config', '/etc/livekit.yaml'],
578
+ ports: [
579
+ { containerPort: 7880, name: 'api' },
580
+ { containerPort: 30001, name: 'rtc-tcp' },
581
+ // LiveKit listens on UDP here even though some Helm charts
582
+ // declare TCP — the Service below routes numerically anyway
583
+ { containerPort: 30002, name: 'rtc-muxed-udp', protocol: 'UDP' },
584
+ { containerPort: rtc.turnPort ?? 30004, name: 'turn-udp', protocol: 'UDP' },
585
+ ],
586
+ env: [
587
+ {
588
+ name: 'LIVEKIT_API_SECRET',
589
+ valueFrom: { secretKeyRef: { name: `${name}-rtc-auth`, key: 'secret' } },
688
590
  },
591
+ ],
592
+ volumeMounts: [{ name: 'config', mountPath: '/etc', readOnly: true }],
593
+ livenessProbe: { httpGet: { path: '/', port: 7880 }, periodSeconds: 30 },
594
+ readinessProbe: { httpGet: { path: '/', port: 7880 }, periodSeconds: 10 },
595
+ resources: {
596
+ requests: { memory: '512Mi', cpu: '500m' },
597
+ limits: { memory: '2Gi', cpu: '2000m' },
689
598
  },
690
- ],
691
- volumes: [{ name: 'config', configMap: { name: `${name}-sfu-config` } }],
692
- },
693
- },
694
- },
695
- }));
696
- // Combined LoadBalancer for all SFU traffic — one external IP for
697
- // TCP+UDP (Harvester CCM shares the pool IP via ipam annotation).
698
- // Always LoadBalancer: as ClusterIP the UDP/TURN ports are unreachable,
699
- // which silently breaks MatrixRTC.
700
- // Numeric targetPorts: the pod's muxed-UDP port is sometimes declared
701
- // TCP by charts — numeric bypasses that entirely.
702
- resources.push((0, core_1.jsx)('Service', {
703
- apiVersion: 'v1',
704
- kind: 'Service',
705
- metadata: {
706
- name: `${name}-sfu`,
707
- namespace,
708
- annotations: {
709
- 'cloudprovider.harvesterhci.io/ipam': 'pool',
599
+ },
600
+ ],
601
+ volumes: [{ name: 'config', configMap: { name: `${name}-sfu-config` } }],
710
602
  },
711
603
  },
712
- spec: {
713
- type: 'LoadBalancer',
714
- externalTrafficPolicy: 'Local',
715
- ...(rtc.manualIP && { loadBalancerIP: rtc.manualIP }),
716
- selector: { app: `${name}-sfu` },
717
- ports: [
718
- { name: 'api', port: 7880, targetPort: 7880, protocol: 'TCP' },
719
- { name: 'rtc-tcp', port: 30001, targetPort: 30001, protocol: 'TCP' },
720
- { name: 'rtc-muxed-udp', port: 30002, targetPort: 30002, protocol: 'UDP' },
721
- {
722
- name: 'turn-udp',
723
- port: rtc.turnPort ?? 30004,
724
- targetPort: rtc.turnPort ?? 30004,
725
- protocol: 'UDP',
726
- },
727
- ],
604
+ },
605
+ }));
606
+ // Combined LoadBalancer for all SFU traffic — one external IP for
607
+ // TCP+UDP (Harvester CCM shares the pool IP via ipam annotation).
608
+ // Always LoadBalancer: as ClusterIP the UDP/TURN ports are unreachable,
609
+ // which silently breaks MatrixRTC.
610
+ // Numeric targetPorts: the pod's muxed-UDP port is sometimes declared
611
+ // TCP by charts numeric bypasses that entirely.
612
+ resources.push((0, core_1.jsx)('Service', {
613
+ apiVersion: 'v1',
614
+ kind: 'Service',
615
+ metadata: {
616
+ name: `${name}-sfu`,
617
+ namespace,
618
+ annotations: {
619
+ 'cloudprovider.harvesterhci.io/ipam': 'pool',
728
620
  },
729
- }));
730
- }
731
- // --- ClusterIP services -----------------------------------------------------
621
+ },
622
+ spec: {
623
+ type: 'LoadBalancer',
624
+ externalTrafficPolicy: 'Local',
625
+ ...(rtc.manualIP && { loadBalancerIP: rtc.manualIP }),
626
+ selector: { app: `${name}-sfu` },
627
+ ports: [
628
+ { name: 'api', port: 7880, targetPort: 7880, protocol: 'TCP' },
629
+ { name: 'rtc-tcp', port: 30001, targetPort: 30001, protocol: 'TCP' },
630
+ { name: 'rtc-muxed-udp', port: 30002, targetPort: 30002, protocol: 'UDP' },
631
+ {
632
+ name: 'turn-udp',
633
+ port: rtc.turnPort ?? 30004,
634
+ targetPort: rtc.turnPort ?? 30004,
635
+ protocol: 'UDP',
636
+ },
637
+ ],
638
+ },
639
+ }));
640
+ return resources;
641
+ }
642
+ function clusterIPServices(name, namespace) {
643
+ const resources = [];
732
644
  for (const svc of [
733
645
  { svcName: `${name}-synapse`, port: 8008, app: `${name}-synapse` },
734
646
  { svcName: `${name}-mas`, port: 8080, app: `${name}-mas` },
@@ -746,14 +658,17 @@ function Matrix(props) {
746
658
  },
747
659
  }));
748
660
  }
749
- // --- Endpoints (5 hosts) ----------------------------------------------------
661
+ return resources;
662
+ }
663
+ function matrixEndpoints(name, namespace, host, rtcEnabled) {
664
+ const resources = [];
750
665
  const endpointDefs = [
751
666
  { host: host.web, serviceName: `${name}-web`, servicePort: 80, suffix: 'web' },
752
667
  { host: host.synapse, serviceName: `${name}-synapse`, servicePort: 8008, suffix: 'synapse' },
753
668
  { host: host.admin, serviceName: `${name}-admin`, servicePort: 8080, suffix: 'admin' },
754
669
  { host: host.account, serviceName: `${name}-mas`, servicePort: 8080, suffix: 'account' },
755
670
  ];
756
- if (rtc.enabled !== false) {
671
+ if (rtcEnabled) {
757
672
  endpointDefs.push({
758
673
  host: host.rtc,
759
674
  serviceName: `${name}-sfu`,
@@ -762,7 +677,7 @@ function Matrix(props) {
762
677
  });
763
678
  }
764
679
  for (const ep of endpointDefs) {
765
- resources.push((0, core_1.jsx)(recipes_1.Endpoint, {
680
+ resources.push((0, core_1.jsx)(recipes_2.Endpoint, {
766
681
  name: `${name}-${ep.suffix}`,
767
682
  namespace,
768
683
  host: ep.host,
@@ -771,6 +686,251 @@ function Matrix(props) {
771
686
  tls: { secretName: `${name}-${ep.suffix}-tls`, clusterIssuer: 'letsencrypt-prod' },
772
687
  }));
773
688
  }
689
+ return resources;
690
+ }
691
+ function Matrix(props) {
692
+ const { name = 'matrix', namespace: namespaceProp, domain, hosts, replicas = 2, serverName, sso, database = {}, rtc = {}, appservices = [], version = {}, urlPreview = true, } = props;
693
+ const contextNamespace = (0, core_1.useContext)(defaults_1.Namespace);
694
+ const namespace = namespaceProp ?? (contextNamespace !== 'default' ? contextNamespace : undefined) ?? 'default';
695
+ const secretProvider = (0, core_1.useContext)(defaults_1.SecretContext);
696
+ const sharedOperators = (0, core_1.useContext)(defaults_1.OperatorContext);
697
+ const baseDomain = domain;
698
+ const server = serverName ?? baseDomain;
699
+ const host = {
700
+ web: hosts?.web ?? `element.${baseDomain}`,
701
+ synapse: hosts?.synapse ?? `matrix.${baseDomain}`,
702
+ admin: hosts?.admin ?? `element-admin.${baseDomain}`,
703
+ account: hosts?.account ?? `matrix-account.${baseDomain}`,
704
+ rtc: hosts?.rtc ?? `matrix-rtc.${baseDomain}`,
705
+ };
706
+ // --- secrets: backend or explicit refs ------------------------------------
707
+ const backend = secretProvider?.backend;
708
+ const hasBackend = backend === 'openbao' || backend === 'vault';
709
+ if (sso && !sso.clientSecretRef && !hasBackend) {
710
+ throw new Error(`Matrix "${name}": sso.clientSecretRef is required unless a secrets backend (openbao/vault) is configured on the surrounding Platform.\n\n` +
711
+ `Fix: wrap in <Platform secrets={{ backend: 'openbao', mount: 'kv', path: 'matrix' }}>\n` +
712
+ ` or pass sso={{ ..., clientSecretRef: '${name}-keycloak-oidc' }} (a pre-created Secret with key 'clientSecret')`);
713
+ }
714
+ if (database.backup === undefined) {
715
+ throw new Error(`Matrix "${name}": database.backup is a required decision.\n` +
716
+ `\n` +
717
+ `WAL segments accumulate until they are archived — a cluster without\n` +
718
+ `working backups slowly fills its PVC.\n` +
719
+ `\n` +
720
+ `Point the backups at the platform S3 store:\n` +
721
+ ` <S3Provider …>\n` +
722
+ ` <Matrix name="${name}" database={{ backup: <Bucket name="matrix_backup" /> }} />\n` +
723
+ `\n` +
724
+ `or pass the target explicitly:\n` +
725
+ ` backup={{ destinationPath: 's3://backups/matrix', endpointURL: 'https://s3.example.com' }}\n` +
726
+ `\n` +
727
+ `To explicitly run without backups (ephemeral test clusters):\n` +
728
+ ` database={{ backup: false }}`);
729
+ }
730
+ const s3 = (0, recipes_1.useS3)();
731
+ // Resolve the backup decision into a per-database base spec. Explicit
732
+ // fields win; gaps derive from the surrounding S3Provider; a <Bucket>
733
+ // descriptor points at a scoped destination (matrix name composed under
734
+ // its prefix so several stacks can share a bucket cleanly).
735
+ let backupSpec = false;
736
+ const rawBackup = database.backup;
737
+ if (rawBackup !== false) {
738
+ let destinationBase;
739
+ let endpointURL;
740
+ let credentialsSecret;
741
+ let retention;
742
+ let schedule;
743
+ if (rawBackup === true) {
744
+ destinationBase = s3
745
+ ? `s3://${s3.bucket}${s3.prefix ? `/${s3.prefix}` : ''}/${name}-backup`
746
+ : undefined;
747
+ endpointURL = s3?.endpoint;
748
+ credentialsSecret = s3?.credentialsSecret;
749
+ }
750
+ else if (rawBackup && typeof rawBackup === 'object' && (0, recipes_1.isBucketElement)(rawBackup)) {
751
+ const target = (0, recipes_1.resolveBucket)(rawBackup, s3);
752
+ destinationBase = `${target.root}/${name}-backup`;
753
+ endpointURL = target.s3.endpoint;
754
+ credentialsSecret = target.s3.credentialsSecret;
755
+ }
756
+ else if (rawBackup && typeof rawBackup === 'object') {
757
+ const spec = rawBackup;
758
+ destinationBase =
759
+ spec.destinationPath ??
760
+ (s3 ? `s3://${s3.bucket}${s3.prefix ? `/${s3.prefix}` : ''}/${name}-backup` : undefined);
761
+ endpointURL = spec.endpointURL ?? s3?.endpoint;
762
+ credentialsSecret = spec.credentialsSecret ?? s3?.credentialsSecret;
763
+ retention = spec.retention;
764
+ schedule = spec.schedule;
765
+ }
766
+ if (!destinationBase || !endpointURL) {
767
+ throw new Error(`Matrix "${name}": backup needs an S3 target.\n` +
768
+ `\n` +
769
+ `Add an <S3Provider> so backup destinations (and credentials) derive from it:\n` +
770
+ ` <S3Provider provider={<MinIO endpoint="https://rustfs:9000" bucket="infra" credentialsSecret="infra-s3-creds" />}>\n` +
771
+ ` <Matrix name="${name}" database={{ backup: <Bucket name="matrix_backup" /> }} />\n` +
772
+ `\n` +
773
+ `or pass the target explicitly:\n` +
774
+ ` backup={{ destinationPath: 's3://backups/matrix', endpointURL: 'https://s3.example.com' }}\n` +
775
+ `\n` +
776
+ `Missing: ${[!destinationBase && 'destinationPath', !endpointURL && 'endpointURL'].filter(Boolean).join(', ')}`);
777
+ }
778
+ backupSpec = {
779
+ destinationPath: destinationBase,
780
+ endpointURL,
781
+ credentialsSecret,
782
+ retention,
783
+ schedule,
784
+ };
785
+ }
786
+ if (backupSpec && !backupSpec.credentialsSecret && !hasBackend) {
787
+ throw new Error(`Matrix "${name}": backup credentials missing.\n\n` +
788
+ `Fix: the <S3Provider> credentials Secret is used automatically — give it keys access-key-id + secret-access-key\n` +
789
+ ` or pass database={{ backup: { ..., credentialsSecret: '${name}-backup-credentials' } }}\n` +
790
+ ` or configure a secrets backend (openbao/vault) to provision '<path>/${name}/backup'`);
791
+ }
792
+ const resources = [];
793
+ // CNPG operator for the two databases
794
+ resources.push(...(0, operator_cnpg_1.declareCnpg)(sharedOperators));
795
+ // --- Secrets via backend (OpenBao/Vault static secret bundles) -------------
796
+ const secretSecretDefs = [];
797
+ if (hasBackend) {
798
+ if (sso && !sso.clientSecretRef) {
799
+ secretSecretDefs.push({
800
+ name: `${name}-keycloak-oidc`,
801
+ path: `${secretProvider.path ?? name}/${name}/keycloak-oidc`,
802
+ keys: { clientSecret: 'clientSecret' },
803
+ });
804
+ }
805
+ if (backupSpec && !backupSpec.credentialsSecret) {
806
+ secretSecretDefs.push({
807
+ name: `${name}-backup-credentials`,
808
+ path: `${secretProvider.path ?? name}/${name}/backup`,
809
+ keys: { 'access-key-id': 'access-key-id', 'secret-access-key': 'secret-access-key' },
810
+ });
811
+ }
812
+ }
813
+ // Shared StaticSecret recipe (#89) — the destination Secret carries
814
+ // exactly the mapped keys (excludeRaw); content is identical to the
815
+ // previous inline emission. `keys` is used for the mapping (it was
816
+ // declared but unused in the raw-sync predecessor).
817
+ for (const def of secretSecretDefs) {
818
+ resources.push((0, core_1.jsx)(recipes_2.StaticSecret, {
819
+ name: def.name,
820
+ namespace,
821
+ path: def.path,
822
+ keys: def.keys,
823
+ refreshAfter: '3600s',
824
+ authRef: secretProvider.authRef ?? `${backend}-auth`,
825
+ }));
826
+ }
827
+ const keycloakSecretName = sso?.clientSecretRef ?? (sso ? `${name}-keycloak-oidc` : undefined);
828
+ // From the resolved spec (provider/descriptor/explicit) — falls back to
829
+ // the secrets-backend provisioned Secret when a backend is configured.
830
+ const backupCredsSecret = backupSpec && backupSpec.credentialsSecret
831
+ ? backupSpec.credentialsSecret
832
+ : backupSpec
833
+ ? `${name}-backup-credentials`
834
+ : undefined;
835
+ resources.push(...matrixDatabaseResources({
836
+ name,
837
+ namespace,
838
+ database,
839
+ backup: backupSpec || undefined,
840
+ backupCredsSecret,
841
+ }));
842
+ // --- Config Maps -----------------------------------------------------------
843
+ const synapseConfig = buildSynapseConfig({
844
+ name,
845
+ server,
846
+ synapseHost: host.synapse,
847
+ urlPreview,
848
+ rtcEnabled: rtc.enabled !== false,
849
+ appservices,
850
+ });
851
+ resources.push((0, core_1.jsx)('ConfigMap', {
852
+ apiVersion: 'v1',
853
+ kind: 'ConfigMap',
854
+ metadata: { name: `${name}-synapse-config`, namespace },
855
+ data: {
856
+ 'homeserver.yaml': '# Generated by @r8s/matrix\n' + toYaml(synapseConfig),
857
+ },
858
+ }));
859
+ const masConfig = buildMasConfig(name, sso);
860
+ resources.push((0, core_1.jsx)('ConfigMap', {
861
+ apiVersion: 'v1',
862
+ kind: 'ConfigMap',
863
+ metadata: { name: `${name}-mas-config`, namespace },
864
+ data: {
865
+ 'config.yaml': '# Generated by @r8s/matrix\n' + toYaml(masConfig),
866
+ },
867
+ }));
868
+ const elementWebConfig = buildElementWebConfig(server, host);
869
+ resources.push((0, core_1.jsx)('ConfigMap', {
870
+ apiVersion: 'v1',
871
+ kind: 'ConfigMap',
872
+ metadata: { name: `${name}-web-config`, namespace },
873
+ data: { 'config.json': JSON.stringify(elementWebConfig, null, 2) },
874
+ }));
875
+ if (rtc.enabled !== false) {
876
+ const rtcConfig = buildRtcConfig(rtc, host.rtc);
877
+ resources.push((0, core_1.jsx)('ConfigMap', {
878
+ apiVersion: 'v1',
879
+ kind: 'ConfigMap',
880
+ metadata: { name: `${name}-sfu-config`, namespace },
881
+ data: { 'livekit.yaml': '# Generated by @r8s/matrix\n' + toYaml(rtcConfig) },
882
+ }));
883
+ }
884
+ // --- Appservice registrations ---------------------------------------------
885
+ // Registrations carry as_token/hs_token — they render as Secrets, never
886
+ // ConfigMaps. Prefer `secretRef` (existing Secret from the secrets backend)
887
+ // or placeholders; the noPlaintextSecrets guardrail flags live token values.
888
+ for (const appservice of appservices) {
889
+ if (!appservice.secretRef) {
890
+ resources.push((0, core_1.jsx)('Secret', {
891
+ apiVersion: 'v1',
892
+ kind: 'Secret',
893
+ metadata: { name: `${name}-appservice-${appservice.name}`, namespace },
894
+ stringData: { 'registration.yaml': toYaml(appservice.registration ?? {}) },
895
+ }));
896
+ }
897
+ }
898
+ // --- Deployments + services ------------------------------------------------
899
+ resources.push(synapseDeployment({
900
+ name,
901
+ namespace,
902
+ appservices,
903
+ synapseVersion: version.synapse ?? 'v1.99.0',
904
+ }));
905
+ resources.push(masDeployment({
906
+ name,
907
+ namespace,
908
+ replicas,
909
+ masVersion: version.mas ?? 'latest',
910
+ keycloakSecretName,
911
+ }));
912
+ resources.push(webDeployment({
913
+ name,
914
+ namespace,
915
+ replicas,
916
+ webVersion: version.web ?? 'v1.12.15',
917
+ }));
918
+ resources.push(adminDeployment({
919
+ name,
920
+ namespace,
921
+ replicas,
922
+ adminVersion: version.admin ?? 'latest',
923
+ }));
924
+ if (rtc.enabled !== false) {
925
+ resources.push(...sfuResources({
926
+ name,
927
+ namespace,
928
+ rtc,
929
+ sfuVersion: version.sfu ?? rtc.sfuVersion ?? 'v1.10.1',
930
+ }));
931
+ }
932
+ resources.push(...clusterIPServices(name, namespace));
933
+ resources.push(...matrixEndpoints(name, namespace, host, rtc.enabled !== false));
774
934
  return (0, core_1.jsx)(core_1.Fragment, { children: resources });
775
935
  }
776
936
  /** Minimal YAML serialiser for the embedded configs (the stack is
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@r8s/matrix",
3
- "version": "0.2.0",
4
- "description": "Matrix (Element Server Suite) Synapse homeserver, MAS auth with Keycloak OIDC, Element Web/Admin, MatrixRTC/LiveKit SFU with HA defaults",
3
+ "version": "0.3.0",
4
+ "description": "Matrix (Element Server Suite) \u2014 Synapse homeserver, MAS auth with Keycloak OIDC, Element Web/Admin, MatrixRTC/LiveKit SFU with HA defaults",
5
5
  "license": "MIT",
6
6
  "author": "Berget AI AB",
7
7
  "homepage": "https://r8s.berget.ai",
@@ -37,10 +37,10 @@
37
37
  "oidc"
38
38
  ],
39
39
  "dependencies": {
40
- "@r8s/core": "^0.2.0",
41
- "@r8s/crds": "^0.2.0",
42
- "@r8s/k8s-types": "^0.2.0",
43
- "@r8s/recipes": "^0.2.0"
40
+ "@r8s/core": "^0.3.0",
41
+ "@r8s/crds": "^0.3.0",
42
+ "@r8s/k8s-types": "^0.3.0",
43
+ "@r8s/recipes": "^0.3.0"
44
44
  },
45
45
  "devDependencies": {
46
46
  "typescript": "^5.3.0",
@@ -49,5 +49,8 @@
49
49
  "bugs": "https://github.com/berget-ai/r8s/issues",
50
50
  "r8s": {
51
51
  "category": "Collaboration & Productivity"
52
+ },
53
+ "peerDependencies": {
54
+ "@r8s/operator-cnpg": "^1.27.0"
52
55
  }
53
56
  }