diff --git a/ballista/scheduler/Cargo.toml b/ballista/scheduler/Cargo.toml index 468e66a33..9409ea087 100644 --- a/ballista/scheduler/Cargo.toml +++ b/ballista/scheduler/Cargo.toml @@ -36,6 +36,7 @@ path = "src/bin/main.rs" [features] default = [] flight-sql = [] +keda-scaler = [] prometheus-metrics = ["prometheus", "once_cell"] diff --git a/ballista/scheduler/src/scheduler_process.rs b/ballista/scheduler/src/scheduler_process.rs index 943f28b82..140dc1412 100644 --- a/ballista/scheduler/src/scheduler_process.rs +++ b/ballista/scheduler/src/scheduler_process.rs @@ -32,6 +32,7 @@ use crate::config::SchedulerConfig; #[cfg(feature = "flight-sql")] use crate::flight_sql::FlightSqlServiceImpl; use crate::metrics::default_metrics_collector; +#[cfg(feature = "keda-scaler")] use crate::scheduler_server::externalscaler::external_scaler_server::ExternalScalerServer; use crate::scheduler_server::SchedulerServer; @@ -68,11 +69,11 @@ pub async fn start_server( .max_encoding_message_size(config.grpc_server_max_encoding_message_size as usize) .max_decoding_message_size(config.grpc_server_max_decoding_message_size as usize); - let keda_scaler = ExternalScalerServer::new(scheduler_server.clone()); + let tonic_builder = create_grpc_server().add_service(scheduler_grpc_server); - let tonic_builder = create_grpc_server() - .add_service(scheduler_grpc_server) - .add_service(keda_scaler); + #[cfg(feature = "keda-scaler")] + let tonic_builder = + tonic_builder.add_service(ExternalScalerServer::new(scheduler_server.clone())); #[cfg(feature = "flight-sql")] let tonic_builder = tonic_builder.add_service(FlightServiceServer::new( diff --git a/ballista/scheduler/src/scheduler_server/mod.rs b/ballista/scheduler/src/scheduler_server/mod.rs index e6e6739e5..59b988bcd 100644 --- a/ballista/scheduler/src/scheduler_server/mod.rs +++ b/ballista/scheduler/src/scheduler_server/mod.rs @@ -44,12 +44,14 @@ use crate::state::task_manager::TaskLauncher; use crate::state::SchedulerState; // include the generated protobuf source as a submodule +#[cfg(feature = "keda-scaler")] #[allow(clippy::all)] pub mod externalscaler { include!(concat!(env!("OUT_DIR"), "/externalscaler.rs")); } pub mod event; +#[cfg(feature = "keda-scaler")] mod external_scaler; mod grpc; pub(crate) mod query_stage_scheduler;