add cluster x kube-sign

This commit is contained in:
Mikaël Cluseau
2025-07-02 21:11:35 +02:00
parent 4b33c64042
commit 7f4307f009
3 changed files with 51 additions and 4 deletions

View File

@ -45,11 +45,20 @@ enum ClusterCommand {
user_public_key: String,
#[arg(long, default_value = "root")]
principal: String,
#[arg(long, default_value = "+1d")]
#[arg(long, default_value = "1d")]
validity: String,
#[arg(long)]
options: Vec<String>,
},
KubeSign {
csr: String,
#[arg(long, default_value = "anonymous", env = "USER")]
user: String,
#[arg(long)]
group: Option<String>,
#[arg(long, default_value = "1d")]
validity: String,
},
}
#[tokio::main(flavor = "current_thread")]
@ -87,7 +96,7 @@ async fn main() -> Result<()> {
}) => {
let pub_key = tokio::fs::read_to_string(user_public_key).await?;
let cert = cluster
.sign_ssh_user_pubkey(&dls::SshSignReq {
.ssh_userca_sign(&dls::SshSignReq {
pub_key,
principal,
validity: Some(validity).filter(|s| s != ""),
@ -96,6 +105,23 @@ async fn main() -> Result<()> {
.await?;
write_raw(&cert);
}
Some(CC::KubeSign {
csr,
user,
group,
validity,
}) => {
let csr = tokio::fs::read_to_string(csr).await?;
let cert = cluster
.kube_sign(&dls::KubeSignReq {
csr,
user,
group,
validity: Some(validity).filter(|s| s != ""),
})
.await?;
write_raw(&cert);
}
}
}
C::Hosts => write_json(&dls.hosts().await?),