kubernetes discovery: install ring crypto provider if missing

This commit is contained in:
Alex Auvolat
2026-09-07 19:34:22 +02:00
parent ae29f7f73f
commit c22b7499b8
2 changed files with 14 additions and 4 deletions
+4 -1
View File
@@ -80,7 +80,10 @@ pub struct ConsulDiscovery {
impl ConsulDiscovery {
pub fn new(config: ConsulDiscoveryConfig) -> Result<Self, ConsulError> {
_ = rustls::crypto::ring::default_provider().install_default();
if rustls::crypto::CryptoProvider::get_default().is_none() {
_ = rustls::crypto::ring::default_provider().install_default();
}
let mut builder: reqwest::ClientBuilder = reqwest::Client::builder().use_rustls_tls();
if config.tls_skip_verify {
builder = builder.danger_accept_invalid_certs(true);
+10 -3
View File
@@ -29,8 +29,15 @@ pub struct Node {
port: u16,
}
pub async fn get_client() -> Result<Client, kube::Error> {
if rustls::crypto::CryptoProvider::get_default().is_none() {
_ = rustls::crypto::ring::default_provider().install_default();
}
Client::try_default().await
}
pub async fn create_kubernetes_crd() -> Result<(), kube::Error> {
let client = Client::try_default().await?;
let client = get_client().await?;
let crds: Api<CustomResourceDefinition> = Api::all(client.clone());
let params = PatchParams::apply(&format!("garage.{}", K8S_GROUP));
@@ -45,7 +52,7 @@ pub async fn create_kubernetes_crd() -> Result<(), kube::Error> {
pub async fn get_kubernetes_nodes(
kubernetes_config: &KubernetesDiscoveryConfig,
) -> Result<Vec<(NodeID, SocketAddr)>, kube::Error> {
let client = Client::try_default().await?;
let client = get_client().await?;
let nodes: Api<GarageNode> = Api::namespaced(client.clone(), &kubernetes_config.namespace);
let lp = ListParams::default().labels(&format!(
@@ -98,7 +105,7 @@ pub async fn publish_kubernetes_node(
debug!("Node object to be applied: {:#?}", node);
let client = Client::try_default().await?;
let client = get_client().await?;
let nodes: Api<GarageNode> = Api::namespaced(client.clone(), &kubernetes_config.namespace);
if let Ok(old_node) = nodes.get(&node_pubkey).await {