diff options
10 files changed, 28 insertions, 46 deletions
diff --git a/config-provisioning/src/main/java/com/yahoo/config/provision/Cloud.java b/config-provisioning/src/main/java/com/yahoo/config/provision/Cloud.java index 35e3a2bf5e2..4498d8de4c7 100644 --- a/config-provisioning/src/main/java/com/yahoo/config/provision/Cloud.java +++ b/config-provisioning/src/main/java/com/yahoo/config/provision/Cloud.java @@ -13,13 +13,11 @@ public class Cloud { private final CloudName name; private final boolean dynamicProvisioning; - private final boolean reprovisionToUpgradeOs; private final boolean requireAccessControl; - private Cloud(CloudName name, boolean dynamicProvisioning, boolean reprovisionToUpgradeOs, boolean requireAccessControl) { + private Cloud(CloudName name, boolean dynamicProvisioning, boolean requireAccessControl) { this.name = Objects.requireNonNull(name); this.dynamicProvisioning = dynamicProvisioning; - this.reprovisionToUpgradeOs = reprovisionToUpgradeOs; this.requireAccessControl = requireAccessControl; } @@ -33,12 +31,6 @@ public class Cloud { return dynamicProvisioning; } - /** Returns whether upgrading OS on hosts in this requires the host to be reprovisioned */ - // TODO(mpolden): Unused, remove this - public boolean reprovisionToUpgradeOs() { - return reprovisionToUpgradeOs; - } - /** Returns whether to require access control for all clusters in this */ public boolean requireAccessControl() { return requireAccessControl; @@ -57,7 +49,6 @@ public class Cloud { private CloudName name = CloudName.DEFAULT; private boolean dynamicProvisioning = false; - private boolean reprovisionToUpgradeOs = false; private boolean requireAccessControl = false; public Builder() {} @@ -72,18 +63,13 @@ public class Cloud { return this; } - public Builder reprovisionToUpgradeOs(boolean reprovisionToUpgradeOs) { - this.reprovisionToUpgradeOs = reprovisionToUpgradeOs; - return this; - } - public Builder requireAccessControl(boolean requireAccessControl) { this.requireAccessControl = requireAccessControl; return this; } public Cloud build() { - return new Cloud(name, dynamicProvisioning, reprovisionToUpgradeOs, requireAccessControl); + return new Cloud(name, dynamicProvisioning, requireAccessControl); } } diff --git a/config-provisioning/src/main/java/com/yahoo/config/provision/Zone.java b/config-provisioning/src/main/java/com/yahoo/config/provision/Zone.java index 1f1b3dc5699..1f8ba3ce93f 100644 --- a/config-provisioning/src/main/java/com/yahoo/config/provision/Zone.java +++ b/config-provisioning/src/main/java/com/yahoo/config/provision/Zone.java @@ -26,7 +26,6 @@ public class Zone { this(Cloud.builder() .name(CloudName.from(configserverConfig.cloud())) .dynamicProvisioning(cloudConfig.dynamicProvisioning()) - .reprovisionToUpgradeOs(cloudConfig.reprovisionToUpgradeOs()) .requireAccessControl(cloudConfig.requireAccessControl()) .build(), SystemName.from(configserverConfig.system()), diff --git a/config-provisioning/src/main/java/com/yahoo/config/provision/zone/ZoneList.java b/config-provisioning/src/main/java/com/yahoo/config/provision/zone/ZoneList.java index 0a6bdd3b6b8..aa295c47af0 100644 --- a/config-provisioning/src/main/java/com/yahoo/config/provision/zone/ZoneList.java +++ b/config-provisioning/src/main/java/com/yahoo/config/provision/zone/ZoneList.java @@ -35,8 +35,8 @@ public interface ZoneList extends ZoneFilter { /** Only the given zones — combine with not() for best effect! */ ZoneList among(ZoneId... zones); - /** Zones where hosts must be reprovisioned to upgrade their OS */ - ZoneList reprovisionToUpgradeOs(); + /** Zones where hosts are dynamically provisioned */ + ZoneList dynamicallyProvisioned(); /** Zones where traffic is routed using given method */ ZoneList routingMethod(RoutingMethod method); diff --git a/config-provisioning/src/main/resources/configdefinitions/config.provisioning.cloud.def b/config-provisioning/src/main/resources/configdefinitions/config.provisioning.cloud.def index 8673789db26..a5ad0dc9a7c 100644 --- a/config-provisioning/src/main/resources/configdefinitions/config.provisioning.cloud.def +++ b/config-provisioning/src/main/resources/configdefinitions/config.provisioning.cloud.def @@ -9,8 +9,5 @@ dynamicProvisioning bool default=false # Can nodes belonging to different applications be placed on the same host? allowHostSharing bool default=true -# Do we need to reprovision a host to upgrade its operating system? -reprovisionToUpgradeOs bool default=false - # Should clusters in this cloud always require access control for both read and write operations? requireAccessControl bool default=false diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/OsUpgradeScheduler.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/OsUpgradeScheduler.java index 702e7ac95f1..16f62c37ffa 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/OsUpgradeScheduler.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/OsUpgradeScheduler.java @@ -61,8 +61,8 @@ public class OsUpgradeScheduler extends ControllerMaintainer { } private Release releaseIn(CloudName cloud) { - boolean useTaggedRelease = controller().zoneRegistry().zones().all().reprovisionToUpgradeOs().in(cloud) - .zones().isEmpty(); + boolean useTaggedRelease = controller().zoneRegistry().zones().all().dynamicallyProvisioned().in(cloud) + .zones().isEmpty(); if (useTaggedRelease) { return new TaggedRelease(controller().system(), controller().serviceRegistry().artifactRepository()); } diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/integration/ZoneFilterMock.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/integration/ZoneFilterMock.java index b27c206e215..c2882da67d6 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/integration/ZoneFilterMock.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/integration/ZoneFilterMock.java @@ -26,23 +26,23 @@ public class ZoneFilterMock implements ZoneList { private final List<ZoneApi> zones; private final Map<ZoneApi, RoutingMethod> zoneRoutingMethods; - private final Set<ZoneApi> reprovisionToUpgradeOs; + private final Set<ZoneApi> dynamicallyProvisioned; private final boolean negate; - private ZoneFilterMock(List<ZoneApi> zones, Map<ZoneApi, RoutingMethod> zoneRoutingMethods, Set<ZoneApi> reprovisionToUpgradeOs, boolean negate) { + private ZoneFilterMock(List<ZoneApi> zones, Map<ZoneApi, RoutingMethod> zoneRoutingMethods, Set<ZoneApi> dynamicallyProvisioned, boolean negate) { this.zones = zones; this.zoneRoutingMethods = zoneRoutingMethods; - this.reprovisionToUpgradeOs = reprovisionToUpgradeOs; + this.dynamicallyProvisioned = dynamicallyProvisioned; this.negate = negate; } - public static ZoneFilter from(Collection<? extends ZoneApi> zones, Map<ZoneApi, RoutingMethod> routingMethods, Set<ZoneApi> reprovisionToUpgradeOs) { - return new ZoneFilterMock(List.copyOf(zones), Map.copyOf(routingMethods), reprovisionToUpgradeOs, false); + public static ZoneFilter from(Collection<? extends ZoneApi> zones, Map<ZoneApi, RoutingMethod> routingMethods, Set<ZoneApi> dynamicallyProvisioned) { + return new ZoneFilterMock(List.copyOf(zones), Map.copyOf(routingMethods), dynamicallyProvisioned, false); } @Override public ZoneList not() { - return new ZoneFilterMock(zones, zoneRoutingMethods, reprovisionToUpgradeOs, ! negate); + return new ZoneFilterMock(zones, zoneRoutingMethods, dynamicallyProvisioned, ! negate); } @Override @@ -71,8 +71,8 @@ public class ZoneFilterMock implements ZoneList { } @Override - public ZoneList reprovisionToUpgradeOs() { - return filter(reprovisionToUpgradeOs::contains); + public ZoneList dynamicallyProvisioned() { + return filter(dynamicallyProvisioned::contains); } @Override @@ -107,7 +107,7 @@ public class ZoneFilterMock implements ZoneList { condition.negate().test(zone) : condition.test(zone)) .collect(Collectors.toList()), - zoneRoutingMethods, reprovisionToUpgradeOs, false); + zoneRoutingMethods, dynamicallyProvisioned, false); } } diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/integration/ZoneRegistryMock.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/integration/ZoneRegistryMock.java index 7f40172db2d..0b520328cb2 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/integration/ZoneRegistryMock.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/integration/ZoneRegistryMock.java @@ -46,7 +46,7 @@ public class ZoneRegistryMock extends AbstractComponent implements ZoneRegistry private final Map<CloudName, UpgradePolicy> osUpgradePolicies = new HashMap<>(); private final Map<ZoneApi, RoutingMethod> zoneRoutingMethods = new HashMap<>(); private final Map<CloudAccount, Set<ZoneId>> cloudAccountZones = new HashMap<>(); - private final Set<ZoneApi> reprovisionToUpgradeOs = new HashSet<>(); + private final Set<ZoneApi> dynamicallyProvisioned = new HashSet<>(); private final SystemName system; // Don't even think about making it non-final! ƪ(`▿▿▿▿´ƪ) private List<? extends ZoneApi> zones; @@ -136,12 +136,12 @@ public class ZoneRegistryMock extends AbstractComponent implements ZoneRegistry return this; } - public ZoneRegistryMock reprovisionToUpgradeOsIn(ZoneApi... zones) { - return reprovisionToUpgradeOsIn(List.of(zones)); + public ZoneRegistryMock dynamicProvisioningIn(ZoneApi... zones) { + return dynamicProvisioningIn(List.of(zones)); } - public ZoneRegistryMock reprovisionToUpgradeOsIn(List<ZoneApi> zones) { - this.reprovisionToUpgradeOs.addAll(zones); + public ZoneRegistryMock dynamicProvisioningIn(List<ZoneApi> zones) { + this.dynamicallyProvisioned.addAll(zones); return this; } @@ -162,7 +162,7 @@ public class ZoneRegistryMock extends AbstractComponent implements ZoneRegistry @Override public ZoneFilter zones() { - return ZoneFilterMock.from(zones, zoneRoutingMethods, reprovisionToUpgradeOs); + return ZoneFilterMock.from(zones, zoneRoutingMethods, dynamicallyProvisioned); } @Override @@ -170,7 +170,7 @@ public class ZoneRegistryMock extends AbstractComponent implements ZoneRegistry var fullZones = new ArrayList<ZoneApi>(1 + zones.size()); fullZones.add(systemAsZone()); fullZones.addAll(zones); - return ZoneFilterMock.from(fullZones, zoneRoutingMethods, reprovisionToUpgradeOs); + return ZoneFilterMock.from(fullZones, zoneRoutingMethods, dynamicallyProvisioned); } private ZoneApiMock systemAsZone() { diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/OsUpgradeSchedulerTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/OsUpgradeSchedulerTest.java index d6c49fb38e0..3034b926c62 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/OsUpgradeSchedulerTest.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/OsUpgradeSchedulerTest.java @@ -39,7 +39,7 @@ public class OsUpgradeSchedulerTest { CloudName cloud = CloudName.from("cloud"); ZoneApi zone = zone("prod.us-west-1", cloud); - tester.zoneRegistry().setZones(zone).reprovisionToUpgradeOsIn(zone); + tester.zoneRegistry().setZones(zone).dynamicProvisioningIn(zone); // Initial run does nothing as the cloud does not have a target scheduler.maintain(); @@ -102,7 +102,7 @@ public class OsUpgradeSchedulerTest { tester.clock().setInstant(t0); CloudName cloud = CloudName.from("cloud"); ZoneApi zone = zone("prod.us-west-1", cloud); - tester.zoneRegistry().setZones(zone).reprovisionToUpgradeOsIn(zone); + tester.zoneRegistry().setZones(zone).dynamicProvisioningIn(zone); // Set initial target Version version0 = Version.fromString("7.0.0.20220101"); diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/OsUpgraderTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/OsUpgraderTest.java index 1c8a7ac641d..dbe559de418 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/OsUpgraderTest.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/OsUpgraderTest.java @@ -342,13 +342,13 @@ public class OsUpgraderTest { return tester.configServer().nodeRepository(); } - private OsUpgrader osUpgrader(UpgradePolicy upgradePolicy, CloudName cloud, boolean reprovisionToUpgradeOs) { + private OsUpgrader osUpgrader(UpgradePolicy upgradePolicy, CloudName cloud, boolean dynamicProvisioning) { var zones = upgradePolicy.steps().stream().map(Step::zones).flatMap(Collection::stream).collect(Collectors.toList()); tester.zoneRegistry() .setZones(zones) .setOsUpgradePolicy(cloud, upgradePolicy); - if (reprovisionToUpgradeOs) { - tester.zoneRegistry().reprovisionToUpgradeOsIn(zones); + if (dynamicProvisioning) { + tester.zoneRegistry().dynamicProvisioningIn(zones); } return new OsUpgrader(tester.controller(), Duration.ofDays(1), cloud); } diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/os/OsApiTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/os/OsApiTest.java index 15f0100ade8..64bb6aeca04 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/os/OsApiTest.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/os/OsApiTest.java @@ -59,7 +59,7 @@ public class OsApiTest extends ControllerContainerTest { tester.serviceRegistry().clock().setInstant(Instant.ofEpochMilli(1234)); addUserToHostedOperatorRole(operator); tester.serviceRegistry().zoneRegistry().setZones(zone1, zone2, zone3) - .reprovisionToUpgradeOsIn(zone3) + .dynamicProvisioningIn(zone3) .setOsUpgradePolicy(cloud1, UpgradePolicy.builder().upgrade(zone1).upgrade(zone2).build()) .setOsUpgradePolicy(cloud2, UpgradePolicy.builder().upgrade(zone3).build()); tester.serviceRegistry().artifactRepository().addRelease(new OsRelease(Version.fromString("7.0"), |