Commit Graph

71 Commits

Author SHA1 Message Date
Ingo Oppermann
cefd35f7da Refactor cluster.About() data 2023-07-14 11:22:08 +02:00
Ingo Oppermann
fe715adbce Split cluster handler into smaller files 2023-07-12 14:18:01 +02:00
Ingo Oppermann
0f06b8b5a0 Add /cluster/transfer/:id endpoint to transfer leadership to another node 2023-07-11 14:26:54 +02:00
Ingo Oppermann
d04254c891 Add /cluster/db/map/process endpoint 2023-07-11 10:57:56 +02:00
Ingo Oppermann
b5976f37f0 Start cluster after core API has been started
The core API will be started before the cluster is started in order to
access the cluster endpoints during a cluster upgrade. If TLS is enabled,
possibly stale certificates are loaded into the cache. Otherwise the
leader has to be contacted via the cluster API which might have changed.
2023-07-10 16:24:08 +02:00
Ingo Oppermann
71b613371a Add debug flag to cluster to disable FFmpeg check 2023-07-10 11:07:24 +02:00
Ingo Oppermann
9905ac70f0 Check for equal FFmpeg skills, remove /v1/version 2023-07-06 16:12:06 +02:00
Ingo Oppermann
9c88e88619 Rearrange code 2023-07-03 20:39:47 +02:00
Ingo Oppermann
adcbd98467 Add CORE_TLS_SECRET configuration
This secret will be used to encrypt automatically obtained secrets at
rest, i.e. in a storage. They will be decrypted on demand. If the
secret is wrong, stored certificates can't be decrypted. For changing
the secret, the stored certificated must be deleted first in order
to obtain new ones that will be encrypted with the new secret.
2023-07-03 16:02:39 +02:00
Ingo Oppermann
c4d9d8afcb Make emergency leadership only available in a cluster with two nodes 2023-06-30 16:59:11 +02:00
Ingo Oppermann
d66bd61746 Fix tests and lint errors 2023-06-29 21:58:30 +02:00
Ingo Oppermann
6e156d0f3a Allow to acquire certificates in multi-node cluster 2023-06-29 21:15:04 +02:00
Ingo Oppermann
a6d454b03f Add CORE_TLS_STAGING
Set this value to true in order to use the Let's Encrypt staging CA,
otherwise the production CA will be used, which is the default.
2023-06-28 11:55:56 +02:00
Ingo Oppermann
64112ca2b0 Print log message if cluster is degraded 2023-06-28 11:32:13 +02:00
Ingo Oppermann
a86dc5c920 Fix make autocert manager available to followers 2023-06-28 10:47:07 +02:00
Ingo Oppermann
57c1e50d60 Don't collect sessions coming from other nodes in the cluster 2023-06-27 21:11:29 +02:00
Ingo Oppermann
89379b2acd Add /v3/cluster/snapshot endpoint 2023-06-27 15:11:31 +02:00
Ingo Oppermann
dd128ac99b Fix gathering of hostnames, add /v3/cluster/db/kv endpoint 2023-06-27 14:52:32 +02:00
Ingo Oppermann
b78a2368b3 Add experimental challenge forwarder 2023-06-26 22:16:32 +02:00
Ingo Oppermann
a4b0c4fc36 Add experimental LE certificate retrieval for cluster 2023-06-26 20:38:16 +02:00
Ingo Oppermann
abfe4918b4 Loosen restrictions for IAM user names
The only restriction for an IAM username is that it cannot start with
a '$'. An username that contains a ':' must escape it with another ':'
for use in a token for RTMP or SRT.
2023-06-26 13:49:53 +02:00
Ingo Oppermann
6f47f96f6e Get peer config via cluster API 2023-06-26 10:35:00 +02:00
Ingo Oppermann
f37896a1e3 Implement certmagic.Storage on cluster 2023-06-23 21:00:45 +02:00
Ingo Oppermann
944d487730 Allow to send command to process on the cluster 2023-06-22 21:43:51 +02:00
Ingo Oppermann
cbe6754b2f Add /v1/core/config endpoint to cluster API 2023-06-22 16:33:06 +02:00
Ingo Oppermann
e5f0b3a57f Add KV store in cluster DB 2023-06-22 16:20:09 +02:00
Ingo Oppermann
dc3e7afc52 Add locks on the cluster DB 2023-06-22 12:22:25 +02:00
Ingo Oppermann
a728cc7839 Fix clusterNode/proxyNode 2023-06-14 22:05:59 +02:00
Ingo Oppermann
ccf4bee56d WIP: cluster node revamp, add version and config comparison 2023-06-13 10:25:08 +02:00
Ingo Oppermann
82ba3a8f82 WIP: introducing cluster versioning, degraded mode 2023-06-09 21:42:26 +02:00
Ingo Oppermann
108b9baaa4 Adjusting naming of functions 2023-06-08 14:48:28 +02:00
Ingo Oppermann
7e7d1caca7 Add EmergencyLeaderTimeout parameter, ignore throttling nodes, implement NodeRecoverTimeout, introduce processNodeMap in cluster DB 2023-06-07 22:08:07 +02:00
Ingo Oppermann
bd75a5ad0f Add SyncInterval and NodeRecoverTimeout to cluster config 2023-06-07 10:18:23 +02:00
Ingo Oppermann
ae84fd1d21 Create module for cluster IAM adapters 2023-06-07 10:02:35 +02:00
Ingo Oppermann
3ac7ead20d Add the resource limits to the metrics 2023-06-06 15:20:59 +02:00
Ingo Oppermann
3adf5fd7d4 Add docs for internal cluster API at /v1/swagger/index.html 2023-06-06 13:00:16 +02:00
Ingo Oppermann
8829b8fff0 Respect domain in cluster DB, allow metadata in process config for cluster 2023-06-05 21:19:11 +02:00
Ingo Oppermann
e532531eeb Allow to set process metadata in the cluster 2023-06-02 14:17:35 +02:00
Ingo Oppermann
d652fd213b Check for identical configs on process update 2023-06-01 16:43:17 +02:00
Ingo Oppermann
401156e4d2 Enforce policies 2023-05-31 16:39:43 +02:00
Ingo Oppermann
3a6bb02bfd Fix reloading policies, add API endpoints for observing internal cluster state 2023-05-31 11:23:54 +02:00
Ingo Oppermann
89cc42c4b9 Add cluster IAM, update dependencies 2023-05-30 21:24:12 +02:00
Ingo Oppermann
1974442814 Allow to add and remove identites 2023-05-26 20:06:34 +02:00
Ingo Oppermann
56e03308c2 Add call chain to add a new user 2023-05-26 12:25:05 +02:00
Ingo Oppermann
6a4c715f75 Fix update process, list process in raft store 2023-05-13 21:21:47 +02:00
Ingo Oppermann
29242b96ca Allow to update a process 2023-05-13 20:29:42 +02:00
Ingo Oppermann
e4ca661b25 Fix logging 2023-05-11 16:12:41 +02:00
Ingo Oppermann
f566dee9f2 Abstract raft into own package 2023-05-11 12:09:04 +02:00
Ingo Oppermann
d214607ff8 Move code into packages 2023-05-10 20:41:04 +02:00
Ingo Oppermann
ae04dc50c7 Add process synchronization in leader role 2023-05-09 20:48:30 +02:00