Skip to content

Commit

Permalink
feat(clusters): add toggle for prebakes
Browse files Browse the repository at this point in the history
  • Loading branch information
MasterPtato committed Jun 24, 2024
1 parent bc9d65d commit 53ad0bb
Show file tree
Hide file tree
Showing 65 changed files with 369 additions and 138 deletions.
3 changes: 3 additions & 0 deletions fern/definition/admin/clusters/__package__.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ service:
method: GET
docs: Get clusters
response: ListClustersResponse

create:
path: ""
method: POST
Expand All @@ -24,10 +25,12 @@ types:
ListClustersResponse:
properties:
clusters: list<localCommons.Cluster>

CreateClusterRequest:
properties:
name_id: string
owner_team_id: optional<uuid>

CreateClusterResponse:
properties:
cluster_id: uuid
16 changes: 16 additions & 0 deletions fern/definition/admin/clusters/common.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,16 @@ types:
- job
- gg
- ats

Provider:
enum:
- linode

BuildDeliveryMethod:
enum:
- traffic_server
- s3_direct

Pool:
properties:
pool_type: PoolType
Expand All @@ -21,15 +24,18 @@ types:
min_count: integer
max_count: integer
drain_timeout: long

Hardware:
properties:
provider_hardware: string

Cluster:
properties:
cluster_id: uuid
name_id: string
create_ts: long
owner_team_id: optional<uuid>

Datacenter:
properties:
datacenter_id: uuid
Expand All @@ -41,7 +47,17 @@ types:
provider_api_token: optional<string>
pools: list<Pool>
build_delivery_method: BuildDeliveryMethod

Server:
properties:
server_id: uuid
public_ip: string

PoolUpdate:
properties:
pool_type: PoolType
hardware: list<Hardware>
desired_count: optional<integer>
min_count: optional<integer>
max_count: optional<integer>
drain_timeout: optional<long>
14 changes: 8 additions & 6 deletions fern/definition/admin/clusters/datacenters.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,14 @@ service:
method: GET
docs: Get datacenters of a cluster
response: ListDatacentersResponse

create:
path: ""
method: POST
request:
body: CreateDatacenterRequest
response: CreateDatacenterResponse

update:
path: /{datacenter_id}
path-parameters:
Expand All @@ -34,21 +36,21 @@ types:
ListDatacentersResponse:
properties:
datacenters: list<localCommons.Datacenter>

CreateDatacenterRequest:
properties:
display_name: string
name_id: string
provider: localCommons.Provider
provider_datacenter_id: string
build_delivery_method: localCommons.BuildDeliveryMethod
prebakes_enabled: boolean

CreateDatacenterResponse:
properties:
datacenter_id: uuid

UpdateDatacenterRequest:
properties:
pool_type: localCommons.PoolType
hardware: list<localCommons.Hardware>
desired_count: optional<integer>
min_count: optional<integer>
max_count: optional<integer>
drain_timeout: optional<long>
pools: list<localCommons.PoolUpdate>
prebakes_enabled: optional<boolean>
2 changes: 2 additions & 0 deletions fern/definition/admin/clusters/servers.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ service:
pool: optional<localCommons.PoolType>
public_ip: optional<string>
response: ListServersResponse

taint:
path: /taint
method: POST
Expand All @@ -31,6 +32,7 @@ service:
datacenter: optional<string>
pool: optional<localCommons.PoolType>
public_ip: optional<string>

destroy:
path: /destroy
method: POST
Expand Down
6 changes: 6 additions & 0 deletions lib/bolt/config/src/ns.rs
Original file line number Diff line number Diff line change
Expand Up @@ -645,6 +645,8 @@ pub struct ProvisioningDatacenter {
pub provider_datacenter_name: String,
#[serde(default)]
pub build_delivery_method: ProvisioningBuildDeliveryMethod,
#[serde(default = "default_prebakes_enabled")]
pub prebakes_enabled: bool,
#[serde(default)]
pub pools: HashMap<ProvisioningDatacenterPoolType, ProvisioningDatacenterPool>,
}
Expand Down Expand Up @@ -774,6 +776,10 @@ fn default_job_server_provision_margin() -> u32 {
2
}

fn default_prebakes_enabled() -> bool {
true
}

// Used for parsing from 1password
#[derive(Deserialize, Debug)]
pub struct PartialNamespace {
Expand Down
21 changes: 20 additions & 1 deletion lib/convert/src/impls/admin.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
use proto::backend;
use proto::backend::{self, pkg::*};
use rivet_api::models;
use rivet_operation::prelude::*;

Expand Down Expand Up @@ -121,3 +121,22 @@ impl ApiTryFrom<backend::cluster::Datacenter> for models::AdminClustersDatacente
})
}
}

impl ApiFrom<models::AdminClustersPoolUpdate> for cluster::msg::datacenter_update::PoolUpdate {
fn api_from(value: models::AdminClustersPoolUpdate) -> cluster::msg::datacenter_update::PoolUpdate {
cluster::msg::datacenter_update::PoolUpdate {
pool_type: ApiInto::<backend::cluster::PoolType>::api_into(value.pool_type) as i32,
hardware: value
.hardware
.iter()
.map(|h| backend::cluster::Hardware {
provider_hardware: h.provider_hardware.clone(),
})
.collect(),
desired_count: value.desired_count.map(|c| c as u32),
min_count: value.min_count.map(|c| c as u32),
max_count: value.max_count.map(|c| c as u32),
drain_timeout: value.drain_timeout.map(|d| d as u64),
}
}
}
1 change: 1 addition & 0 deletions proto/backend/cluster.proto
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ message Datacenter {

repeated Pool pools = 8;
BuildDeliveryMethod build_delivery_method = 9;
bool prebakes_enabled = 12;
}

message Pool {
Expand Down
9 changes: 3 additions & 6 deletions sdks/full/go/admin/clusters/datacenters.go

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

34 changes: 34 additions & 0 deletions sdks/full/go/admin/clusters/types.go

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

44 changes: 29 additions & 15 deletions sdks/full/openapi/openapi.yml

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

Loading

0 comments on commit 53ad0bb

Please sign in to comment.