fix: modified k8sanywhere implentation of get_ca_cert to use the kubernetes certificate name to find its respective secret and ca.crt
All checks were successful
Run Check Script / check (pull_request) Successful in 1m46s
All checks were successful
Run Check Script / check (pull_request) Successful in 1m46s
This commit is contained in:
@@ -460,31 +460,56 @@ impl CertificateManagement for K8sAnywhereTopology {
|
|||||||
config: &CertificateManagementConfig,
|
config: &CertificateManagementConfig,
|
||||||
) -> Result<String, PreparationError> {
|
) -> Result<String, PreparationError> {
|
||||||
let namespace = config.namespace.clone().unwrap();
|
let namespace = config.namespace.clone().unwrap();
|
||||||
|
let certificate_gvk = GroupVersionKind {
|
||||||
|
group: "cert-manager.io".to_string(),
|
||||||
|
version: "v1".to_string(),
|
||||||
|
kind: "Certificate".to_string(),
|
||||||
|
};
|
||||||
let client = self.k8s_client().await.unwrap();
|
let client = self.k8s_client().await.unwrap();
|
||||||
|
let certificate_data = client
|
||||||
|
.get_resource_json_value(&cert_name, Some(&namespace), &certificate_gvk)
|
||||||
|
.await?
|
||||||
|
.data;
|
||||||
|
|
||||||
|
trace!("Certificate Data {:#?}", certificate_data);
|
||||||
|
|
||||||
|
let secret_name = certificate_data
|
||||||
|
.get("spec")
|
||||||
|
.ok_or_else(|| PreparationError {
|
||||||
|
msg: format!("failed to get spec from Certificate {}", cert_name),
|
||||||
|
})?
|
||||||
|
.get("secretName")
|
||||||
|
.ok_or_else(|| PreparationError {
|
||||||
|
msg: format!("failed to get secretName from Certificate {}", cert_name),
|
||||||
|
})?;
|
||||||
|
|
||||||
|
trace!("Secret Name {:#?}", secret_name);
|
||||||
|
|
||||||
|
let secret_name: String = serde_json::from_value(secret_name.clone())
|
||||||
|
.map_err(|e| PreparationError { msg: e.to_string() })?;
|
||||||
|
|
||||||
let secret = client
|
let secret = client
|
||||||
.get_secret_json_value(&cert_name, Some(&namespace))
|
.get_secret_json_value(&secret_name, Some(&namespace))
|
||||||
.await?
|
.await?
|
||||||
.data;
|
.data;
|
||||||
|
|
||||||
let ca_cert = secret
|
let ca_cert = secret
|
||||||
.get("data")
|
.get("data")
|
||||||
.ok_or_else(|| PreparationError {
|
.ok_or_else(|| PreparationError {
|
||||||
msg: format!("failed to get data from secret {}", cert_name),
|
msg: format!("failed to get data from secret {}", secret_name),
|
||||||
})?
|
})?
|
||||||
.get("ca.crt")
|
.get("ca.crt")
|
||||||
.ok_or_else(|| PreparationError {
|
.ok_or_else(|| PreparationError {
|
||||||
msg: format!("failed to get ca.crt from secret {}", cert_name),
|
msg: format!("failed to get ca.crt from secret {}", secret_name),
|
||||||
})?;
|
})?;
|
||||||
|
|
||||||
trace!("{:#?}", ca_cert.clone());
|
trace!("ca.crt {:#?}", ca_cert.clone());
|
||||||
|
|
||||||
let cert: String = serde_json::from_value(ca_cert.clone())
|
let ca_cert: String = serde_json::from_value(ca_cert.clone())
|
||||||
.map_err(|e| PreparationError { msg: e.to_string() })?;
|
.map_err(|e| PreparationError { msg: e.to_string() })?;
|
||||||
|
|
||||||
trace!("{:#?}", cert.clone());
|
trace!("ca.crt string {:#?}", ca_cert.clone());
|
||||||
Ok(cert)
|
Ok(ca_cert)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user