Skip to content

Commit ec2b341

Browse files
committed
mgr/cephadm: addressing reviewer comments
Signed-off-by: Redouane Kachach <[email protected]>
1 parent f4f0de8 commit ec2b341

File tree

6 files changed

+16
-14
lines changed

6 files changed

+16
-14
lines changed

src/pybind/mgr/cephadm/cert_mgr.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ def is_operationally_valid(self) -> bool:
4242
return self.is_valid and not self.is_close_to_expiration
4343

4444
def get_status_description(self) -> str:
45-
cert_source = 'user-made' if self.user_made else 'self-signed'
45+
cert_source = 'user-made' if self.user_made else 'cephadm-signed'
4646
cert_target = f' ({self.target})' if self.target else ''
4747
cert_details = f"'{self.cert_name}{cert_target}' ({cert_source})"
4848
if not self.is_valid:
@@ -66,7 +66,7 @@ class CertMgr:
6666
It tracks known certificates and private keys, associates them with services, and ensures
6767
their validity. If certificates are close to expiration or invalid, depending on the configuration
6868
(governed by the mgr/cephadm/certificate_automated_rotation_enabled parameter), CertMgr generates
69-
warnings or attempts renewal for self-signed certificates.
69+
warnings or attempts renewal for cephadm-signed certificates.
7070
7171
Additionally, CertMgr provides methods for certificate management, including retrieving, saving,
7272
and removing certificates and keys, as well as reporting certificate health status in case of issues.
@@ -385,8 +385,8 @@ def prepare_certificate(self,
385385
f'error: {cert_info.error_info}')
386386

