pub mod crd;
pub use crd::{
Affinity, AmberCluster, AmberClusterSpec, AmberWorkload, AmberWorkloadSpec, ClusterPhase,
Condition, ConditionStatus, ConditionType, DistributedConfig, HPAConfig, MonitoringConfig,
NetworkPolicyConfig, PodAffinity, PodAntiAffinity, PreferredSchedulingTerm,
ResourceRequirements, RetryConfig, SecurityConfig, SecurityContext, ServiceDiscoveryConfig,
ServiceMonitorConfig, Toleration, WorkloadPhase,
};
pub use operator::{
ClusterController, ClusterDiff, ClusterLifecycle, ClusterState, ControllerError,
LifecycleError, ReconcileResult, WorkloadDiff, WorkloadLifecycle, WorkloadState,
};
pub mod autoscaling;
pub mod operator;
pub use autoscaling::{
HPAController, HPAError, Metrics, MetricsClient, MetricsError, ResourceType, ScalePolicyType,
Scaler, ScalerError, ScalingResult,
};
#[cfg(test)]
mod tests {
use super::*;
use std::collections::{BTreeMap, HashMap};
#[test]
fn test_crd_exports() {
let _cluster: Option<AmberCluster> = None;
let _workload: Option<AmberWorkload> = None;
let _resources: Option<ResourceRequirements> = None;
let _security: Option<SecurityConfig> = None;
let _distributed: Option<DistributedConfig> = None;
let _hpa: Option<HPAConfig> = None;
}
#[test]
fn test_status_types() {
let _phase: ClusterPhase = ClusterPhase::Pending;
let _workload_phase: WorkloadPhase = WorkloadPhase::Running;
let _condition_type: ConditionType = ConditionType::Ready;
let _condition_status: ConditionStatus = ConditionStatus::True;
}
}