statehub_kenie/
lib.rs

1//
2// Copyright (c) 2022 RepliXio Ltd. All rights reserved.
3// Use is subject to license terms.
4//
5
6#![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/// runtime-environment-variables exposed to pods
32#[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}