Struct mz_orchestrator::ServiceConfig
source · pub struct ServiceConfig {Show 14 fields
pub image: String,
pub init_container_image: Option<String>,
pub args: Box<dyn Fn(&BTreeMap<String, String>) -> Vec<String> + Send + Sync>,
pub ports: Vec<ServicePort>,
pub memory_limit: Option<MemoryLimit>,
pub cpu_limit: Option<CpuLimit>,
pub scale: u16,
pub labels: BTreeMap<String, String>,
pub availability_zones: Option<Vec<String>>,
pub other_replicas_selector: Vec<LabelSelector>,
pub replicas_selector: Vec<LabelSelector>,
pub disk: bool,
pub disk_limit: Option<DiskLimit>,
pub node_selector: BTreeMap<String, String>,
}
Expand description
Describes the desired state of a service.
Fields§
§image: String
An opaque identifier for the executable or container image to run.
Often names a container on Docker Hub or a path on the local machine.
init_container_image: Option<String>
For the Kubernetes orchestrator, this is an init container to configure for the pod running the service.
args: Box<dyn Fn(&BTreeMap<String, String>) -> Vec<String> + Send + Sync>
A function that generates the arguments for each process of the service given the assigned listen addresses for each named port.
ports: Vec<ServicePort>
Ports to expose.
memory_limit: Option<MemoryLimit>
An optional limit on the memory that the service can use.
cpu_limit: Option<CpuLimit>
An optional limit on the CPU that the service can use.
scale: u16
The number of copies of this service to run.
labels: BTreeMap<String, String>
Arbitrary key–value pairs to attach to the service in the orchestrator backend.
The orchestrator backend may apply a prefix to the key if appropriate.
availability_zones: Option<Vec<String>>
The availability zones the service can be run in. If no availability zones are specified, the orchestrator is free to choose one.
other_replicas_selector: Vec<LabelSelector>
A set of label selectors selecting all other services that are replicas of this one.
This may be used to implement anti-affinity. If all such selectors match for a given service, this service should not be co-scheduled on a machine with that service.
The orchestrator backend may or may not actually implement anti-affinity functionality.
replicas_selector: Vec<LabelSelector>
A set of label selectors selecting all services that are replicas of this one, including itself.
This may be used to implement placement spread.
The orchestrator backend may or may not actually implement placement spread functionality.
disk: bool
Whether scratch disk space should be allocated for the service.
disk_limit: Option<DiskLimit>
The maximum amount of scratch disk space that the service is allowed to consume.
node_selector: BTreeMap<String, String>
Node selector for this service.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for ServiceConfig
impl !RefUnwindSafe for ServiceConfig
impl Send for ServiceConfig
impl Sync for ServiceConfig
impl Unpin for ServiceConfig
impl !UnwindSafe for ServiceConfig
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> FutureExt for T
impl<T> FutureExt for T
source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T
in a tonic::Request