577 Commits

Author SHA1 Message Date
Ingo Oppermann
8a8ff6d4f4
Add LimitMode and Resources.CPU.IsThrottling to process state 2023-07-17 21:45:19 +02:00
Ingo Oppermann
5b075ed54b
Update swagger docs 2023-07-17 20:59:17 +02:00
Ingo Oppermann
8123b09dcf
Fix providing correct last_contact value for node 2023-07-17 20:55:29 +02:00
Ingo Oppermann
cd31893286
Update dependencies 2023-07-17 17:00:42 +02:00
Ingo Oppermann
0519059f3d
Add CoreID field 2023-07-17 17:00:20 +02:00
Ingo Oppermann
34db225eb0
Return map of nodes 2023-07-17 15:39:03 +02:00
Ingo Oppermann
bc04bb2df8
Simplify rebalancing 2023-07-17 15:10:47 +02:00
Ingo Oppermann
02079e30c5
Fix checking for nil-value 2023-07-17 12:48:17 +02:00
Ingo Oppermann
cefd35f7da
Refactor cluster.About() data 2023-07-14 11:22:08 +02:00
Ingo Oppermann
fd7354286e
Extract functions, draft strategy for starting a process 2023-07-12 21:02:46 +02:00
Ingo Oppermann
c8ab8567d9
Return error if onBeforeStart fails 2023-07-12 20:56:03 +02:00
Ingo Oppermann
dedbfa099c
Fill resource limits with configured limits 2023-07-12 16:12:10 +02:00
Ingo Oppermann
520683138d
Add converter function for store.Process 2023-07-12 14:35:29 +02:00
Ingo Oppermann
fe715adbce
Split cluster handler into smaller files 2023-07-12 14:18:01 +02:00
Ingo Oppermann
c0c118340b
Fix updating the process-node map 2023-07-12 12:22:37 +02:00
Ingo Oppermann
51d8b30e8f
Fix MaxCPU and MaxMemory semantics
If a limit of 0 (or negative) is given for both cpu and memory, then
no limiting will be triggered. If any value between 1 and 100 (inclusive)
is given, then limiting will be triggered when that limit is reached.

I.e. giving a limit of 100 doesn't not mean unlimited.
2023-07-12 11:53:39 +02:00
Ingo Oppermann
519f39b217
Fix returning wrong value for HasLimits 2023-07-12 11:38:40 +02:00
Ingo Oppermann
72d56be9af
Write stop/kill reason to process parser 2023-07-12 10:48:33 +02:00
Ingo Oppermann
0f08480366
Fix race condition 2023-07-12 10:47:29 +02:00
Ingo Oppermann
62fdf8e370
List undeployed processes 2023-07-11 22:38:33 +02:00
Ingo Oppermann
69ffec6b6a
Fix writing empty error message 2023-07-11 22:37:40 +02:00
Ingo Oppermann
3883696034
Write deploy errors to cluster DB 2023-07-11 15:55:46 +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
5aa0a880de
Remove pressure from raft while acquiring a lock 2023-07-10 21:05:07 +02:00
Ingo Oppermann
be79a4c327
Add mutex for allowStale variable 2023-07-10 20:50:42 +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
9462ccfd48
Move IAM dependency to rewriter module 2023-07-10 13:20:24 +02:00
Ingo Oppermann
34404a76d2
Update dependencies 2023-07-10 11:11:47 +02:00
Ingo Oppermann
71b613371a
Add debug flag to cluster to disable FFmpeg check 2023-07-10 11:07:24 +02:00
Ingo Oppermann
ba9227dc96
Cleanup of cluster proxy and proxy node 2023-07-07 22:51:53 +02:00
Ingo Oppermann
4aec1d9817
Upgrade dependencies 2023-07-07 16:50:15 +02:00
Ingo Oppermann
97121f3ca5
Use clone of http.Transport defaults 2023-07-07 11:23:41 +02:00
Ingo Oppermann
ccecbe3c8e
Improve FFmpeg skills testing 2023-07-06 21:41:10 +02:00
Ingo Oppermann
9905ac70f0
Check for equal FFmpeg skills, remove /v1/version 2023-07-06 16:12:06 +02:00
Ingo Oppermann
6c2e8b0ec3
Make ffmpeg skills compareable 2023-07-06 10:27:56 +02:00
Ingo Oppermann
604893f8bb
Make process probe endpoint not available in read-only mode 2023-07-05 11:14:30 +02:00
Ingo Oppermann
71dbfe329e
Add /api/v3/cluster/process/:id/probe endpoint 2023-07-05 11:03:45 +02:00
Ingo Oppermann
e49de44eb7
Deploy processes with order stop to nodes 2023-07-05 09:55:11 +02:00
Ingo Oppermann
2d7affdec8
Bump version provisorially to 16.14.0 2023-07-04 14:51:58 +02:00
Ingo Oppermann
a8965cdec7
Change core shutdown sequence
Now the cluster, restreamer (processes), and the servers (HTTP, HTTP, RTMP, SRT)
are shutdown first, then any other services. Before, e.g. the session collector
was closed very early before the servers. This would have lead to loss of a few
sessions.
2023-07-04 12:35:08 +02:00
Ingo Oppermann
3e1c934f2c
Use cleanup function 2023-07-04 12:31:17 +02:00
Ingo Oppermann
352289f759
Fix register session after close 2023-07-04 12:30:43 +02:00
Ingo Oppermann
3ff5251eba
Fix test 2023-07-04 12:29:45 +02:00
Ingo Oppermann
e71a352521
Update dependencies 2023-07-03 21:31:46 +02:00
Ingo Oppermann
c5d52dbeb3
Add gops agent
The gops agent can be enabled by providing an address to
CORE_DEBUG_AGENT_ADDRESS where it will listen to requests
from the gops utility.
2023-07-03 21:27:44 +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
c3b604cda2
Fix nil pointer dereference 2023-06-30 11:41:47 +02:00