diff options
author | Valerij Fredriksen <valerijf@yahooinc.com> | 2023-05-12 19:51:44 +0200 |
---|---|---|
committer | Valerij Fredriksen <valerijf@yahooinc.com> | 2023-05-12 19:51:44 +0200 |
commit | 6b037ecce1d00faac709e5b46bcb246b9397aa2a (patch) | |
tree | 671ffcfda4152bd28ff7178a82c25e95c1f25326 /config-provisioning | |
parent | 34ba37735c74efd222f57ac61f9cac60053d768a (diff) |
Reprovision in enclave compatible clouds
Diffstat (limited to 'config-provisioning')
-rw-r--r-- | config-provisioning/src/main/java/com/yahoo/config/provision/Cloud.java | 21 | ||||
-rw-r--r-- | config-provisioning/src/main/java/com/yahoo/config/provision/Zone.java | 3 |
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(), |