diff --git a/kube/src/api/mod.rs b/kube/src/api/mod.rs index b8181cf6e..2a0bb12ad 100644 --- a/kube/src/api/mod.rs +++ b/kube/src/api/mod.rs @@ -11,6 +11,8 @@ mod subresource; pub use subresource::{Attach, AttachParams, Execute}; pub use subresource::{Evict, EvictParams, Log, LogParams, ScaleSpec, ScaleStatus}; +mod util; + // Re-exports from kube-core #[cfg(feature = "admission")] #[cfg_attr(docsrs, doc(cfg(feature = "admission")))] diff --git a/kube/src/api/util.rs b/kube/src/api/util.rs new file mode 100644 index 000000000..8ddd2cc85 --- /dev/null +++ b/kube/src/api/util.rs @@ -0,0 +1,14 @@ +use crate::api::{Api, Resource}; +use crate::Result; +use kube_core::util::Restart; +use serde::de::DeserializeOwned; + +impl Api +where K: Restart + Resource + DeserializeOwned { + /// Trigger a restart of a Resource. + pub async fn restart(&self, name: &str) -> Result { + let mut req = self.request.restart(name)?; + req.extensions_mut().insert("restart"); + self.client.request::(req).await + } +}