diff --git a/testing-framework/core/src/constants.rs b/testing-framework/core/src/constants.rs index d57e4fd..d1c1ec2 100644 --- a/testing-framework/core/src/constants.rs +++ b/testing-framework/core/src/constants.rs @@ -1,4 +1,4 @@ -use std::env; +use std::{env, time::Duration}; /// Default cfgsync port used across runners. pub const DEFAULT_CFGSYNC_PORT: u16 = 4400; @@ -9,6 +9,30 @@ pub const DEFAULT_KZG_CONTAINER_PATH: &str = "/kzgrs_test_params/kzgrs_test_para /// Default host-relative directory for KZG assets. pub const DEFAULT_KZG_HOST_DIR: &str = "testing-framework/assets/stack/kzgrs_test_params"; +/// Default HTTP probe interval used across readiness checks. +pub const DEFAULT_HTTP_POLL_INTERVAL: Duration = Duration::from_secs(1); + +/// Default node HTTP timeout when probing endpoints. +pub const DEFAULT_NODE_HTTP_TIMEOUT: Duration = Duration::from_secs(240); + +/// Default node HTTP timeout when probing NodePort endpoints. +pub const DEFAULT_NODE_HTTP_PROBE_TIMEOUT: Duration = Duration::from_secs(30); + +/// Default Kubernetes deployment readiness timeout. +pub const DEFAULT_K8S_DEPLOYMENT_TIMEOUT: Duration = Duration::from_secs(180); + +/// Default Prometheus HTTP port. +pub const DEFAULT_PROMETHEUS_HTTP_PORT: u16 = 9090; + +/// Default Prometheus HTTP timeout. +pub const DEFAULT_PROMETHEUS_HTTP_TIMEOUT: Duration = Duration::from_secs(240); + +/// Default Prometheus HTTP probe timeout for NodePort checks. +pub const DEFAULT_PROMETHEUS_HTTP_PROBE_TIMEOUT: Duration = Duration::from_secs(30); + +/// Default Prometheus service name. +pub const DEFAULT_PROMETHEUS_SERVICE_NAME: &str = "prometheus"; + /// Resolve cfgsync port from `NOMOS_CFGSYNC_PORT`, falling back to the default. pub fn cfgsync_port() -> u16 { env::var("NOMOS_CFGSYNC_PORT") diff --git a/testing-framework/runners/k8s/src/wait/mod.rs b/testing-framework/runners/k8s/src/wait/mod.rs index 392564a..45329e6 100644 --- a/testing-framework/runners/k8s/src/wait/mod.rs +++ b/testing-framework/runners/k8s/src/wait/mod.rs @@ -1,7 +1,15 @@ use std::time::Duration; use kube::Error as KubeError; -use testing_framework_core::scenario::http_probe::NodeRole; +use testing_framework_core::{ + constants::{ + DEFAULT_HTTP_POLL_INTERVAL, DEFAULT_K8S_DEPLOYMENT_TIMEOUT, + DEFAULT_NODE_HTTP_PROBE_TIMEOUT, DEFAULT_NODE_HTTP_TIMEOUT, DEFAULT_PROMETHEUS_HTTP_PORT, + DEFAULT_PROMETHEUS_HTTP_PROBE_TIMEOUT, DEFAULT_PROMETHEUS_HTTP_TIMEOUT, + DEFAULT_PROMETHEUS_SERVICE_NAME, + }, + scenario::http_probe::NodeRole, +}; use thiserror::Error; mod deployment; @@ -87,11 +95,11 @@ pub enum ClusterWaitError { }, } -pub(crate) const DEPLOYMENT_TIMEOUT: Duration = Duration::from_secs(180); -pub(crate) const NODE_HTTP_TIMEOUT: Duration = Duration::from_secs(240); -pub(crate) const NODE_HTTP_PROBE_TIMEOUT: Duration = Duration::from_secs(30); -pub(crate) const HTTP_POLL_INTERVAL: Duration = Duration::from_secs(1); -pub(crate) const PROMETHEUS_HTTP_PORT: u16 = 9090; -pub(crate) const PROMETHEUS_HTTP_TIMEOUT: Duration = Duration::from_secs(240); -pub(crate) const PROMETHEUS_HTTP_PROBE_TIMEOUT: Duration = Duration::from_secs(30); -pub(crate) const PROMETHEUS_SERVICE_NAME: &str = "prometheus"; +pub(crate) const DEPLOYMENT_TIMEOUT: Duration = DEFAULT_K8S_DEPLOYMENT_TIMEOUT; +pub(crate) const NODE_HTTP_TIMEOUT: Duration = DEFAULT_NODE_HTTP_TIMEOUT; +pub(crate) const NODE_HTTP_PROBE_TIMEOUT: Duration = DEFAULT_NODE_HTTP_PROBE_TIMEOUT; +pub(crate) const HTTP_POLL_INTERVAL: Duration = DEFAULT_HTTP_POLL_INTERVAL; +pub(crate) const PROMETHEUS_HTTP_PORT: u16 = DEFAULT_PROMETHEUS_HTTP_PORT; +pub(crate) const PROMETHEUS_HTTP_TIMEOUT: Duration = DEFAULT_PROMETHEUS_HTTP_TIMEOUT; +pub(crate) const PROMETHEUS_HTTP_PROBE_TIMEOUT: Duration = DEFAULT_PROMETHEUS_HTTP_PROBE_TIMEOUT; +pub(crate) const PROMETHEUS_SERVICE_NAME: &str = DEFAULT_PROMETHEUS_SERVICE_NAME;