diff --git a/src/cli/src/metadata/common.rs b/src/cli/src/metadata/common.rs index 4019ed3ef8..3fe0cbca58 100644 --- a/src/cli/src/metadata/common.rs +++ b/src/cli/src/metadata/common.rs @@ -83,6 +83,20 @@ pub(crate) struct StoreConfig { } impl StoreConfig { + pub fn tls_config(&self) -> Option { + if self.backend_tls_mode != TlsMode::Disable { + Some(TlsOption { + mode: self.backend_tls_mode.clone(), + cert_path: self.backend_tls_cert_path.clone(), + key_path: self.backend_tls_key_path.clone(), + ca_cert_path: self.backend_tls_ca_cert_path.clone(), + watch: self.backend_tls_watch, + }) + } else { + None + } + } + /// Builds a [`KvBackendRef`] from the store configuration. pub async fn build(&self) -> Result { let max_txn_ops = self.max_txn_ops; @@ -92,17 +106,7 @@ impl StoreConfig { } else { let kvbackend = match self.backend { BackendImpl::EtcdStore => { - let tls_config = if self.backend_tls_mode != TlsMode::Disable { - Some(TlsOption { - mode: self.backend_tls_mode.clone(), - cert_path: self.backend_tls_cert_path.clone(), - key_path: self.backend_tls_key_path.clone(), - ca_cert_path: self.backend_tls_ca_cert_path.clone(), - watch: self.backend_tls_watch, - }) - } else { - None - }; + let tls_config = self.tls_config(); let etcd_client = create_etcd_client_with_tls(store_addrs, tls_config.as_ref()) .await .map_err(BoxedError::new)?; @@ -111,7 +115,8 @@ impl StoreConfig { #[cfg(feature = "pg_kvbackend")] BackendImpl::PostgresStore => { let table_name = &self.meta_table_name; - let pool = meta_srv::bootstrap::create_postgres_pool(store_addrs, None) + let tls_config = self.tls_config(); + let pool = meta_srv::bootstrap::create_postgres_pool(store_addrs, tls_config) .await .map_err(BoxedError::new)?; let schema_name = self.meta_schema_name.as_deref(); diff --git a/src/meta-srv/src/bootstrap.rs b/src/meta-srv/src/bootstrap.rs index 3f10a0bcd4..e349a0f61d 100644 --- a/src/meta-srv/src/bootstrap.rs +++ b/src/meta-srv/src/bootstrap.rs @@ -472,6 +472,7 @@ fn build_connection_options(tls_config: Option<&TlsOption>) -> Result