Skip to content

Commit 4fce402

Browse files
committed
feat(clusters): add toggle for prebakes
1 parent eb90b86 commit 4fce402

File tree

65 files changed

+369
-138
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

65 files changed

+369
-138
lines changed

fern/definition/admin/clusters/__package__.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ service:
1212
method: GET
1313
docs: Get clusters
1414
response: ListClustersResponse
15+
1516
create:
1617
path: ""
1718
method: POST
@@ -24,10 +25,12 @@ types:
2425
ListClustersResponse:
2526
properties:
2627
clusters: list<localCommons.Cluster>
28+
2729
CreateClusterRequest:
2830
properties:
2931
name_id: string
3032
owner_team_id: optional<uuid>
33+
3134
CreateClusterResponse:
3235
properties:
3336
cluster_id: uuid

fern/definition/admin/clusters/common.yml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,16 @@ types:
66
- job
77
- gg
88
- ats
9+
910
Provider:
1011
enum:
1112
- linode
13+
1214
BuildDeliveryMethod:
1315
enum:
1416
- traffic_server
1517
- s3_direct
18+
1619
Pool:
1720
properties:
1821
pool_type: PoolType
@@ -21,15 +24,18 @@ types:
2124
min_count: integer
2225
max_count: integer
2326
drain_timeout: long
27+
2428
Hardware:
2529
properties:
2630
provider_hardware: string
31+
2732
Cluster:
2833
properties:
2934
cluster_id: uuid
3035
name_id: string
3136
create_ts: long
3237
owner_team_id: optional<uuid>
38+
3339
Datacenter:
3440
properties:
3541
datacenter_id: uuid
@@ -41,7 +47,17 @@ types:
4147
provider_api_token: optional<string>
4248
pools: list<Pool>
4349
build_delivery_method: BuildDeliveryMethod
50+
4451
Server:
4552
properties:
4653
server_id: uuid
4754
public_ip: string
55+
56+
PoolUpdate:
57+
properties:
58+
pool_type: PoolType
59+
hardware: list<Hardware>
60+
desired_count: optional<integer>
61+
min_count: optional<integer>
62+
max_count: optional<integer>
63+
drain_timeout: optional<long>

fern/definition/admin/clusters/datacenters.yml

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,14 @@ service:
1515
method: GET
1616
docs: Get datacenters of a cluster
1717
response: ListDatacentersResponse
18+
1819
create:
1920
path: ""
2021
method: POST
2122
request:
2223
body: CreateDatacenterRequest
2324
response: CreateDatacenterResponse
25+
2426
update:
2527
path: /{datacenter_id}
2628
path-parameters:
@@ -34,21 +36,21 @@ types:
3436
ListDatacentersResponse:
3537
properties:
3638
datacenters: list<localCommons.Datacenter>
39+
3740
CreateDatacenterRequest:
3841
properties:
3942
display_name: string
4043
name_id: string
4144
provider: localCommons.Provider
4245
provider_datacenter_id: string
4346
build_delivery_method: localCommons.BuildDeliveryMethod
47+
prebakes_enabled: boolean
48+
4449
CreateDatacenterResponse:
4550
properties:
4651
datacenter_id: uuid
52+
4753
UpdateDatacenterRequest:
4854
properties:
49-
pool_type: localCommons.PoolType
50-
hardware: list<localCommons.Hardware>
51-
desired_count: optional<integer>
52-
min_count: optional<integer>
53-
max_count: optional<integer>
54-
drain_timeout: optional<long>
55+
pools: list<localCommons.PoolUpdate>
56+
prebakes_enabled: optional<boolean>

fern/definition/admin/clusters/servers.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ service:
2121
pool: optional<localCommons.PoolType>
2222
public_ip: optional<string>
2323
response: ListServersResponse
24+
2425
taint:
2526
path: /taint
2627
method: POST
@@ -31,6 +32,7 @@ service:
3132
datacenter: optional<string>
3233
pool: optional<localCommons.PoolType>
3334
public_ip: optional<string>
35+
3436
destroy:
3537
path: /destroy
3638
method: POST

lib/bolt/config/src/ns.rs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -643,6 +643,8 @@ pub struct ProvisioningDatacenter {
643643
pub provider_datacenter_name: String,
644644
#[serde(default)]
645645
pub build_delivery_method: ProvisioningBuildDeliveryMethod,
646+
#[serde(default = "default_prebakes_enabled")]
647+
pub prebakes_enabled: bool,
646648
#[serde(default)]
647649
pub pools: HashMap<ProvisioningDatacenterPoolType, ProvisioningDatacenterPool>,
648650
}
@@ -768,6 +770,10 @@ fn default_job_server_provision_margin() -> u32 {
768770
2
769771
}
770772

773+
fn default_prebakes_enabled() -> bool {
774+
true
775+
}
776+
771777
// Used for parsing from 1password
772778
#[derive(Deserialize, Debug)]
773779
pub struct PartialNamespace {

lib/convert/src/impls/admin.rs

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
use proto::backend;
1+
use proto::backend::{self, pkg::*};
22
use rivet_api::models;
33
use rivet_operation::prelude::*;
44

@@ -121,3 +121,22 @@ impl ApiTryFrom<backend::cluster::Datacenter> for models::AdminClustersDatacente
121121
})
122122
}
123123
}
124+
125+
impl ApiFrom<models::AdminClustersPoolUpdate> for cluster::msg::datacenter_update::PoolUpdate {
126+
fn api_from(value: models::AdminClustersPoolUpdate) -> cluster::msg::datacenter_update::PoolUpdate {
127+
cluster::msg::datacenter_update::PoolUpdate {
128+
pool_type: ApiInto::<backend::cluster::PoolType>::api_into(value.pool_type) as i32,
129+
hardware: value
130+
.hardware
131+
.iter()
132+
.map(|h| backend::cluster::Hardware {
133+
provider_hardware: h.provider_hardware.clone(),
134+
})
135+
.collect(),
136+
desired_count: value.desired_count.map(|c| c as u32),
137+
min_count: value.min_count.map(|c| c as u32),
138+
max_count: value.max_count.map(|c| c as u32),
139+
drain_timeout: value.drain_timeout.map(|d| d as u64),
140+
}
141+
}
142+
}

proto/backend/cluster.proto

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ message Datacenter {
3030

3131
repeated Pool pools = 8;
3232
BuildDeliveryMethod build_delivery_method = 9;
33+
bool prebakes_enabled = 12;
3334
}
3435

3536
message Pool {

sdks/full/go/admin/clusters/datacenters.go

Lines changed: 3 additions & 6 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

sdks/full/go/admin/clusters/types.go

Lines changed: 34 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

sdks/full/openapi/openapi.yml

Lines changed: 29 additions & 15 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)