use super::*;
use docker::CreateDockerRegistrySecret;
use generic::CreateGenericSecret;
use tls::CreateTlsSecret;
mod docker;
mod generic;
mod tls;
#[derive(Clone, Debug, Subcommand)]
pub enum CreateSecret {
DockerRegistry(CreateDockerRegistrySecret),
Generic(CreateGenericSecret),
Tls(CreateTlsSecret),
}
impl CreateSecret {
pub async fn exec(&self, kubeapi: &Kubeapi, pp: &api::PostParams) -> RkResult<Box<dyn Show>> {
trace!(?kubeapi, ?pp);
let data = match self {
Self::DockerRegistry(docker_registry) => docker_registry.secret().await,
Self::Generic(generic) => generic.secret().await,
Self::Tls(tls) => tls.secret(),
}?;
let k = kubeapi
.secrets()?
.create(pp, &data)
.await
.inspect(|ns| kubeapi.inspect(ns))?;
let created = Created { k };
Ok(Box::new(created))
}
}