k8s_test_framework/
restart_rollout.rs1use std::{ffi::OsStr, process::Stdio};
4
5use tokio::process::Command;
6
7use super::Result;
8use crate::util::run_command;
9
10pub async fn run<Cmd, NS, R, EX>(
14 kubectl_command: Cmd,
15 namespace: NS,
16 resource: R,
17 extra: impl IntoIterator<Item = EX>,
18) -> Result<()>
19where
20 Cmd: AsRef<OsStr>,
21 NS: AsRef<OsStr>,
22 R: AsRef<OsStr>,
23 EX: AsRef<OsStr>,
24{
25 let mut command = Command::new(kubectl_command);
26
27 command
28 .stdin(Stdio::null())
29 .stdout(Stdio::inherit())
30 .stderr(Stdio::inherit());
31
32 command.arg("rollout").arg("restart");
33 command.arg("-n").arg(namespace);
34 command.arg(resource);
35 command.args(extra);
36
37 run_command(command).await?;
38 Ok(())
39}