diff options
author | Valerij Fredriksen <valerijf@yahooinc.com> | 2023-05-08 13:23:16 +0200 |
---|---|---|
committer | Valerij Fredriksen <valerijf@yahooinc.com> | 2023-05-08 13:23:16 +0200 |
commit | b6f2dbc0755e35ce793457b88a02ccece45c73f5 (patch) | |
tree | 2768f6f3c92010653ca388a11027215de27d00d8 /node-repository | |
parent | e25ab7b45c471593cc97a2aa7107b048881cfee1 (diff) |
Always set cloudAccount for load-balancers in GCP
Diffstat (limited to 'node-repository')
2 files changed, 11 insertions, 1 deletions
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/lb/LoadBalancerInstance.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/lb/LoadBalancerInstance.java index e228d31384c..5284511af47 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/lb/LoadBalancerInstance.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/lb/LoadBalancerInstance.java @@ -119,6 +119,10 @@ public class LoadBalancerInstance { cloudAccount); } + public LoadBalancerInstance with(CloudAccount cloudAccount) { + return new LoadBalancerInstance(hostname, ipAddress, dnsZone, ports, networks, reals, settings, serviceIds, cloudAccount); + } + /** Prepends the given service IDs, possibly changing the order of those we have in this. */ public LoadBalancerInstance withServiceIds(List<PrivateServiceId> serviceIds) { List<PrivateServiceId> ids = new ArrayList<>(serviceIds); diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/LoadBalancerProvisioner.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/LoadBalancerProvisioner.java index b3198a72d1b..b6b07ddf671 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/LoadBalancerProvisioner.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/LoadBalancerProvisioner.java @@ -69,10 +69,16 @@ public class LoadBalancerProvisioner { this.service = service; this.deactivateRouting = PermanentFlags.DEACTIVATE_ROUTING.bindTo(nodeRepository.flagSource()); // Read and write all load balancers to make sure they are stored in the latest version of the serialization format + + CloudAccount zoneAccount = nodeRepository.zone().cloud().account(); for (var id : db.readLoadBalancerIds()) { try (var lock = db.lock(id.application())) { var loadBalancer = db.readLoadBalancer(id); - loadBalancer.ifPresent(lb -> db.writeLoadBalancer(lb, lb.state())); + loadBalancer.ifPresent(lb -> { + if (!zoneAccount.isUnspecified() && lb.instance().isPresent() && lb.instance().get().cloudAccount().isUnspecified()) + lb = lb.with(Optional.of(lb.instance().get().with(zoneAccount))); + db.writeLoadBalancer(lb, lb.state()); + }); } } } |