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
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
95a1306a77
Remove api address from join request
2023-05-05 09:03:45 +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
4eb0258ba4
Add automatic bootstrap and recovery
2023-05-02 15:49:46 +02:00
Ingo Oppermann
75c11eb475
WIP: add recover option
2023-04-24 10:54:53 +02:00
Ingo Oppermann
386bdc0b6e
WIP: add emergency leader, api circuit breaker
2023-04-21 17:19:21 +02:00