diff options
author | Martin Polden <mpolden@mpolden.no> | 2022-10-26 13:30:50 +0200 |
---|---|---|
committer | Martin Polden <mpolden@mpolden.no> | 2022-10-26 13:56:11 +0200 |
commit | a7d5de098525fe51daefd0342763d79075719a97 (patch) | |
tree | 7e3cb8ad90a920631d3b8400cbf6806f31db24ec | |
parent | bcb0d097aecfe498061c05bf9137a45922c7da6e (diff) |
Rename getCloud -> cloud
17 files changed, 36 insertions, 33 deletions
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/ContainerCluster.java b/config-model/src/main/java/com/yahoo/vespa/model/container/ContainerCluster.java index 560703b6b26..f5f25c65cd4 100755 --- a/config-model/src/main/java/com/yahoo/vespa/model/container/ContainerCluster.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/container/ContainerCluster.java @@ -595,7 +595,7 @@ public abstract class ContainerCluster<CONTAINER extends Container> builder.system(zone.system().value()); builder.environment(zone.environment().value()); builder.region(zone.region().value()); - builder.cloud(zone.getCloud().name().value()); + builder.cloud(zone.cloud().name().value()); } @Override 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 99b8e4447ff..ef46122758a 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 @@ -52,8 +52,13 @@ public class Zone { this.region = region; } + // TODO(mpolden): For compatibility with older config models. Remove when versions < 8.76 are gone + public Cloud getCloud() { + return cloud(); + } + /** Returns the current cloud */ - public Cloud getCloud() { return cloud; } + public Cloud cloud() { return cloud; } /** Returns the current system */ public SystemName system() { return systemName; } diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/NodeRepository.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/NodeRepository.java index 21bd0ff99dd..ff156751f5e 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/NodeRepository.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/NodeRepository.java @@ -87,7 +87,7 @@ public class NodeRepository extends AbstractComponent { metricsDb, orchestrator, config.useCuratorClientCache(), - zone.environment().isProduction() && !zone.getCloud().dynamicProvisioning() && !zone.system().isCd() ? 1 : 0, + zone.environment().isProduction() && !zone.cloud().dynamicProvisioning() && !zone.system().isCd() ? 1 : 0, config.nodeCacheSize()); } @@ -109,10 +109,10 @@ public class NodeRepository extends AbstractComponent { boolean useCuratorClientCache, int spareCount, long nodeCacheSize) { - if (provisionServiceProvider.getHostProvisioner().isPresent() != zone.getCloud().dynamicProvisioning()) + if (provisionServiceProvider.getHostProvisioner().isPresent() != zone.cloud().dynamicProvisioning()) throw new IllegalArgumentException(String.format( "dynamicProvisioning property must be 1-to-1 with availability of HostProvisioner, was: dynamicProvisioning=%s, hostProvisioner=%s", - zone.getCloud().dynamicProvisioning(), provisionServiceProvider.getHostProvisioner().map(__ -> "present").orElse("empty"))); + zone.cloud().dynamicProvisioning(), provisionServiceProvider.getHostProvisioner().map(__ -> "present").orElse("empty"))); this.flagSource = flagSource; this.db = new CuratorDatabaseClient(flavors, curator, clock, useCuratorClientCache, nodeCacheSize); diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/autoscale/AllocatableClusterResources.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/autoscale/AllocatableClusterResources.java index 4a1545cc66c..5ed07153f32 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/autoscale/AllocatableClusterResources.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/autoscale/AllocatableClusterResources.java @@ -164,7 +164,7 @@ public class AllocatableClusterResources { NodeRepository nodeRepository) { var systemLimits = new NodeResourceLimits(nodeRepository); boolean exclusive = clusterSpec.isExclusive(); - if ( !clusterSpec.isExclusive() && !nodeRepository.zone().getCloud().dynamicProvisioning()) { + if ( !clusterSpec.isExclusive() && !nodeRepository.zone().cloud().dynamicProvisioning()) { // We decide resources: Add overhead to what we'll request (advertised) to make sure real becomes (at least) cappedNodeResources var advertisedResources = nodeRepository.resourcesCalculator().realToRequest(wantedResources.nodeResources(), exclusive); advertisedResources = systemLimits.enlargeToLegal(advertisedResources, clusterSpec.type(), exclusive); // Ask for something legal diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/DirtyExpirer.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/DirtyExpirer.java index 08898c47129..c4703102f47 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/DirtyExpirer.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/DirtyExpirer.java @@ -28,7 +28,7 @@ public class DirtyExpirer extends Expirer { DirtyExpirer(NodeRepository nodeRepository, Duration dirtyTimeout, Metric metric) { super(Node.State.dirty, History.Event.Type.deallocated, nodeRepository, dirtyTimeout, metric); // Do not keep allocation in dynamically provisioned zones so that the hosts can be deprovisioned - this.keepAllocationOnExpiry = ! nodeRepository.zone().getCloud().dynamicProvisioning(); + this.keepAllocationOnExpiry = ! nodeRepository.zone().cloud().dynamicProvisioning(); } @Override diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/HostRetirer.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/HostRetirer.java index aa3a82d52c9..10097e76677 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/HostRetirer.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/HostRetirer.java @@ -37,7 +37,7 @@ public class HostRetirer extends NodeRepositoryMaintainer { @Override protected double maintain() { - if (!nodeRepository().zone().getCloud().dynamicProvisioning()) return 1.0; + if (!nodeRepository().zone().cloud().dynamicProvisioning()) return 1.0; NodeList candidates = nodeRepository().nodes().list() .parents() diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/NodeRepositoryMaintenance.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/NodeRepositoryMaintenance.java index fbdc8a43c6a..7c748b60527 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/NodeRepositoryMaintenance.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/NodeRepositoryMaintenance.java @@ -137,7 +137,7 @@ public class NodeRepositoryMaintenance extends AbstractComponent { // Vespa upgrade frequency is higher in CD so (de)activate OS upgrades more frequently as well osUpgradeActivatorInterval = zone.system().isCd() ? Duration.ofSeconds(30) : Duration.ofMinutes(5); periodicRedeployInterval = Duration.ofMinutes(60); - provisionedExpiry = zone.getCloud().dynamicProvisioning() ? Duration.ofMinutes(40) : Duration.ofHours(4); + provisionedExpiry = zone.cloud().dynamicProvisioning() ? Duration.ofMinutes(40) : Duration.ofHours(4); rebalancerInterval = Duration.ofMinutes(120); redeployMaintainerInterval = Duration.ofMinutes(1); // Need to be long enough for deployment to be finished for all config model versions diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/Rebalancer.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/Rebalancer.java index 3dd0b7d45a5..8f8a332c86a 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/Rebalancer.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/Rebalancer.java @@ -37,7 +37,7 @@ public class Rebalancer extends NodeMover<Rebalancer.Move> { protected double maintain() { if ( ! nodeRepository().nodes().isWorking()) return 0.0; - if (nodeRepository().zone().getCloud().dynamicProvisioning()) return 1.0; // Rebalancing not necessary + if (nodeRepository().zone().cloud().dynamicProvisioning()) return 1.0; // Rebalancing not necessary if (nodeRepository().zone().environment().isTest()) return 1.0; // Short lived deployments; no need to rebalance if (nodeRepository().zone().system().isCd()) return 1.0; // CD tests assert on # of nodes, avoid rebalnacing as it make tests unstable diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/SpareCapacityMaintainer.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/SpareCapacityMaintainer.java index 541194af36f..d5b0c3baf19 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/SpareCapacityMaintainer.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/SpareCapacityMaintainer.java @@ -71,7 +71,7 @@ public class SpareCapacityMaintainer extends NodeRepositoryMaintainer { if ( ! nodeRepository().nodes().isWorking()) return 0.0; // Don't need to maintain spare capacity in dynamically provisioned zones; can provision more on demand. - if (nodeRepository().zone().getCloud().dynamicProvisioning()) return 1.0; + if (nodeRepository().zone().cloud().dynamicProvisioning()) return 1.0; NodeList allNodes = nodeRepository().nodes().list(); CapacityChecker capacityChecker = new CapacityChecker(allNodes); diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/node/Nodes.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/node/Nodes.java index ec3e2539170..016ca8232a2 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/node/Nodes.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/node/Nodes.java @@ -510,7 +510,7 @@ public class Nodes { db.removeNodes(removed, transaction); } else { removed = removeChildren(node, force, transaction); - if (zone.getCloud().dynamicProvisioning()) { + if (zone.cloud().dynamicProvisioning()) { db.removeNodes(List.of(node), transaction); } else { move(node.hostname(), Node.State.deprovisioned, Agent.system, false, Optional.empty(), transaction); @@ -580,7 +580,7 @@ public class Nodes { * - Node is in parked or failed state */ private void requireBreakfixable(Node node) { - if (zone.getCloud().dynamicProvisioning()) { + if (zone.cloud().dynamicProvisioning()) { illegal("Can not breakfix in zone: " + zone); } @@ -736,7 +736,7 @@ public class Nodes { } public boolean canAllocateTenantNodeTo(Node host) { - return canAllocateTenantNodeTo(host, zone.getCloud().dynamicProvisioning()); + return canAllocateTenantNodeTo(host, zone.cloud().dynamicProvisioning()); } public boolean canAllocateTenantNodeTo(Node host, boolean dynamicProvisioning) { diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/os/OsVersions.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/os/OsVersions.java index 91219ed0ce2..a949863b900 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/os/OsVersions.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/os/OsVersions.java @@ -45,7 +45,7 @@ public class OsVersions { private final Cloud cloud; public OsVersions(NodeRepository nodeRepository) { - this(nodeRepository, nodeRepository.zone().getCloud(), MAX_DELEGATED_UPGRADES); + this(nodeRepository, nodeRepository.zone().cloud(), MAX_DELEGATED_UPGRADES); } OsVersions(NodeRepository nodeRepository, Cloud cloud, int maxDelegatedUpgrades) { diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/CapacityPolicies.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/CapacityPolicies.java index b98540c6310..33c3ab483f3 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/CapacityPolicies.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/CapacityPolicies.java @@ -70,7 +70,7 @@ public class CapacityPolicies { if (target.isUnspecified()) return target; // Cannot be modified // Dev does not cap the cpu or network of containers since usage is spotty: Allocate just a small amount exclusively - if (zone.environment() == Environment.dev && !zone.getCloud().dynamicProvisioning()) + if (zone.environment() == Environment.dev && !zone.cloud().dynamicProvisioning()) target = target.withVcpu(0.1).withBandwidthGbps(0.1); // Allow slow storage in zones which are not performance sensitive @@ -97,14 +97,14 @@ public class CapacityPolicies { if (clusterSpec.type() == ClusterSpec.Type.content) { // TODO: Simplify when no application is on an older version than 8.75 - return zone.getCloud().dynamicProvisioning() + return zone.cloud().dynamicProvisioning() ? versioned(clusterSpec, Map.of(new Version(0), new NodeResources(2.0, 8, 50, 0.3), new Version(8, 75), new NodeResources(2, 16, 300, 0.3))) : versioned(clusterSpec, Map.of(new Version(0), new NodeResources(1.5, 8, 50, 0.3), new Version(8, 75), new NodeResources(2, 16, 300, 0.3))); } else { - return zone.getCloud().dynamicProvisioning() + return zone.cloud().dynamicProvisioning() ? versioned(clusterSpec, Map.of(new Version(0), new NodeResources(2.0, 8, 50, 0.3))) : versioned(clusterSpec, Map.of(new Version(0), new NodeResources(1.5, 8, 50, 0.3))); } @@ -125,7 +125,7 @@ public class CapacityPolicies { /** Returns whether an exclusive host is required for given cluster type and exclusivity requirement */ private boolean requiresExclusiveHost(ClusterSpec.Type type, boolean exclusive) { - return zone.getCloud().dynamicProvisioning() && (exclusive || !sharedHosts.value().isEnabled(type.name())); + return zone.cloud().dynamicProvisioning() && (exclusive || !sharedHosts.value().isEnabled(type.name())); } /** Returns the resources for the newest version not newer than that requested in the cluster spec. */ @@ -137,14 +137,14 @@ public class CapacityPolicies { // The lowest amount resources that can be exclusive allocated (i.e. a matching host flavor for this exists) private NodeResources smallestExclusiveResources() { - return (zone.getCloud().name().equals(CloudName.GCP)) + return (zone.cloud().name().equals(CloudName.GCP)) ? new NodeResources(1, 4, 50, 0.3) : new NodeResources(0.5, 4, 50, 0.3); } // The lowest amount resources that can be shared (i.e. a matching host flavor for this exists) private NodeResources smallestSharedResources() { - return (zone.getCloud().name().equals(CloudName.GCP)) + return (zone.cloud().name().equals(CloudName.GCP)) ? new NodeResources(1, 4, 50, 0.3) : new NodeResources(0.5, 2, 50, 0.3); } diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/GroupPreparer.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/GroupPreparer.java index 2aa9ec7bd54..a8fb0a5e4c2 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/GroupPreparer.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/GroupPreparer.java @@ -159,7 +159,7 @@ public class GroupPreparer { cluster, requestedNodes, wantedGroups, - nodeRepository.zone().getCloud().dynamicProvisioning(), + nodeRepository.zone().cloud().dynamicProvisioning(), nodeRepository.nameResolver(), nodeRepository.nodes(), nodeRepository.resourcesCalculator(), @@ -169,7 +169,7 @@ public class GroupPreparer { } private boolean canProvisionDynamically(NodeType hostType) { - return nodeRepository.zone().getCloud().dynamicProvisioning() && + return nodeRepository.zone().cloud().dynamicProvisioning() && (hostType == NodeType.host || hostType.isConfigServerHostLike()); } diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/NodeAllocation.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/NodeAllocation.java index 9557354725b..2e700268df3 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/NodeAllocation.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/NodeAllocation.java @@ -192,7 +192,7 @@ class NodeAllocation { if (candidate.parentHostname().isEmpty()) return false; // In dynamic provisioned zones, exclusivity is violated if... - if (nodeRepository.zone().getCloud().dynamicProvisioning()) { + if (nodeRepository.zone().cloud().dynamicProvisioning()) { // If either the parent is dedicated to a cluster type different from this cluster return ! candidate.parent.flatMap(Node::exclusiveToClusterType).map(cluster.type()::equals).orElse(true) || // or this cluster is requiring exclusivity, but the host is exclusive to a different owner diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/NodeRepositoryProvisioner.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/NodeRepositoryProvisioner.java index 78da8b4ead8..37d3bab11db 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/NodeRepositoryProvisioner.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/NodeRepositoryProvisioner.java @@ -104,7 +104,7 @@ public class NodeRepositoryProvisioner implements Provisioner { groups = target.groups(); resources = getNodeResources(cluster, target.nodeResources(), application, exclusive); nodeSpec = NodeSpec.from(target.nodes(), resources, exclusive, actual.canFail(), - requested.cloudAccount().or(() -> nodeRepository.zone().getCloud().account())); + requested.cloudAccount().or(() -> nodeRepository.zone().cloud().account())); } else { groups = 1; // type request with multiple groups is not supported @@ -260,7 +260,7 @@ public class NodeRepositoryProvisioner implements Provisioner { private IllegalArgumentException newNoAllocationPossible(ClusterSpec spec, Limits limits) { StringBuilder message = new StringBuilder("No allocation possible within ").append(limits); - boolean exclusiveHosts = spec.isExclusive() || nodeRepository.zone().getCloud().dynamicProvisioning(); + boolean exclusiveHosts = spec.isExclusive() || nodeRepository.zone().cloud().dynamicProvisioning(); if (exclusiveHosts) message.append(". Nearest allowed node resources: ").append(findNearestNodeResources(limits)); diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/NodeResourceLimits.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/NodeResourceLimits.java index 310f921367e..bff963c3fec 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/NodeResourceLimits.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/NodeResourceLimits.java @@ -5,9 +5,7 @@ import com.yahoo.config.provision.ClusterSpec; import com.yahoo.config.provision.Environment; import com.yahoo.config.provision.NodeResources; import com.yahoo.config.provision.NodeType; -import com.yahoo.config.provision.SystemName; import com.yahoo.config.provision.Zone; -import com.yahoo.vespa.hosted.provision.Node; import com.yahoo.vespa.hosted.provision.NodeRepository; import java.util.Locale; @@ -64,7 +62,7 @@ public class NodeResourceLimits { } private double minAdvertisedVcpu(ClusterSpec.Type clusterType) { - if (zone().environment() == Environment.dev && !zone().getCloud().dynamicProvisioning()) return 0.1; + if (zone().environment() == Environment.dev && !zone().cloud().dynamicProvisioning()) return 0.1; if (clusterType.isContent() && zone().environment().isProduction()) return 1.0; if (clusterType == ClusterSpec.Type.admin) return 0.1; return 0.5; @@ -81,7 +79,7 @@ public class NodeResourceLimits { // Note: Assumes node type 'host' private long reservedDiskSpaceGb(NodeResources.StorageType storageType, boolean exclusive) { - if (storageType == NodeResources.StorageType.local && zone().getCloud().dynamicProvisioning()) + if (storageType == NodeResources.StorageType.local && zone().cloud().dynamicProvisioning()) return nodeRepository.resourcesCalculator().reservedDiskSpaceInBase2Gb(NodeType.host, ! exclusive); else return 4; diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/autoscale/AutoscalingTester.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/autoscale/AutoscalingTester.java index e21c57b3ef5..3d363e8a96b 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/autoscale/AutoscalingTester.java +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/autoscale/AutoscalingTester.java @@ -57,7 +57,7 @@ class AutoscalingTester { provisioningTester = new ProvisioningTester.Builder().zone(zone) .flavors(flavors) .resourcesCalculator(resourcesCalculator) - .hostProvisioner(zone.getCloud().dynamicProvisioning() ? new MockHostProvisioner(flavors) : null) + .hostProvisioner(zone.cloud().dynamicProvisioning() ? new MockHostProvisioner(flavors) : null) .build(); hostResourcesCalculator = resourcesCalculator; @@ -217,7 +217,7 @@ class AutoscalingTester { @Override public NodeResources realResourcesOf(Nodelike node, NodeRepository nodeRepository) { - if (zone.getCloud().dynamicProvisioning()) + if (zone.cloud().dynamicProvisioning()) return node.resources().withMemoryGb(node.resources().memoryGb() - memoryTax); else return node.resources(); @@ -225,7 +225,7 @@ class AutoscalingTester { @Override public NodeResources advertisedResourcesOf(Flavor flavor) { - if (zone.getCloud().dynamicProvisioning()) + if (zone.cloud().dynamicProvisioning()) return flavor.resources().withMemoryGb(flavor.resources().memoryGb() + memoryTax); else return flavor.resources(); |