Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
61 changes: 61 additions & 0 deletions proto/backend/servers.proto
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
syntax = "proto3";

package rivet.backend.servers;

import "google/protobuf/struct.proto";
import "proto/common.proto";

message Server {
rivet.common.Uuid cluster_id = 1;
rivet.common.Uuid datacenter_id = 2;
int32 kill_timeout = 3;
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

specify ms

map<string, MetadataJson> metadata = 4;
Runtime runtime = 5;
}

message MetadataJson {
string value = 1;
}

message Runtime {
optional DockerRuntime docker = 1;
}

message DockerRuntime {
repeated string args = 1;
map<string, string> environment = 2;
string image_id = 3;
DockerNetwork network = 4;
}

message DockerNetwork {
DockerNetworkMode mode = 1;
map<string, DockerPort> ports = 2;
}

enum DockerNetworkMode {
HOST = 0;
BRIDGE = 1;
}

message DockerPort {
optional int32 port = 1;
DockerPortRouting routing = 2;
}

message DockerPortRouting {
optional GameGuardProtocol game_guard = 1;
optional DockerHostRouting host = 2;
}

enum GameGuardProtocol {
HTTP = 0;
HTTPS = 1;
TCP = 2;
TCP_TLS = 3;
UDP = 4;
}

message DockerHostRouting {
google.protobuf.Value null = 1;
}
13 changes: 13 additions & 0 deletions svc/Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions svc/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -211,6 +211,7 @@ members = [
"pkg/region/ops/recommend",
"pkg/region/ops/resolve",
"pkg/region/ops/resolve-for-game",
"pkg/servers/ops/server-create",
"pkg/team-invite/ops/get",
"pkg/team-invite/worker",
"pkg/team/ops/avatar-upload-complete",
Expand Down
24 changes: 24 additions & 0 deletions svc/pkg/servers/ops/server-create/Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
[package]
name = "servers-server-create"
version = "0.0.1"
edition = "2021"
authors = ["Rivet Gaming, LLC <developer@rivet.gg>"]
license = "Apache-2.0"

[dependencies]
chirp-client = { path = "../../../../../lib/chirp/client" }
rivet-operation = { path = "../../../../../lib/operation/core" }
nomad-client = "0.0.9"
lazy_static = "1.4.0"

[dependencies.nomad_client_new]
package = "nomad_client"
git = "https://github.com/rivet-gg/nomad-client"
rev = "abb66bf0c30c7ff5b0c695dae952481c33e538b5" # pragma: allowlist secret

[dependencies.sqlx]
version = "0.7"
default-features = false

[dev-dependencies]
chirp-worker = { path = "../../../../../lib/chirp/worker" }
7 changes: 7 additions & 0 deletions svc/pkg/servers/ops/server-create/Service.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
[service]
name = "servers-server-create"

[runtime]
kind = "rust"

[operation]
12 changes: 12 additions & 0 deletions svc/pkg/servers/ops/server-create/src/lib.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
use std::collections::HashMap;

use proto::backend::{self, pkg::*};
use rivet_operation::prelude::*;
// use chirp_worker::prelude::*;

#[operation(name = "servers-server-create")]
pub async fn handle(
ctx: OperationContext<servers::server_create::Request>,
) -> GlobalResult<servers::server_create::Response> {
todo!();
}
6 changes: 6 additions & 0 deletions svc/pkg/servers/ops/server-create/tests/integration.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
use chirp_worker::prelude::*;

#[worker_test]
async fn basic(ctx: TestCtx) {
// TODO:
}
14 changes: 14 additions & 0 deletions svc/pkg/servers/types/server-create.proto
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
syntax = "proto3";

package rivet.backend.pkg.servers.server_create;

import "proto/common.proto";
import "proto/backend/servers.proto";

message Request {
repeated rivet.backend.servers.Server servers = 1;
}

message Response {
repeated rivet.common.Uuid server_ids = 1;
}