Skip to main content

sk_core/
constants.rs

1use lazy_static::lazy_static;
2
3use crate::k8s::GVK;
4
5// Well-known labels, annotations, and taints
6pub const KUBERNETES_IO_METADATA_NAME_KEY: &str = "kubernetes.io/metadata.name";
7pub const APP_KUBERNETES_IO_NAME_KEY: &str = "app.kubernetes.io/name";
8pub const APP_KUBERNETES_IO_COMPONENT_KEY: &str = "app.kubernetes.io/component";
9
10// Common annotations and labels for SimKube
11pub const ORIG_NAMESPACE_ANNOTATION_KEY: &str = "simkube.io/original-namespace";
12pub const SIMULATION_LABEL_KEY: &str = "simkube.io/simulation";
13pub const VIRTUAL_LABEL_KEY: &str = "simkube.io/virtual";
14pub const POD_SPEC_STABLE_HASH_KEY: &str = "simkube.io/pod-spec-stable-hash";
15pub const POD_SEQUENCE_NUMBER_KEY: &str = "simkube.io/pod-sequence-number";
16pub const SKIP_LOCAL_VOLUME_MOUNT_ANNOTATION_KEY: &str = "simkube.io/skip-local-volue-mount";
17
18// Lifecycle management labels and annotations
19pub const KWOK_STAGE_COMPLETE_KEY: &str = "simkube.kwok.io/stage-complete";
20pub const KWOK_STAGE_COMPLETE_TIMESTAMP_KEY: &str = "simkube.kwok.io/stage-complete-time";
21pub const KWOK_STAGE_ERROR_TIMESTAMP_KEY: &str = "simkube.kwok.io/stage-error-time";
22
23// Metrics
24pub const PROM2PARQUET_PREFIX_KEY: &str = "prom2parquet_prefix";
25
26// Taint/toleration key
27pub const VIRTUAL_NODE_TOLERATION_KEY: &str = "kwok-provider";
28
29// Env vars
30pub const CTRL_NS_ENV_VAR: &str = "CTRL_NAMESPACE";
31pub const DRIVER_NAME_ENV_VAR: &str = "DRIVER_NAME";
32pub const POD_SVC_ACCOUNT_ENV_VAR: &str = "POD_SVC_ACCOUNT";
33
34// Defaults
35pub const DEFAULT_METRICS_NS: &str = "monitoring";
36pub const DEFAULT_METRICS_SVC_ACCOUNT: &str = "prometheus-k8s";
37pub const DRIVER_ADMISSION_WEBHOOK_PORT: &str = "8888";
38pub const SK_LEASE_NAME: &str = "sk-lease";
39
40// Timing
41pub const RETRY_DELAY_SECONDS: u64 = 5;
42pub const ERROR_RETRY_DELAY_SECONDS: u64 = 30;
43
44// Kinds
45pub const SVC_ACCOUNT_KIND: &str = "ServiceAccount";
46
47// Built-in GVKs
48lazy_static! {
49    pub static ref SVC_ACCOUNT_GVK: GVK = GVK::new("", "v1", SVC_ACCOUNT_KIND);
50}