387387
# Reaching this point means either certificates are not present or they are
388-
# invalid self-signed certificates. Either way, we will just generate new ones.
389-
logger.info(f'Generating cephadm self-signed certificates for {cert_name}/{key_name}')
388+
# invalid cephadm-signed certificates. Either way, we will just generate new ones.
389+
logger.info(f'Generating cephadm-signed certificates for {cert_name}/{key_name}')
390390
cert, pkey = self.generate_cert(host_fqdns, host_ips)
391391
self.mgr.cert_mgr.save_cert(cert_name, cert, host=target_host, service_name=target_service)
392392
self.mgr.cert_mgr.save_key(key_name, pkey, host=target_host, service_name=target_service)
@@ -434,15 +434,15 @@ def get_key(cert_name: str, key_name: str, target: Optional[str]) -> Optional[Pr
434434

435435
def _renew_self_signed_certificate(self, cert_info: CertInfo, cert_obj: Cert) -> bool:
436436
try:
437-
logger.info(f'Renewing self-signed certificate for {cert_info.cert_name}')
437+
logger.info(f'Renewing cephadm-signed certificate for {cert_info.cert_name}')
438438
new_cert, new_key = self.ssl_certs.renew_cert(cert_obj.cert, self.mgr.certificate_duration_days)
439439
service_name, host = self.cert_store.determine_tlsobject_target(cert_info.cert_name, cert_info.target)
440440
self.cert_store.save_tlsobject(cert_info.cert_name, new_cert, service_name=service_name, host=host)
441441
key_name = cert_info.cert_name.replace('_cert', '_key')
442442
self.key_store.save_tlsobject(key_name, new_key, service_name=service_name, host=host)
443443
return True
444444
except SSLConfigException as e:
445-
logger.error(f'Error while trying to renew self-signed certificate for {cert_info.cert_name}: {e}')
445+
logger.error(f'Error while trying to renew cephadm-signed certificate for {cert_info.cert_name}: {e}')
446446
return False
447447

448448
def check_services_certificates(self, fix_issues: bool = False) -> Tuple[List[str], List[CertInfo]]:
@@ -466,7 +466,7 @@ def trigger_auto_fix(cert_info: CertInfo, cert_obj: Cert) -> bool:
466466
if not self.mgr.certificate_automated_rotation_enabled or cert_obj.user_made:
467467
return False
468468

469-
# This is a self-signed certificate, let's try to fix it
469+
# This is a cephadm-signed certificate, let's try to fix it
470470
if not cert_info.is_valid:
471471
# Remove the invalid certificate to force regeneration
472472
service_name, host = self.cert_store.determine_tlsobject_target(cert_info.cert_name, cert_info.target)

src/pybind/mgr/cephadm/module.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@
5555
MgrModule,
5656
HandleCommandResult,
5757
Option,
58+
OptionLevel,
5859
NotifyType,
5960
MonCommandFailed,
6061
)
@@ -412,6 +413,7 @@ class CephadmOrchestrator(orchestrator.Orchestrator, MgrModule,
412413
),
413414
Option(
414415
'certificate_check_debug_mode',
416+
level=OptionLevel.DEV,
415417
type='bool',
416418
default=False,
417419
desc='FOR TESTING ONLY: This flag forces the certificate check instead of waiting for certificate_check_period.',

src/pybind/mgr/cephadm/services/mgmt_gateway.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,7 @@ def generate_config(self, daemon_spec: CephadmDaemonDeploySpec) -> Tuple[Dict[st
162162

163163
return daemon_config, sorted(MgmtGatewayService.get_dependencies(self.mgr))
164164

165-
def pre_remove(self, daemon: DaemonDescription) -> None:
165+
def post_remove(self, daemon: DaemonDescription, is_failed_deploy: bool) -> None:
166166
"""
167167
Called before mgmt-gateway daemon is removed.
168168
"""

src/pybind/mgr/cephadm/services/oauth2_proxy.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ def generate_config(self, daemon_spec: CephadmDaemonDeploySpec) -> Tuple[Dict[st
8989

9090
return daemon_config, []
9191

92-
def pre_remove(self, daemon: DaemonDescription) -> None:
92+
def post_remove(self, daemon: DaemonDescription, is_failed_deploy: bool) -> None:
9393
"""
9494
Called before mgmt-gateway daemon is removed.
9595
"""

src/pybind/mgr/cephadm/tests/test_certmgr.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -715,7 +715,7 @@ def test_non_matching_key(self, _set_store, cephadm_module: CephadmOrchestrator)
715715

716716
@mock.patch("cephadm.module.CephadmOrchestrator.set_store")
717717
def test_certificate_renewal_for_self_signed(self, _set_store, cephadm_module: CephadmOrchestrator):
718-
""" Test that self-signed certificates close to expiration are renewed """
718+
""" Test that cephadm-signed certificates close to expiration are renewed """
719719
cert_mgr = cephadm_module.cert_mgr
720720

721721
# for services with host scope
@@ -758,7 +758,7 @@ def test_health_errors_appending(self, _set_store, cephadm_module: CephadmOrches
758758
'Detected 2 cephadm certificate(s) issues: 1 invalid, 1 expired',
759759
2,
760760
["Certificate 'test_service_1 (target_1)' (user-made) has expired",
761-
"Certificate 'test_service_2 (target_2)' (self-signed) is not valid (error: invalid format)"])
761+
"Certificate 'test_service_2 (target_2)' (cephadm-signed) is not valid (error: invalid format)"])
762762

763763
# Test in case of appending new errors we also report previous ones
764764
problematic_certs = [
@@ -770,8 +770,8 @@ def test_health_errors_appending(self, _set_store, cephadm_module: CephadmOrches
770770
'Detected 3 cephadm certificate(s) issues: 1 invalid, 1 expired, 1 expiring',
771771
3,
772772
["Certificate 'test_service_1 (target_1)' (user-made) has expired",
773-
"Certificate 'test_service_2 (target_2)' (self-signed) is not valid (error: invalid format)",
774-
"Certificate 'test_service_3 (target_3)' (self-signed) is about to expire (remaining days: 0)"])
773+
"Certificate 'test_service_2 (target_2)' (cephadm-signed) is not valid (error: invalid format)",
774+
"Certificate 'test_service_3 (target_3)' (cephadm-signed) is about to expire (remaining days: 0)"])
775775

776776
@mock.patch("cephadm.module.CephadmOrchestrator.set_store")
777777
def test_health_warning_on_bad_certificates(self, _set_store, cephadm_module: CephadmOrchestrator):

src/pybind/mgr/cephadm/tlsobject_store.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,7 @@ def load(self) -> None:
143143
for k, v in self.mgr.get_store_prefix(self.store_prefix).items():
144144
entity = k[len(self.store_prefix):]
145145
if entity not in self.known_entities:
146-
logger.warning(f"TLSObjectStore: Discarding unkown entity '{entity}'")
146+
logger.warning(f"TLSObjectStore: Discarding unknown entity '{entity}'")
147147
continue
148148
entity_targets = json.loads(v)
149149
if entity in self.per_service_name_tlsobjects or entity in self.per_host_tlsobjects:

0 commit comments

Comments
 (0)