Join Cluster
POST
/cluster/join
const url = 'https://sylve.lan:8181/api/cluster/join';const options = { method: 'POST', headers: {Authorization: '<Authorization>', 'Content-Type': 'application/json'}, body: '{"clusterKey":"example","leaderIp":"example","nodeId":"example","nodeIp":"example"}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://sylve.lan:8181/api/cluster/join \ --header 'Authorization: <Authorization>' \ --header 'Content-Type: application/json' \ --data '{ "clusterKey": "example", "leaderIp": "example", "nodeId": "example", "nodeIp": "example" }'Join an existing cluster. A returning node uses the same endpoint, and all of its current VM and jail IDs must be free in the cluster.
Authorizations
Section titled “Authorizations”Request Body
Section titled “Request Body”Join Cluster Request
Media typeapplication/json
object
clusterKey
required
string
leaderIp
required
string
nodeId
required
string
nodeIp
required
string
Examplegenerated
{ "clusterKey": "example", "leaderIp": "example", "nodeId": "example", "nodeIp": "example"}Responses
Section titled “Responses”Bad Request
Media typeapplication/json
object
data
error
string
message
string
status
string
Examplegenerated
{ "data": "example", "error": "example", "message": "example", "status": "example"}Unauthorized
Media typeapplication/json
object
data
error
string
message
string
status
string
Examplegenerated
{ "data": "example", "error": "example", "message": "example", "status": "example"}Forbidden
Media typeapplication/json
object
data
error
string
message
string
status
string
Examplegenerated
{ "data": "example", "error": "example", "message": "example", "status": "example"}Conflict
Media typeapplication/json
object
data
object
conflicts
Array<object>
object
entries
Array<object>
object
guestId
integer
guestType
string
name
string
nodeId
string
recordId
integer
guestId
integer
reason
string
digest
string
entries
Array<object>
object
guestId
integer
guestType
string
name
string
nodeId
string
recordId
integer
inFlightGuestIds
Array<integer>
error
string
message
string
status
string
Examplegenerated
{ "data": { "conflicts": [ { "entries": [ { "guestId": 1, "guestType": "example", "name": "example", "nodeId": "example", "recordId": 1 } ], "guestId": 1, "reason": "example" } ], "digest": "example", "entries": [ { "guestId": 1, "guestType": "example", "name": "example", "nodeId": "example", "recordId": 1 } ], "inFlightGuestIds": [ 1 ] }, "error": "example", "message": "example", "status": "example"}Request Entity Too Large
Media typeapplication/json
object
data
error
string
message
string
status
string
Examplegenerated
{ "data": "example", "error": "example", "message": "example", "status": "example"}Internal Server Error
Media typeapplication/json
object
data
error
string
message
string
status
string
Examplegenerated
{ "data": "example", "error": "example", "message": "example", "status": "example"}Service Unavailable
Media typeapplication/json
object
data
error
string
message
string
status
string
Examplegenerated
{ "data": "example", "error": "example", "message": "example", "status": "example"}