@@ -1015,12 +1015,6 @@ def config(self, spec: RGWSpec) -> None: # type: ignore
10151015 # set rgw_realm rgw_zonegroup and rgw_zone, if present
10161016 self .set_realm_zg_zone (spec )
10171017
1018- if spec .generate_cert and not spec .rgw_frontend_ssl_certificate :
1019- # generate a self-signed cert for the rgw service
1020- cert , key = self .mgr .cert_mgr .ssl_certs .generate_root_cert (custom_san_list = spec .zonegroup_hostnames )
1021- spec .rgw_frontend_ssl_certificate = '' .join ([key , cert ])
1022- self .mgr .spec_store .save (spec )
1023-
10241018 if spec .rgw_frontend_ssl_certificate :
10251019 if isinstance (spec .rgw_frontend_ssl_certificate , list ):
10261020 cert_data = '\n ' .join (spec .rgw_frontend_ssl_certificate )
@@ -1068,6 +1062,19 @@ def prepare_create(self, daemon_spec: CephadmDaemonDeploySpec) -> CephadmDaemonD
10681062 # and it matches the spec.
10691063 port = spec .get_port ()
10701064
1065+ if spec .generate_cert :
1066+ cert , key = self .mgr .cert_mgr .generate_cert (
1067+ daemon_spec .host ,
1068+ self .mgr .inventory .get_addr (daemon_spec .host ),
1069+ custom_san_list = spec .zonegroup_hostnames
1070+ )
1071+ pem = '' .join ([key , cert ])
1072+ ret , out , err = self .mgr .check_mon_command ({
1073+ 'prefix' : 'config-key set' ,
1074+ 'key' : f'rgw/cert/{ daemon_spec .name ()} ' ,
1075+ 'val' : pem ,
1076+ })
1077+
10711078 # configure frontend
10721079 args = []
10731080 ftype = spec .rgw_frontend_type or "beast"
@@ -1078,7 +1085,10 @@ def prepare_create(self, daemon_spec: CephadmDaemonDeploySpec) -> CephadmDaemonD
10781085 f"ssl_endpoint={ build_url (host = daemon_spec .ip , port = port ).lstrip ('/' )} " )
10791086 else :
10801087 args .append (f"ssl_port={ port } " )
1081- args .append (f"ssl_certificate=config://rgw/cert/{ spec .service_name ()} " )
1088+ if spec .generate_cert :
1089+ args .append (f"ssl_certificate=config://rgw/cert/{ daemon_spec .name ()} " )
1090+ else :
1091+ args .append (f"ssl_certificate=config://rgw/cert/{ spec .service_name ()} " )
10821092 else :
10831093 if daemon_spec .ip :
10841094 args .append (f"endpoint={ build_url (host = daemon_spec .ip , port = port ).lstrip ('/' )} " )
@@ -1091,7 +1101,10 @@ def prepare_create(self, daemon_spec: CephadmDaemonDeploySpec) -> CephadmDaemonD
10911101 args .append (f"port={ build_url (host = daemon_spec .ip , port = port ).lstrip ('/' )} s" )
10921102 else :
10931103 args .append (f"port={ port } s" ) # note the 's' suffix on port
1094- args .append (f"ssl_certificate=config://rgw/cert/{ spec .service_name ()} " )
1104+ if spec .generate_cert :
1105+ args .append (f"ssl_certificate=config://rgw/cert/{ daemon_spec .name ()} " )
1106+ else :
1107+ args .append (f"ssl_certificate=config://rgw/cert/{ spec .service_name ()} " )
10951108 else :
10961109 if daemon_spec .ip :
10971110 args .append (f"port={ build_url (host = daemon_spec .ip , port = port ).lstrip ('/' )} " )
@@ -1180,6 +1193,10 @@ def post_remove(self, daemon: DaemonDescription, is_failed_deploy: bool) -> None
11801193 'who' : utils .name_to_config_section (daemon .name ()),
11811194 'name' : 'rgw_frontends' ,
11821195 })
1196+ self .mgr .check_mon_command ({
1197+ 'prefix' : 'config-key rm' ,
1198+ 'key' : f'rgw/cert/{ daemon .name ()} ' ,
1199+ })
11831200
11841201 def ok_to_stop (
11851202 self ,
0 commit comments