This was setting a field called "rgw_token" in the rgw spec
but this is not a real field in rgw specs. Instead we should
be setting "rgw_realm_token" which is what the field is
actually called.
Setting this nonexistent field causes the spec to be deleted
the first time cephadm needs to convert it from a json string
back into a python object (which happens whenever the module
restarts or the active mgr changes) which then causes all the
rgw daemons attached to the service to be removed
Fixes: https://tracker.ceph.com/issues/66824
Signed-off-by: Adam King <adking@redhat.com>
(cherry picked from commit
95ae364325ddf3acc2ef9bac3e923fe9ca4ef6ba)
realm_token_b = secondary_realm_token.to_json().encode('utf-8')
realm_token_s = base64.b64encode(realm_token_b).decode('utf-8')
rgw_spec.update_endpoints = True
- rgw_spec.rgw_token = realm_token_s
+ rgw_spec.rgw_realm_token = realm_token_s
rgw_spec.rgw_zonegroup = zonegroup.name # master zonegroup is used
self.env.mgr.apply_rgw(rgw_spec)