mirror of
https://github.com/CloudNebulaProject/reddwarf.git
synced 2026-04-10 13:20:40 +00:00
Service networking:
- ClusterIP IPAM allocation on service create/delete via reusable Ipam with_prefix()
- ServiceController watches Pod/Service events + periodic reconcile to track endpoints
- NatManager generates ipnat rdr rules for ClusterIP -> pod IP forwarding
- Embedded DNS server resolves {svc}.{ns}.svc.cluster.local to ClusterIP
- New CLI flags: --service-cidr (default 10.96.0.0/12), --cluster-dns (default 0.0.0.0:10053)
Quick wins:
- ipadm IP assignment: configure_zone_ip() runs ipadm/route inside zone via zlogin after boot
- Node heartbeat zone state reporting: reddwarf.io/zone-count and zone-summary annotations
- bhyve brand support: ZoneBrand::Bhyve, install args, zonecfg device generation, controller integration
189 tests passing, clippy clean.
https://claude.ai/code/session_016QLFjAyYGzMPbBjEGMe75j
50 lines
1.5 KiB
Rust
50 lines
1.5 KiB
Rust
// Allow unused assignments for diagnostic fields - they're used by the thiserror/miette macros
|
|
#![allow(unused_assignments)]
|
|
|
|
pub mod api_client;
|
|
pub mod brand;
|
|
pub mod command;
|
|
pub mod controller;
|
|
pub mod dns;
|
|
pub mod error;
|
|
#[cfg(target_os = "illumos")]
|
|
pub mod illumos;
|
|
pub mod mock;
|
|
pub mod network;
|
|
pub mod node_agent;
|
|
pub mod node_health;
|
|
pub mod probes;
|
|
pub mod service_controller;
|
|
pub mod storage;
|
|
pub mod sysinfo;
|
|
pub mod traits;
|
|
pub mod types;
|
|
pub mod zone;
|
|
|
|
// Re-export primary types
|
|
pub use dns::{DnsServer, DnsServerConfig};
|
|
pub use error::{Result, RuntimeError};
|
|
pub use mock::MockRuntime;
|
|
pub use network::{CidrConfig, IpAllocation, Ipam, NatManager};
|
|
pub use service_controller::{ServiceController, ServiceControllerConfig};
|
|
pub use traits::ZoneRuntime;
|
|
pub use types::{
|
|
ContainerProcess, DirectNicConfig, EtherstubConfig, FsMount, NetworkMode, StoragePoolConfig,
|
|
ZoneBrand, ZoneConfig, ZoneInfo, ZoneState, ZoneStorageOpts,
|
|
};
|
|
|
|
// Re-export storage types
|
|
#[cfg(target_os = "illumos")]
|
|
pub use storage::ZfsStorageEngine;
|
|
pub use storage::{MockStorageEngine, StorageEngine, VolumeInfo};
|
|
|
|
// Re-export controller and agent types
|
|
pub use api_client::ApiClient;
|
|
pub use controller::{PodController, PodControllerConfig};
|
|
pub use node_agent::{NodeAgent, NodeAgentConfig};
|
|
pub use node_health::{NodeHealthChecker, NodeHealthCheckerConfig};
|
|
pub use probes::{ProbeExecutor, ProbeTracker};
|
|
|
|
// Conditionally re-export illumos runtime
|
|
#[cfg(target_os = "illumos")]
|
|
pub use illumos::IllumosRuntime;
|