1#![cfg_attr(feature = "pedantic", warn(clippy::pedantic))]
7#![warn(clippy::use_self)]
8#![warn(clippy::map_flatten)]
9#![warn(clippy::map_unwrap_or)]
10#![warn(deprecated_in_future)]
11#![warn(future_incompatible)]
12#![warn(noop_method_call)]
13#![warn(unreachable_pub)]
14#![warn(missing_debug_implementations)]
15#![warn(rust_2018_compatibility)]
16#![warn(rust_2021_compatibility)]
17#![warn(rust_2018_idioms)]
18#![warn(unused)]
19#![deny(warnings)]
20
21pub use statehub_k8s_helper as k8s;
22
23#[cfg(feature = "controller")]
24pub mod controller;
25#[cfg(feature = "kubectl")]
26pub mod kubectl;
27pub mod spec;
28#[cfg(any(feature = "controller", feature = "kubectl"))]
29pub mod utils;
30
31#[cfg(any(feature = "controller", feature = "kubectl"))]
33pub mod env {
34 use crate::k8s::corev1::EnvVar;
35 pub const POD_UID: &str = "POD_UID";
36 pub const POD_IP: &str = "POD_IP";
37 pub const POD_NAME: &str = "POD_NAME";
38 pub const NAMESPACE: &str = "NAMESPACE";
39 pub const NODE_NAME: &str = "NODE_NAME";
40 pub const HOST_IP: &str = "HOST_IP";
41
42 pub fn all() -> [EnvVar; 6] {
43 use statehub_k8s_helper::EnvVarExt;
44 [
45 EnvVar::spec_nodename(NODE_NAME),
46 EnvVar::status_host_ip(HOST_IP),
47 EnvVar::metadata_uid(POD_UID),
48 EnvVar::metadata_name(POD_NAME),
49 EnvVar::status_pod_ip(POD_IP),
50 EnvVar::metadata_namespace(NAMESPACE),
51 ]
52 }
53}