100 Commits

Author SHA1 Message Date
Ingo Oppermann
317b30c14c
Merge branch 'vod' into vod-auto-remove-node 2024-10-31 16:03:03 +01:00
Ingo Oppermann
0f6d7949c4
Fix deadlock in cluster shutdown 2024-09-17 15:08:11 +02:00
Ingo Oppermann
0b1601542d
Wait for follower and leader loops to finish 2024-08-19 15:22:24 +02:00
Ingo Oppermann
fa199736e0
Merge branch 'vod' into vod-auto-remove-node 2024-08-19 10:55:43 +02:00
Ingo Oppermann
d6d39f162a
Adding a TODO 2024-07-26 12:38:21 +02:00
Ingo Oppermann
54b1fe8e86
Dump casbin, replace with own policy enforcer 2024-07-23 15:54:09 +02:00
Ingo Oppermann
879819f10f
Retrieve current process from leader, clone metadata, introduce new state 'deploying' 2024-07-22 16:58:57 +02:00
Ingo Oppermann
72883d18d4
Remove bottlenecks in process handling, still some rough edges 2024-07-18 17:16:49 +02:00
Ingo Oppermann
e12fb0be52
Fix cluster shutdown, limit parallel opstack worker 2024-07-17 16:48:33 +02:00
Ingo Oppermann
787948080b
Fix name and use of CORE_CLUSTER_RECOVER_TIMEOUT_SEC 2024-07-09 14:44:34 +02:00
Ingo Oppermann
8dcda07fc1
Merge branch 'vod' into vod-auto-remove-node 2024-07-09 14:08:57 +02:00
Ingo Oppermann
480dbb7f53
Refactor cluster node code 2024-07-09 12:26:02 +02:00
Ingo Oppermann
c032cdf5c7
Add API for setting node status, respect it in leader tasks 2024-06-24 16:50:15 +02:00
Ingo Oppermann
a9d6b1ec49
Add API endpoints for relocating processes 2024-06-19 15:28:30 +02:00
Ingo Oppermann
0bf371807a
Add autorecovery, add CORE_CLUSTER_NODE_RECOVER_TIMEOUT_SECONDS 2024-06-13 15:55:18 +02:00
Ingo Oppermann
f5d9725a48
Return proper HTTP status on leave 2024-06-12 15:08:07 +02:00
Ingo Oppermann
a1b1609e73
Return proper HTTP status on leave 2024-06-12 15:05:05 +02:00
Ingo Oppermann
2c17572027
Drop dead nodes after CORE_CLUSTER_NODE_RECOVER_TIMEOUT_SEC 2024-06-12 14:42:27 +02:00
Ingo Oppermann
1a64fddbb1
Allow cluster leave endpoint to remove any node in the cluster 2024-06-07 11:28:54 +02:00
Ingo Oppermann
03da97217b
Use faster JSON and gzip packages 2024-04-24 15:42:11 +02:00
Ingo Oppermann
423e0453de
Remove NodeID from ClusterAbout 2024-04-10 16:58:34 +02:00
Ingo Oppermann
4bc08d2b1e
Lift some message from the cluster to info 2024-04-10 10:39:34 +02:00
Ingo Oppermann
7a4875f818
Promote core version in cluster about 2024-04-09 15:57:17 +02:00
Ingo Oppermann
487529c598
Expose general infos in cluster about, bump cluster API version to 2.0.0 2024-04-08 21:55:07 +02:00
Ingo Oppermann
8d63cafda0
Ignore self if in list of peers 2023-11-15 10:11:07 +01:00
Ingo Oppermann
8361e5fd3d
Use more precise wording 2023-09-11 14:54:37 +02:00
Ingo Oppermann
022c5c1a6d
Emit warnings 2023-09-11 14:42:46 +02:00
Ingo Oppermann
80feb0b565
Use RLock instead of Lock 2023-07-26 11:28:22 +02:00
Ingo Oppermann
d74165a90a
Add node resource error, replace ping with about 2023-07-25 17:17:20 +02:00
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