1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
#![cfg_attr(feature = "pedantic", warn(clippy::pedantic))]
#![warn(clippy::use_self)]
#![warn(clippy::map_flatten)]
#![warn(clippy::map_unwrap_or)]
#![warn(deprecated_in_future)]
#![warn(future_incompatible)]
#![warn(noop_method_call)]
#![warn(unreachable_pub)]
#![warn(missing_debug_implementations)]
#![warn(rust_2018_compatibility)]
#![warn(rust_2021_compatibility)]
#![warn(rust_2018_idioms)]
#![warn(unused)]
#![deny(warnings)]
pub use k8s_openapi as openapi;
pub use openapi::api::apps::v1 as appsv1;
pub use openapi::api::autoscaling::v1 as autoscalingv1;
pub use openapi::api::autoscaling::v2 as autoscalingv2;
pub use openapi::api::batch::v1 as batchv1;
pub use openapi::api::coordination::v1 as coordinationv1;
pub use openapi::api::core::v1 as corev1;
pub use openapi::api::events::v1 as eventsv1;
pub use openapi::api::policy::v1 as policyv1;
pub use openapi::api::rbac::v1 as rbacv1;
pub use openapi::api::scheduling::v1 as schedulingv1;
pub use openapi::api::storage::v1 as storagev1;
pub use openapi::apiextensions_apiserver::pkg::apis::apiextensions::v1 as apiextensionsv1;
pub use openapi::apimachinery::pkg::api::resource;
pub use openapi::apimachinery::pkg::apis::meta::v1 as metav1;
pub use openapi::apimachinery::pkg::util::intstr;
pub use openapi::kube_aggregator::pkg::apis::apiregistration::v1 as apiregistrationv1;
pub use openapi::ByteString;
pub use openapi::Resource;
pub use ext::ClusterRoleBindingExt;
pub use ext::ClusterRoleExt;
pub use ext::ConfigMapExt;
pub use ext::ContainerExt;
pub use ext::DaemonSetExt;
pub use ext::DeploymentExt;
pub use ext::EnvVarExt;
pub use ext::JobExt;
pub use ext::LabelSelectorExt;
pub use ext::NamespaceExt;
pub use ext::PodSpecExt;
pub use ext::PodTemplateSpecExt;
pub use ext::PolicyRuleExt;
pub use ext::ProbeExt;
pub use ext::ReplicaSetExt;
pub use ext::ResourceBuilder;
pub use ext::RoleBindingExt;
pub use ext::RoleExt;
pub use ext::RoleRefExt;
pub use ext::SecretEnvSourceExt;
pub use ext::SecretExt;
pub use ext::SecretExt2;
pub use ext::SecretVolumeSourceExt;
pub use ext::ServiceAccountExt;
pub use ext::ServiceExt;
pub use ext::ServicePortExt;
pub use ext::StorageClassExt;
pub use ext::SubjectExt;
pub use ext::ToEnvFrom;
pub use ext::ToEnvVar;
pub use ext::VolumeExt;
pub use ext::VolumeMountExt;
mod ext;
pub mod namespace {
pub const DEFAULT: &str = "default";
pub const KUBE_PUBLIC: &str = "kube-public";
pub const KUBE_SYSTEM: &str = "kube-system";
}
pub mod label {
pub const APP_NAME: &str = "app.kubernetes.io/name";
pub const APP_INSTANCE: &str = "app.kubernetes.io/instance";
pub const APP_VERSION: &str = "app.kubernetes.io/version";
pub const APP_COMPONENT: &str = "app.kubernetes.io/component";
pub const APP_PART_OF: &str = "app.kubernetes.io/part-of";
pub const APP_MANAGED_BY: &str = "app.kubernetes.io/managed-by";
}
pub fn typed_ref(
object: Option<&corev1::ObjectReference>,
) -> Option<corev1::TypedLocalObjectReference> {
let object = object?;
let kind = object.kind.as_ref()?.clone();
let name = object.name.as_ref()?.clone();
let typed = corev1::TypedLocalObjectReference {
kind,
name,
..default()
};
Some(typed)
}
pub fn owner_reference(
owner: corev1::ObjectReference,
is_controller: bool,
block_owner_deletion: bool,
) -> Option<metav1::OwnerReference> {
Some(metav1::OwnerReference {
block_owner_deletion: Some(block_owner_deletion),
controller: Some(is_controller),
api_version: owner.api_version?,
kind: owner.kind?,
name: owner.name?,
uid: owner.uid?,
})
}
fn default<T: Default>() -> T {
Default::default()
}