summaryrefslogtreecommitdiffstats
path: root/config-provisioning
diff options
context:
space:
mode:
authorValerij Fredriksen <valerijf@yahooinc.com>2023-05-12 19:51:44 +0200
committerValerij Fredriksen <valerijf@yahooinc.com>2023-05-12 19:51:44 +0200
commit6b037ecce1d00faac709e5b46bcb246b9397aa2a (patch)
tree671ffcfda4152bd28ff7178a82c25e95c1f25326 /config-provisioning
parent34ba37735c74efd222f57ac61f9cac60053d768a (diff)
Reprovision in enclave compatible clouds
Diffstat (limited to 'config-provisioning')
-rw-r--r--config-provisioning/src/main/java/com/yahoo/config/provision/Cloud.java21
-rw-r--r--config-provisioning/src/main/java/com/yahoo/config/provision/Zone.java3
2 files changed, 18 insertions, 6 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 ef2fceea1bd..94f01aba9e8 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
@@ -14,18 +14,20 @@ public class Cloud {
private final boolean dynamicProvisioning;
private final boolean allowHostSharing;
+ private final boolean allowEnclave;
private final boolean requireAccessControl;
private final CloudAccount account;
- private Cloud(CloudName name, boolean dynamicProvisioning, boolean allowHostSharing, boolean requireAccessControl,
- CloudAccount account) {
+ private Cloud(CloudName name, boolean dynamicProvisioning, boolean allowHostSharing, boolean allowEnclave,
+ boolean requireAccessControl, CloudAccount account) {
this.name = Objects.requireNonNull(name);
this.dynamicProvisioning = dynamicProvisioning;
this.allowHostSharing = allowHostSharing;
+ this.allowEnclave = allowEnclave;
this.requireAccessControl = requireAccessControl;
this.account = Objects.requireNonNull(account);
- if ((name.equals(CloudName.AWS) || name.equals(CloudName.GCP)) && account.isUnspecified()) {
- throw new IllegalArgumentException("Account must be non-empty in cloud '" + name + "'");
+ if (allowEnclave && account.isUnspecified()) {
+ throw new IllegalArgumentException("Account must be non-empty in '" + name + "'");
}
}
@@ -42,6 +44,9 @@ public class Cloud {
/** Returns whether this allows host sharing */
public boolean allowHostSharing() { return allowHostSharing; }
+ /** Returns whether this allows deployments to enclave */
+ public boolean allowEnclave() { return allowEnclave; }
+
/** Returns whether to require access control for all clusters in this */
public boolean requireAccessControl() {
return requireAccessControl;
@@ -66,6 +71,7 @@ public class Cloud {
private CloudName name = CloudName.DEFAULT;
private boolean dynamicProvisioning = false;
private boolean allowHostSharing = true;
+ private boolean allowEnclave = false;
private boolean requireAccessControl = false;
private CloudAccount account = CloudAccount.empty;
@@ -86,6 +92,11 @@ public class Cloud {
return this;
}
+ public Builder allowEnclave(boolean allowEnclave) {
+ this.allowEnclave = allowEnclave;
+ return this;
+ }
+
public Builder requireAccessControl(boolean requireAccessControl) {
this.requireAccessControl = requireAccessControl;
return this;
@@ -97,7 +108,7 @@ public class Cloud {
}
public Cloud build() {
- return new Cloud(name, dynamicProvisioning, allowHostSharing, requireAccessControl, account);
+ return new Cloud(name, dynamicProvisioning, allowHostSharing, allowEnclave, 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 97234056705..17010fe3fd3 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
@@ -1,8 +1,8 @@
// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.config.provision;
-import com.yahoo.component.annotation.Inject;
import com.yahoo.cloud.config.ConfigserverConfig;
+import com.yahoo.component.annotation.Inject;
import com.yahoo.config.provisioning.CloudConfig;
import java.util.Objects;
@@ -27,6 +27,7 @@ public class Zone {
.name(CloudName.from(configserverConfig.cloud()))
.dynamicProvisioning(cloudConfig.dynamicProvisioning())
.allowHostSharing(cloudConfig.allowHostSharing())
+ .allowEnclave(cloudConfig.dynamicProvisioning())
.requireAccessControl(cloudConfig.requireAccessControl())
.account(CloudAccount.from(cloudConfig.account()))
.build(),