diff options
Diffstat (limited to 'config-model/src/main/java/com/yahoo/vespa/model/application/validation')
2 files changed, 0 insertions, 53 deletions
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/application/validation/UrlConfigValidator.java b/config-model/src/main/java/com/yahoo/vespa/model/application/validation/UrlConfigValidator.java deleted file mode 100644 index e6cd1a9e192..00000000000 --- a/config-model/src/main/java/com/yahoo/vespa/model/application/validation/UrlConfigValidator.java +++ /dev/null @@ -1,52 +0,0 @@ -// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -package com.yahoo.vespa.model.application.validation; - -import com.yahoo.config.model.deploy.DeployState; -import com.yahoo.vespa.model.VespaModel; -import com.yahoo.vespa.model.container.ApplicationContainerCluster; - -import java.util.Optional; - -/** - * Validates that config using s3:// urls is used in public system and with nodes that are exclusive. - * - * @author hmusum - */ -public class UrlConfigValidator extends Validator { - - @Override - public void validate(VespaModel model, DeployState state) { - if (! state.isHostedTenantApplication(model.getAdmin().getApplicationType())) return; - - model.getContainerClusters().forEach((__, cluster) -> { - var isExclusive = hasExclusiveNodes(model, cluster); - validateS3UlsInConfig(state, cluster, isExclusive); - }); - } - - private static boolean hasExclusiveNodes(VespaModel model, ApplicationContainerCluster cluster) { - return model.hostSystem().getHosts() - .stream() - .flatMap(hostResource -> hostResource.spec().membership().stream()) - .filter(membership -> membership.cluster().id().equals(cluster.id())) - .anyMatch(membership -> membership.cluster().isExclusive()); - } - - private static void validateS3UlsInConfig(DeployState state, ApplicationContainerCluster cluster, boolean isExclusive) { - if (hasUrlInConfig(state)) { - // TODO: Would be even better if we could add which config/field the url is set for in the error message - String message = "Found s3:// urls in config for container cluster " + cluster.getName(); - if ( ! state.zone().system().isPublic()) - throw new IllegalArgumentException(message + ". This is only supported in public systems"); - else if ( ! isExclusive) - throw new IllegalArgumentException(message + ". Nodes in the cluster need to be 'exclusive'," + - " see https://cloud.vespa.ai/en/reference/services#nodes"); - } - } - - private static boolean hasUrlInConfig(DeployState state) { - return state.getFileRegistry().export().stream() - .anyMatch(fileReference -> fileReference.relativePath.startsWith("s3://")); - } - -} diff --git a/config-model/src/main/java/com/yahoo/vespa/model/application/validation/Validation.java b/config-model/src/main/java/com/yahoo/vespa/model/application/validation/Validation.java index 90616c99979..53a553ee624 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/application/validation/Validation.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/application/validation/Validation.java @@ -87,7 +87,6 @@ public class Validation { new AccessControlFilterExcludeValidator().validate(model, deployState); new CloudUserFilterValidator().validate(model, deployState); new CloudHttpConnectorValidator().validate(model, deployState); - new UrlConfigValidator().validate(model, deployState); additionalValidators.forEach(v -> v.validate(model, deployState)); |