]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
rgw: don't enable all zone features by default
authorCasey Bodley <cbodley@redhat.com>
Fri, 7 Jul 2023 17:00:06 +0000 (13:00 -0400)
committerCasey Bodley <cbodley@redhat.com>
Tue, 11 Jul 2023 13:02:39 +0000 (09:02 -0400)
on zonegroup creation, all `supported` features get enabled by default.
however, some features should remain opt-in. add a separate list of
`enabled` features for the subset of features we want enabled by default
on zonegroup creation

Signed-off-by: Casey Bodley <cbodley@redhat.com>
(cherry picked from commit cdb1be836cc1b8c2e8f178bc00bad24d2b8413bf)

Conflicts:
src/rgw/driver/rados/rgw_zone.cc no create_default_zonegroup()

doc/radosgw/multisite.rst
src/rgw/driver/json_config/store.cc
src/rgw/driver/rados/rgw_zone.cc
src/rgw/rgw_admin.cc
src/rgw/rgw_zone_features.h

index f497425fd8bcc07f0163a00cc491418f939e1710..46153a02b94bdb6adb5b2b9da716bf81eaafac75 100644 (file)
@@ -1574,11 +1574,11 @@ On creation of new zones and zonegroups, all known features are supported/enable
 Supported Features
 ------------------
 
-+---------------------------+---------+
-| Feature                   | Release |
-+===========================+=========+
-| :ref:`feature_resharding` | Reef    |
-+---------------------------+---------+
++---------------------------+---------+----------+
+| Feature                   | Release | Default  |
++===========================+=========+==========+
+| :ref:`feature_resharding` | Reef    | Enabled  |
++---------------------------+---------+----------+
 
 .. _feature_resharding:
 
index 330aa344dc522b98678598e0116b90a6e7408d51..cf5adda2512c20fd5b87ac2855b58fa89113b255 100644 (file)
@@ -149,7 +149,8 @@ void sanity_check_config(const DoutPrefixProvider* dpp, DecodedConfig& config)
       throw std::system_error(-r, std::system_category());
     }
 
-    config.zonegroup.enabled_features = std::move(enable_features);
+    config.zonegroup.enabled_features.insert(rgw::zone_features::enabled.begin(),
+                                             rgw::zone_features::enabled.end());
   }
 
   // insert the default placement target if it doesn't exist
index 339d337b6d440d5f4bdaf19501318c9edfbafdf4..ed09f24f6c24b1c9e25d070edd0a5fa23a1ee732 100644 (file)
@@ -81,10 +81,12 @@ int RGWZoneGroup::create_default(const DoutPrefixProvider *dpp, optional_yield y
   default_zone.id = zone_params.get_id();
   master_zone = default_zone.id;
 
-  // enable all supported features
-  enabled_features.insert(rgw::zone_features::supported.begin(),
-                          rgw::zone_features::supported.end());
-  default_zone.supported_features = enabled_features;
+  // initialize supported zone features
+  default_zone.supported_features.insert(rgw::zone_features::supported.begin(),
+                                         rgw::zone_features::supported.end());
+  // enable default zonegroup features
+  enabled_features.insert(rgw::zone_features::enabled.begin(),
+                          rgw::zone_features::enabled.end());
   
   r = create(dpp, y);
   if (r < 0 && r != -EEXIST) {
index 7ce0beb96226145d40182367e8a2ae85c5559a4a..9dbf290f1600e4a0fa0457aba5e6992244735185 100644 (file)
@@ -5150,9 +5150,9 @@ int main(int argc, const char **argv)
         zonegroup.api_name = (api_name.empty() ? zonegroup_name : api_name);
 
         zonegroup.enabled_features = enable_features;
-        if (zonegroup.enabled_features.empty()) { // enable all features by default
-          zonegroup.enabled_features.insert(rgw::zone_features::supported.begin(),
-                                            rgw::zone_features::supported.end());
+        if (zonegroup.enabled_features.empty()) { // enable features by default
+          zonegroup.enabled_features.insert(rgw::zone_features::enabled.begin(),
+                                            rgw::zone_features::enabled.end());
         }
         for (const auto& feature : disable_features) {
           auto i = zonegroup.enabled_features.find(feature);
index b787ffc5a6bfa63a692e1ef6077a13f26cdda546..7e47f8cf4a749d261bc09976cef5ef5ad5b54f25 100644 (file)
@@ -29,6 +29,11 @@ inline constexpr bool supports(std::string_view feature) {
   return false;
 }
 
+// static list of features enabled by default on new zonegroups
+inline constexpr std::initializer_list<std::string_view> enabled = {
+  resharding,
+};
+
 
 // enable string_view overloads for find() contains() etc
 struct feature_less : std::less<std::string_view> {