Commit Graph

121 Commits

Author SHA1 Message Date
Ingo Oppermann
b6f7dae2f5 Show order for processes in the cluster DB 2023-06-27 21:17:56 +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
9202f93bc2 Fix IAM user update when changing username 2023-06-27 10:14:22 +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
37cac48223 Adjust returned API errors 2023-06-23 21:42:01 +02:00
Ingo Oppermann
944d487730 Allow to send command to process on the cluster 2023-06-22 21:43:51 +02:00
Ingo Oppermann
dc3e7afc52 Add locks on the cluster DB 2023-06-22 12:22:25 +02:00
Ingo Oppermann
b35ac9ccc3 Allow proxied range requests, /cluster/process mimic /process 2023-06-21 13:14:27 +02:00
Ingo Oppermann
435adfb6ea Return error if iam wants to be modified in cluster mode via non-cluster API 2023-06-20 22:40:36 +02:00
Ingo Oppermann
8283815dec List anonymous user in GET /v3/cluster/iam/user 2023-06-20 20:31:23 +02:00
Ingo Oppermann
7565427f9a Add GET /v3/iam/user endpoint 2023-06-20 20:27:51 +02:00
Ingo Oppermann
a728cc7839 Fix clusterNode/proxyNode 2023-06-14 22:05:59 +02:00
Ingo Oppermann
50e943a075 WIP: add session token, missing: writing sessions to log 2023-06-14 12:30:50 +02:00
Ingo Oppermann
82ba3a8f82 WIP: introducing cluster versioning, degraded mode 2023-06-09 21:42:26 +02:00
Ingo Oppermann
cefc03bcb2 If leave fails, shutdown cluster anyways 2023-06-06 11:25:02 +02:00
Ingo Oppermann
1f6f7c9f59 Add API endpoint to leave cluster gracefully, hard leave on exit 2023-06-06 11:22:53 +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
f59a63320c Allow to pass metadata with process config, non-cluster only 2023-06-01 21:24:33 +02:00
Ingo Oppermann
a79cfa0c77 Merge branch 'clusteriam' into vod 2023-06-01 15:16:54 +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
2364aa9d41 Fix deadlock in node, list processes per node 2023-05-31 09:36:53 +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
e9034aa171 Create identity and access packages for IAM 2023-05-25 16:16:29 +02:00
Ingo Oppermann
710d5c595f Merge branch 'iam' into clusteriam 2023-05-25 11:05:26 +02:00
Ingo Oppermann
930b84b557 Add Enforcer interface 2023-05-25 10:29:55 +02:00
Ingo Oppermann
7a1eb1251b Remove IAM group semantics 2023-05-23 16:05:04 +02:00
Ingo Oppermann
ccac2ffd5d Various updates
- rebrand group to domain
- move IAM to the API (rest and graph) for enforcing "process:" rules
- add abstraction layer for restream store in order to decouple internal format from format on disk
- move playout handler into restreamHandler
- remove user from restream interface
- add TaskID type that includes the process id and its domain
2023-05-23 15:47:06 +02:00
Ingo Oppermann
6f831fd190 Reduce IAM API to only user and policies 2023-05-17 18:19:23 +02:00
Ingo Oppermann
ead6e64442 Merge branch 'dev' into iam 2023-05-15 21:17:23 +02:00
Ingo Oppermann
6a4c715f75 Fix update process, list process in raft store 2023-05-13 21:21:47 +02:00
Ingo Oppermann
7d2b7b4836 WIP: allow update processes in cluster 2023-05-12 12:59:01 +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
Ingo Oppermann
ab86b8fd5d Allow to add self to nodes 2023-05-08 11:39:43 +02:00
Ingo Oppermann
b8b2990e61 Add process storage in raft 2023-05-05 17:31:57 +02:00
Ingo Oppermann
7f59c188cf Remove node storage, use raft configuration instead; re-establish file and stream proxying 2023-05-04 19:49:53 +02:00
Ingo Oppermann
d201921a33 Allow to provide complete cluster configuration
Replace CORE_CLUSTER_JOIN_ADDRESS with CORE_CLUSTER_PEERS. This is
a comma separated list of cluster members with their IDs of the form
ID@host:port

On startup the node tries to connect to all the peers. In case of
sudden deaths of a node this will allow to find back into the
cluster. The list in CLUSTER_PEERS is a starting point of known
peers. Other node that are not in that list can still join the
cluster.

File and stream proxy has been moved to the Proxy type.
2023-05-03 16:13:05 +02:00
Ingo Oppermann
c0a5325f05 Merge branch 'dev' into cluster 2023-05-03 11:17:54 +02:00
Ingo Oppermann
c1bbb4065c Merge branch 'dev' into vod 2023-04-24 12:16:52 +02:00
Ingo Oppermann
317d6eb4d9 Add updated_at field in process infos 2023-04-24 12:05:01 +02:00
Ingo Oppermann
386bdc0b6e WIP: add emergency leader, api circuit breaker 2023-04-21 17:19:21 +02:00
Ingo Oppermann
ffdf6d3323 Merge branch 'dev' into cluster 2023-04-12 15:27:38 +02:00
Ingo Oppermann
51cbb8e74e Fix assembling return value for filtered report history 2023-04-05 13:58:41 +02:00
Ingo Oppermann
7372b3210d Fix test 2023-04-05 12:21:19 +02:00
Ingo Oppermann
ec4607aec8 Fix process report selection 2023-04-05 12:01:21 +02:00