summaryrefslogtreecommitdiffstats
path: root/config-provisioning
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@gmail.com>2022-11-15 22:01:33 +0100
committerJon Bratseth <bratseth@gmail.com>2022-11-15 22:01:33 +0100
commitc1b8378cd4f717e1fb6d1d0956c5f357f9304254 (patch)
tree89d9df98756fd8d3a24681e6b5d32f4c9fbe92a7 /config-provisioning
parent9a35cc0b67c8d9e5abe0b5b66ed7fc0a67498c07 (diff)
Separate dynamic provisioning and host sharing
Diffstat (limited to 'config-provisioning')
-rw-r--r--config-provisioning/src/main/java/com/yahoo/config/provision/Cloud.java16
-rw-r--r--config-provisioning/src/main/java/com/yahoo/config/provision/Zone.java1
2 files changed, 15 insertions, 2 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 b9f56ab02a7..801e6e3fe75 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,12 +13,15 @@ public class Cloud {
private final CloudName name;
private final boolean dynamicProvisioning;
+ private final boolean allowHostSharing;
private final boolean requireAccessControl;
private final CloudAccount account;
- private Cloud(CloudName name, boolean dynamicProvisioning, boolean requireAccessControl, CloudAccount account) {
+ private Cloud(CloudName name, boolean dynamicProvisioning, boolean allowHostSharing, boolean requireAccessControl,
+ CloudAccount account) {
this.name = Objects.requireNonNull(name);
this.dynamicProvisioning = dynamicProvisioning;
+ this.allowHostSharing = allowHostSharing;
this.requireAccessControl = requireAccessControl;
this.account = Objects.requireNonNull(account);
if (name.equals(CloudName.AWS) && account.isUnspecified()) {
@@ -36,6 +39,9 @@ public class Cloud {
return dynamicProvisioning;
}
+ /** Returns whether this allows host sharing */
+ public boolean allowHostSharing() { return allowHostSharing; }
+
/** Returns whether to require access control for all clusters in this */
public boolean requireAccessControl() {
return requireAccessControl;
@@ -59,6 +65,7 @@ public class Cloud {
private CloudName name = CloudName.DEFAULT;
private boolean dynamicProvisioning = false;
+ private boolean allowHostSharing = true;
private boolean requireAccessControl = false;
private CloudAccount account = CloudAccount.empty;
@@ -74,6 +81,11 @@ public class Cloud {
return this;
}
+ public Builder allowHostSharing(boolean allowHostSharing) {
+ this.allowHostSharing = allowHostSharing;
+ return this;
+ }
+
public Builder requireAccessControl(boolean requireAccessControl) {
this.requireAccessControl = requireAccessControl;
return this;
@@ -85,7 +97,7 @@ public class Cloud {
}
public Cloud build() {
- return new Cloud(name, dynamicProvisioning, requireAccessControl, account);
+ return new Cloud(name, dynamicProvisioning, allowHostSharing, requireAccessControl, account);
}
}
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 b1a9ecac394..97234056705 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,6 +26,7 @@ public class Zone {
this(Cloud.builder()
.name(CloudName.from(configserverConfig.cloud()))
.dynamicProvisioning(cloudConfig.dynamicProvisioning())
+ .allowHostSharing(cloudConfig.allowHostSharing())
.requireAccessControl(cloudConfig.requireAccessControl())
.account(CloudAccount.from(cloudConfig.account()))
.build(),