add cluster x kube-sign
This commit is contained in:
23
src/dls.rs
23
src/dls.rs
@ -96,7 +96,7 @@ impl<'t> Cluster<'t> {
|
||||
.await
|
||||
}
|
||||
|
||||
pub async fn sign_ssh_user_pubkey(&self, sign_req: &SshSignReq) -> Result<Vec<u8>> {
|
||||
pub async fn ssh_userca_sign(&self, sign_req: &SshSignReq) -> Result<Vec<u8>> {
|
||||
let req = self.dls.req(
|
||||
Method::POST,
|
||||
format!("clusters/{}/ssh/user-ca/sign", self.name),
|
||||
@ -106,6 +106,14 @@ impl<'t> Cluster<'t> {
|
||||
let resp = do_req(req, &self.dls.token).await?;
|
||||
Ok(resp.bytes().await.map_err(Error::Read)?.to_vec())
|
||||
}
|
||||
|
||||
pub async fn kube_sign(&self, sign_req: &KubeSignReq) -> Result<Vec<u8>> {
|
||||
let req = (self.dls).req(Method::POST, format!("clusters/{}/kube/sign", self.name))?;
|
||||
let req = req.json(sign_req);
|
||||
|
||||
let resp = do_req(req, &self.dls.token).await?;
|
||||
Ok(resp.bytes().await.map_err(Error::Read)?.to_vec())
|
||||
}
|
||||
}
|
||||
|
||||
pub struct Host<'t> {
|
||||
@ -164,8 +172,21 @@ pub struct SshSignReq {
|
||||
pub options: Vec<String>,
|
||||
}
|
||||
|
||||
#[derive(serde::Deserialize, serde::Serialize)]
|
||||
#[serde(rename_all = "PascalCase")]
|
||||
pub struct KubeSignReq {
|
||||
#[serde(rename = "CSR")]
|
||||
pub csr: String,
|
||||
pub user: String,
|
||||
#[serde(skip_serializing_if = "Option::is_none")]
|
||||
pub group: Option<String>,
|
||||
#[serde(skip_serializing_if = "Option::is_none")]
|
||||
pub validity: Option<String>,
|
||||
}
|
||||
|
||||
#[derive(Debug, serde::Deserialize, serde::Serialize)]
|
||||
struct ServerError {
|
||||
#[serde(default)]
|
||||
code: u16,
|
||||
message: String,
|
||||
#[serde(skip_serializing_if = "Option::is_none")]
|
||||
|
||||
Reference in New Issue
Block a user