k8s_test_framework/
lib.rs

1#![deny(warnings)]
2
3//! Kubernetes test framework.
4//!
5//! The main goal of the design of this test framework is to wire kubernetes
6//! components testing through the same tools that are available to the
7//! developer as executable commands, rather than using a rust interface to talk
8//! to k8s cluster directly.
9//! This enables very trivial troubleshooting and allows us to use the same
10//! deployment mechanisms that we use for production - effectively giving us
11//! the opportunity to test e2e: not just the code layer, but also the
12//! deployment configuration.
13
14#![deny(
15    missing_debug_implementations,
16    missing_copy_implementations,
17    missing_docs
18)]
19
20mod exec_tail;
21pub mod framework;
22mod helm_values_file;
23pub mod interface;
24pub mod kubernetes_version;
25mod lock;
26mod log_lookup;
27pub mod namespace;
28mod pod;
29mod port_forward;
30mod reader;
31mod resource_file;
32pub mod restart_rollout;
33mod temp_file;
34pub mod test_pod;
35mod up_down;
36mod util;
37pub mod vector;
38pub mod wait_for_resource;
39pub mod wait_for_rollout;
40
41// Re-export some unit for trivial accessibility.
42
43use exec_tail::exec_tail;
44pub use framework::Framework;
45pub use interface::Interface;
46pub use lock::lock;
47use log_lookup::log_lookup;
48use port_forward::port_forward;
49pub use port_forward::PortForwarder;
50pub use reader::Reader;
51pub use test_pod::CommandBuilder;
52pub use up_down::Manager;
53
54type Result<T> = std::result::Result<T, Box<dyn std::error::Error>>;